[Pkg-mediawiki-commits] [mediawiki-math] 01/01: Imported Upstream version 3.0.0+git20160613

Kunal Mehta legoktm-guest at moszumanska.debian.org
Mon Jul 11 13:06:12 UTC 2016


This is an automated email from the git hooks/post-receive script.

legoktm-guest pushed a commit to branch upstream
in repository mediawiki-math.

commit cc4dcb1d814b55318124e08d350993ed5c1df7c6
Author: Kunal Mehta <legoktm at member.fsf.org>
Date:   Mon Jul 11 03:57:28 2016 -0700

    Imported Upstream version 3.0.0+git20160613
---
 .csslintrc                                         |   13 +
 .gitattributes                                     |    6 +
 .gitignore                                         |   11 +
 .gitreview                                         |    5 +
 .jscsrc                                            |   21 +
 .jshintignore                                      |    6 +
 .jshintrc                                          |   26 +
 .rubocop.yml                                       |   20 +
 COPYING                                            |  339 ++
 Gemfile                                            |    5 +
 Gemfile.lock                                       |  105 +
 Gruntfile.js                                       |   58 +
 HISTORY                                            |   11 +
 Makefile                                           |   11 +
 Math.alias.noTranslate.php                         |   18 +
 Math.alias.php                                     |   38 +
 Math.body.php                                      |  365 --
 Math.hooks.php                                     |  380 +-
 Math.i18n.php                                      | 4663 --------------------
 Math.php                                           |  112 +-
 MathDataModule.php                                 |   36 +
 MathFormatter.php                                  |  111 +
 MathInputCheck.php                                 |   53 +
 MathInputCheckRestbase.php                         |   94 +
 MathInputCheckTexvc.php                            |  113 +
 MathLaTeXML.php                                    |  219 +
 MathMLRdfBuilder.php                               |   35 +
 MathMathML.php                                     |  524 +++
 MathRenderer.php                                   |  707 +++
 MathRestbaseInterface.php                          |  412 ++
 MathSource.php                                     |   70 +
 MathTexvc.php                                      |  481 ++
 MathValidator.php                                  |   50 +
 MathWikidataHook.php                               |   81 +
 README                                             |   61 +
 RELEASE-NOTES-3.0.0                                |   15 +
 Rakefile                                           |   17 +
 SpecialMathShowImage.php                           |  142 +
 SpecialMathStatus.php                              |  196 +
 composer.json                                      |   15 +
 db/math.db2.sql                                    |    7 -
 db/{math.sql => math.mysql.sql}                    |    6 +-
 db/{math.pg.sql => math.postgres.sql}              |    0
 db/{math.sql => math.sqlite.sql}                   |    6 +-
 db/mathlatexml.mysql.sql                           |   18 +
 db/mathlatexml.postgres.sql                        |   18 +
 db/mathlatexml.sqlite.sql                          |   18 +
 db/mathoid.mysql.sql                               |   20 +
 db/mathoid.postgres.sql                            |   20 +
 db/mathoid.sqlite.sql                              |   20 +
 .../mathlatexml.mathml-length-adjustment.mysql.sql |    1 +
 extension.json                                     |  238 +
 gitinfo.json                                       |    1 +
 i18n/ace.json                                      |    9 +
 i18n/af.json                                       |   23 +
 i18n/aln.json                                      |   11 +
 i18n/am.json                                       |   18 +
 i18n/an.json                                       |   23 +
 i18n/ang.json                                      |   12 +
 i18n/anp.json                                      |    9 +
 i18n/ar.json                                       |   58 +
 i18n/arc.json                                      |    9 +
 i18n/ary.json                                      |   17 +
 i18n/arz.json                                      |   25 +
 i18n/as.json                                       |   18 +
 i18n/ast.json                                      |   79 +
 i18n/av.json                                       |    9 +
 i18n/avk.json                                      |   23 +
 i18n/awa.json                                      |   10 +
 i18n/az.json                                       |   17 +
 i18n/azb.json                                      |   15 +
 i18n/ba.json                                       |   79 +
 i18n/bar.json                                      |   10 +
 i18n/bcc.json                                      |   23 +
 i18n/bcl.json                                      |   25 +
 i18n/be-tarask.json                                |   32 +
 i18n/be.json                                       |   24 +
 i18n/bg.json                                       |   32 +
 i18n/bho.json                                      |    9 +
 i18n/bjn.json                                      |   11 +
 i18n/bn.json                                       |   74 +
 i18n/bpy.json                                      |   10 +
 i18n/bqi.json                                      |    9 +
 i18n/br.json                                       |   29 +
 i18n/bs.json                                       |   76 +
 i18n/ca.json                                       |   37 +
 i18n/cdo.json                                      |   11 +
 i18n/ce.json                                       |   42 +
 i18n/ceb.json                                      |   12 +
 i18n/ch.json                                       |   15 +
 i18n/ckb.json                                      |   22 +
 i18n/co.json                                       |    5 +
 i18n/cps.json                                      |    9 +
 i18n/crh-cyrl.json                                 |   19 +
 i18n/crh-latn.json                                 |   19 +
 i18n/cs.json                                       |   80 +
 i18n/csb.json                                      |   16 +
 i18n/cu.json                                       |   11 +
 i18n/cv.json                                       |   11 +
 i18n/cy.json                                       |   26 +
 i18n/da.json                                       |   56 +
 i18n/de.json                                       |   80 +
 i18n/diq.json                                      |   30 +
 i18n/dsb.json                                      |   28 +
 i18n/dtp.json                                      |    9 +
 i18n/dz.json                                       |    9 +
 i18n/egl.json                                      |    7 +
 i18n/el.json                                       |   27 +
 i18n/eml.json                                      |    9 +
 i18n/en.json                                       |   90 +
 i18n/eo.json                                       |   32 +
 i18n/es.json                                       |   82 +
 i18n/et.json                                       |   74 +
 i18n/eu.json                                       |   49 +
 i18n/ext.json                                      |   23 +
 i18n/fa.json                                       |   47 +
 i18n/fi.json                                       |   32 +
 i18n/fo.json                                       |   16 +
 i18n/fr.json                                       |   89 +
 i18n/frc.json                                      |    9 +
 i18n/frp.json                                      |   22 +
 i18n/frr.json                                      |   40 +
 i18n/fur.json                                      |   13 +
 i18n/fy.json                                       |   27 +
 i18n/ga.json                                       |   23 +
 i18n/gag.json                                      |    9 +
 i18n/gan-hans.json                                 |   22 +
 i18n/gan-hant.json                                 |   22 +
 i18n/gd.json                                       |   10 +
 i18n/gl.json                                       |   82 +
 i18n/gn.json                                       |    4 +
 i18n/got.json                                      |    9 +
 i18n/grc.json                                      |   23 +
 i18n/gsw.json                                      |   22 +
 i18n/gu.json                                       |   32 +
 i18n/gv.json                                       |   11 +
 i18n/ha.json                                       |    9 +
 i18n/hak.json                                      |   22 +
 i18n/haw.json                                      |   10 +
 i18n/he.json                                       |   82 +
 i18n/hi.json                                       |   48 +
 i18n/hif-latn.json                                 |   23 +
 i18n/hil.json                                      |    9 +
 i18n/hr.json                                       |   55 +
 i18n/hsb.json                                      |   25 +
 i18n/ht.json                                       |    9 +
 i18n/hu-formal.json                                |    8 +
 i18n/hu.json                                       |   69 +
 i18n/hy.json                                       |   61 +
 i18n/ia.json                                       |   26 +
 i18n/id.json                                       |   28 +
 i18n/ie.json                                       |    8 +
 i18n/ig.json                                       |   10 +
 i18n/ike-cans.json                                 |    5 +
 i18n/ike-latn.json                                 |    5 +
 i18n/ilo.json                                      |   29 +
 i18n/io.json                                       |   14 +
 i18n/is.json                                       |   48 +
 i18n/it.json                                       |   81 +
 i18n/ja.json                                       |   70 +
 i18n/jam.json                                      |    9 +
 i18n/jut.json                                      |   10 +
 i18n/jv.json                                       |   22 +
 i18n/ka.json                                       |   55 +
 i18n/kaa.json                                      |   15 +
 i18n/kab.json                                      |   23 +
 i18n/kbd-cyrl.json                                 |   11 +
 i18n/khw.json                                      |    9 +
 i18n/kiu.json                                      |   19 +
 i18n/kk-arab.json                                  |   18 +
 i18n/kk-cyrl.json                                  |   31 +
 i18n/kk-latn.json                                  |   18 +
 i18n/km.json                                       |   31 +
 i18n/kn.json                                       |   13 +
 i18n/ko.json                                       |   67 +
 i18n/koi.json                                      |    9 +
 i18n/krc.json                                      |   25 +
 i18n/ksh.json                                      |   57 +
 i18n/ku-latn.json                                  |   21 +
 i18n/kw.json                                       |   10 +
 i18n/ky.json                                       |    4 +
 i18n/la.json                                       |   18 +
 i18n/lad.json                                      |   10 +
 i18n/lb.json                                       |   49 +
 i18n/lfn.json                                      |   10 +
 i18n/lg.json                                       |    9 +
 i18n/li.json                                       |   23 +
 i18n/lij.json                                      |    9 +
 i18n/liv.json                                      |    9 +
 i18n/lki.json                                      |   36 +
 i18n/lmo.json                                      |   13 +
 i18n/lo.json                                       |   11 +
 i18n/loz.json                                      |   10 +
 i18n/lrc.json                                      |   21 +
 i18n/lt.json                                       |   79 +
 i18n/ltg.json                                      |    9 +
 i18n/lus.json                                      |   23 +
 i18n/lv.json                                       |   28 +
 i18n/lzh.json                                      |   18 +
 i18n/lzz.json                                      |    9 +
 i18n/mai.json                                      |   11 +
 i18n/mdf.json                                      |   24 +
 i18n/mg.json                                       |   27 +
 i18n/mhr.json                                      |   13 +
 i18n/min.json                                      |   13 +
 i18n/mk.json                                       |   74 +
 i18n/ml.json                                       |   47 +
 i18n/mn.json                                       |   22 +
 i18n/mo.json                                       |    9 +
 i18n/mr.json                                       |   38 +
 i18n/mrj.json                                      |    9 +
 i18n/ms.json                                       |   40 +
 i18n/mt.json                                       |   26 +
 i18n/mwl.json                                      |   11 +
 i18n/my.json                                       |   18 +
 i18n/myv.json                                      |   18 +
 i18n/mzn.json                                      |    9 +
 i18n/nah.json                                      |   10 +
 i18n/nan.json                                      |   12 +
 i18n/nap.json                                      |   77 +
 i18n/nb.json                                       |   81 +
 i18n/nds-nl.json                                   |   30 +
 i18n/nds.json                                      |   18 +
 i18n/ne.json                                       |   23 +
 i18n/new.json                                      |    4 +
 i18n/nl.json                                       |   81 +
 i18n/nn.json                                       |   24 +
 i18n/nso.json                                      |   11 +
 i18n/oc.json                                       |   25 +
 i18n/olo.json                                      |   13 +
 i18n/om.json                                       |    9 +
 i18n/or.json                                       |    9 +
 i18n/os.json                                       |   11 +
 i18n/pa.json                                       |   17 +
 i18n/pag.json                                      |    4 +
 i18n/pam.json                                      |   24 +
 i18n/pcd.json                                      |    9 +
 i18n/pdc.json                                      |    8 +
 i18n/pdt.json                                      |   10 +
 i18n/pfl.json                                      |    9 +
 i18n/pl.json                                       |   79 +
 i18n/pms.json                                      |   25 +
 i18n/pnb.json                                      |   12 +
 i18n/pnt.json                                      |   14 +
 i18n/prg.json                                      |   22 +
 i18n/ps.json                                       |   33 +
 i18n/pt-br.json                                    |   31 +
 i18n/pt.json                                       |   56 +
 i18n/qqq.json                                      |   89 +
 i18n/qu.json                                       |   26 +
 i18n/rgn.json                                      |    9 +
 i18n/rif.json                                      |    9 +
 i18n/rm.json                                       |   23 +
 i18n/rmy.json                                      |   13 +
 i18n/ro.json                                       |   34 +
 i18n/roa-tara.json                                 |   46 +
 i18n/ru.json                                       |   82 +
 i18n/rue.json                                      |   22 +
 i18n/ruq-cyrl.json                                 |    9 +
 i18n/ruq-latn.json                                 |    9 +
 i18n/sa.json                                       |   15 +
 i18n/sah.json                                      |   23 +
 i18n/sc.json                                       |   11 +
 i18n/scn.json                                      |   25 +
 i18n/sco.json                                      |   16 +
 i18n/sd.json                                       |    9 +
 i18n/sdc.json                                      |   22 +
 i18n/se.json                                       |   12 +
 i18n/sei.json                                      |   14 +
 i18n/sgs.json                                      |   12 +
 i18n/sh.json                                       |   23 +
 i18n/shi.json                                      |   11 +
 i18n/si.json                                       |   29 +
 i18n/sk.json                                       |   26 +
 i18n/sl.json                                       |   39 +
 i18n/sli.json                                      |   20 +
 i18n/sma.json                                      |   10 +
 i18n/so.json                                       |    4 +
 i18n/sq.json                                       |   23 +
 i18n/sr-ec.json                                    |   34 +
 i18n/sr-el.json                                    |   32 +
 i18n/srn.json                                      |   13 +
 i18n/stq.json                                      |   23 +
 i18n/su.json                                       |   22 +
 i18n/sv.json                                       |   86 +
 i18n/sw.json                                       |   12 +
 i18n/szl.json                                      |   23 +
 i18n/ta.json                                       |   23 +
 i18n/tcy.json                                      |    9 +
 i18n/te.json                                       |   27 +
 i18n/test.json                                     |    7 +
 i18n/tg-cyrl.json                                  |   22 +
 i18n/tg-latn.json                                  |   22 +
 i18n/th.json                                       |   23 +
 i18n/tk.json                                       |   22 +
 i18n/tl.json                                       |   38 +
 i18n/to.json                                       |   15 +
 i18n/tpi.json                                      |    9 +
 i18n/tr.json                                       |   80 +
 i18n/tt-cyrl.json                                  |   23 +
 i18n/tt-latn.json                                  |   18 +
 i18n/tyv.json                                      |    9 +
 i18n/ug-arab.json                                  |   22 +
 i18n/uk.json                                       |   85 +
 i18n/ur.json                                       |   15 +
 i18n/uz.json                                       |   15 +
 i18n/vec.json                                      |   24 +
 i18n/vep.json                                      |   23 +
 i18n/vi.json                                       |   82 +
 i18n/vmf.json                                      |   11 +
 i18n/vo.json                                       |   22 +
 i18n/vot.json                                      |    9 +
 i18n/vro.json                                      |   21 +
 i18n/wa.json                                       |   20 +
 i18n/wo.json                                       |   15 +
 i18n/wuu.json                                      |   10 +
 i18n/xal.json                                      |   10 +
 i18n/xmf.json                                      |    9 +
 i18n/yi.json                                       |   15 +
 i18n/yo.json                                       |   13 +
 i18n/yue.json                                      |   29 +
 i18n/zea.json                                      |   19 +
 i18n/zh-hans.json                                  |   84 +
 i18n/zh-hant.json                                  |   61 +
 i18n/zu.json                                       |    5 +
 images/button_math.png                             |  Bin 0 -> 597 bytes
 images/reference-nospeech.svg                      |   14 +
 images/reference.svg                               |   16 +
 maintenance/MathGenerateTests.php                  |   95 +
 math/.gitignore                                    |   10 +
 math/README                                        |   12 +-
 math/lexer.mll                                     |    9 +-
 math/parser.mly                                    |    2 +-
 math/texutil.ml                                    |   22 +-
 math/texvc.ml                                      |    9 +-
 mathParserTests.txt                                |  158 -
 mathoid/MOVED                                      |    2 +
 modules/LatinModern/GUST-FONT-LICENSE.txt          |   30 +
 modules/LatinModern/MANIFEST-Latin-Modern-Math.txt |   60 +
 modules/LatinModern/latinmodern-math.woff          |  Bin 0 -> 483524 bytes
 modules/ext.math.css                               |   39 +
 modules/ext.math.desktop.css                       |   15 +
 modules/ext.math.editbutton.js                     |   14 +
 modules/ext.math.js                                |   38 +
 modules/ve-math/math-display-block.svg             |    7 +
 modules/ve-math/math-display-default.svg           |   10 +
 modules/ve-math/math-display-inline.svg            |   10 +
 modules/ve-math/math.svg                           |    6 +
 modules/ve-math/symbols.json                       | 3217 ++++++++++++++
 modules/ve-math/tools/makeSvgsAndCss.js            |  208 +
 modules/ve-math/tools/package.json                 |    3 +
 modules/ve-math/ve.ce.MWMathNode.css               |   10 +
 modules/ve-math/ve.ce.MWMathNode.js                |   57 +
 modules/ve-math/ve.dm.MWMathNode.js                |   54 +
 modules/ve-math/ve.ui.MWMathContextItem.js         |   63 +
 modules/ve-math/ve.ui.MWMathDialog.css             |   95 +
 modules/ve-math/ve.ui.MWMathDialog.js              |  326 ++
 modules/ve-math/ve.ui.MWMathDialogTool.js          |   53 +
 modules/ve-math/ve.ui.MWMathIcons.css              |   26 +
 modules/ve-math/ve.ui.MWMathInspector.css          |   10 +
 modules/ve-math/ve.ui.MWMathInspector.js           |  141 +
 modules/ve-math/ve.ui.MWMathPage.js                |   79 +
 modules/ve-math/ve.ui.MWMathSymbols.css            | 2557 +++++++++++
 package.json                                       |   16 +
 phpcs.xml                                          |    8 +
 tests/MathCoverageTest.php                         |   98 +
 tests/MathDatabaseTest.php                         |  123 +
 tests/MathFormatterTest.php                        |  105 +
 tests/MathHooksTest.php                            |  106 +
 tests/MathIdTest.php                               |   23 +
 tests/MathInputCheckRestbaseTest.php               |  107 +
 tests/MathInputCheckTest.php                       |   38 +
 tests/MathInputCheckTexvcTest.php                  |  191 +
 tests/MathLaTeXMLDatabaseTest.php                  |  115 +
 tests/MathLaTeXMLTest.php                          |   42 +
 tests/MathMLRdfBuilderTest.php                     |   72 +
 tests/MathMathMLTest.php                           |  187 +
 tests/MathRendererTest.php                         |  164 +
 tests/MathRestBaseInterfaceTest.php                |   88 +
 tests/MathSourceTest.php                           |   39 +
 tests/MathTexvcTest.php                            |  192 +
 tests/MathValidatorTest.php                        |   71 +
 tests/ParserTest.json                              | 1798 ++++++++
 tests/browser/README.md                            |    1 +
 tests/browser/ci.yml                               |    9 +
 tests/browser/environments.yml                     |   40 +
 tests/browser/features/math.feature                |    8 +
 .../features/step_definitions/math_steps.rb        |   15 +
 tests/browser/features/support/env.rb              |    3 +
 tests/browser/features/support/pages/edit_page.rb  |   16 +
 texvccheck/.gitignore                              |    9 +
 texvccheck/Makefile                                |   65 +
 texvccheck/README                                  |   77 +
 texvccheck/lexer.mll                               |  119 +
 {math => texvccheck}/parser.mly                    |   11 +-
 texvccheck/test.pl                                 |    9 +
 texvccheck/tex.mli                                 |   48 +
 texvccheck/texutil.ml                              |  712 +++
 texvccheck/texvccheck.ml                           |   38 +
 texvccheck/util.ml                                 |    9 +
 version                                            |    4 +
 401 files changed, 23974 insertions(+), 5380 deletions(-)

diff --git a/.csslintrc b/.csslintrc
new file mode 100644
index 0000000..68d60d2
--- /dev/null
+++ b/.csslintrc
@@ -0,0 +1,13 @@
+{
+	"adjoining-classes": false,
+	"box-model": false,
+	"box-sizing": false,
+	"fallback-colors": false,
+	"important": false,
+	"outline-none": false,
+	"qualified-headings": false,
+	"unique-headings": false,
+	"universal-selector": false,
+	"unqualified-attributes": false,
+	"gradients": false
+}
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..8f237dc
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,6 @@
+* text eol=lf
+*.png binary
+*.ico binary
+*.ppk binary
+*.eot binary
+*.woff binary
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8e0248e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,11 @@
+.svn
+.DS_Store
+*~
+*.kate-swp
+.*.swp
+/nbproject/private/
+tests/browser/.bundle
+tests/browser/.gem
+node_modules/
+vendor
+composer.lock
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..6d0b773
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,5 @@
+[gerrit]
+host=gerrit.wikimedia.org
+port=29418
+project=mediawiki/extensions/Math.git
+defaultbranch=REL1_27
diff --git a/.jscsrc b/.jscsrc
new file mode 100644
index 0000000..1959eea
--- /dev/null
+++ b/.jscsrc
@@ -0,0 +1,21 @@
+{
+	"preset": "wikimedia",
+
+	"jsDoc": {
+		"checkAnnotations": {
+			"preset": "jsduck5",
+			"extra": {
+				"this": true,
+				"source": true,
+				"see": true
+			}
+		},
+		"checkTypes": "strictNativeCase",
+		"checkParamNames": true,
+		"checkRedundantAccess": true,
+		"checkRedundantReturns": true,
+		"requireNewlineAfterDescription": true,
+		"requireParamTypes": true,
+		"requireReturnTypes": true
+	}
+}
diff --git a/.jshintignore b/.jshintignore
new file mode 100644
index 0000000..b646851
--- /dev/null
+++ b/.jshintignore
@@ -0,0 +1,6 @@
+# third-party lib
+modules/MathJax
+
+# browser code in the middle of node code
+mathoid/main.js
+mathoid/engine.js
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..64e1703
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,26 @@
+{
+	// Enforcing
+	"bitwise": true,
+	"eqeqeq": true,
+	"freeze": true,
+	"latedef": true,
+	"noarg": true,
+	"nonew": true,
+	"undef": true,
+	"unused": true,
+	"strict": false,
+
+	// Relaxing
+	"es5": false,
+
+	// Environment
+	"browser": true,
+	"jquery": true,
+
+	"globals": {
+		"mediaWiki": false,
+		"OO": false,
+		"ve": false,
+		"mw": false
+	}
+}
diff --git a/.rubocop.yml b/.rubocop.yml
new file mode 100644
index 0000000..84567a5
--- /dev/null
+++ b/.rubocop.yml
@@ -0,0 +1,20 @@
+AllCops:
+  StyleGuideCopsOnly: true
+
+Metrics/LineLength:
+  Max: 100
+
+Metrics/MethodLength:
+  Enabled: false
+
+Style/Alias:
+  Enabled: false
+
+Style/SignalException:
+  Enabled: false
+
+Style/StringLiterals:
+  EnforcedStyle: single_quotes
+
+Style/TrivialAccessors:
+  ExactNameMatch: true
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..eba618a
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,5 @@
+source 'https://rubygems.org'
+
+gem 'mediawiki_selenium', '~> 1.7'
+gem 'rake', '~> 10.5'
+gem 'rubocop', '~> 0.33.0', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..6ca6d70
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,105 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    ast (2.1.0)
+    astrolabe (1.3.1)
+      parser (~> 2.2)
+    builder (3.2.2)
+    childprocess (0.5.9)
+      ffi (~> 1.0, >= 1.0.11)
+    cucumber (1.3.20)
+      builder (>= 2.1.2)
+      diff-lcs (>= 1.1.3)
+      gherkin (~> 2.12)
+      multi_json (>= 1.7.5, < 2.0)
+      multi_test (>= 0.1.2)
+    data_magic (0.22)
+      faker (>= 1.1.2)
+      yml_reader (>= 0.6)
+    diff-lcs (1.2.5)
+    domain_name (0.5.20160310)
+      unf (>= 0.0.5, < 1.0.0)
+    faker (1.6.3)
+      i18n (~> 0.5)
+    faraday (0.9.2)
+      multipart-post (>= 1.2, < 3)
+    faraday-cookie_jar (0.0.6)
+      faraday (>= 0.7.4)
+      http-cookie (~> 1.0.0)
+    ffi (1.9.10)
+    gherkin (2.12.2)
+      multi_json (~> 1.3)
+    headless (2.2.3)
+    http-cookie (1.0.2)
+      domain_name (~> 0.5)
+    i18n (0.7.0)
+    json (1.8.3)
+    mediawiki_api (0.5.0)
+      faraday (~> 0.9, >= 0.9.0)
+      faraday-cookie_jar (~> 0.0, >= 0.0.6)
+    mediawiki_selenium (1.7.0)
+      cucumber (~> 1.3, >= 1.3.20)
+      headless (~> 2.0, >= 2.1.0)
+      json (~> 1.8, >= 1.8.1)
+      mediawiki_api (~> 0.5, >= 0.5.0)
+      page-object (~> 1.0)
+      rest-client (~> 1.6, >= 1.6.7)
+      rspec-core (~> 2.14, >= 2.14.4)
+      rspec-expectations (~> 2.14, >= 2.14.4)
+      syntax (~> 1.2, >= 1.2.0)
+      thor (~> 0.19, >= 0.19.1)
+    mime-types (2.99.1)
+    multi_json (1.11.3)
+    multi_test (0.1.2)
+    multipart-post (2.0.0)
+    netrc (0.11.0)
+    page-object (1.1.1)
+      page_navigation (>= 0.9)
+      selenium-webdriver (>= 2.44.0)
+      watir-webdriver (>= 0.6.11)
+    page_navigation (0.9)
+      data_magic (>= 0.14)
+    parser (2.2.2.6)
+      ast (>= 1.1, < 3.0)
+    powerpack (0.1.1)
+    rainbow (2.0.0)
+    rake (10.5.0)
+    rest-client (1.8.0)
+      http-cookie (>= 1.0.2, < 2.0)
+      mime-types (>= 1.16, < 3.0)
+      netrc (~> 0.7)
+    rspec-core (2.99.2)
+    rspec-expectations (2.99.2)
+      diff-lcs (>= 1.1.3, < 2.0)
+    rubocop (0.33.0)
+      astrolabe (~> 1.3)
+      parser (>= 2.2.2.5, < 3.0)
+      powerpack (~> 0.1)
+      rainbow (>= 1.99.1, < 3.0)
+      ruby-progressbar (~> 1.4)
+    ruby-progressbar (1.7.5)
+    rubyzip (1.2.0)
+    selenium-webdriver (2.53.0)
+      childprocess (~> 0.5)
+      rubyzip (~> 1.0)
+      websocket (~> 1.0)
+    syntax (1.2.0)
+    thor (0.19.1)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.2)
+    watir-webdriver (0.9.1)
+      selenium-webdriver (>= 2.46.2)
+    websocket (1.2.3)
+    yml_reader (0.7)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  mediawiki_selenium (~> 1.7)
+  rake (~> 10.5)
+  rubocop (~> 0.33.0)
+
+BUNDLED WITH
+   1.10.6
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..6644d11
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,58 @@
+/*jshint node:true */
+module.exports = function ( grunt ) {
+	grunt.loadNpmTasks( 'grunt-banana-checker' );
+	grunt.loadNpmTasks( 'grunt-jsonlint' );
+	grunt.loadNpmTasks( 'grunt-contrib-csslint' );
+	grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+	grunt.loadNpmTasks( 'grunt-contrib-watch' );
+	grunt.loadNpmTasks( 'grunt-jscs' );
+
+	grunt.initConfig( {
+		banana: {
+			all: 'i18n/'
+		},
+		jsonlint: {
+			all: [
+				'**/*.json',
+				'!node_modules/**'
+			]
+		},
+		csslint: {
+			options: {
+				csslintrc: '.csslintrc'
+			},
+			all: 'modules/ve-math/*.css'
+		},
+		jshint: {
+			options: {
+				jshintrc: true
+			},
+			all: [
+				'*.js',
+				'modules/**/*.js'
+			]
+		},
+		watch: {
+			files: [
+				'.{csslintrc,jscsrc,jshintignore,jshintrc}',
+				'<%= jshint.all %>',
+				'<%= csslint.all %>'
+			],
+			tasks: 'test'
+		},
+		jscs: {
+			fix: {
+				options: {
+					fix: true
+				},
+				src: '<%= jshint.all %>'
+			},
+			main: {
+				src: '<%= jshint.all %>'
+			}
+		}
+	} );
+
+	grunt.registerTask( 'test', [ 'jshint', 'jscs:main', 'csslint', 'jsonlint', 'banana' ] );
+	grunt.registerTask( 'default', 'test' );
+};
diff --git a/HISTORY b/HISTORY
new file mode 100644
index 0000000..4cabf7f
--- /dev/null
+++ b/HISTORY
@@ -0,0 +1,11 @@
+Change notes from older releases. For current info see RELEASE-NOTES-3.0.0.
+
+== Math 2.0 ==
+
+=== Configuration changes in 2.0 ===
+* $wgLaTeXMLUrl was renamed to $wgMathLaTeXMLUrl
+* $wgLaTeXMLTimeout was renamed to $wgMathLaTeXMLTimeout
+* $wgMathValidModes is introduced:
+  It determines the selectable math rendering modes MW_MATH_(PNG|MATHML|...) in user preferences.
+* $wgUseLaTeXML becomes unnecessary use $wgMathValidModes[] = 'latexml';
+  to enable the LaTeXML rendering mode.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..004b752
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,11 @@
+DIRS = texvc texvccheck
+
+.PHONY: all
+
+all: texvc texvccheck
+
+texvc:
+	cd math; $(MAKE) $(MFLAGS)
+
+texvccheck:
+	cd texvccheck; $(MAKE) $(MFLAGS)
diff --git a/Math.alias.noTranslate.php b/Math.alias.noTranslate.php
new file mode 100644
index 0000000..b751ed3
--- /dev/null
+++ b/Math.alias.noTranslate.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Aliases for invisible Math special pages
+ *
+ * There is no need to translate the messages, since the PageTitle does not appear.
+ *
+ * @see Math.alias.php for special pages with visible titles.
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$specialPageAliases = [];
+
+/** English (English) */
+$specialPageAliases['en'] = [
+	'MathShowImage' => [ 'MathShowImage' ]
+];
diff --git a/Math.alias.php b/Math.alias.php
new file mode 100644
index 0000000..430d918
--- /dev/null
+++ b/Math.alias.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Aliases for Math
+ *
+ * In addition to this file, there is Math.alias.noTranslate.php that contains invisible
+ * special pages.
+ *
+ * @file
+ * @ingroup Extensions
+ */
+// @codingStandardsIgnoreFile
+
+$specialPageAliases = [];
+
+/** English (English) */
+$specialPageAliases['en'] = [
+	'MathStatus' => [ 'MathStatus' ],
+];
+
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = [
+	'MathStatus' => [ 'حالة_الرياضيات' ],
+];
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = [
+	'MathStatus' => [ 'وضعیت_ریاضی' ],
+];
+
+/** Macedonian (македонски) */
+$specialPageAliases['mk'] = [
+	'MathStatus' => [ 'МатСтатус' ],
+];
+
+/** Simplified Chinese (中文(简体)‎) */
+$specialPageAliases['zh-hans'] = [
+	'MathStatus' => [ '数学状态' ],
+];
\ No newline at end of file
diff --git a/Math.body.php b/Math.body.php
deleted file mode 100644
index a589ba8..0000000
--- a/Math.body.php
+++ /dev/null
@@ -1,365 +0,0 @@
-<?php
-/**
- * MediaWiki math extension
- *
- * (c) 2002-2011 Tomasz Wegrzanowski, Brion Vibber, and other MediaWiki contributors
- * GPLv2 license; info in main package.
- *
- * Contains everything related to <math> </math> parsing
- * @file
- * @ingroup Parser
- */
-
-/**
- * Takes LaTeX fragments, sends them to a helper program (texvc) for rendering
- * to rasterized PNG and HTML and MathML approximations. An appropriate
- * rendering form is picked and returned.
- *
- * @author Tomasz Wegrzanowski, with additions by Brion Vibber (2003, 2004)
- * @ingroup Parser
- */
-class MathRenderer {
-	var $mode = MW_MATH_MODERN;
-	var $tex = '';
-	var $inputhash = '';
-	var $hash = '';
-	var $html = '';
-	var $mathml = '';
-	var $conservativeness = 0;
-
-	function __construct( $tex, $params = array() ) {
-		$this->tex = $tex;
-		$this->params = $params;
- 	}
-
-	function setOutputMode( $mode ) {
-		$this->mode = $mode;
-	}
-
-	function render() {
-		global $wgTmpDirectory;
-		global $wgTexvc, $wgMathCheckFiles, $wgTexvcBackgroundColor;
-
-		if( $this->mode == MW_MATH_SOURCE ) {
-			# No need to render or parse anything more!
-			# New lines are replaced with spaces, which avoids confusing our parser (bugs 23190, 22818)
-			return ('<span class="tex" dir="ltr">$ ' . str_replace( "\n", " ", htmlspecialchars( $this->tex ) ) . ' $</span>');
-		}
-		if( $this->tex == '' ) {
-			return; # bug 8372
-		}
-
-		if( !$this->_recall() ) {
-			if( $wgMathCheckFiles ) {
-				# Ensure that the temp and output directories are available before continuing...
-				if( !file_exists( $wgTmpDirectory ) ) {
-					if( !wfMkdirParents( $wgTmpDirectory ) ) {
-						return $this->_error( 'math_bad_tmpdir' );
-					}
-				} elseif( !is_dir( $wgTmpDirectory ) || !is_writable( $wgTmpDirectory ) ) {
-					return $this->_error( 'math_bad_tmpdir' );
-				}
-			}
-
-			if( !is_executable( $wgTexvc ) ) {
-				return $this->_error( 'math_notexvc' );
-			}
-			$cmd = $wgTexvc . ' ' .
-					escapeshellarg( $wgTmpDirectory ).' '.
-					escapeshellarg( $wgTmpDirectory ).' '.
-					escapeshellarg( $this->tex ).' '.
-					escapeshellarg( 'UTF-8' ).' '.
-					escapeshellarg(	$wgTexvcBackgroundColor );
-
-			if ( wfIsWindows() ) {
-				# Invoke it within cygwin sh, because texvc expects sh features in its default shell
-				$cmd = 'sh -c ' . wfEscapeShellArg( $cmd );
-			}
-
-			wfDebug( "TeX: $cmd\n" );
-			$contents = wfShellExec( $cmd );
-			wfDebug( "TeX output:\n $contents\n---\n" );
-
-			if ( strlen( $contents ) == 0 ) {
-				return $this->_error( 'math_unknown_error' );
-			}
-
-			$retval = substr( $contents, 0, 1 );
-			$errmsg = '';
-			if ( ( $retval == 'C' ) || ( $retval == 'M' ) || ( $retval == 'L' ) ) {
-				if ( $retval == 'C' ) {
-					$this->conservativeness = 2;
-				} elseif ( $retval == 'M' ) {
-					$this->conservativeness = 1;
-				} else {
-					$this->conservativeness = 0;
-				}
-				$outdata = substr( $contents, 33 );
-
-				$i = strpos( $outdata, "\000" );
-
-				$this->html = substr( $outdata, 0, $i );
-				$this->mathml = substr( $outdata, $i + 1 );
-			} elseif ( ( $retval == 'c' ) || ( $retval == 'm' ) || ( $retval == 'l' ) ) {
-				$this->html = substr( $contents, 33 );
-				if ( $retval == 'c' ) {
-					$this->conservativeness = 2;
-				} elseif ( $retval == 'm' ) {
-					$this->conservativeness = 1;
-				} else {
-					$this->conservativeness = 0;
-				}
-				$this->mathml = null;
-			} elseif ( $retval == 'X' ) {
-				$this->html = null;
-				$this->mathml = substr( $contents, 33 );
-				$this->conservativeness = 0;
-			} elseif ( $retval == '+' ) {
-				$this->html = null;
-				$this->mathml = null;
-				$this->conservativeness = 0;
-			} else {
-				$errbit = htmlspecialchars( substr( $contents, 1 ) );
-				switch( $retval ) {
-					case 'E':
-						$errmsg = $this->_error( 'math_lexing_error', $errbit );
-						break;
-					case 'S':
-						$errmsg = $this->_error( 'math_syntax_error', $errbit );
-						break;
-					case 'F':
-						$errmsg = $this->_error( 'math_unknown_function', $errbit );
-						break;
-					default:
-						$errmsg = $this->_error( 'math_unknown_error', $errbit );
-				}
-			}
-
-			if ( !$errmsg ) {
-				$this->hash = substr( $contents, 1, 32 );
-			}
-
-			wfRunHooks( 'MathAfterTexvc', array( &$this, &$errmsg ) );
-
-			if ( $errmsg ) {
-				return $errmsg;
-			}
-
-			if ( !preg_match( "/^[a-f0-9]{32}$/", $this->hash ) ) {
-				return $this->_error( 'math_unknown_error' );
-			}
-
-			if( !file_exists( "$wgTmpDirectory/{$this->hash}.png" ) ) {
-				return $this->_error( 'math_image_error' );
-			}
-
-			if( filesize( "$wgTmpDirectory/{$this->hash}.png" ) == 0 ) {
-				return $this->_error( 'math_image_error' );
-			}
-
-			$hashpath = $this->_getHashPath();
-			if( !file_exists( $hashpath ) ) {
-				wfSuppressWarnings();
-				$ret = wfMkdirParents( $hashpath, 0755 );
-				wfRestoreWarnings();
-				if( !$ret ) {
-					return $this->_error( 'math_bad_output' );
-				}
-			} elseif( !is_dir( $hashpath ) || !is_writable( $hashpath ) ) {
-				return $this->_error( 'math_bad_output' );
-			}
-
-			if( !rename( "$wgTmpDirectory/{$this->hash}.png", "$hashpath/{$this->hash}.png" ) ) {
-				return $this->_error( 'math_output_error' );
-			}
-
-			# Now save it back to the DB:
-			if ( !wfReadOnly() ) {
-				$outmd5_sql = pack( 'H32', $this->hash );
-
-				$md5_sql = pack( 'H32', $this->md5 ); # Binary packed, not hex
-
-				$dbw = wfGetDB( DB_MASTER );
-				$dbw->replace(
-					'math',
-					array( 'math_inputhash' ),
-					array(
-						'math_inputhash' => $dbw->encodeBlob( $md5_sql ),
-						'math_outputhash' => $dbw->encodeBlob( $outmd5_sql ),
-						'math_html_conservativeness' => $this->conservativeness,
-						'math_html' => $this->html,
-						'math_mathml' => $this->mathml,
-					),
-					__METHOD__
-				);
-			}
-			
-			// If we're replacing an older version of the image, make sure it's current.
-			global $wgUseSquid;
-			if ( $wgUseSquid ) {
-				$urls = array( $this->_mathImageUrl() );
-				$u = new SquidUpdate( $urls );
-				$u->doUpdate();
-			}
-		}
-
-		return $this->_doRender();
-	}
-
-	function _error( $msg, $append = '' ) {
-		$mf = htmlspecialchars( wfMsg( 'math_failure' ) );
-		$errmsg = htmlspecialchars( wfMsg( $msg ) );
-		$source = htmlspecialchars( str_replace( "\n", ' ', $this->tex ) );
-		return "<strong class='error'>$mf ($errmsg$append): $source</strong>\n";
-	}
-
-	function _recall() {
-		global $wgMathDirectory, $wgMathCheckFiles;
-
-		$this->md5 = md5( $this->tex );
-		$dbr = wfGetDB( DB_SLAVE );
-		$rpage = $dbr->selectRow(
-			'math',
-			array(
-				'math_outputhash', 'math_html_conservativeness', 'math_html',
-				'math_mathml'
-			),
-			array(
-				'math_inputhash' => $dbr->encodeBlob( pack( "H32", $this->md5 ) ) # Binary packed, not hex
-			),
-			__METHOD__
-		);
-
-		if( $rpage !== false ) {
-			# Tailing 0x20s can get dropped by the database, add it back on if necessary:
-			$xhash = unpack( 'H32md5', $dbr->decodeBlob( $rpage->math_outputhash ) . "                " );
-			$this->hash = $xhash['md5'];
-
-			$this->conservativeness = $rpage->math_html_conservativeness;
-			$this->html = $rpage->math_html;
-			$this->mathml = $rpage->math_mathml;
-
-			$filename = $this->_getHashPath() . "/{$this->hash}.png";
-			
-			if( !$wgMathCheckFiles ) {
-				// Short-circuit the file existence & migration checks
-				return true;
-			}
-			
-			if( file_exists( $filename ) ) {
-				if( filesize( $filename ) == 0 ) {
-					// Some horrible error corrupted stuff :(
-					wfSuppressWarnings();
-					unlink( $filename );
-					wfRestoreWarnings();
-				} else {
-					return true;
-				}
-			}
-
-			if( file_exists( $wgMathDirectory . "/{$this->hash}.png" ) ) {
-				$hashpath = $this->_getHashPath();
-
-				if( !file_exists( $hashpath ) ) {
-					wfSuppressWarnings();
-					$ret = wfMkdirParents( $hashpath, 0755 );
-					wfRestoreWarnings();
-					if( !$ret ) {
-						return false;
-					}
-				} elseif( !is_dir( $hashpath ) || !is_writable( $hashpath ) ) {
-					return false;
-				}
-				if ( function_exists( 'link' ) ) {
-					return link( $wgMathDirectory . "/{$this->hash}.png",
-							$hashpath . "/{$this->hash}.png" );
-				} else {
-					return rename( $wgMathDirectory . "/{$this->hash}.png",
-							$hashpath . "/{$this->hash}.png" );
-				}
-			}
-
-		}
-
-		# Missing from the database and/or the render cache
-		return false;
-	}
-
-	/**
-	 * Select among PNG, HTML, or MathML output depending on
-	 */
-	function _doRender() {
-		if( $this->mode == MW_MATH_MATHML && $this->mathml != '' ) {
-			return Xml::tags( 'math',
-				$this->_attribs( 'math',
-					array( 'xmlns' => 'http://www.w3.org/1998/Math/MathML' ) ),
-				$this->mathml );
-		}
-		if ( ( $this->mode == MW_MATH_PNG ) || ( $this->html == '' ) ||
-			( ( $this->mode == MW_MATH_SIMPLE ) && ( $this->conservativeness != 2 ) ) ||
-			( ( $this->mode == MW_MATH_MODERN || $this->mode == MW_MATH_MATHML ) && ( $this->conservativeness == 0 ) )
-		)
-		{
-			return $this->_linkToMathImage();
-		} else {
-			return Xml::tags( 'span',
-				$this->_attribs( 'span',
-					array( 'class' => 'texhtml',
-						'dir' => 'ltr'
-					) ),
-				$this->html
-			);
-		}
-	}
-
-	function _attribs( $tag, $defaults = array(), $overrides = array() ) {
-		$attribs = Sanitizer::validateTagAttributes( $this->params, $tag );
-		$attribs = Sanitizer::mergeAttributes( $defaults, $attribs );
-		$attribs = Sanitizer::mergeAttributes( $attribs, $overrides );
-		return $attribs;
-	}
-
-	function _linkToMathImage() {
-		$url = $this->_mathImageUrl();
-
-		return Xml::element( 'img',
-			$this->_attribs(
-				'img',
-				array(
-					'class' => 'tex',
-					'alt' => $this->tex
-				),
-				array(
-					'src' => $url
-				)
-			)
-		);
-	}
-
-	function _mathImageUrl() {
-		global $wgMathPath;
-		$dir = $this->_getHashSubPath();
-		return "$wgMathPath/$dir/{$this->hash}.png";
-	}
-	
-	function _getHashPath() {
-		global $wgMathDirectory;
-		$path = $wgMathDirectory . '/' . $this->_getHashSubPath();
-		wfDebug( "TeX: getHashPath, hash is: $this->hash, path is: $path\n" );
-		return $path;
-	}
-	
-	function _getHashSubPath() {
-		return substr( $this->hash, 0, 1)
-					. '/' . substr( $this->hash, 1, 1 )
-					. '/' . substr( $this->hash, 2, 1 );
-	}
-
-	public static function renderMath( $tex, $params = array(), ParserOptions $parserOptions = null ) {
-		$math = new MathRenderer( $tex, $params );
-		if ( $parserOptions ) {
-			$math->setOutputMode( $parserOptions->getMath() );
-		}
-		return $math->render();
-	}
-}
diff --git a/Math.hooks.php b/Math.hooks.php
index 4875838..2e9ad33 100644
--- a/Math.hooks.php
+++ b/Math.hooks.php
@@ -2,21 +2,157 @@
 /**
  * MediaWiki math extension
  *
- * (c) 2002-2011 various MediaWiki contributors
+ * (c) 2002-2015 various MediaWiki contributors
  * GPLv2 license; info in main package.
  */
 
+use MediaWiki\Logger\LoggerFactory;
+
 class MathHooks {
+	private static $tags = [];
+	const MATHCACHEKEY = 'math=';
+
+	public static function mathConstantToString( $value, array $defs, $prefix, $default ) {
+		foreach ( $defs as $defKey => $defValue ) {
+			if ( !defined( $defKey ) ) {
+				define( $defKey, $defValue );
+			} elseif ( $defValue !== constant( $defKey ) ) {
+				throw new Exception( 'Math constant "'. $defKey . '" has unexpected value "' .
+					constant( $defKey ) . '" instead of "' . $defValue );
+			}
+		}
+		$invDefs = array_flip( $defs );
+		if ( is_int( $value ) ) {
+			if ( array_key_exists( $value, $invDefs ) ) {
+				$value = $invDefs[$value];
+			} else {
+				return $default;
+			}
+		}
+		if ( is_string( $value ) ) {
+			$newValues = [];
+			foreach ( $defs as $k => $v ) {
+				$newValues[$k] = preg_replace_callback( '/_(.)/', function ( $matches ) {
+					return strtoupper( $matches[1] );
+				}, strtolower( substr( $k, strlen( $prefix ) ) ) );
+			}
+			if ( array_key_exists( $value, $defs ) ) {
+				return $newValues[$value];
+			} elseif ( in_array( $value, $newValues ) ) {
+				return $value;
+			}
+		}
+		return $default;
+	}
+
+	public static function mathStyleToString( $style, $default = 'inlineDisplaystyle' ) {
+		$defs = [
+			'MW_MATHSTYLE_INLINE_DISPLAYSTYLE'  => 0, // default large operator inline
+			'MW_MATHSTYLE_DISPLAY'              => 1, // large operators centered in a new line
+			'MW_MATHSTYLE_INLINE'               => 2, // small operators inline
+			'MW_MATHSTYLE_LINEBREAK'            => 3, // break long lines (experimental)
+		];
+		return self::mathConstantToString( $style, $defs, $prefix = 'MW_MATHSTYLE_', $default );
+	}
+
+	public static function mathCheckToString( $style, $default = 'always' ) {
+		$defs = [
+			'MW_MATH_CHECK_ALWAYS' => 0,
+			'MW_MATH_CHECK_NEVER'  => 1,
+			'MW_MATH_CHECK_NEW'    => 2,
+		];
+		return self::mathConstantToString( $style, $defs, $prefix = 'MW_MATH_CHECK_', $default );
+	}
+
+	public static function mathModeToString( $mode, $default = 'png' ) {
+		// The following deprecated modes have been removed:
+		// 'MW_MATH_SIMPLE'      => 1
+		// 'MW_MATH_HTML'        => 2
+		// 'MW_MATH_MODERN'      => 4
+		// 'MW_MATH_MATHJAX'     => 6
+		// 'MW_MATH_LATEXML_JAX' => 8
+
+		$defs = [
+			'MW_MATH_PNG'    => 0,
+			'MW_MATH_SOURCE' => 3,
+			'MW_MATH_MATHML' => 5,
+			'MW_MATH_LATEXML'=> 7 ];
+
+		return self::mathConstantToString( $mode, $defs, $prefix = 'MW_MATH_', $default );
+	}
+
+	public static function mathModeToHashKey( $mode, $default = 0 ) {
+		$defs = [
+			'png'    => 0,
+			'source' => 3,
+			'mathml' => 5,
+			'latexml'=> 7 ];
+
+		if ( array_key_exists( $mode, $defs ) ) {
+			return $defs[$mode];
+		} else {
+			return $default;
+		}
+	}
+
+	/*
+	 * Generate a user dependent hash cache key.
+	 * The hash key depends on the rendering mode.
+	 * @param &$confstr The to-be-hashed key string that is being constructed
+	 * @param User $user reference to the current user
+	 * @param array &$forOptions userOptions used on that page
+	 */
+	public static function onPageRenderingHash( &$confstr, $user = false, &$forOptions = [] ) {
+		global $wgUser;
+
+		// To be independent of the MediaWiki core version,
+		// we check if the core caching logic for math is still available.
+		if ( !is_callable( 'ParserOptions::getMath' ) && in_array( 'math', $forOptions ) ) {
+			if ( $user === false ) {
+				$user = $wgUser;
+			}
+
+			$mathString = self::mathModeToString( $user->getOption( 'math' ) );
+			$mathOption = self::mathModeToHashKey( $mathString, 0 );
+			// Check if the key already contains the math option part
+			if (
+				!preg_match(
+					'/(^|!)' . self::MATHCACHEKEY . $mathOption . '(!|$)/',
+					$confstr
+				)
+			) {
+				// The math part of cache key starts with "math="
+				// followed by a star or a number for the math mode
+				if ( preg_match( '/(^|!)' . self::MATHCACHEKEY . '[*\d]m?(!|$)/', $confstr ) ) {
+					$confstr = preg_replace(
+						'/(^|!)' . self::MATHCACHEKEY . '[*\d]m?(!|$)/',
+						'\1' . self::MATHCACHEKEY . $mathOption . '\2',
+						$confstr
+					);
+				} else {
+					$confstr .= '!' . self::MATHCACHEKEY . $mathOption;
+				}
+
+				LoggerFactory::getInstance( 'Math' )->debug( "New cache key: $confstr" );
+			} else {
+				LoggerFactory::getInstance( 'Math' )->debug( "Cache key found: $confstr" );
+			}
+		}
+
+		return true;
+	}
+
 	/**
-	 * Set up $wgMathPath and $wgMathDirectory globals if they're not already
-	 * set.
+	 * Set up $wgMathPath and $wgMathDirectory globals if they're not already set.
 	 */
 	static function setup() {
-		global $wgMathPath, $wgMathDirectory;
-		global $wgUploadPath, $wgUploadDirectory;
+		global $wgMathPath, $wgMathDirectory,
+			$wgUploadPath, $wgUploadDirectory;
+
 		if ( $wgMathPath === false ) {
 			$wgMathPath = "{$wgUploadPath}/math";
 		}
+
 		if ( $wgMathDirectory === false ) {
 			$wgMathDirectory = "{$wgUploadDirectory}/math";
 		}
@@ -29,24 +165,77 @@ class MathHooks {
 	 * @return Boolean: true
 	 */
 	static function onParserFirstCallInit( $parser ) {
-		$parser->setHook( 'math', array( 'MathHooks', 'mathTagHook' ) );
+		$parser->setHook( 'math', [ 'MathHooks', 'mathTagHook' ] );
+		$parser->setHook( 'ce', [ 'MathHooks', 'ceTagHook' ] );
+
 		return true;
 	}
 
 	/**
 	 * Callback function for the <math> parser hook.
 	 *
-	 * @param $content
+	 * @param $content (the LaTeX input)
 	 * @param $attributes
-	 * @param $parser Parser
-	 * @return
+	 * @param Parser $parser
+	 * @return array
 	 */
 	static function mathTagHook( $content, $attributes, $parser ) {
-		global $wgContLang;
-		$renderedMath = MathRenderer::renderMath(
-			$content, $attributes, $parser->getOptions()
-		);
-		return $wgContLang->armourMath( $renderedMath );
+		static $n = 1;
+		if ( trim( $content ) === '' ) { // bug 8372
+			return '';
+		}
+
+		$mode = self::mathModeToString( $parser->getUser()->getOption( 'math' ) );
+		// Indicate that this page uses math.
+		// This affects the page caching behavior.
+		$parser->getOptions()->optionUsed( 'math' );
+		$renderer = MathRenderer::getRenderer( $content, $attributes, $mode );
+
+		$parser->getOutput()->addModuleStyles( [ 'ext.math.styles' ] );
+		if ( $mode == 'mathml' ) {
+			$parser->getOutput()->addModuleStyles( [ 'ext.math.desktop.styles' ] );
+			$parser->getOutput()->addModules( [ 'ext.math.scripts' ] );
+			$marker = Parser::MARKER_PREFIX .
+				'-postMath-' . sprintf( '%08X', $n ++ ) .
+				Parser::MARKER_SUFFIX;
+			self::$tags[$marker] = [ $renderer, $parser ];
+			return $marker;
+		}
+		return [ self::mathPostTagHook( $renderer, $parser ), 'markerType' => 'nowiki' ];
+	}
+
+	/**
+	 * Callback function for the <math> parser hook.
+	 *
+	 * @param Parser $parser
+	 * @param MathRenderer $renderer
+	 * @return array
+	 * @throws FatalError
+	 * @throws MWException
+	 */
+	private static function mathPostTagHook( $renderer, $parser ) {
+		$checkResult = $renderer->checkTeX();
+
+		if ( $checkResult !== true ) {
+			// Returns the error message
+			return $renderer->getLastError();
+		}
+
+		if ( $renderer->render() ) {
+			LoggerFactory::getInstance( 'Math' )->debug( "Rendering successful. Writing output" );
+			$renderedMath = $renderer->getHtmlOutput();
+		} else {
+			LoggerFactory::getInstance( 'Math' )->warning(
+				"Rendering failed. Printing error message." );
+			return $renderer->getLastError();
+		}
+		Hooks::run( 'MathFormulaPostRender',
+			[ $parser, $renderer, &$renderedMath ] );// Enables indexing of math formula
+
+		// Writes cache if rendering was successful
+		$renderer->writeCache();
+
+		return $renderedMath;
 	}
 
 	/**
@@ -57,12 +246,24 @@ class MathHooks {
 	 * @return Boolean: true
 	 */
 	static function onGetPreferences( $user, &$defaultPreferences ) {
-		$defaultPreferences['math'] = array(
+		global $wgDefaultUserOptions;
+		$defaultPreferences['math'] = [
 			'type' => 'radio',
-			'options' => array_flip( array_map( 'wfMsgHtml', self::getMathNames() ) ),
+			'options' => array_flip( self::getMathNames() ),
 			'label' => ' ',
 			'section' => 'rendering/math',
-		);
+		];
+		// If the default option is not in the valid options the
+		// user interface throws an exception (BUG 64844)
+		$mode = MathHooks::mathModeToString( $wgDefaultUserOptions['math'] );
+		if ( ! in_array( $mode, MathRenderer::getValidModes() ) ) {
+			LoggerFactory::getInstance( 'Math' )->error( 'Misconfiguration: '.
+				"\$wgDefaultUserOptions['math'] is not in " . MathRenderer::getValidModes() . ".\n".
+				"Please check your LocalSetting.php file." );
+			// Display the checkbox in the first option.
+			$validModes = MathRenderer::getValidModes();
+			$wgDefaultUserOptions['math'] = $validModes[0];
+		}
 		return true;
 	}
 
@@ -71,15 +272,13 @@ class MathHooks {
 	 *
 	 * @return array of strings
 	 */
-	private static function getMathNames() {
-		return array(
-			MW_MATH_PNG => 'mw_math_png',
-			MW_MATH_SIMPLE => 'mw_math_simple',
-			MW_MATH_HTML => 'mw_math_html',
-			MW_MATH_SOURCE => 'mw_math_source',
-			MW_MATH_MODERN => 'mw_math_modern',
-			MW_MATH_MATHML => 'mw_math_mathml'
-		);
+	public static function getMathNames() {
+		$names = [];
+		foreach ( MathRenderer::getValidModes() as $mode ) {
+			$names[$mode] = wfMessage( 'mw_math_' . $mode )->escaped();
+		}
+
+		return $names;
 	}
 
 	/**
@@ -91,8 +290,8 @@ class MathHooks {
 	static function onMaintenanceRefreshLinksInit( $maint ) {
 		global $wgUser;
 
-		# Don't generate TeX PNGs (lack of a sensible current directory causes errors anyway)
-		$wgUser->setOption( 'math', MW_MATH_SOURCE );
+		# Don't generate TeX PNGs (the lack of a sensible current directory causes errors anyway)
+		$wgUser->setOption( 'math', 'source' );
 
 		return true;
 	}
@@ -101,32 +300,50 @@ class MathHooks {
 	 * LoadExtensionSchemaUpdates handler; set up math table on install/upgrade.
 	 *
 	 * @param $updater DatabaseUpdater
+	 * @throws Exception
 	 * @return bool
 	 */
 	static function onLoadExtensionSchemaUpdates( $updater = null ) {
-		if( is_null( $updater ) ) {
-			throw new MWException( "Math extension is only necessary in 1.18 or above" );
-		}
-		$map = array(
-			'mysql' => 'math.sql',
-			'sqlite' => 'math.sql',
-			'postgres' => 'math.pg.sql',
-			'oracle' => 'math.oracle.sql',
-			'mssql' => 'math.mssql.sql',
-			'db2' => 'math.db2.sql',
-		);
+
+		if ( is_null( $updater ) ) {
+			throw new Exception( 'Math extension is only necessary in 1.18 or above' );
+		}
+
+		$map = [ 'mysql', 'sqlite', 'postgres', 'oracle', 'mssql' ];
+
 		$type = $updater->getDB()->getType();
-		if ( isset( $map[$type] ) ) {
-			$sql = dirname( __FILE__ ) . '/db/' . $map[$type];
-			$updater->addExtensionTable( 'math', $sql );
-		} else {
-			throw new MWException( "Math extension does not currently support $type database." );
+
+		if ( !in_array( $type, $map ) ) {
+			throw new Exception( "Math extension does not currently support $type database." );
 		}
+		$sql = __DIR__ . '/db/math.' . $type . '.sql';
+		$updater->addExtensionTable( 'math', $sql );
+		if ( in_array( 'latexml', MathRenderer::getValidModes() ) ) {
+			if ( in_array( $type, [ 'mysql', 'sqlite', 'postgres' ] ) ) {
+				$sql = __DIR__ . '/db/mathlatexml.' . $type . '.sql';
+				$updater->addExtensionTable( 'mathlatexml', $sql );
+				if ( $type == 'mysql' ) {
+					$sql = __DIR__ . '/db/patches/mathlatexml.mathml-length-adjustment.mysql.sql';
+					$updater->modifyExtensionField( 'mathlatexml', 'math_mathml', $sql );
+				}
+			} else {
+				throw new Exception( "Math extension does not currently support $type database for LaTeXML." );
+			}
+		}
+		if ( in_array( 'mathml', MathRenderer::getValidModes() ) ) {
+			if ( in_array( $type, [ 'mysql', 'sqlite', 'postgres' ] ) ) {
+				$sql = __DIR__ . '/db/mathoid.' . $type . '.sql';
+				$updater->addExtensionTable( 'mathoid', $sql );
+			} else {
+				throw new Exception( "Math extension does not currently support $type database for Mathoid." );
+			}
+		}
+
 		return true;
 	}
 
 	/**
-	 * Add 'math' table to the list of tables that need to be copied to
+	 * Add 'math' and 'mathlatexml' tables to the list of tables that need to be copied to
 	 * temporary tables for parser tests to run.
 	 *
 	 * @param array $tables
@@ -134,20 +351,81 @@ class MathHooks {
 	 */
 	static function onParserTestTables( &$tables ) {
 		$tables[] = 'math';
+		$tables[] = 'mathlatexml';
 		return true;
 	}
 
 	/**
-	 * Hack to fake a default $wgMathPath value so parser test output
-	 * that renders to images doesn't vary by who runs it.
+	 * Links to the unit test files for the test cases.
 	 *
-	 * @global string $wgMathPath
+	 * @param string $files
+	 * @return boolean (true)
+	 */
+	static function onRegisterUnitTests( &$files ) {
+		$testDir = __DIR__ . '/tests/';
+		$files = array_merge( $files, glob( "$testDir/*Test.php" ) );
+
+		return true;
+	}
+
+	/**
 	 * @param Parser $parser
+	 * @param $text
 	 * @return bool
 	 */
-	static function onParserTestParser( &$parser ) {
-		global $wgMathPath;
-		$wgMathPath = '/images/math';
+	public static function onParserAfterTidy( &$parser, &$text ) {
+		$rbis = [];
+		foreach ( self::$tags as $key => $tag ){
+			/** @var MathRenderer $renderer */
+			$renderer = $tag[0];
+			$rbi = new MathRestbaseInterface( $renderer->getTex(), $renderer->getInputType() );
+			$renderer->setRestbaseInterface( $rbi );
+			$rbis[] = $rbi;
+		}
+		MathRestbaseInterface::batchEvaluate( $rbis );
+		foreach ( self::$tags as $key => $tag ){
+			$value = call_user_func_array( [ "MathHooks","mathPostTagHook" ], $tag );
+			// Workaround for https://phabricator.wikimedia.org/T103269
+			$text = preg_replace( '/(<mw:editsection[^>]*>.*?)' . preg_quote( $key ) .
+				'(.*?)<\/mw:editsection>/',
+				'\1 $' . htmlspecialchars( $tag[0]->getTex() ) . '\2</mw:editsection>', $text );
+			$text = str_replace( $key, $value, $text );
+		}
+		// This hook might be called multiple times. However one the tags are rendered the job is done.
+		self::$tags = [];
 		return true;
 	}
+	/**
+	 *
+	 * @global type $wgOut
+	 * @param type $toolbar
+	 */
+	static function onEditPageBeforeEditToolbar( &$toolbar ) {
+		global $wgOut;
+		$wgOut->addModules( [ 'ext.math.editbutton.enabler' ] );
+	}
+
+	public static function registerExtension() {
+		global $wgDefaultUserOptions, $wgMathValidModes, $wgMathDisableTexFilter;
+		$wgMathValidModes = MathRenderer::getValidModes();
+		if ( $wgMathDisableTexFilter === true ) { // ensure backwards compatibility
+			$wgMathDisableTexFilter = 'never';
+		}
+		$wgMathDisableTexFilter = MathRenderer::getDisableTexFilter();
+		$wgDefaultUserOptions['math'] = self::mathModeToString( $wgDefaultUserOptions['math'] );
+	}
+
+	/**
+	 * Callback function for the <ce> parser hook.
+	 *
+	 * @param $content (the LaTeX input)
+	 * @param $attributes
+	 * @param Parser $parser
+	 * @return array
+	 */
+	static function ceTagHook( $content, $attributes, $parser ) {
+		$attributes['chem'] = true;
+		return MathHooks::mathTagHook( '\ce{' . $content . '}', $attributes, $parser );
+	}
+
 }
diff --git a/Math.i18n.php b/Math.i18n.php
deleted file mode 100644
index 8c14877..0000000
--- a/Math.i18n.php
+++ /dev/null
@@ -1,4663 +0,0 @@
-<?php
-/**
- * Internationalization file for the Math extension.
- *
- * @file
- * @ingroup Extensions
- */
-
-$messages = array();
-
-/** English */
-$messages['en'] = array(
-	// Edit toolbar stuff shown on ?action=edit (example text & tooltip)
-	'math_sample' => 'Insert formula here',
-	'math_tip' => 'Mathematical formula (LaTeX)',
-
-	// Header on Special:Preferences (or something)
-	'prefs-math' => 'Math',
-
-	// Math options
-	'mw_math_png' => 'Always render PNG',
-	'mw_math_simple' => 'HTML if very simple or else PNG',
-	'mw_math_html' => 'HTML if possible or else PNG',
-	'mw_math_source' => 'Leave it as TeX (for text browsers)',
-	'mw_math_modern' => 'Recommended for modern browsers',
-	'mw_math_mathml' => 'MathML if possible (experimental)',
-
-	// Math errors
-	'math_failure' => 'Failed to parse',
-	'math_unknown_error' => 'unknown error',
-	'math_unknown_function' => 'unknown function',
-	'math_lexing_error' => 'lexing error',
-	'math_syntax_error' => 'syntax error',
-	'math_image_error' => 'PNG conversion failed; check for correct installation of latex and dvipng (or dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Cannot write to or create math temp directory',
-	'math_bad_output' => 'Cannot write to or create math output directory',
-	'math_notexvc' => 'Missing texvc executable; please see math/README to configure.',
-);
-
-/** Message documentation (Message documentation)
- * @author Jon Harald Søby
- * @author Kizito
- * @author Siebrand
- */
-$messages['qqq'] = array(
-	'math_sample' => 'The sample formula text that you get when you press the fourth button from the right on the edit toolbar.',
-	'math_tip' => 'This is the text that appears when you hover the mouse over the fourth button from the right on the edit toolbar.',
-	'prefs-math' => 'Used in user preferences.',
-	'mw_math_png' => 'In user preferences. All mw_math_* messages MUST be different, things will break otherwise!',
-	'mw_math_simple' => 'In [[Special:Preferences|user preferences]]. All mw_math_* messages MUST be different, things will break otherwise!',
-	'mw_math_html' => 'In user preferences. All mw_math_* messages MUST be different, things will break otherwise!',
-	'mw_math_source' => 'In user preferences (math). All mw_math_* messages MUST be different, things will break otherwise!',
-	'mw_math_modern' => 'In user preferences (math). All mw_math_* messages MUST be different, things will break otherwise!',
-	'mw_math_mathml' => 'In user preferences. All mw_math_* messages MUST be different, things will break otherwise!',
-	'math_syntax_error' => '{{Identical|Syntax error}}',
-);
-
-/** Test (site admin only) (Test (site admin only)) */
-$messages['test'] = array(
-	'math_sample' => 'x',
-	'math_tip' => 'x',
-);
-
-/** Magyar (magázó) (Magyar (magázó))
- * @author Dani
- */
-$messages['hu-formal'] = array(
-	'math_image_error' => 'PNG-vé alakítás sikertelen; ellenőrizze, hogy a latex és dvipng (vagy dvips + gs + convert) helyesen van-e telepítve',
-);
-
-/** Moroccan Spoken Arabic (Maġribi)
- * @author Enzoreg
- * @author Zanatos
- */
-$messages['ary'] = array(
-	'math_sample' => 'Kṫeb ĝalaqa de l-mat hnaya',
-	'math_tip' => 'Ĝalaqa de l-mat (LaTeX)',
-	'prefs-math' => 'mat',
-	'mw_math_png' => 'dima biyn bhal  PNG',
-	'math_failure' => 'khata flmat',
-	'math_unknown_error' => 'khat mjhol',
-	'math_unknown_function' => 'wadifa mjhola',
-	'math_lexing_error' => 'khata fsigha',
-	'math_syntax_error' => 'khata fsiyagha',
-);
-
-/** Achinese (Acèh)
- * @author Si Gam Acèh
- */
-$messages['ace'] = array(
-	'math_sample' => 'Pasoë rumuh nyoë pat',
-	'math_tip' => 'Rumuh matematik (LaTeX)',
-);
-
-/** Afrikaans (Afrikaans)
- * @author Naudefj
- */
-$messages['af'] = array(
-	'math_sample' => 'Plaas formule hier',
-	'math_tip' => 'Wiskundige formule (LaTeX)',
-	'prefs-math' => 'Wiskunde',
-	'mw_math_png' => 'Gebruik altyd PNG.',
-	'mw_math_simple' => 'Gebruik HTML indien dit eenvoudig is, andersins PNG.',
-	'mw_math_html' => 'Gebruik HTML wanneer moontlik, andersins PNG.',
-	'mw_math_source' => 'Los as TeX (vir teksblaaiers).',
-	'mw_math_modern' => 'Moderne blaaiers.',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Kon nie verbeeld nie',
-	'math_unknown_error' => 'onbekende fout',
-	'math_unknown_function' => 'onbekende funksie',
-	'math_lexing_error' => 'leksikale fout',
-	'math_syntax_error' => 'sintaksfout',
-	'math_image_error' => 'PNG-omskakeling het gefaal.
-Kontroleer of LaTeX en dvipng (of dvips + gs + convert) korrek geïnstalleer is.',
-	'math_bad_tmpdir' => 'Die gids vir tydelike lêers vir wiskundige formules bestaan nie of kan nie geskep word nie',
-	'math_bad_output' => 'Die gids vir lêers met wiskundige formules bestaan nie of kan nie geskep word nie',
-	'math_notexvc' => 'Kan nie die texvc program vind nie;
-stel asseblief op volgens die beskrywing in math/README.',
-);
-
-/** Gheg Albanian (Gegë)
- * @author Bresta
- * @author Cradel
- */
-$messages['aln'] = array(
-	'math_sample' => 'Vendos formulën këtu',
-	'math_tip' => 'Formulë matematikore (LaTeX)',
-	'prefs-math' => 'Formulë',
-);
-
-/** Amharic (አማርኛ)
- * @author Codex Sinaiticus
- */
-$messages['am'] = array(
-	'math_sample' => 'የሒሳብ ቀመር በዚህ ይግባ',
-	'math_tip' => 'የሒሳብ ቀመር (LaTeX) ለመጨመር',
-	'prefs-math' => 'የሂሳብ መልክ',
-	'mw_math_png' => 'ሁልጊዜ እንደ PNG',
-	'mw_math_simple' => 'HTML ቀላል ከሆነ አለዚያ PNG',
-	'mw_math_html' => 'HTML ከተቻለ አለዚያ PNG',
-	'mw_math_modern' => 'ለዘመናዊ ብራውዘር የተሻለ',
-	'mw_math_mathml' => 'MathML ከተቻለ (የሙከራ)',
-	'math_failure' => 'ዘርዛሪው ተሳነው',
-	'math_unknown_error' => 'የማይታወቅ ስኅተት',
-	'math_unknown_function' => 'የማይታወቅ ተግባር',
-	'math_lexing_error' => 'የlexing ስህተት',
-	'math_syntax_error' => 'የሰዋሰው ስህተት',
-	'math_bad_output' => 'ወደ math ውጤት ዶሴ መጻፍ ወይም መፍጠር አይቻልም',
-);
-
-/** Aragonese (Aragonés)
- * @author Juanpabl
- */
-$messages['an'] = array(
-	'math_sample' => 'Escriba aquí a formula',
-	'math_tip' => 'Formula matematica (LaTeX)',
-	'prefs-math' => 'Esprisions matematicas',
-	'mw_math_png' => 'Producir siempre PNG',
-	'mw_math_simple' => "HTML si ye muit simple, si no'n ye, PNG",
-	'mw_math_html' => "HTML si ye posible, si no'n ye, PNG",
-	'mw_math_source' => 'Deixar como TeX (ta navegadores en formato texto)',
-	'mw_math_modern' => 'Recomendato ta navegadors modernos',
-	'mw_math_mathml' => 'MathML si ye posible (esperimental)',
-	'math_failure' => 'Error en o codigo',
-	'math_unknown_error' => 'error esconoxita',
-	'math_unknown_function' => 'función esconoxita',
-	'math_lexing_error' => 'error de lexico',
-	'math_syntax_error' => 'error de sintaxi',
-	'math_image_error' => 'A conversión enta PNG ha tenito errors;
-comprebe si latex, dvips, gs y convert son bien instalatos.',
-	'math_bad_tmpdir' => "No s'ha puesto escribir u creyar o directorio temporal d'esprisions matematicas",
-	'math_bad_output' => "No s'ha puesto escribir u creyar o directorio de salida d'esprisions matematicas",
-	'math_notexvc' => "No s'ha trobato o fichero executable ''texvc''. Por favor, leiga <em>math/README</em> ta confegurar-lo correctament.",
-);
-
-/** Old English (Ænglisc)
- * @author Wōdenhelm
- */
-$messages['ang'] = array(
-	'math_sample' => 'Ƿiċunge hēr ēacian',
-	'math_tip' => 'Rīmcræftisc ƿiċung (LaTeX)',
-	'prefs-math' => 'Rīmcræft',
-	'math_unknown_error' => 'uncūþ ƿōh',
-);
-
-/** Angika (अंगिका)
- * @author Angpradesh
- */
-$messages['anp'] = array(
-	'math_sample' => 'गणितीय सूत्र यहाँ डालॊ',
-	'math_tip' => 'गणितीय सूत्र (LaTeX)',
-);
-
-/** Arabic (العربية)
- * @author Ciphers
- * @author Meno25
- */
-$messages['ar'] = array(
-	'math_sample' => 'أدخل الصيغة هنا',
-	'math_tip' => 'صيغة رياضية (لا تك)',
-	'prefs-math' => 'رياضيات',
-	'mw_math_png' => 'دائما اعرض على هيئة PNG',
-	'mw_math_simple' => 'اعرض على هيئة HTML للصيغ البسيطة جدا، وإلا فاعرض بهئية PNG',
-	'mw_math_html' => 'اعرض بصيغة HTML إن أمكن، وإلا فاعرض كهيئة PNG',
-	'mw_math_source' => 'اعرض على هيئة TeX (للمتصفحات النصية)',
-	'mw_math_modern' => 'مستحسن للمتصفحات الحديثة',
-	'mw_math_mathml' => 'اعرض بصيغة MathML إن أمكن (تجريبي)',
-	'math_failure' => 'خطأ رياضيات',
-	'math_unknown_error' => 'خطأ غير معروف',
-	'math_unknown_function' => 'وظيفة غير معروفة',
-	'math_lexing_error' => 'خطأ في الصيغة',
-	'math_syntax_error' => 'خطأ في الصياغة',
-	'math_image_error' => 'فشل التحويل إلى صيغة PNG؛ تحقق من تثبيت كل من Latex و dvipng (أو dvips + gs + محول)',
-	'math_bad_tmpdir' => 'لا يمكن الكتابة إلى أو إنشاء مجلد الرياضيات المؤقت',
-	'math_bad_output' => 'لا يمكن الكتابة إلى أو إنشاء مجلد الخرج للرياضيات',
-	'math_notexvc' => 'مفقود texvc executable؛
-من فضلك انظر math/README للضبط.',
-);
-
-/** Aramaic (ܐܪܡܝܐ)
- * @author Basharh
- */
-$messages['arc'] = array(
-	'prefs-math' => 'ܡܬܡܐܛܝܩܘܬܐ',
-	'math_unknown_error' => 'ܦܘܕܐ ܠܐ ܝܕܝܥܐ',
-);
-
-/** Egyptian Spoken Arabic (مصرى)
- * @author Ghaly
- * @author Meno25
- * @author Ramsis II
- */
-$messages['arz'] = array(
-	'math_sample' => 'اكتب المعادله هنا',
-	'math_tip' => 'معادله رياضيه (لا تكس )',
-	'prefs-math' => 'رياضة',
-	'mw_math_png' => 'دايما اعرض PNG',
-	'mw_math_simple' => 'يا إما HTML لو بسيطة قوى أو PNG',
-	'mw_math_html' => 'ياإما HTML لو ممكن أو PNG',
-	'mw_math_source' => 'اعرض على هيئة TeX (للبراوزرات النصية)',
-	'mw_math_modern' => 'أحسن للبراوزرات الحديثة',
-	'mw_math_mathml' => 'اعرض بصيغة MathML لو ممكن (تحت التجريب)',
-	'math_failure' => 'الاعراب فشل',
-	'math_unknown_error' => 'غلط مش معروف',
-	'math_unknown_function' => 'وظيفة مش معروفة',
-	'math_lexing_error' => 'غلط فى الكلمة',
-	'math_syntax_error' => 'غلط فى تركيب الجملة',
-	'math_image_error' => 'فشل التحويل لـ PNG ؛
-اتاكد من التثبيت المضبوط لـ :Latex و dvips و gs و convert.',
-	'math_bad_tmpdir' => 'مش ممكن الكتابة أو انشاء مجلد الرياضة الموؤقت',
-	'math_bad_output' => 'مش ممكن الكتابة لـ أو إنشاء مجلد الخرج للرياضيات',
-	'math_notexvc' => 'ضايعtexvc executable ؛ لو سمحت شوفmath/README للضبط.',
-);
-
-/** Assamese (অসমীয়া)
- * @author Chaipau
- * @author Rajuonline
- */
-$messages['as'] = array(
-	'math_sample' => 'ইয়াত গণিতীয় সুত্ৰ সুমুৱাওক',
-	'math_tip' => 'গণিতীয় সুত্ৰ (LaTeX)',
-	'prefs-math' => 'গণিত',
-	'math_failure' => 'পাৰ্চ কৰিব অসমৰ্থ',
-	'math_unknown_error' => 'অপৰিচিত সমস্যা',
-	'math_unknown_function' => 'অজ্ঞাত কাৰ্য্য',
-);
-
-/** Asturian (Asturianu)
- * @author Esbardu
- * @author Xuacu
- */
-$messages['ast'] = array(
-	'math_sample' => 'Inxertar fórmula equí',
-	'math_tip' => 'Fórmula matemática',
-	'prefs-math' => 'Fórmules matemátiques',
-	'mw_math_png' => 'Renderizar siempre PNG',
-	'mw_math_simple' => 'HTML si ye mui simple, o si non PNG',
-	'mw_math_html' => 'HTML si ye posible, o si non PNG',
-	'mw_math_source' => 'Dexalo como TeX (pa navegadores de testu)',
-	'mw_math_modern' => 'Recomendao pa navegadores modernos',
-	'mw_math_mathml' => 'MathML si ye posible (esperimental)',
-	'math_failure' => 'Fallu al revisar la fórmula',
-	'math_unknown_error' => 'error desconocíu',
-	'math_unknown_function' => 'función desconocida',
-	'math_lexing_error' => 'Error lléxicu',
-	'math_syntax_error' => 'error de sintaxis',
-	'math_image_error' => 'Falló la conversión PNG; comprueba que tea bien la instalación de latex y dvipng (o dvips + gs + convert)',
-	'math_bad_tmpdir' => "Nun se pue escribir o crear el direutoriu temporal 'math'",
-	'math_bad_output' => "Nun se pue escribir o crear el direutoriu de salida 'math'",
-	'math_notexvc' => "Falta l'executable 'texvc'; por favor mira 'math/README' pa configuralo.",
-);
-
-/** Avaric (Авар)
- * @author Amire80
- */
-$messages['av'] = array(
-	'math_unknown_error' => 'Лъалареб гъалатӀ',
-);
-
-/** Kotava (Kotava) */
-$messages['avk'] = array(
-	'math_sample' => 'Va rinaf tazukoy batliz cenkal',
-	'math_tip' => 'Solokseropaf tazukoy (LaTeX)',
-	'prefs-math' => 'Rendu des maths',
-	'mw_math_png' => 'Toujours produire une image PNG',
-	'mw_math_simple' => 'HTML si très simple, autrement PNG',
-	'mw_math_html' => 'HTML si possible, autrement PNG',
-	'mw_math_source' => 'Laisser le code TeX original',
-	'mw_math_modern' => 'Pour les navigateurs modernes',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Erreur math',
-	'math_unknown_error' => 'erreur indéterminée',
-	'math_unknown_function' => 'megrupen fliok',
-	'math_lexing_error' => 'ravlemafa rokla',
-	'math_syntax_error' => 'erurafa rokla',
-	'math_image_error' => "La conversion en PNG a échouée, vérifiez l'installation de Latex, dvips, gs et convert",
-	'math_bad_tmpdir' => 'Redura ik sutera ko ugaloraxo tid merotisa',
-	'math_bad_output' => 'Redura ik sutera ko divaxo tid merotisa',
-	'math_notexvc' => "L'éxécutable « texvc » est introuvable. Lisez math/README pour le configurer.",
-);
-
-/** Azerbaijani (Azərbaycanca)
- * @author PrinceValiant
- */
-$messages['az'] = array(
-	'math_sample' => 'Riyazi formulu bura yazın',
-	'math_tip' => 'Riyazi formul (LaTeX formatı)',
-	'prefs-math' => 'Riyaziyyat',
-	'mw_math_png' => 'Həmişə PNG formatında göstər',
-	'mw_math_simple' => 'Sadə formullarda HTML, digərlərində PNG',
-	'mw_math_html' => 'Mümkünsə HTML, digər hallarda PNG',
-	'mw_math_source' => 'TeX kimi saxla (mətn brouzerləri üçün)',
-	'mw_math_modern' => 'Müasir brouzerlər üçün məsləhətdir',
-	'mw_math_mathml' => 'Mümkünsə MathML (sınaq)',
-	'math_unknown_error' => 'bilinməyən xəta',
-	'math_unknown_function' => 'bilinməyən funksiya',
-	'math_syntax_error' => 'sintaksis xətası',
-);
-
-/** Bashkir (Башҡортса)
- * @author Assele
- * @author Haqmar
- * @author Рустам Нурыев
- */
-$messages['ba'] = array(
-	'math_sample' => 'Формуланы бында керетегеҙ',
-	'math_tip' => 'Математик формула (LaTeX форматы)',
-	'prefs-math' => 'Формулалар',
-	'mw_math_png' => 'Һәр ваҡыт PNG яһа',
-	'mw_math_simple' => 'Ябайҙарҙа HTML, башҡа осраҡтарҙа PNG',
-	'mw_math_html' => 'Мөмкин булһа HTML, башҡа осраҡтарҙа PNG',
-	'mw_math_source' => 'ТеХ форматында ҡалдырырға (текст браузерҙары өсөн)',
-	'mw_math_modern' => 'Заманса браузерҙар өсөн тәҡдим ителгәнсә',
-	'mw_math_mathml' => 'Мөмкин булһа, MathML (тикшереү осоронда)',
-	'math_failure' => 'Уҡып булмай',
-	'math_unknown_error' => 'билдәһеҙ хата',
-	'math_unknown_function' => 'билдәһеҙ функция',
-	'math_lexing_error' => 'лексик хата',
-	'math_syntax_error' => 'синтаксик хата',
-	'math_image_error' => 'PNG яһау хатаһы.
-latex һәм dvipng (йәки dvips + gs + convert) дөрөҫ ҡуйылыуын тикшерегеҙ.',
-	'math_bad_tmpdir' => 'Ваҡытлы математика директорияһы булдырып йәки директорияға яҙҙырып булмай',
-	'math_bad_output' => 'Математика директорияһы булдырып йәки директорияға яҙҙырып булмай',
-	'math_notexvc' => 'Башҡарыла торған texvc файлы юҡ. Көйләүҙәр буйынса белешмәне — math/README уҡығыҙ.',
-);
-
-/** Bavarian (Boarisch)
- * @author Mucalexx
- */
-$messages['bar'] = array(
-	'math_sample' => 'Formel dodan aifyng',
-	'math_tip' => 'Mathematische Formel (LaTeX)',
-	'math_unknown_function' => 'Unbekannte Funktion',
-);
-
-/** Southern Balochi (بلوچی مکرانی)
- * @author Mostafadaneshvar
- */
-$messages['bcc'] = array(
-	'math_sample' => 'فرمول اداں وارد کن',
-	'math_tip' => 'فرمول ریاضی  (LaTeX)',
-	'prefs-math' => 'ریاضی',
-	'mw_math_png' => 'یکسره PNG تحویل دی',
-	'mw_math_simple' => 'HTML اگر باز سادگت یا دگه PNG',
-	'mw_math_html' => 'HTML اگر ممکنت یا دگه  دگهPNG',
-	'mw_math_source' => 'آیء په داب TeX بل (په بروززان متنی)',
-	'mw_math_modern' => 'په مدرنین بروزر آن توصیه بیت',
-	'mw_math_mathml' => 'MathML اگر ممکن انت (آزمایشی)',
-	'math_failure' => 'تجزیه پروش وارت',
-	'math_unknown_error' => 'ناشناسین حطا',
-	'math_unknown_function' => 'ناشناس عملگر',
-	'math_lexing_error' => 'حطا نوشتاری',
-	'math_syntax_error' => 'حطا ساختار',
-	'math_image_error' => 'بدل کتن PNGپروش وارت;
-کنترل کنیت په نصب latex, dvips, gs, و convert',
-	'math_bad_tmpdir' => 'نه نونیت بنویسیت یا مسیر غیر دایمی ریاضی شرکنت',
-	'math_bad_output' => 'نه تونیت بنویسیت یا مشیر خروجی ریاضی شرکنت.',
-	'math_notexvc' => 'ترکیب کتن texvc  قابل اجرا;
-لطفا بچار math/README په تنظیم کتن.',
-);
-
-/** Bikol Central (Bikol Central)
- * @author Filipinayzd
- * @author Steven*fung
- */
-$messages['bcl'] = array(
-	'math_sample' => 'Isaliôt an pormula digdi',
-	'math_tip' => 'Pórmulang matemátika (LaTeX)',
-	'prefs-math' => 'Mat',
-	'mw_math_png' => 'Itaô pirmi an PNG',
-	'mw_math_simple' => 'HTML kun simple sana o PNG kun bakô',
-	'mw_math_html' => 'HTML kun posible o PNG kun bakô',
-	'mw_math_source' => "Pabayaan na bilang TeX (para sa mga ''browser'' na teksto)",
-	'mw_math_modern' => "Pigrerekomendár para sa mga modernong ''browser''",
-	'mw_math_mathml' => 'MathML kun posible (experimental)',
-	'math_failure' => 'Nagprakaso an pagatíd-atíd',
-	'math_unknown_error' => 'dai aram an salâ',
-	'math_unknown_function' => 'Dai aram an gamit',
-	'math_lexing_error' => 'may salâ sa analisador léxico',
-	'math_syntax_error' => 'may salâ sa analisador nin sintaksis',
-	'math_image_error' => 'Nagprakaso an konbersyon kan PNG; sosogon tabî an pagkaag nin latex, dvips, gs, asin ikonbertir',
-	'math_bad_tmpdir' => 'Dai masuratan o magibo an direktoryo nin mat temp',
-	'math_bad_output' => 'Dai masuratan o magibo an direktoryo kan salida nin math',
-	'math_notexvc' => 'May nawawarang texvc na ehekutable; hilingón tabî an mat/README para makonpigurar.',
-);
-
-/** Belarusian (Беларуская)
- * @author Mienski
- * @author Yury Tarasievich
- */
-$messages['be'] = array(
-	'math_sample' => 'Уставіць формулу тут',
-	'math_tip' => 'Матэматычная формула (LaTeX)',
-	'prefs-math' => 'Матэматыка',
-	'mw_math_png' => 'Заўсёды вырабляць PNG',
-	'mw_math_simple' => 'HTML калі вельмі простае, іначай PNG',
-	'mw_math_html' => 'HTML калі магчыма, іначай PNG',
-	'mw_math_source' => 'Пакідаць у выглядзе TeX (для тэкставых браўзераў)',
-	'mw_math_modern' => 'Рэкамендуецца для сучасных браўзераў',
-	'mw_math_mathml' => 'MathML калі магчыма (эксперыментальнае)',
-	'math_failure' => 'Не ўдалося разабраць',
-	'math_unknown_error' => 'невядомая памылка',
-	'math_unknown_function' => 'невядомая функцыя',
-	'math_lexing_error' => 'лексічная памылка',
-	'math_syntax_error' => 'памылка сінтаксісу',
-	'math_image_error' => 'Не ўдалося ператварыць PNG; праверце правільнасць устаноўкі пакетаў latex і dvipng (або dvips і gs і convert)',
-	'math_bad_tmpdir' => 'Немагчыма запісаць у або стварыць тымчасовы каталог для матэматыкі',
-	'math_bad_output' => 'Немагчыма запісаць у або стварыць выводны каталог для матэматыкі',
-	'math_notexvc' => 'Не знойдзены выканальны модуль texvc; аб яго настаўленнях чытайце ў math/README.',
-);
-
-/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
- * @author EugeneZelenko
- * @author Jim-by
- * @author Wizardist
- */
-$messages['be-tarask'] = array(
-	'math_sample' => 'Зьмясьціце тут формулу',
-	'math_tip' => 'Матэматычная формула (LaTeX)',
-	'prefs-math' => 'Матэматыка',
-	'mw_math_png' => 'Заўсёды паказваць як PNG',
-	'mw_math_simple' => 'HTML у простых выпадках, інакш PNG',
-	'mw_math_html' => 'HTML калі магчыма, інакш PNG',
-	'mw_math_source' => 'Пакідаць у выглядзе TeX (для тэкставых браўзэраў)',
-	'mw_math_modern' => 'Рэкамэндуецца для сучасных браўзэраў',
-	'mw_math_mathml' => 'MathML, калі магчыма (экспэрымэнтальна)',
-	'math_failure' => 'Немагчыма разабраць',
-	'math_unknown_error' => 'невядомая памылка',
-	'math_unknown_function' => 'невядомая функцыя',
-	'math_lexing_error' => 'лексычная памылка',
-	'math_syntax_error' => 'сынтаксычная памылка',
-	'math_image_error' => 'Памылка пераўтварэньня ў фармат PNG;
-праверце слушнасьць усталяваньня latex, dvips (ці dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Немагчыма запісаць ці стварыць часовую дырэкторыю для матэматыкі',
-	'math_bad_output' => 'Немагчыма запісаць ці стварыць выходную матэматычную дырэкторыю',
-	'math_notexvc' => 'Выканаўчы модуль texvc ня знойдзены.
-Калі ласка, прачытайце math/README пра яго канфігурацыю.',
-);
-
-/** Bulgarian (Български)
- * @author DCLXVI
- */
-$messages['bg'] = array(
-	'math_sample' => 'Тук въведете формулата',
-	'math_tip' => 'Математическа формула (LaTeX)',
-	'prefs-math' => 'Математически формули',
-	'mw_math_png' => 'Използване винаги на PNG',
-	'mw_math_simple' => 'HTML при опростен TeX, иначе PNG',
-	'mw_math_html' => 'HTML по възможност, иначе PNG',
-	'mw_math_source' => 'Оставяне като TeX (за текстови браузъри)',
-	'mw_math_modern' => 'Препоръчително за нови браузъри',
-	'mw_math_mathml' => 'MathML по възможност (експериментално)',
-	'math_failure' => 'Неуспех при разбора',
-	'math_unknown_error' => 'непозната грешка',
-	'math_unknown_function' => 'непозната функция',
-	'math_lexing_error' => 'лексикална грешка',
-	'math_syntax_error' => 'синтактична грешка',
-	'math_image_error' => 'Превръщането към PNG не сполучи. Проверете дали latex и dvipng (или dvips + gs + convert) са правилно инсталирани.',
-	'math_bad_tmpdir' => 'Невъзможно е писането във или създаването на временна директория за математическите операции',
-	'math_bad_output' => 'Невъзможно е писането във или създаването на изходяща директория за математическите операции',
-	'math_notexvc' => 'Липсва изпълнимият файл на texvc. Прегледайте math/README за информация относно конфигурирането.',
-);
-
-/** Bihari (भोजपुरी)
- * @author Ganesh
- */
-$messages['bh'] = array(
-	'math_tip' => 'गणितिय सूत्र (LaTeX)',
-	'prefs-math' => 'गणित',
-);
-
-/** Bahasa Banjar (Bahasa Banjar)
- * @author Ezagren
- * @author J Subhi
- */
-$messages['bjn'] = array(
-	'math_sample' => 'Masukakan rumus di sia',
-	'math_tip' => 'Rumus matamatika (LaTeX)',
-	'prefs-math' => 'Matik',
-);
-
-/** Bengali (বাংলা)
- * @author Bellayet
- * @author Zaheen
- */
-$messages['bn'] = array(
-	'math_sample' => 'সূত্র এখানে লিখুন',
-	'math_tip' => 'গাণিতিক সূত্র (LaTeX)',
-	'prefs-math' => 'গণিত',
-	'mw_math_png' => 'সবসময় পিএনজি (PNG) দেখাও',
-	'mw_math_simple' => 'খুব সরল হলে এইচটিএমএল (HTML), নতুবা পিএনজি (PNG)',
-	'mw_math_html' => 'সম্ভব হলে এইচটিএমএল (HTML), নতুবা পিএনজি (PNG)',
-	'mw_math_source' => 'টেক (TeX) আকারে রেখে দাও (টেক্সট ব্রাউজারগুলোর জন্য)',
-	'mw_math_modern' => 'আধুনিক ব্রাউজারগুলোর জন্য সুপারিশকৃত',
-	'mw_math_mathml' => 'সম্ভব হলে ম্যাথএমএল (MathML) (পরীক্ষামূলক)',
-	'math_failure' => 'পার্স করতে ব্যর্থ',
-	'math_unknown_error' => 'অজানা ত্রুটি',
-	'math_unknown_function' => 'অজানা ফাংশন',
-	'math_lexing_error' => 'লেক্সিং ত্রুটি',
-	'math_syntax_error' => 'সিনট্যাক্স ত্রুটি',
-	'math_image_error' => 'PNG রূপান্তর ব্যর্থ; latex, dvips, gs, এবং convert ঠিকমত ইন্সটল হয়েছে কি না পরীক্ষা করুন',
-	'math_bad_tmpdir' => 'সাময়িক ম্যাথ ডিরেক্টরি সৃষ্টি করতে বা এতে লিখতে পারা যাচ্ছে না।',
-	'math_bad_output' => 'ম্যাথ আউটপুট ডিরেক্টরি সৃষ্টি করতে বা এতে লিখতে পারা যাচ্ছে না।',
-	'math_notexvc' => 'texvc executable হারানো গেছে; অনুগ্রহ করে কনফিগার করার জন্য math/README দেখুন।',
-);
-
-/** Bishnupria Manipuri (ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী)
- * @author Usingha
- */
-$messages['bpy'] = array(
-	'math_sample' => 'এহাত সুত্র বরা',
-	'math_tip' => 'অংকর সুত্র (LaTeX)',
-	'prefs-math' => 'গণিত',
-);
-
-/** Bakhtiari (بختياري)
- * @author Behdarvandyani
- */
-$messages['bqi'] = array(
-	'math_sample' => 'فرمول نهادن ایچو',
-	'math_tip' => 'فرمول ریاضی (LaTeX)',
-);
-
-/** Breton (Brezhoneg)
- * @author Fulup
- */
-$messages['br'] = array(
-	'math_sample' => 'Lakait ho formulenn amañ',
-	'math_tip' => 'Formulenn jedoniel (LaTeX)',
-	'prefs-math' => 'Tres jedoniel',
-	'mw_math_png' => 'Produiñ atav ur skeudenn PNG',
-	'mw_math_simple' => "HTML m'eo eeun-kenañ, a-hend-all ober gant PNG",
-	'mw_math_html' => 'HTML mar bez tu, a-hend-all PNG',
-	'mw_math_source' => "Leuskel ar c'hod TeX orin",
-	'mw_math_modern' => 'Evit ar merdeerioù arnevez',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Fazi jedoniezh',
-	'math_unknown_error' => 'fazi dianav',
-	'math_unknown_function' => 'kevreizhenn jedoniel dianav',
-	'math_lexing_error' => 'fazi ger',
-	'math_syntax_error' => 'fazi ereadur',
-	'math_image_error' => "C'hwitet eo bet an amdroadur PNG; gwiriit eo staliet mat Latex ha devipng (pe dvips, gs ha convert)",
-	'math_bad_tmpdir' => "N'hall ket krouiñ pe skrivañ er c'havlec'h da c'hortoz",
-	'math_bad_output' => "N'hall ket krouiñ pe skrivañ er c'havlec'h ermaeziañ",
-	'math_notexvc' => "N'hall ket an erounezeg 'texvc' bezañ kavet. Lennit math/README evit he c'hefluniañ.",
-);
-
-/** Bosnian (Bosanski)
- * @author CERminator
- */
-$messages['bs'] = array(
-	'math_sample' => 'Unesite formulu ovdje',
-	'math_tip' => 'Matematička formula (LaTeX)',
-	'prefs-math' => 'Prikazivanje matematike',
-	'mw_math_png' => 'Uvijek prikaži kao PNG',
-	'mw_math_simple' => 'HTML ako je jednostavno, inače PNG',
-	'mw_math_html' => 'HTML ako je moguće, inače PNG',
-	'mw_math_source' => 'Ostavi kao TeX (za tekstualne preglednike)',
-	'mw_math_modern' => 'Preporučeno za moderne preglednike',
-	'mw_math_mathml' => 'MathML ako je moguće (eksperimentalno)',
-	'math_failure' => 'Neuspjeh pri parsiranju',
-	'math_unknown_error' => 'nepoznata greška',
-	'math_unknown_function' => 'nepoznata funkcija',
-	'math_lexing_error' => 'riječnička greška',
-	'math_syntax_error' => 'sintaksna greška',
-	'math_image_error' => 'PNG konverzija neuspješna; provjerite tačnu instalaciju latex-a i dvipng-a (ili dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Ne može se napisati ili napraviti privremeni matematični direktorijum',
-	'math_bad_output' => 'Ne može se napisati ili napraviti direktorijum za matematični izvještaj.',
-	'math_notexvc' => 'Nedostaje izvršno texvc; molimo Vas da pogledate math/README da podesite.',
-);
-
-/** Catalan (Català)
- * @author Martorell
- * @author SMP
- * @author Toniher
- * @author Vriullop
- */
-$messages['ca'] = array(
-	'math_sample' => 'Inseriu una fórmula ací',
-	'math_tip' => 'Fórmula matemàtica (LaTeX)',
-	'prefs-math' => 'Com es mostren les fórmules',
-	'mw_math_png' => 'Produeix sempre PNG',
-	'mw_math_simple' => 'HTML si és molt simple, si no PNG',
-	'mw_math_html' => 'HTML si és possible, si no PNG',
-	'mw_math_source' => 'Deixa com a TeX (per a navegadors de text)',
-	'mw_math_modern' => 'Recomanat per a navegadors moderns',
-	'mw_math_mathml' => 'MathML si és possible (experimental)',
-	'math_failure' => "No s'ha pogut entendre",
-	'math_unknown_error' => 'error desconegut',
-	'math_unknown_function' => 'funció desconeguda',
-	'math_lexing_error' => 'error de lèxic',
-	'math_syntax_error' => 'error de sintaxi',
-	'math_image_error' => 'Hi ha hagut una errada en la conversió a PNG. Verifiqueu la instaŀlació de latex i dvipng (o dvips, gs i convert).',
-	'math_bad_tmpdir' => 'No ha estat possible crear el directori temporal de math o escriure-hi dins.',
-	'math_bad_output' => "No ha estat possible crear el directori d'eixida de math o escriure-hi dins.",
-	'math_notexvc' => "No s'ha trobat el fitxer executable ''texvc''; si us plau, vegeu math/README per a configurar-lo.",
-);
-
-/** Min Dong Chinese (Mìng-dĕ̤ng-ngṳ̄) */
-$messages['cdo'] = array(
-	'prefs-math' => 'Só-hŏk',
-	'math_unknown_error' => 'muôi báik gì dâng',
-	'math_unknown_function' => 'muôi báik hàng-só',
-);
-
-/** Chechen (Нохчийн)
- * @author Sasan700
- */
-$messages['ce'] = array(
-	'math_sample' => 'Каьчдинарг чудила кхузе',
-	'math_tip' => 'Матlематlекхиа каьчйар (барам LaTeX)',
-);
-
-/** Cebuano (Cebuano)
- * @author Jordz
- */
-$messages['ceb'] = array(
-	'math_sample' => 'I-insert dinhi ang formula',
-	'math_tip' => 'Mathematical formula (LaTeX)',
-	'prefs-math' => 'Math',
-);
-
-/** Chamorro (Chamoru)
- * @author Gadao01
- */
-$messages['ch'] = array(
-	'math_sample' => "Po'lo i fotmula mågi",
-	'math_tip' => 'Fotmulan matematika (LaTeX)',
-	'prefs-math' => 'Math',
-	'math_failure' => 'Lachi ma parse',
-	'math_unknown_error' => "linachi ti matungo'",
-	'math_unknown_function' => "fonksion ti matungo'",
-	'math_lexing_error' => 'linachi lexing',
-	'math_syntax_error' => 'linachi syntax',
-);
-
-/** Sorani (کوردی)
- * @author Arastein
- * @author Asoxor
- * @author Marmzok
- */
-$messages['ckb'] = array(
-	'math_sample' => 'فۆرموول لێرە بنووسە',
-	'math_tip' => 'فۆرموولی بیرکاری (LaTeX)',
-	'prefs-math' => 'بیرکاری',
-	'mw_math_png' => 'ھەموو جارێک وەک PNG نیشان بدە',
-	'mw_math_simple' => 'HTML ئەگەر ساکار بێت, ئەگەرنا PNG',
-	'mw_math_html' => 'ئەگەر بکرێ بە HTML ، ئەگەرنا بە PNG',
-	'mw_math_source' => 'وەک TeX بمێنێتەوە (بۆ وێبگەڕە دەقی‌یەکان)',
-	'mw_math_modern' => 'بۆ وێبگەڕە مۆدێڕنەکان باشترە',
-	'math_unknown_error' => 'هەڵەیەکی نەزانراو',
-	'math_unknown_function' => 'فەرمانێکی نەناسراو',
-	'math_syntax_error' => 'ڕستەکار هەڵەیە',
-);
-
-/** Corsican (Corsu) */
-$messages['co'] = array(
-	'prefs-math' => 'Matematica',
-	'math_syntax_error' => 'errore di sintassa',
-);
-
-/** Capiznon (Capiceño)
- * @author Oxyzen
- */
-$messages['cps'] = array(
-	'math_sample' => 'Isulod ang diya pormula',
-	'math_tip' => 'Pormula nga pangmatematika (LaTeX)',
-);
-
-/** Crimean Turkish (Latin) (Qırımtatarca (Latin))
- * @author Don Alessandro
- */
-$messages['crh-latn'] = array(
-	'math_sample' => 'Bu yerge formulanı kirsetiñiz',
-	'math_tip' => 'Riyaziy (matematik) formula (LaTeX formatında)',
-	'prefs-math' => 'Riyaziy (matematik) işaretler',
-	'mw_math_png' => 'Daima PNG resim formatına çevir',
-	'mw_math_simple' => 'Pek basit olsa HTML, yoqsa PNG',
-	'mw_math_html' => 'Mümkün olsa HTML, yoqsa PNG',
-	'mw_math_source' => 'Deñiştirmeden TeX olaraq taşla  (metin temelli brauzerler içün)',
-	'mw_math_modern' => 'Zemaneviy brauzerler içün tevsiye etilgen',
-	'mw_math_mathml' => 'Mümkün olsa MathML (daa deñeme alında)',
-	'math_failure' => 'Ayırıştırılamadı',
-	'math_unknown_error' => 'bilinmegen hata',
-	'math_unknown_function' => 'belgisiz funktsiya',
-	'math_lexing_error' => 'leksik hata',
-	'math_syntax_error' => 'sintaksis hatası',
-);
-
-/** Crimean Turkish (Cyrillic) (Qırımtatarca (Cyrillic))
- * @author Don Alessandro
- */
-$messages['crh-cyrl'] = array(
-	'math_sample' => 'Бу ерге формуланы кирсетинъиз',
-	'math_tip' => 'Риязий (математик) формула (LaTeX форматында)',
-	'prefs-math' => 'Риязий (математик) ишаретлер',
-	'mw_math_png' => 'Даима PNG ресим форматына чевир',
-	'mw_math_simple' => 'Пек басит олса HTML, ёкъса PNG',
-	'mw_math_html' => 'Мумкюн олса HTML, ёкъса PNG',
-	'mw_math_source' => 'Денъиштирмеден TeX оларакъ ташла  (метин темелли браузерлер ичюн)',
-	'mw_math_modern' => 'Земаневий браузерлер ичюн тевсие этильген',
-	'mw_math_mathml' => 'Мумкюн олса MathML (даа денъеме алында)',
-	'math_failure' => 'Айырыштырыламды',
-	'math_unknown_error' => 'билинмеген хата',
-	'math_unknown_function' => 'бельгисиз функция',
-	'math_lexing_error' => 'лексик хата',
-	'math_syntax_error' => 'синтаксис хатасы',
-);
-
-/** Czech (Česky)
- * @author Danny B.
- * @author Mormegil
- */
-$messages['cs'] = array(
-	'math_sample' => 'Vložit sem vzorec',
-	'math_tip' => 'Matematický vzorec (LaTeX)',
-	'prefs-math' => 'Matematika',
-	'mw_math_png' => 'Vždy jako PNG',
-	'mw_math_simple' => 'Jednoduché jako HTML, jinak PNG',
-	'mw_math_html' => 'HTML pokud je to možné, jinak PNG',
-	'mw_math_source' => 'Ponechat jako TeX (pro textové prohlížeče)',
-	'mw_math_modern' => 'Doporučené nastavení pro moderní prohlížeče',
-	'mw_math_mathml' => 'MathML, pokud je podporováno (experimentální)',
-	'math_failure' => 'Nelze pochopit',
-	'math_unknown_error' => 'neznámá chyba',
-	'math_unknown_function' => 'neznámá funkce',
-	'math_lexing_error' => 'chyba při lexingu',
-	'math_syntax_error' => 'syntaktická chyba',
-	'math_image_error' => 'Selhala konverze do PNG; zkontrolujte správnou instalaci latexu a dvipng (nebo dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Nelze zapsat nebo vytvořit dočasný adresář pro matematiku',
-	'math_bad_output' => 'Nelze zapsat nebo vytvořit adresář pro výstup matematiky',
-	'math_notexvc' => 'Chybí spustitelný texvc; podívejte se prosím do math/README na konfiguraci.',
-);
-
-/** Kashubian (Kaszëbsczi)
- * @author Kaszeba
- * @author Warszk
- */
-$messages['csb'] = array(
-	'math_sample' => 'Wstôwi tuwò fòrmùłã',
-	'math_tip' => 'Matematicznô fòrmùła (LaTeX)',
-	'prefs-math' => 'Matematika',
-	'mw_math_png' => 'Wiedno wëskrzëniwôj jakno PNG',
-	'mw_math_simple' => 'Jeżlë prosti wëskrzëniwôj jakno HTML, w jinëm przëtrôfkù jakno PNG',
-	'mw_math_html' => 'HTML czej mòżlewé a w jinëm przëtrôfkù PNG',
-	'mw_math_source' => 'Òstawi jakno TeX (dlô tekstowich przezérników)',
-	'mw_math_modern' => 'Zalécóné dlô nowoczasnëch przezérników',
-	'mw_math_mathml' => 'Wëskrzëniwôj jakno MathML jeżlë mòżlëwé (eksperimentalné)',
-	'math_failure' => 'Parser nie rozmiôł rozpòznac',
-);
-
-/** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
- * @author ОйЛ
- */
-$messages['cu'] = array(
-	'math_tip' => 'маѳиматїчьна формоула (LaTeX)',
-);
-
-/** Chuvash (Чӑвашла)
- * @author PCode
- */
-$messages['cv'] = array(
-	'math_sample' => 'Формулăна кунта кĕртĕр',
-	'math_tip' => 'Математика формули (LaTeX форматпа)',
-	'mw_math_png' => 'Яланах PNG хатĕрлемелле',
-	'mw_math_simple' => 'Ахаль чухне HTML, урăхла чухне PNG',
-	'mw_math_html' => 'май пулсан HTML, май çук пулсан — PNG',
-	'mw_math_modern' => 'Хальхи браузерсемпе усă курмашкăн сĕннĕ пек',
-	'math_syntax_error' => 'синтаксис йăнăшĕ',
-);
-
-/** Welsh (Cymraeg)
- * @author Lloffiwr
- */
-$messages['cy'] = array(
-	'math_sample' => 'Gosodwch fformwla yma',
-	'math_tip' => 'Fformwla mathemategol (LaTeX)',
-	'prefs-math' => 'Mathemateg',
-	'mw_math_png' => 'Arddangos symbolau mathemateg fel delwedd PNG bob amser',
-	'mw_math_simple' => 'HTML os yn syml iawn, PNG fel arall',
-	'mw_math_html' => 'HTML os yn bosib, PNG fel arall',
-	'mw_math_source' => 'Gadewch fel côd TeX (ar gyfer porwyr testun)',
-	'mw_math_modern' => 'Argymelledig ar gyfer porwyr modern',
-	'mw_math_mathml' => 'MathML os yn bosib (arbrofol)',
-	'math_failure' => 'Wedi methu dosrannu',
-	'math_unknown_error' => 'gwall anhysbys',
-	'math_unknown_function' => 'ffwythiant anhysbys',
-	'math_lexing_error' => 'gwall lecsio',
-	'math_syntax_error' => 'gwall cystrawen',
-	'math_image_error' => "Trosiad PNG wedi methu; gwiriwch fod latex a dvips (neu dvips + gs + convert) wedi'u gosod yn gywir cyn trosi.",
-	'math_bad_tmpdir' => 'Yn methu creu cyfeiriadur mathemateg dros dro, nac ysgrifennu iddo',
-	'math_bad_output' => 'Yn methu creu cyfeiriadur allbwn mathemateg nac ysgrifennu iddo',
-	'math_notexvc' => 'Rhaglen texvc yn eisiau; gwelwch math/README er mwyn ei chyflunio.',
-);
-
-/** Danish (Dansk)
- * @author Nghtwlkr
- */
-$messages['da'] = array(
-	'math_sample' => 'Indsæt formel her (LaTeX)',
-	'math_tip' => 'Matematisk formel (LaTeX)',
-	'prefs-math' => 'Matematiske formler',
-	'mw_math_png' => 'Vis altid som PNG',
-	'mw_math_simple' => 'HTML hvis meget simpel ellers PNG',
-	'mw_math_html' => 'HTML hvis muligt ellers PNG',
-	'mw_math_source' => 'Lad være som TeX (for tekstbrowsere)',
-	'mw_math_modern' => 'Anbefalet til moderne browsere',
-	'mw_math_mathml' => 'MathML hvis muligt',
-	'math_failure' => 'Fejl i matematikken',
-	'math_unknown_error' => 'ukendt fejl',
-	'math_unknown_function' => 'ukendt funktion',
-	'math_lexing_error' => 'lexerfejl',
-	'math_syntax_error' => 'syntaksfejl',
-	'math_image_error' => 'PNG-konvertering mislykkedes; undersøg om latex og dvipng (eller dvips + gs + convert) er installeret korrekt',
-	'math_bad_tmpdir' => 'Kan ikke skrive til eller oprette temp-mappe til math',
-	'math_bad_output' => 'Kan ikke skrive til eller oprette uddata-mappe til math',
-	'math_notexvc' => 'Manglende eksekvérbar texvc; se math/README for opsætningsoplysninger.',
-);
-
-/** German (Deutsch)
- * @author Kghbln
- * @author Metalhead64
- * @author Revolus
- * @author Umherirrender
- */
-$messages['de'] = array(
-	'math_sample' => 'Formel hier einfügen',
-	'math_tip' => 'Mathematische Formel (LaTeX)',
-	'prefs-math' => 'TeX',
-	'mw_math_png' => 'Immer als PNG darstellen',
-	'mw_math_simple' => 'Einfaches TeX als HTML darstellen, ansonsten als PNG',
-	'mw_math_html' => 'Sofern möglich als HTML darstellen, ansonsten als PNG',
-	'mw_math_source' => 'Als TeX belassen (für Textbrowser)',
-	'mw_math_modern' => 'Für moderne Browser empfohlene Darstellungsmethode',
-	'mw_math_mathml' => 'Sofern möglich als MathML darstellen (experimentell)',
-	'math_failure' => 'Fehler beim Parsen',
-	'math_unknown_error' => 'Unbekannter Fehler',
-	'math_unknown_function' => 'Unbekannte Funktion ',
-	'math_lexing_error' => '„Lexing“-Fehler',
-	'math_syntax_error' => 'Syntaxfehler',
-	'math_image_error' => 'PNG-Konvertierung fehlgeschlagen. Bitte die korrekte Installation von LaTeX und dvipng überprüfen (oder dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Das temporäre Verzeichnis für mathematische Formeln kann nicht angelegt oder beschrieben werden.',
-	'math_bad_output' => 'Das Zielverzeichnis für mathematische Formeln kann nicht angelegt oder beschrieben werden.',
-	'math_notexvc' => 'Das texvc-Programm wurde nicht gefunden. Bitte zur Konfiguration die Hinweise in der Datei math/README beachten.',
-);
-
-/** Zazaki (Zazaki)
- * @author Aspar
- * @author Xoser
- */
-$messages['diq'] = array(
-	'math_sample' => 'Formula itiya ra bınus',
-	'math_tip' => 'Formulayo Matematik (LaTeX)',
-	'prefs-math' => 'Math',
-	'mw_math_png' => 'Herzeman PNG render bike',
-	'mw_math_simple' => 'Eka HTML zaf basit o ya zi PNG',
-	'mw_math_html' => 'Eka HTM mumkin ya zi PNG',
-	'mw_math_source' => 'Bi TeX biman (qe nuşte browseroği)',
-	'mw_math_modern' => 'Semed browseroğê moderni tafsiye biyê',
-	'mw_math_mathml' => 'Eka mumkin, MathML (deneme)',
-	'math_failure' => 'Parse de ğeleti biyo',
-	'math_unknown_error' => 'ğeleti nizanyeno',
-	'math_unknown_function' => 'fonksiyon nizanyeno',
-	'math_lexing_error' => 'ğeleto lexing',
-	'math_syntax_error' => 'ğeleto sintaks',
-	'math_image_error' => 'Conversiyonê PNG de ğeleti esta;
-qe ronayişê raşti ye latex, dvips, gs kontrol bike u convert bike',
-	'math_bad_tmpdir' => 'Nieşkeno binusi ya zi direktorê mathi virazi',
-	'math_bad_output' => 'Nieşkeno binusi ya zi direktorê mathi ye outputi virazi',
-	'math_notexvc' => "xebetnayekarê texvc'i vindbiyo
-qey 'eyar kerdışi bıewnê math/README'yi.",
-);
-
-/** Lower Sorbian (Dolnoserbski)
- * @author Michawiki
- * @author Nepl1
- * @author Pe7er
- * @author Qualia
- */
-$messages['dsb'] = array(
-	'math_sample' => 'Zapódaj how formulu',
-	'math_tip' => 'Matematiska formula (LaTeX)',
-	'prefs-math' => 'Math',
-	'mw_math_png' => 'Pśecej ako PNG zwobrazniś.',
-	'mw_math_simple' => 'Jadnory TeX ako HTML, howacej PNG',
-	'mw_math_html' => 'Jo-lic móžno ako HTML, howacej PNG',
-	'mw_math_source' => 'Ako TeX wóstajiś (za tekstowe browsery)',
-	'mw_math_modern' => 'Pórucyjo se za moderne browsery',
-	'mw_math_mathml' => 'Jo-lic móžno - MathML (eksperimentelny)',
-	'math_failure' => 'Zmólka',
-	'math_unknown_error' => 'njeznata zmólka',
-	'math_unknown_function' => 'njeznata funkcija',
-	'math_lexing_error' => 'leksikaliska zmólka',
-	'math_syntax_error' => 'syntaktiska zmólka',
-	'math_image_error' => 'PNG-konwertěrowanje njejo se raźiło; pśekontrolěruj korektnu instalaciju latex a dvipng (abo dvips + gs + konwertěruj)',
-	'math_bad_tmpdir' => 'Njejo móžno temporarny zapisk za matematiske formule załožyś resp. do njogo pisaś.',
-	'math_bad_output' => 'Njejo móžno celowy zapisk za matematiske formule załožyś resp. do njogo pisaś.',
-	'math_notexvc' => 'Program texvc felujo. Pšosym glědaj do math/README.',
-);
-
-/** Dusun Bundu-liwan (Dusun Bundu-liwan)
- * @author FRANCIS5091
- */
-$messages['dtp'] = array(
-	'math_sample' => 'Posuango puralanon do hiti',
-	'math_tip' => 'Karalano monintaban (LaTeX)',
-);
-
-/** Dzongkha (ཇོང་ཁ)
- * @author Tenzin
- */
-$messages['dz'] = array(
-	'math_sample' => 'ནཱ་ལུ་ ཐབས་རྟགས་བཙུགས།',
-	'math_tip' => 'ཨང་རྩིས་ཐབས་རྟགས་ (LaTeX)',
-);
-
-/** Greek (Ελληνικά)
- * @author Badseed
- * @author Geraki
- */
-$messages['el'] = array(
-	'math_sample' => 'Εισαγωγή τύπου εδώ',
-	'math_tip' => 'Μαθηματικός τύπος (LaTeX)',
-	'prefs-math' => 'Απόδοση μαθηματικών',
-	'mw_math_png' => 'Απόδοση πάντα σε PNG',
-	'mw_math_simple' => 'HTML αν είναι αρκετά απλό, διαφορετικά PNG',
-	'mw_math_html' => 'HTML αν είναι δυνατόν, διαφορετικά PNG',
-	'mw_math_source' => 'Να παραμείνει ως TeX (για text browsers)',
-	'mw_math_modern' => 'Προτεινόμενο για σύγχρονους browser',
-	'mw_math_mathml' => 'MathML όποτε είναι δυνατόν (πειραματικό)',
-	'math_failure' => 'Δεν μπόρεσε να γίνει ανάλυση του όρου.',
-	'math_unknown_error' => 'άγνωστο σφάλμα',
-	'math_unknown_function' => 'άγνωστη συνάρτηση',
-	'math_lexing_error' => 'Σφάλμα στην λεξική ανάλυση',
-	'math_syntax_error' => 'Λάθος σύνταξης',
-	'math_image_error' => 'Η μετατροπή σε PNG απέτυχε. Παρακαλούμε ελέγξτε ότι έχουν εγκατασταθεί σωστά τα latex  και dvipng (ή dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Δεν είναι δυνατή η δημιουργία μαθηματικών δεδομένων (ή η εγγραφή σε προσωρινό κατάλογο)',
-	'math_bad_output' => 'Δεν είναι δυνατή η δημιουργία  μαθηματικών δεδομένων (ή η εγγραφή σε κατάλογο εξόδου)',
-	'math_notexvc' => 'Λείπει το εκτελέσιμο texvc -παρακαλούμε συμβουλευτείτε το math/README για να ρυθμίσετε τις παραμέτρους.',
-);
-
-/** Esperanto (Esperanto)
- * @author Mihxil
- * @author Yekrats
- * @author לערי ריינהארט
- */
-$messages['eo'] = array(
-	'math_sample' => 'Enmeti formulon ĉi tien',
-	'math_tip' => 'Matematika formulo (LaTeX)',
-	'prefs-math' => 'Matematikaĵoj',
-	'mw_math_png' => 'Ĉiam krei PNG-bildon',
-	'mw_math_simple' => 'HTMLigu se simple, aŭ PNG',
-	'mw_math_html' => 'HTMLigu se eble, aŭ PNG',
-	'mw_math_source' => 'Lasu TeX-fonton (por tekstfoliumiloj)',
-	'mw_math_modern' => 'Rekomendita por modernaj foliumiloj',
-	'mw_math_mathml' => 'MathML seeble (provizora)',
-	'math_failure' => 'malsukcesis analizi formulon',
-	'math_unknown_error' => 'nekonata eraro',
-	'math_unknown_function' => 'nekonata funkcio',
-	'math_lexing_error' => 'leksika analizo malsukcesis',
-	'math_syntax_error' => 'sintakseraro',
-	'math_image_error' => 'Konverto al PNG malsukcesis; kontrolu ĉu estas ĝuste instalitaj latex kaj dvipng (aŭ dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Ne povas skribi al aŭ krei matematikian labor-dosierujon.',
-	'math_bad_output' => 'Ne povas enskribi aŭ krei matematikan eligan dosierujon',
-	'math_notexvc' => 'Programo texvc ne ekzistas; bonvolu vidi math/README por konfiguri.',
-);
-
-/** Spanish (Español)
- * @author Dferg
- * @author Fitoschido
- * @author Platonides
- * @author Translationista
- */
-$messages['es'] = array(
-	'math_sample' => 'Escribir la fórmula aquí',
-	'math_tip' => 'Fórmula matemática (LaTeX)',
-	'prefs-math' => 'Fórmulas',
-	'mw_math_png' => 'Renderizar siempre PNG',
-	'mw_math_simple' => 'HTML si es muy simple, si no, PNG',
-	'mw_math_html' => 'HTML si es posible, si no, PNG',
-	'mw_math_source' => 'Dejar como TeX (para navegadores de texto)',
-	'mw_math_modern' => 'Recomendado para navegadores modernos',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'No se pudo entender',
-	'math_unknown_error' => 'error desconocido',
-	'math_unknown_function' => 'función desconocida',
-	'math_lexing_error' => 'error léxico',
-	'math_syntax_error' => 'error de sintaxis',
-	'math_image_error' => 'La conversión a PNG ha fallado; comprueba que latex, dvips, gs, y convert estén instalados correctamente',
-	'math_bad_tmpdir' => 'No se puede escribir o crear el directorio temporal de <em>math</em>',
-	'math_bad_output' => 'No se puede escribir o crear el directorio de salida de <em>math</em>',
-	'math_notexvc' => 'Falta el ejecutable de <strong>texvc</strong>. Por favor, lea <em>math/README</em> para configurarlo.',
-);
-
-/** Estonian (Eesti)
- * @author KaidoKikkas
- * @author WikedKentaur
- */
-$messages['et'] = array(
-	'math_sample' => 'Sisesta valem siia',
-	'math_tip' => 'Matemaatiline valem (LaTeX)',
-	'prefs-math' => 'Valemite näitamine',
-	'mw_math_png' => 'Alati PNG',
-	'mw_math_simple' => 'Kui väga lihtne, siis HTML, muidu PNG',
-	'mw_math_html' => 'Võimaluse korral HTML, muidu PNG',
-	'mw_math_source' => 'Säilitada TeX (tekstibrauserite puhul)',
-	'mw_math_modern' => 'Soovitatav moodsate brauserite puhul',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Arusaamatu süntaks',
-	'math_unknown_error' => 'Tundmatu viga',
-	'math_unknown_function' => 'Tundmatu funktsioon',
-	'math_lexing_error' => 'Väljalugemisviga',
-	'math_syntax_error' => 'Süntaksiviga',
-	'math_image_error' => "PNG konverteerimine ebaõnnestus;
-kontrollige oma ''latex'', ''dvips'', ''gs'', ''convert'' installatsioonide korrektsust.",
-	'math_bad_tmpdir' => 'Ajutise matemaatikakataloogi loomine või sinna kirjutamine ebaõnnestus',
-	'math_bad_output' => 'Matemaatika-väljundkataloogi loomine või sinna kirjutamine ebaõnnestus',
-	'math_notexvc' => 'Texvc-rakendus puudub; häälestamiseks vaata matemaatikakataloogist README-faili',
-);
-
-/** Basque (Euskara)
- * @author An13sa
- * @author Bengoa
- */
-$messages['eu'] = array(
-	'math_sample' => 'Formula hemen idatzi',
-	'math_tip' => 'Formula matematikoa (LaTeX)',
-	'prefs-math' => 'Formulak',
-	'mw_math_png' => 'Beti PNG irudiak sortu',
-	'mw_math_simple' => 'Oso sinplea bada HTML, eta bestela PNG',
-	'mw_math_html' => 'Posible bada HTML, eta bestela PNG',
-	'mw_math_source' => 'TeX bezala utzi (testu bidezko nabigatzaileentzako)',
-	'mw_math_modern' => 'Nabigatzaile berrientzako gomendatuta',
-	'mw_math_mathml' => 'MathML posible bada (proba fasean)',
-	'math_failure' => 'Interpretazio errorea',
-	'math_unknown_error' => 'errore ezezaguna',
-	'math_unknown_function' => 'funtzio ezezaguna',
-	'math_lexing_error' => 'errore lexikoa',
-	'math_syntax_error' => 'sintaxi errorea',
-	'math_image_error' => 'PNG bilakatze errorea; egiaztatu latex eta dvipng (edo dvips + gs + convert) ongi instalatuta dauden begiratu',
-	'math_bad_tmpdir' => 'Ezin da math direktorio tenporala sortu edo bertan idatzi',
-	'math_bad_output' => 'Ezin da math direktorioa sortu edo bertan idatzi',
-	'math_notexvc' => 'texvc exekutagarria falta da; mesedez, ikus math/README konfiguratzeko.',
-);
-
-/** Extremaduran (Estremeñu)
- * @author Better
- */
-$messages['ext'] = array(
-	'math_sample' => 'Añiil la hórmula aquí',
-	'math_tip' => 'Hórmula matemática (LaTeX)',
-	'prefs-math' => 'Hórmulas',
-	'mw_math_png' => 'Renderiçal sempri PNG',
-	'mw_math_simple' => 'HTML si es mu simpri, si nu, PNG',
-	'mw_math_html' => 'HTML si es posibri, si nu, PNG',
-	'mw_math_source' => 'Quealu cumu TeX (pa escrucaoris de testu)',
-	'mw_math_modern' => 'Recomendau pa escrucaoris moernus',
-	'mw_math_mathml' => 'MathML si es posibri (esperimental)',
-	'math_failure' => 'Nu es posibri entendel',
-	'math_unknown_error' => 'marru andarriu',
-	'math_unknown_function' => 'hunción andarria',
-	'math_lexing_error' => 'marru lésicu',
-	'math_syntax_error' => 'marru ena sintasis',
-	'math_image_error' => 'Marru convirtiendu a PNG; compreba que latex, dvips, gs, i convert estén corretamenti istalaus',
-	'math_bad_tmpdir' => 'Nu es posibri escribil u crial el diretoriu temporal de <em>math</em>',
-	'math_bad_output' => 'Nu es posibri escribil u crial el diretoriu e salia e <em>math</em>',
-	'math_notexvc' => 'Farta el ehecutabri e <strong>texvc</strong>; pol favol, lei <em>math/README</em> pa configuralu.',
-);
-
-/** Persian (فارسی)
- * @author Huji
- */
-$messages['fa'] = array(
-	'math_sample' => 'درج فرمول در اینجا',
-	'math_tip' => 'فرمول ریاضی (LaTeX)',
-	'prefs-math' => 'نمایش ریاضیات',
-	'mw_math_png' => 'همیشه PNG کشیده شود',
-	'mw_math_simple' => 'اگر خیلی ساده بود HTML وگرنه PNG',
-	'mw_math_html' => 'اگر ممکن بود HTML وگرنه PNG',
-	'mw_math_source' => 'در قالب TeX باقی بماند (برای مرورگرهای متنی)',
-	'mw_math_modern' => 'توصیه برای مرورگرهای امروزی',
-	'mw_math_mathml' => 'استفاده از MathML در صورت امکان (آزمایشی)',
-	'math_failure' => 'شکست در تجزیه',
-	'math_unknown_error' => 'خطای ناشناخته',
-	'math_unknown_function' => 'تابع ناشناختهٔ',
-	'math_lexing_error' => 'خطای lexing',
-	'math_syntax_error' => 'خطای نحوی',
-	'math_image_error' => 'تبدیل به PNG شکست خورد؛ از نصب درست لاتکس و dvipng (یا dvips و gs و convert) اطمینان حاصل کنید',
-	'math_bad_tmpdir' => 'امکان ایجاد یا نوشتن اطلاعات در پوشه موقت (temp) ریاضی وجود ندارد.',
-	'math_bad_output' => 'امکان ایجاد یا نوشتن اطلاعات در پوشه خروجی (output) ریاضی وجود ندارد.',
-	'math_notexvc' => 'برنامهٔ اجرایی texvc موجود نیست. برای اطلاعات بیشتر به <span dir=ltr>math/README</span> مراجعه کنید.',
-);
-
-/** Finnish (Suomi)
- * @author Crt
- * @author Wix
- */
-$messages['fi'] = array(
-	'math_sample' => 'Lisää kaava tähän',
-	'math_tip' => 'Matemaattinen kaava (LaTeX)',
-	'prefs-math' => 'Matematiikka',
-	'mw_math_png' => 'Näytä aina PNG:nä',
-	'mw_math_simple' => 'Näytä HTML:nä, jos yksinkertainen, muuten PNG:nä',
-	'mw_math_html' => 'Näytä HTML:nä, jos mahdollista, muuten PNG:nä',
-	'mw_math_source' => 'Näytä TeX-muodossa (tekstiselaimille)',
-	'mw_math_modern' => 'Suositus nykyselaimille',
-	'mw_math_mathml' => 'Näytä MathML:nä, jos mahdollista (kokeellinen)',
-	'math_failure' => 'Jäsentäminen epäonnistui',
-	'math_unknown_error' => 'Tuntematon virhe',
-	'math_unknown_function' => 'Tuntematon funktio',
-	'math_lexing_error' => 'Tulkintavirhe',
-	'math_syntax_error' => 'Jäsennysvirhe',
-	'math_image_error' => 'Muuntaminen PNG-tiedostomuotoon epäonnistui; tarkista, että latex ja dvipng (tai dvips, gs ja convert) on asennettu oikein.',
-	'math_bad_tmpdir' => 'Matematiikan kirjoittaminen väliaikaishakemistoon tai tiedostonluonti ei onnistu',
-	'math_bad_output' => 'Matematiikan tulostehakemistoon kirjoittaminen tai tiedostonluonti ei onnistu',
-	'math_notexvc' => 'Texvc-sovellus puuttuu, lue math/READMEstä asennustietoja',
-);
-
-/** Faroese (Føroyskt)
- * @author Krun
- * @author Quackor
- * @author Spacebirdy
- */
-$messages['fo'] = array(
-	'math_sample' => 'Set formil her',
-	'math_tip' => 'Støddfrøðiligur formil (LaTeX)',
-	'prefs-math' => 'Støddfrøðiligir formlar',
-	'mw_math_png' => 'Vís altíð sum PNG',
-	'mw_math_simple' => 'HTML um sera einfalt annars PNG',
-	'mw_math_html' => 'HTML um møguligt annars PNG',
-	'mw_math_source' => 'Lat verða sum TeX (til tekstkagara)',
-	'mw_math_modern' => 'Tilmælt nýtíðarkagara',
-	'mw_math_mathml' => 'MathML um møguligt (roynd)',
-);
-
-/** French (Français)
- * @author Peter17
- */
-$messages['fr'] = array(
-	'math_sample' => 'Entrez votre formule ici',
-	'math_tip' => 'Formule mathématique (LaTeX)',
-	'prefs-math' => 'Rendu des maths',
-	'mw_math_png' => 'Toujours produire une image PNG',
-	'mw_math_simple' => 'HTML si très simple, autrement PNG',
-	'mw_math_html' => 'HTML si possible, autrement PNG',
-	'mw_math_source' => 'Laisser le code TeX original',
-	'mw_math_modern' => 'Pour les navigateurs modernes',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Erreur math',
-	'math_unknown_error' => 'erreur indéterminée',
-	'math_unknown_function' => 'fonction inconnue',
-	'math_lexing_error' => 'erreur lexicale',
-	'math_syntax_error' => 'erreur de syntaxe',
-	'math_image_error' => 'La conversion en PNG a échoué ; vérifiez l’installation de latex et dvipng (ou dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Impossible de créer ou d’écrire dans le répertoire math temporaire',
-	'math_bad_output' => 'Impossible de créer ou d’écrire dans le répertoire math de sortie',
-	'math_notexvc' => 'L’exécutable « texvc » est introuvable. Lisez math/README pour le configurer.',
-);
-
-/** Cajun French (Français cadien)
- * @author RoyAlcatraz
- */
-$messages['frc'] = array(
-	'math_sample' => 'Mettez la formule ici',
-	'math_tip' => "Formule d'arithmitique (LaTeX)",
-);
-
-/** Franco-Provençal (Arpetan)
- * @author ChrisPtDe
- */
-$messages['frp'] = array(
-	'math_sample' => 'Buchiéd voutra formula ique',
-	'math_tip' => 'Formula matèmatica (LaTeX)',
-	'prefs-math' => 'Rendu de les formules matèmatiques',
-	'mw_math_png' => 'Tojorn fâre una émâge PNG',
-	'mw_math_simple' => 'HTML se prod simplo, ôtrament PNG',
-	'mw_math_html' => 'HTML se possiblo, ôtrament PNG',
-	'mw_math_source' => 'Lèssiér lo code TeX originâl',
-	'mw_math_modern' => 'Por los navigators modèrnos',
-	'mw_math_mathml' => 'MathML se possiblo (èxpèrimentâl)',
-	'math_failure' => 'Èrror d’analise sintaxica',
-	'math_unknown_error' => 'èrror encognua',
-	'math_unknown_function' => 'fonccion encognua',
-	'math_lexing_error' => 'èrror lèxicâla',
-	'math_syntax_error' => 'èrror de sintaxa',
-	'math_image_error' => 'La convèrsion en PNG at pas reussia ; controlâd l’enstalacion de LaTeX et dvipng (ou ben dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Empossiblo d’ècrire dens ou ben de fâre lo rèpèrtouèro math temporèro',
-	'math_bad_output' => 'Empossiblo d’ècrire dens ou ben de fâre lo rèpèrtouèro math de sortia',
-	'math_notexvc' => 'L’ègzécutâblo « texvc » est entrovâblo.
-Volyéd liére « math/README » por lo configurar.',
-);
-
-/** Northern Frisian (Nordfriisk)
- * @author Murma174
- * @author Pyt
- */
-$messages['frr'] = array(
-	'math_sample' => 'Formel heer önjfäige',
-	'math_tip' => 'Matemaatisch formel (LaTex)',
-	'prefs-math' => 'TeX',
-);
-
-/** Friulian (Furlan) */
-$messages['fur'] = array(
-	'math_sample' => 'Inserìs la formule culì',
-	'math_tip' => 'Formule matematiche (LaTeX)',
-	'prefs-math' => 'Matematiche',
-	'mw_math_png' => 'Torne simpri PNG',
-	'mw_math_simple' => 'HTML se une vore sempliç, se no PNG',
-	'mw_math_html' => 'HTML se pussibil se no PNG',
-	'mw_math_source' => 'Lassile come TeX (par sgarfadôrs testuâi)',
-	'mw_math_modern' => 'Racomandât pai sgarfadôrs testuâi',
-	'mw_math_mathml' => 'MathML se pussibil (sperimentâl)',
-);
-
-/** Western Frisian (Frysk)
- * @author Pyt
- * @author Snakesteuben
- */
-$messages['fy'] = array(
-	'math_sample' => 'Foechje hjir in formule yn',
-	'math_tip' => 'Wiskundige formule (LaTeX)',
-	'prefs-math' => 'Formules',
-	'mw_math_png' => 'Altiten as PNG ôfbyldzje',
-	'mw_math_simple' => 'HTML foar ienfâldiche formules, oars PNG',
-	'mw_math_html' => 'HTML as mooglik, oars PNG',
-	'mw_math_source' => 'Lit de TeX ferzje stean (foar tekstblêders)',
-	'mw_math_modern' => 'Oanbefelle foar resinte blêders',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Untsjutbere formule',
-	'math_unknown_error' => 'Unbekinde fout',
-	'math_unknown_function' => 'Unbekinde funksje',
-	'math_lexing_error' => 'Unbekind wurd',
-	'math_syntax_error' => 'Sinboufout',
-	'math_image_error' => 'PNG-omsetting is mislearre.
-Gean nei oft latex, dvips, en gs goed ynstallearre binne en set om',
-	'math_bad_tmpdir' => 'De tydlike formulepad kin net skreaun of makke wêze.',
-	'math_bad_output' => 'De formulepad kin net skreaun of makke wêze.',
-	'math_notexvc' => 'It programma texvc net fûn; sjoch math/README te ynstallearjen.',
-);
-
-/** Irish (Gaeilge)
- * @author Alison
- */
-$messages['ga'] = array(
-	'math_sample' => 'Cuir foirmle isteach anseo',
-	'math_tip' => 'Foirmle mhatamataice (LaTeX)',
-	'prefs-math' => 'Matamaitice',
-	'mw_math_png' => 'Déan PNG-íomhá gach uair',
-	'mw_math_simple' => 'Déan HTML má tá sin an-easca, nó PNG ar mhodh eile',
-	'mw_math_html' => 'Déan HTML más féidir, nó PNG ar mhodh eile',
-	'mw_math_source' => 'Fág mar cló TeX (do teacsleitheoirí)',
-	'mw_math_modern' => 'Inmholta do bhrabhsálaithe nua',
-	'mw_math_mathml' => 'MathML más féidir (turgnamhach)',
-	'math_failure' => 'Theip ó anailís na foirmle',
-	'math_unknown_error' => 'earráid anaithnid',
-	'math_unknown_function' => 'foirmle anaithnid',
-	'math_lexing_error' => 'Theip ó anailís an fhoclóra',
-	'math_syntax_error' => 'earráid comhréire',
-	'math_image_error' => 'Theip ó aistriú an PNG; tástáil má tá na ríomh-oidis latex, dvips, gs, agus convert i suite go maith.',
-	'math_bad_tmpdir' => 'Ní féidir scríobh chuig an fillteán mata sealadach, nó é a chruthú',
-	'math_bad_output' => 'Ní féidir scríobh chuig an fillteán mata aschomhaid, nó é a chruthú',
-	'math_notexvc' => 'Níl an ríomhchlár texvc ann; féach ar mata/EOLAIS chun é a sainathrú.',
-);
-
-/** Gagauz (Gagauz)
- * @author Cuman
- */
-$messages['gag'] = array(
-	'math_sample' => 'Matematik-formulanı-koyun',
-	'math_tip' => 'Matematik formula (LaTeX formatında)',
-);
-
-/** Simplified Gan script (‪赣语(简体)‬) */
-$messages['gan-hans'] = array(
-	'math_sample' => '到个首扻入数学公式',
-	'math_tip' => '数学公式 (LaTeX)',
-	'prefs-math' => '数学公式',
-	'mw_math_png' => '全部使用PNG图像',
-	'mw_math_simple' => '要系简单𠮶话都用HTML,不然就用PNG图像',
-	'mw_math_html' => '可以𠮶话都用HTML,不然就用PNG图像',
-	'mw_math_source' => '显示系TeX代码 (文字浏览器用)',
-	'mw_math_modern' => '新版浏览器𠮶建议',
-	'mw_math_mathml' => '尽可能用MathML (试验中)',
-	'math_failure' => '分析失败',
-	'math_unknown_error' => '未知错误',
-	'math_unknown_function' => '未知函数',
-	'math_lexing_error' => '句法错误',
-	'math_syntax_error' => '文法错误',
-	'math_image_error' => 'PNG转换失败;请检查系否装正嘞latex, dvips, gs同到convert',
-	'math_bad_tmpdir' => '写伓正或建伓正数学公式临时目录',
-	'math_bad_output' => '写伓正或建伓正数学公式输出目录',
-	'math_notexvc' => '执行伓正"texvc";请参看 math/README 再配置过。',
-);
-
-/** Traditional Gan script (‪贛語(繁體)‬) */
-$messages['gan-hant'] = array(
-	'math_sample' => '到箇首扻入數學公式',
-	'math_tip' => '數學公式 (LaTeX)',
-	'prefs-math' => '數學公式',
-	'mw_math_png' => '全部使用PNG圖像',
-	'mw_math_simple' => '要係簡單嗰話都用HTML,不然就用PNG圖像',
-	'mw_math_html' => '可以嗰話都用HTML,不然就用PNG圖像',
-	'mw_math_source' => '顯示係TeX代碼 (文字瀏覽器用)',
-	'mw_math_modern' => '新版瀏覽器嗰建議',
-	'mw_math_mathml' => '儘可能用MathML (試驗中)',
-	'math_failure' => '分析失敗',
-	'math_unknown_error' => '未知錯誤',
-	'math_unknown_function' => '未知函數',
-	'math_lexing_error' => '句法錯誤',
-	'math_syntax_error' => '文法錯誤',
-	'math_image_error' => 'PNG轉換失敗;請檢查係否裝正嘞latex, dvips, gs同到convert',
-	'math_bad_tmpdir' => '寫伓正或建伓正數學公式臨時目錄',
-	'math_bad_output' => '寫伓正或建伓正數學公式輸出目錄',
-	'math_notexvc' => '執行伓正"texvc";請參看 math/README 再配置過。',
-);
-
-/** Scottish Gaelic (Gàidhlig)
- * @author Akerbeltz
- */
-$messages['gd'] = array(
-	'math_sample' => 'Cuir a-steach foirmle an-seo',
-	'math_tip' => 'Foirmle matamataig (LaTeX)',
-	'math_unknown_error' => 'mearachd neo-aithnichte',
-);
-
-/** Galician (Galego)
- * @author Alma
- * @author Toliño
- * @author Xosé
- */
-$messages['gl'] = array(
-	'math_sample' => 'Insira unha fórmula aquí',
-	'math_tip' => 'Fórmula matemática (LaTeX)',
-	'prefs-math' => 'Fórmulas matemáticas',
-	'mw_math_png' => 'Orixinar sempre unha imaxe PNG',
-	'mw_math_simple' => 'HTML se é moi simple, en caso contrario PNG',
-	'mw_math_html' => 'Se é posible HTML, se non PNG',
-	'mw_math_source' => 'Deixalo como TeX (para navegadores de texto)',
-	'mw_math_modern' => 'Recomendado para as versións recentes dos navegadores',
-	'mw_math_mathml' => 'MathML se é posible (experimental)',
-	'math_failure' => 'Fallou a conversión do código',
-	'math_unknown_error' => 'erro descoñecido',
-	'math_unknown_function' => 'función descoñecida',
-	'math_lexing_error' => 'erro de léxico',
-	'math_syntax_error' => 'erro de sintaxe',
-	'math_image_error' => 'Fallou a conversión a PNG; comprobe que latex, dvips, gs e convert están ben instalados (ou dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Non se puido crear ou escribir no directorio temporal de fórmulas',
-	'math_bad_output' => 'Non se puido crear ou escribir no directorio de saída de fórmulas',
-	'math_notexvc' => 'Falta o executable texvc. Por favor consulte math/README para configurar.',
-);
-
-/** Guarani (Avañe'ẽ) */
-$messages['gn'] = array(
-	'math_tip' => 'Matemátika kuaareko (LaTeX)',
-);
-
-/** Gothic (Gothic)
- * @author Jocke Pirat
- */
-$messages['got'] = array(
-	'math_sample' => 'Lagjan formula her',
-	'math_tip' => 'Maþemateikaleiks formula (LaTeX)',
-);
-
-/** Ancient Greek (Ἀρχαία ἑλληνικὴ)
- * @author Lefcant
- * @author Omnipaedista
- */
-$messages['grc'] = array(
-	'math_sample' => 'Εἰσάγειν τύπον ὧδε',
-	'math_tip' => 'Μαθηματικὸς τύπος (LaTeX)',
-	'prefs-math' => 'Τὰ μαθηματικά',
-	'mw_math_png' => 'Ἀπόδοσις PNG πάντοτε',
-	'mw_math_simple' => 'HTML εἰ λίαν ἁπλοῦν, εἰδἄλλως PNG',
-	'mw_math_html' => 'HTML εἰ δυνατὸν, εἰδἄλλως PNG',
-	'mw_math_source' => 'Ἄφες το ὡς TeX (διὰ τὰ πλοηγητήρια κειμένων)',
-	'mw_math_modern' => 'Προτεινομένη διὰ σύγχρονα πλοηγητήρια',
-	'mw_math_mathml' => 'MathML εἰ δυνατόν (πειραστικόν)',
-	'math_failure' => 'Λεξιανάλυσις ἀποτετυχηκυῖα',
-	'math_unknown_error' => 'ἄγνωστον σφάλμα',
-	'math_unknown_function' => 'ἄγνωστος ἐνέργεια',
-	'math_lexing_error' => 'σφάλμα λεξικῆς ἀναλύσεως',
-	'math_syntax_error' => 'σφάλμα συντάξεως',
-	'math_image_error' => 'Ἡ PNG-μετατροπὴ ἀπετεύχθη·
-ἔλεγξον τὴν ὀρθὴν ἐγκατάστασιν τῶν latex καὶ dvipng (ἢ dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Ἀδύνατος ἦτο ἡ ποίησις μαθηματικῶν δεδομένων ἢ ἡ ἐγγραφὴ ἐν προσκαίρῳ ἀρχειοκαταλόγῳ',
-	'math_bad_output' => 'Ἀδύνατος ἦτο ἡ ποίησις μαθηματικῶν δεδομένων ἢ ἡ ἐγγραφὴ ἐν ἀρχειοκαταλόγῳ ἐξόδου',
-	'math_notexvc' => 'Ἐλλεῖπον ἐκτελέσιμον texvc;
-ἴδε math/README διὰ τὸ διαμορφοῦν.',
-);
-
-/** Swiss German (Alemannisch)
- * @author Als-Holder
- */
-$messages['gsw'] = array(
-	'math_sample' => 'Formel do yfüge',
-	'math_tip' => 'Mathematisch Formel (LaTeX)',
-	'prefs-math' => 'TeX',
-	'mw_math_png' => 'Immer als PNG aazeige',
-	'mw_math_simple' => 'Eifachs TeX als HTML aazeige, süsch als PNG',
-	'mw_math_html' => 'Falls müglech als HTML aazeige, süsch als PNG',
-	'mw_math_source' => 'Als TeX la sy (für Tekschtbrowser)',
-	'mw_math_modern' => 'Empfolnigi Ystellig für modärni Browser',
-	'mw_math_mathml' => 'MathML (experimentäll)',
-	'math_failure' => 'Parser-Fähler',
-	'math_unknown_error' => 'Nit bekannte Fähler',
-	'math_unknown_function' => 'Nit bekannti Funktion',
-	'math_lexing_error' => "'Lexing'-Fähler",
-	'math_syntax_error' => 'Syntaxfähler',
-	'math_image_error' => 'D PNG-Konvertierig het nit funktioniert; prief di korrekt Installation vu LaTeX un dvipng (oder dvips + gs + convert)',
-	'math_bad_tmpdir' => 'S temporär Verzeichnis fir mathematischi Formle cha nit aagleit oder bschribe wäre.',
-	'math_bad_output' => 'S Ziilverzeichnis fir mathematischi Formle cha nit aagleit oder bschribe wäre.',
-	'math_notexvc' => 'S texvc-Programm isch nit gfunde wore. Bitte acht gee uf math/README.',
-);
-
-/** Gujarati (ગુજરાતી)
- * @author Dsvyas
- * @author Sushant savla
- */
-$messages['gu'] = array(
-	'math_sample' => 'સૂત્ર અહીં દાખલ કરો',
-	'math_tip' => 'ગણિતિક સૂત્ર (LaTeX)',
-	'prefs-math' => 'ગણિત',
-	'mw_math_png' => 'PNGને હમેંશા પરત કરો',
-	'mw_math_simple' => ' જો સરળ હોય તો  HTML અન્યથા PNG',
-	'mw_math_html' => 'જો સરળ હોય તો  HTML અન્યથા PNG',
-	'mw_math_source' => 'આને શબ્દ રહેવા દો (ટેક્સ્ટ બ્રાઉઝર)',
-	'mw_math_modern' => 'અત્યાધુનિક બ્રાઉઝરો માટે ભલામણ યોગ્ય',
-	'mw_math_mathml' => ' MathML શક્ય હોય તો  (પ્રયોગાત્મક)',
-	'math_failure' => 'પદચ્છેદ અસફળ',
-	'math_unknown_error' => 'અજ્ઞાત ત્રુટિ',
-	'math_unknown_function' => 'અજ્ઞાત ફંક્શન',
-	'math_lexing_error' => 'લેખન ક્ર્મ / વિધી ત્રુટિ',
-	'math_syntax_error' => 'સૂત્ર લેખન ત્રુટિ',
-	'math_image_error' => 'PNG રૂપાંતરણ નિષ્ફળ;  latex અને dvipng (or dvips + gs + convert) બરાબર ચડાવાયું છે કે કેમ તે ચકાસો',
-	'math_bad_tmpdir' => 'હંગામી ગણિત ડીરેક્ટરી લખી કે રચી નહીં શકાય.',
-	'math_bad_output' => 'ઉત્તરીય ગણિત ડીરેક્ટરી લખી કે રચી નહીં શકાય.',
-	'math_notexvc' => 'ચલાવી શકાય તેવી texvc ગાયબ ; આને ચડાવવા math/README  જુઓ.',
-);
-
-/** Manx (Gaelg)
- * @author MacTire02
- */
-$messages['gv'] = array(
-	'math_sample' => 'Cur formley stiagh ayns shoh',
-	'math_tip' => 'Formley maddaghtoil (LaTeX)',
-	'mw_math_png' => 'Jean PNG dagh ooilley hraa',
-	'math_syntax_error' => 'Co-ordrail marranagh',
-);
-
-/** Hausa (هَوُسَ)
- * @author Mladanali
- */
-$messages['ha'] = array(
-	'math_sample' => 'Shigar da haɗi a nan',
-	'math_tip' => 'Haɗin lissafi (LaTeX)',
-);
-
-/** Hakka (Hak-kâ-fa)
- * @author Hakka
- */
-$messages['hak'] = array(
-	'math_sample' => 'Chhai-chhṳ́chhap-ngi̍p sṳ-ho̍k kûng-sṳt',
-	'math_tip' => 'Chhap-ngi̍p sṳ-ho̍k kûng-sṳt (LaTeX)',
-	'prefs-math' => 'Sṳ-ho̍k kûng-sṳt',
-	'mw_math_png' => 'Yún-yén sṳ́-yung PNG thù-chhiong',
-	'mw_math_simple' => 'Kó-yèn he kién-tân ke kûng-sṳt sṳ́-yung HTML, feu-chet sṳ́-yung PNG thù-chhiong',
-	'mw_math_html' => 'Chhin khó-nèn chhái-yung HTML, fe̍t-he yung PNG thù-tóng',
-	'mw_math_source' => 'Hién-sṳ TeX thoi-ho (sṳ́-yung vùn-sṳ hi-khí sṳ̀)',
-	'mw_math_modern' => 'Chhûi-chien sîn-pán hi-khí sṳ́-yung',
-	'mw_math_mathml' => 'Chhin khó-nèn sṳ́-yung MathML (sṳ-ngiam chûng)',
-	'math_failure' => 'Kié-sak sṳt-phai',
-	'math_unknown_error' => 'Mò-tî chho-ngu',
-	'math_unknown_function' => 'Mò-tî chhṳ-su',
-	'math_lexing_error' => 'ki-fap chho-ngu',
-	'math_syntax_error' => 'ngî-fap chho-ngu',
-	'math_image_error' => 'PNG chón-von sṳt-phai; chhiáng kiám-chhà he-feu chṳn-khok ôn-chông latex, dvips, gs lâu convert',
-	'math_bad_tmpdir' => 'Mò-fap siá-ngi̍p fe̍t-chá kien-li̍p su-ho̍k kûng-sṳt lìm-sṳ̀ muk-liu̍k',
-	'math_bad_output' => 'Mò-fap siá-ngi̍p fe̍t-chá kien-li̍p su-ho̍k kûng-sṳt sû-chhut muk-liu̍k',
-	'math_notexvc' => 'Mò-fap chṳp-hàng "texvc"; chhiáng chhâm-cheu math/README chin-hàng phi-chṳ.',
-);
-
-/** Hawaiian (Hawai`i)
- * @author Kolonahe
- * @author Singularity
- */
-$messages['haw'] = array(
-	'math_tip' => 'Ha‘ilula makemakika (LaTeX)',
-	'prefs-math' => 'Makemakika',
-);
-
-/** Hebrew (עברית)
- * @author Amire80
- */
-$messages['he'] = array(
-	'math_sample' => 'formula',
-	'math_tip' => 'נוסחה מתמטית (LaTeX)',
-	'prefs-math' => 'נוסחאות מתמטיות',
-	'mw_math_png' => 'תמיד להציג כ־PNG',
-	'mw_math_simple' => 'להציג HTML לנוסחאות פשוטות מאוד, אחרת להציג PNG',
-	'mw_math_html' => 'להציג HTML אם אפשר, אחרת להציג PNG',
-	'mw_math_source' => 'להשאיר כקוד TeX (לדפדפני טקסט)',
-	'mw_math_modern' => 'מומלץ לדפדפנים עדכניים',
-	'mw_math_mathml' => 'להציג MathML אם אפשר (ניסיוני)',
-	'math_failure' => 'עיבוד הנוסחה נכשל',
-	'math_unknown_error' => 'שגיאה לא ידועה',
-	'math_unknown_function' => 'פונקציה לא מוכרת',
-	'math_lexing_error' => 'שגיאת לקסינג',
-	'math_syntax_error' => 'שגיאת תחביר',
-	'math_image_error' => 'ההמרה ל־PNG נכשלה; אנא בדקו אם התקנתם נכון את latex ואת dvipng (או צירוף של dvips‏, gs ו־convert)',
-	'math_bad_tmpdir' => 'התוכנה לא הצליחה לכתוב או ליצור את הספרייה הזמנית של המתמטיקה',
-	'math_bad_output' => 'התוכנה לא הצליחה לכתוב או ליצור את ספריית הפלט של המתמטיקה',
-	'math_notexvc' => 'קובץ בר־ביצוע של texvc אינו זמין; אנא צפו בקובץ math/README למידע על ההגדרות.',
-);
-
-/** Hindi (हिन्दी)
- * @author Kaustubh
- * @author आलोक
- */
-$messages['hi'] = array(
-	'math_sample' => 'गणितीय सूत्र यहाँ डालें',
-	'math_tip' => 'गणितीय सूत्र (लेटेक्स)',
-	'prefs-math' => 'गणित',
-	'mw_math_png' => 'हमेशा PNG बनायें',
-	'mw_math_simple' => 'HTML अलग आसानी से बनें या फिर PNG बनायें',
-	'mw_math_html' => 'HTML अगर हो सकें तो अन्यथा PNG',
-	'mw_math_source' => 'उसे TeX ही रखियें (पाठ ब्राउज़र के लिये)',
-	'mw_math_modern' => 'आधुनिक ब्राउज़रके लिये उपयुक्त',
-	'mw_math_mathml' => 'MathML अगर हो सके तो (प्रायोगिक)',
-	'math_failure' => 'पार्स नहीं कर पायें',
-	'math_unknown_error' => 'अपरिचीत समस्या',
-	'math_unknown_function' => 'अज्ञात कार्य',
-	'math_lexing_error' => 'लेक्सींग समस्या',
-	'math_syntax_error' => 'सिन्टैक्स गलती',
-	'math_image_error' => 'PNG में रुपांतरण अयशस्वी;
-latex, dvips, gs, और convert के इन्स्टॉलेशन की जाँच करें',
-	'math_bad_tmpdir' => 'मैथ अस्थायी डाइरेक्टरी या तो बना नहीं सकतें या फिर उसमें लिख नहीं सकतें',
-	'math_bad_output' => 'मैथ आउटपुट डाइरेक्टरी या तो बना नहीं सकतें या फिर उसमें लिख नहीं सकतें',
-	'math_notexvc' => 'texvc एक्झीक्यूटेबल फ़ाईल मिल नहीं रहीं;
-समनुरूप बनाने के लियें math/README देखें।',
-);
-
-/** Fiji Hindi (Latin) (Fiji Hindi (Latin))
- * @author Girmitya
- * @author Thakurji
- */
-$messages['hif-latn'] = array(
-	'math_sample' => 'Hian pe formula insert karo',
-	'math_tip' => 'Mathematiical niyam (LaTeX)',
-	'prefs-math' => 'Math',
-	'mw_math_png' => 'PNG ke sab time render karo',
-	'mw_math_simple' => 'HTML agar bahut sahaj hai, nai to PNG',
-	'mw_math_html' => 'HTML agar hoe sake, nai to PNG',
-	'mw_math_source' => 'TeX ke rakam chhorr do (text browsers ke khatir)',
-	'mw_math_modern' => 'Modern browsers khatir thiik hai',
-	'mw_math_mathml' => 'MathML hoe sake tab (experimental)',
-	'math_failure' => 'Parse nai kare sakaa',
-	'math_unknown_error' => 'galti ke nai samajhta',
-	'math_unknown_function' => 'nai samajhta ki ii kon chij khatir hai',
-	'math_lexing_error' => 'lexing me galti',
-	'math_syntax_error' => 'syntax me galti',
-	'math_image_error' => 'PNG conversion fail hoe gais; latex, dvips aur gs ke correct installation ke check kar ke convert convert karo',
-	'math_bad_tmpdir' => 'Math temporary directory nai banae sakta hai',
-	'math_bad_output' => 'Math output directory me likhe nai to banae nai sakta hai',
-	'math_notexvc' => 'Texvc executable nai hai;
-Configure kare khatir meharbani kar ke math/README ke dekho.',
-);
-
-/** Hiligaynon (Ilonggo)
- * @author Tagimata
- */
-$messages['hil'] = array(
-	'math_sample' => 'Ibutang ang pormula diri',
-	'math_tip' => 'Math pormula (LaTeX)',
-);
-
-/** Croatian (Hrvatski)
- * @author Herr Mlinka
- * @author SpeedyGonsales
- */
-$messages['hr'] = array(
-	'math_sample' => 'Ovdje unesi formulu',
-	'math_tip' => 'Matematička formula (LaTeX)',
-	'prefs-math' => 'Prikaz matematičkih formula',
-	'mw_math_png' => 'Uvijek kao PNG',
-	'mw_math_simple' => 'Ako je vrlo jednostavno HTML, inače PNG',
-	'mw_math_html' => 'Ako je moguće HTML, inače PNG',
-	'mw_math_source' => 'Ostavi u formatu TeX (za tekstualne preglednike)',
-	'mw_math_modern' => 'Preporučeno za današnje preglednike',
-	'mw_math_mathml' => 'Ako je moguće MathML (u pokusnoj fazi)',
-	'math_failure' => 'Obrada nije uspjela.',
-	'math_unknown_error' => 'nepoznata pogreška',
-	'math_unknown_function' => 'nepoznata funkcija',
-	'math_lexing_error' => 'rječnička pogreška (lexing error)',
-	'math_syntax_error' => 'sintaksna pogreška',
-	'math_image_error' => 'Pretvorba u PNG nije uspjela; provjerite jesu li dobro instalirani latex, dvips, gs, i convert',
-	'math_bad_tmpdir' => 'Ne mogu otvoriti ili pisati u privremeni direktorij za matematiku',
-	'math_bad_output' => 'Ne mogu otvoriti ili pisati u odredišni direktorij za matematiku',
-	'math_notexvc' => 'Nedostaje izvršna datoteka texvc-a; pogledajte math/README za postavke.',
-);
-
-/** Upper Sorbian (Hornjoserbsce)
- * @author Michawiki
- */
-$messages['hsb'] = array(
-	'math_sample' => 'Zasuń tu formulu',
-	'math_tip' => 'Matematiska formula (LaTeX)',
-	'prefs-math' => 'Math',
-	'mw_math_png' => 'Přeco jako PNG zwobraznić',
-	'mw_math_simple' => 'HTML jeli jara jednory, hewak PNG',
-	'mw_math_html' => 'HTML jeli móžno, hewak PNG',
-	'mw_math_source' => 'Jako TeX wostajić (za tekstowe wobhladowaki)',
-	'mw_math_modern' => 'Za moderne wobhladowaki doporučene',
-	'mw_math_mathml' => 'MathML jeli móžno (eksperimentalnje)',
-	'math_failure' => 'Analyza njeje so poradźiła',
-	'math_unknown_error' => 'njeznaty zmylk',
-	'math_unknown_function' => 'njeznata funkcija',
-	'math_lexing_error' => 'leksikalny zmylk',
-	'math_syntax_error' => 'syntaktiski zmylk',
-	'math_image_error' => 'Konwertowanje do PNG zwrěšćiło; kontroluj prawu instalaciju latex a dvipng (abo dvips + gs + konwertuj)',
-	'math_bad_tmpdir' => 'Njemóžno do nachwilneho matematiskeho zapisa pisać abo jón wutworić',
-	'math_bad_output' => 'Njemóžno do matematiskeho zapisa za wudaće pisać abo jón wutworić',
-	'math_notexvc' => 'Wuwjedźomny texvc pobrachuje; prošu hlej math/README za konfiguraciju.',
-);
-
-/** Haitian (Kreyòl ayisyen)
- * @author Masterches
- */
-$messages['ht'] = array(
-	'math_sample' => 'Antre fòmil ou an isit',
-	'math_tip' => 'Fòmil matematik (LaTeX)',
-);
-
-/** Hungarian (Magyar)
- * @author Dani
- */
-$messages['hu'] = array(
-	'math_sample' => 'Ide írd a képletet',
-	'math_tip' => 'Matematikai képlet (LaTeX)',
-	'prefs-math' => 'Képletek',
-	'mw_math_png' => 'Mindig készítsen PNG-t',
-	'mw_math_simple' => 'HTML, ha nagyon egyszerű, egyébként PNG',
-	'mw_math_html' => 'HTML, ha lehetséges, egyébként PNG',
-	'mw_math_source' => 'Hagyja TeX formában (szöveges böngészőknek)',
-	'mw_math_modern' => 'Modern böngészőknek ajánlott beállítás',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Értelmezés sikertelen',
-	'math_unknown_error' => 'ismeretlen hiba',
-	'math_unknown_function' => 'ismeretlen függvény',
-	'math_lexing_error' => 'lexikai hiba',
-	'math_syntax_error' => 'formai hiba',
-	'math_image_error' => 'PNG-vé alakítás sikertelen; ellenőrizd, hogy a latex és dvipng (vagy dvips + gs + convert) helyesen van-e telepítve',
-	'math_bad_tmpdir' => 'Nem írható vagy nem hozható létre a matematikai ideiglenes könyvtár',
-	'math_bad_output' => 'Nem lehet létrehozni vagy írni a matematikai függvények kimeneti könyvtárába',
-	'math_notexvc' => 'HIányzó texvc végrehajtható fájl; a beállítást lásd a math/README fájlban.',
-);
-
-/** Armenian (Հայերեն)
- * @author Chaojoker
- * @author Teak
- * @author Xelgen
- */
-$messages['hy'] = array(
-	'math_sample' => 'Գրեք բանաձևը այստեղ',
-	'math_tip' => 'Մաթեմատիկական բանաձև (LaTeX)',
-	'prefs-math' => 'Մաթեմատիկական բանաձևեր',
-	'mw_math_png' => 'Միշտ դարձնել PNG',
-	'mw_math_simple' => 'HTML՝ պարզ դեպքերում, այլապես՝ PNG',
-	'mw_math_html' => 'HTML, եթե հնարավոր է, այլապես՝ PNG',
-	'mw_math_source' => 'Թողնել որպես ТеХ (տեքստային բրաուզերների համար)',
-	'mw_math_modern' => 'Խորհուրդ է տրվում ժամանակակից բրաուզերների համար',
-	'mw_math_mathml' => 'MathML, եթե հնարավոր է (փորձնական)',
-	'math_failure' => 'Չհաջողվեց վերլուծել',
-	'math_unknown_error' => 'անհայտ սխալ',
-	'math_unknown_function' => 'անհայտ ֆունկցիա',
-	'math_lexing_error' => 'բառական սխալ',
-	'math_syntax_error' => 'շարահյուսության սխալ',
-	'math_image_error' => 'PNG վերածումը ձախողվեց. ստուգեք latex, dvips, gs և convert ծրագրերի տեղադրման ճշտությունը։',
-	'math_bad_tmpdir' => 'Չի հաջողվում ստեղծել կամ գրել մաթեմատիկայի ժամանակավոր թղթապանակին։',
-	'math_bad_output' => 'Չի հաջողվում ստեղծել կամ գրել մաթեմատիկայի արտածման թղթապանակին',
-	'math_notexvc' => 'Կատարման texvc նիշքը չի գտնվել։ Տեսեք math/README՝ կարգավորման համար։',
-);
-
-/** Interlingua (Interlingua)
- * @author McDutchie
- */
-$messages['ia'] = array(
-	'math_sample' => 'Inserer formula hic',
-	'math_tip' => 'Formula mathematic (LaTeX)',
-	'prefs-math' => 'Mathematica',
-	'mw_math_png' => 'Sempre producer PNG',
-	'mw_math_simple' => 'HTML si multo simple, alteremente PNG',
-	'mw_math_html' => 'HTML si possibile, alteremente PNG',
-	'mw_math_source' => 'Lassa lo como TeX (pro navigatores in modo texto)',
-	'mw_math_modern' => 'Recommendate pro navigatores moderne',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Error durante le analyse del syntaxe',
-	'math_unknown_error' => 'error incognite',
-	'math_unknown_function' => 'function incognite',
-	'math_lexing_error' => 'error lexic',
-	'math_syntax_error' => 'error de syntaxe',
-	'math_image_error' => 'Le conversion in PNG ha fallite;
-verifica le installation del programmas \'\'latex" e "dvipng" (o "dvips" + "gs" + \'\'convert\'\').',
-	'math_bad_tmpdir' => 'Non pote scriber in o crear le directorio temporari "math".',
-	'math_bad_output' => 'Non pote scriber in o crear le directorio de output "math".',
-	'math_notexvc' => "Le executabile ''texvc'' manca;
-per favor vide math/README pro configurar lo.",
-);
-
-/** Indonesian (Bahasa Indonesia)
- * @author IvanLanin
- */
-$messages['id'] = array(
-	'math_sample' => 'Masukkan rumus di sini',
-	'math_tip' => 'Rumus matematika (LaTeX)',
-	'prefs-math' => 'Matematika',
-	'mw_math_png' => 'Selalu buat PNG',
-	'mw_math_simple' => 'HTML jika sangat sederhana atau PNG',
-	'mw_math_html' => 'HTML jika mungkin atau PNG',
-	'mw_math_source' => 'Biarkan sebagai TeX (untuk penjelajah web teks)',
-	'mw_math_modern' => 'Disarankan untuk penjelajah web modern',
-	'mw_math_mathml' => 'MathML jika mungkin (percobaan)',
-	'math_failure' => 'Gagal memparse',
-	'math_unknown_error' => 'Kesalahan yang tidak diketahui',
-	'math_unknown_function' => 'fungsi yang tidak diketahui',
-	'math_lexing_error' => 'kesalahan lexing',
-	'math_syntax_error' => 'kesalahan sintaks',
-	'math_image_error' => 'Konversi PNG gagal; periksa apakah latex dan dvips (atau dvips + gs + convert) terinstal dengan benar',
-	'math_bad_tmpdir' => 'Tidak dapat menulisi atau membuat direktori sementara math',
-	'math_bad_output' => 'Tidak dapat menulisi atau membuat direktori keluaran math',
-	'math_notexvc' => 'Executable texvc hilang; silakan lihat math/README untuk cara konfigurasi.',
-);
-
-/** Interlingue (Interlingue)
- * @author Renan
- */
-$messages['ie'] = array(
-	'math_tip' => 'Formul mathematical (LaTeX)',
-);
-
-/** Igbo (Igbo)
- * @author Ukabia
- */
-$messages['ig'] = array(
-	'math_sample' => 'Tinyé zùbe ómárí ngá',
-	'math_tip' => 'Ihe ọtùtù ọmúmú-ónúọgụgụ (LaTeX)',
-	'prefs-math' => 'Ọmúmú-ónúọgụgụ',
-);
-
-/** Eastern Canadian (Unified Canadian Aboriginal Syllabics) (ᐃᓄᒃᑎᑐᑦ) */
-$messages['ike-cans'] = array(
-	'math_unknown_error' => 'ᑐᓴᐅᒪᔭᐅᙱᑐᖅ ᑕᒻᒪᓇᖅᑐᖅ',
-	'math_unknown_function' => 'ᑐᓴᐅᒪᔭᐅᙱᑐᖅ ᐃᓕᐅᕐᓂᖅ',
-);
-
-/**  () */
-$messages['ike-latn'] = array(
-	'math_unknown_error' => 'tusaumajaunngituq tammanaqtuq',
-	'math_unknown_function' => 'tusaumajaunngituq iliurniq',
-);
-
-/** Iloko (Ilokano)
- * @author Saluyot
- */
-$messages['ilo'] = array(
-	'math_sample' => 'Isulbong ti formula ditoy',
-	'math_tip' => 'Matematikal a formula (LaTeX)',
-	'prefs-math' => 'Math',
-	'mw_math_png' => 'Kanayon a pagbalinen a PNG',
-	'mw_math_source' => 'Ibati lattan a kas TeX (para kadagiti text browsers)',
-	'math_failure' => 'Napaay nga ag-parse',
-	'math_unknown_error' => 'di ammo a biddut',
-	'math_unknown_function' => 'di ammo a function',
-	'math_lexing_error' => 'lexing error',
-	'math_syntax_error' => 'biddut iti syntax',
-	'math_image_error' => 'Napaay ti PNG conversion;
-itsek ti husto a panangikapet iti latex, dvips, gs, samo i-convert',
-);
-
-/** Ido (Ido)
- * @author Lakaoso
- * @author Malafaya
- */
-$messages['io'] = array(
-	'math_sample' => 'Insertez formulo hike',
-	'math_tip' => 'Formulo matematika (LaTeX)',
-	'prefs-math' => 'Quale montrar la formuli',
-	'math_unknown_error' => 'nekonocata eroro',
-	'math_bad_tmpdir' => 'Onu ne povas skribar o krear la tempala matematikala arkivaro',
-	'math_bad_output' => 'Onu ne povas skribar o krear la arkivaro por la matematiko',
-);
-
-/** Icelandic (Íslenska)
- * @author Krun
- * @author S.Örvarr.S
- */
-$messages['is'] = array(
-	'math_sample' => 'Sláið inn formúlu hér',
-	'math_tip' => 'Stærðfræðiformúla (LaTeX)',
-	'prefs-math' => 'Stærðfræðiformúlur',
-	'mw_math_png' => 'Alltaf birta PNG mynd',
-	'mw_math_simple' => 'HTML fyrir einfaldar jöfnur annars PNG',
-	'mw_math_html' => 'HTML ef hægt er, annars PNG',
-	'mw_math_source' => 'Sýna TeX jöfnu (fyrir textavafra)',
-	'mw_math_modern' => 'Mælt með fyrir nýja vafra',
-	'mw_math_mathml' => 'MathML ef mögulegt (tilraun)',
-	'math_failure' => 'Þáttun mistókst',
-	'math_unknown_error' => 'óþekkt villa',
-	'math_unknown_function' => 'óþekkt virkni',
-	'math_lexing_error' => 'lestrarvilla',
-	'math_syntax_error' => 'málfræðivilla',
-);
-
-/** Italian (Italiano)
- * @author Beta16
- */
-$messages['it'] = array(
-	'math_sample' => 'Inserire qui la formula',
-	'math_tip' => 'Formula matematica (LaTeX)',
-	'prefs-math' => 'Formule matematiche',
-	'mw_math_png' => 'Mostra sempre in PNG',
-	'mw_math_simple' => 'HTML se molto semplice, altrimenti PNG',
-	'mw_math_html' => 'HTML se possibile, altrimenti PNG',
-	'mw_math_source' => 'Lascia in formato TeX (per browser testuali)',
-	'mw_math_modern' => 'Formato consigliato per i browser moderni',
-	'mw_math_mathml' => 'Usa MathML se possibile (sperimentale)',
-	'math_failure' => 'Errore del parser',
-	'math_unknown_error' => 'errore sconosciuto',
-	'math_unknown_function' => 'funzione sconosciuta',
-	'math_lexing_error' => 'errore lessicale',
-	'math_syntax_error' => 'errore di sintassi',
-	'math_image_error' => 'Conversione in PNG non riuscita; verificare che siano correttamente installati i seguenti programmi: latex e dvipng (o dvips, gs e convert).',
-	'math_bad_tmpdir' => 'Impossibile scrivere o creare la directory temporanea per math',
-	'math_bad_output' => 'Impossibile scrivere o creare la directory di output per math',
-	'math_notexvc' => 'Eseguibile texvc mancante; per favore consultare math/README per la configurazione.',
-);
-
-/** Japanese (日本語)
- * @author Ohgi
- * @author 青子守歌
- */
-$messages['ja'] = array(
-	'math_sample' => 'ここに数式を挿入',
-	'math_tip' => '数式 (LaTeX)',
-	'prefs-math' => '数式',
-	'mw_math_png' => '常にPNGで描画',
-	'mw_math_simple' => '簡単ならHTML、それ以外はPNG',
-	'mw_math_html' => '可能ならHTML、それ以外はPNG',
-	'mw_math_source' => 'TeXのまま(テキストブラウザー向け)',
-	'mw_math_modern' => '最新のブラウザーでの推奨',
-	'mw_math_mathml' => '可能ならMathML(試験中の機能)',
-	'math_failure' => '構文解析失敗',
-	'math_unknown_error' => '不明なエラー',
-	'math_unknown_function' => '不明な関数',
-	'math_lexing_error' => '字句解析エラー',
-	'math_syntax_error' => '構文エラー',
-	'math_image_error' => 'PNGへの変換に失敗しました。dvipng(もしくはdvipsとgsとconvert)およびlatexが正しくインストールされているか確認してください。',
-	'math_bad_tmpdir' => '数式一時ディレクトリーへの書き込みまたは作成ができません',
-	'math_bad_output' => '数式一時ディレクトリーへの書き込みまたは作成ができません',
-	'math_notexvc' => 'texvc実行可能プログラムが見つかりません。math/READMEを読んで設定してください。',
-);
-
-/** Jamaican Creole English (Jamaican Creole English)
- * @author Yocahuna
- */
-$messages['jam'] = array(
-	'math_sample' => 'Insoert faamiula yaso',
-	'math_tip' => 'Matimatikal faamiula (LaTeX)',
-);
-
-/** Jutish (Jysk)
- * @author Ælsån
- */
-$messages['jut'] = array(
-	'math_sample' => 'Endsæt åpstælsel her (LaTeX)',
-	'math_tip' => 'Matematisk åpstælsel (LaTeX)',
-);
-
-/** Javanese (Basa Jawa)
- * @author Meursault2004
- */
-$messages['jv'] = array(
-	'math_sample' => 'Lebokna rumus ing kéné',
-	'math_tip' => 'Rumus matematika (LaTeX)',
-	'prefs-math' => 'Matématika',
-	'mw_math_png' => 'Mesthi nggawé PNG',
-	'mw_math_simple' => 'HTML yèn prasaja banget utawa yèn ora PNG',
-	'mw_math_html' => 'HTML yèn bisa utawa PNG',
-	'mw_math_source' => 'Dijarna waé minangka TeX (kanggo panjlajah wèb tèks)',
-	'mw_math_modern' => 'Disaranaké kanggo panjlajah wèb modèrn',
-	'mw_math_mathml' => 'MathML yèn bisa (pracoban)',
-	'math_failure' => 'Gagal nglakoni parse',
-	'math_unknown_error' => 'Kaluputan sing ora dimangertèni',
-	'math_unknown_function' => 'fungsi sing ora dimangertèni',
-	'math_lexing_error' => "kaluputan ''lexing''",
-	'math_syntax_error' => "''syntax error'' (kaluputan sintaksis)",
-	'math_image_error' => 'Konversi PNG gagal; priksa apa latex, dvips, gs, lan convert wis diinstalasi sing bener',
-	'math_bad_tmpdir' => 'Ora bisa nulis utawa nggawé dirèktori sauntara math',
-	'math_bad_output' => 'Ora bisa nulis utawa nggawé dirèktori paweton math',
-	'math_notexvc' => 'Executable texvc ilang;
-mangga delengen math/README kanggo cara konfigurasi.',
-);
-
-/** Georgian (ქართული)
- * @author Alsandro
- * @author David1010
- * @author გიორგიმელა
- */
-$messages['ka'] = array(
-	'math_sample' => 'ჩასვით ფორმულა აქ',
-	'math_tip' => 'მათემატიკური ფორმულა (LaTeX)',
-	'prefs-math' => 'მათემატიკა',
-	'mw_math_png' => 'მუდამ გამოიყენე PNG',
-	'mw_math_simple' => 'HTML თუ მარტივია, სხვაგვარად PNG',
-	'mw_math_html' => 'HTML თუ შესაძლებელია, სხვაგვარად PNG',
-	'mw_math_source' => 'დატოვე როგორც TeX (ტექსტური ბრაუზერებისთვის)',
-	'mw_math_modern' => 'მიზანშეწონილია უფრო თანამედროვე ბრაუზერებისთვის',
-	'mw_math_mathml' => 'MathML თუ შესაძლებელია (ექსპერიმენტული)',
-	'math_failure' => 'შეუძლებელია გამონათქვამის გარჩევაშ',
-	'math_unknown_error' => 'უცნობი შეცდომა',
-	'math_unknown_function' => 'უცნობი ფუნქცია',
-	'math_lexing_error' => 'ლექსიკური შეცდომა',
-	'math_syntax_error' => 'სინტაქსი არასწორია',
-	'math_image_error' => 'PNG-ში გარდაქმნისას წარმოიშვა შეცდომა; შეამოწმეთ latex, dvips, gs და convert-ის დაყენების სისწორე',
-	'math_bad_tmpdir' => 'შეუძლებელია ჩანაწერის შექმნა მათემატიკურ დროებით კატალოგში',
-	'math_bad_output' => 'შეუძლებელია შექმნა ან ჩაწერა მათემატიკურ გამსვლელ კატალოგში',
-	'math_notexvc' => 'შემსრულებელი ფაილი texvc არ არის ნაპოვნი; იხ.math/README ინფორმაციისთვის.',
-);
-
-/** Kara-Kalpak (Qaraqalpaqsha)
- * @author Atabek
- * @author Jiemurat
- */
-$messages['kaa'] = array(
-	'math_sample' => "Usı jerge formulanı jazın'",
-	'math_tip' => 'Matematik formula (LaTeX)',
-	'prefs-math' => 'Formulalar',
-	'math_unknown_error' => "belgisiz qa'telik",
-	'math_unknown_function' => 'belgisiz funktsiya',
-	'math_lexing_error' => "leksikalıq qa'telik",
-	'math_syntax_error' => "sintaksikalıq qa'telik",
-);
-
-/** Kabyle (Taqbaylit)
- * @author Agurzil
- */
-$messages['kab'] = array(
-	'math_sample' => 'Ssekcem tasemselt dagi',
-	'math_tip' => 'Tasemselt tusnakt (LaTeX)',
-	'prefs-math' => 'Tusnakt',
-	'mw_math_png' => 'Daymen err-it PNG',
-	'mw_math_simple' => 'HTML ma yella amraḍi, ma ulac PNG',
-	'mw_math_html' => 'HTML ma yezmer neɣ PNG ma ulac',
-	'mw_math_source' => 'Eǧǧ-it s TeX (i browsers/explorateurs n weḍris)',
-	'mw_math_modern' => 'Mliḥ i browsers/explorateurs imaynuten',
-	'mw_math_mathml' => 'MathML ma yezmer (experimental)',
-	'math_failure' => 'Agul n tusnakt',
-	'math_unknown_error' => 'Agul mačči d aḍahri',
-	'math_unknown_function' => 'Tawuri mačči d taḍahrit',
-	'math_lexing_error' => 'Agul n tmawalt',
-	'math_syntax_error' => 'Agul n tseddast',
-	'math_image_error' => 'Abeddil ɣer PNG yexser; ssenqed installation n latex, dvips, gs, umbeɛd eg abeddel',
-	'math_bad_tmpdir' => 'Ur yezmir ara ad yaru ɣef/ɣer tusnakt n temp directory/dossier',
-	'math_bad_output' => 'Ur yezmir ara ad yaru ɣef/ɣer tusnakt n tuffɣa directory/dossier',
-	'math_notexvc' => "''texvc executable'' / ''executable texvc'' ulac-it; ẓer math/README akken a textareḍ isemyifiyen.",
-);
-
-/** Kabardian (Cyrillic) (Къэбэрдеибзэ / Qabardjajəbza (Cyrillic))
- * @author Bogups
- * @author Тамэ Балъкъэрхэ
- */
-$messages['kbd-cyrl'] = array(
-	'math_sample' => 'Мыбдеж формулэ итхэ',
-	'math_tip' => 'Математикэм тещIыхьауэ формулэ (LaTeX)',
-	'prefs-math' => 'формулэхэр гъэлъэгъуэн',
-);
-
-/** کھوار (کھوار)
- * @author Rachitrali
- */
-$messages['khw'] = array(
-	'math_sample' => 'فارمولو ھیارا درج کورے',
-	'math_tip' => ' ریاضیاتی صیغہ (LaTeX)',
-);
-
-/** Kirmanjki (Kırmancki)
- * @author Mirzali
- */
-$messages['kiu'] = array(
-	'math_sample' => 'İta formuli cıke',
-	'math_tip' => 'Formulê matematiki (formatê LaTeXi de)',
-	'prefs-math' => 'Mat',
-	'math_failure' => 'Analiz de xeta',
-	'math_unknown_error' => 'xeta nêzanaiye',
-	'math_unknown_function' => 'fonksiyono nêzanae',
-	'math_lexing_error' => 'xeta grameri',
-	'math_syntax_error' => 'xeta cumla',
-	'math_image_error' => "Werênaisê ''PNG''y de xeta biye;
-enstale-kerdena ''latex'', ''dvips'', ''gs'', u ''convert''i qontrol ke",
-	'math_bad_tmpdir' => "Sıma nêşikinê indeksê ''math temp''i de bınusê ya ki bıafernê",
-	'math_bad_output' => 'Sıma nêşikinê indeksê formulunê matematiki de bınusê ya ki bıafernê',
-	'math_notexvc' => "''Texvc''o gurênae çino;
-Serba areze-kerdene qaytê ''math/README''y ke.",
-);
-
-/** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬) */
-$messages['kk-arab'] = array(
-	'math_sample' => 'ورنەكتى مىندا ەنگىزىڭىز',
-	'math_tip' => 'ماتەماتىيكا ورنەگى (LaTeX)',
-	'prefs-math' => 'ورنەكتەر',
-	'mw_math_png' => 'ارقاشان PNG پىشىنىمەن كورسەتكىز',
-	'mw_math_simple' => 'ەگەر وتە قاراپايىم بولسا — HTML, ايتپەسە PNG',
-	'mw_math_html' => 'ەگەر ىقتىيمال بولسا — HTML, ايتپەسە PNG',
-	'mw_math_source' => 'بۇنى TeX پىشىمىندە قالدىر (ماتىندىك شولعىشتارعا)',
-	'mw_math_modern' => 'وسى زامانعى شولعىشتارىنا ۇسىنىلادى',
-	'mw_math_mathml' => 'ەگەر ىقتىيمال بولسا — MathML (سىناقتاما)',
-	'math_failure' => 'قۇرىلىمىن تالداتۋى ٴساتسىز ٴبىتتى',
-	'math_unknown_error' => 'بەلگىسىز قاتە',
-	'math_unknown_function' => 'بەلگىسىز جەتە',
-	'math_lexing_error' => 'ٴسوز كەنىنىڭ قاتەسى',
-	'math_syntax_error' => 'سويلەم جۇيەسىنىڭ قاتەسى',
-	'math_image_error' => 'PNG اۋدارىسى ٴساتسىز ٴبىتتى;
-latex, dvips, gs جانە convert باعدارلامالارىنىڭ دۇرىس ورناتۋىن تەكسەرىپ شىعىڭىز',
-	'math_bad_tmpdir' => 'math دەگەن ۋاقىتشا قالتاسىنا جازىلمادى, نە قالتا قۇرىلمادى',
-	'math_bad_output' => 'math دەگەن بەرىس قالتاسىنا جازىلمادى, نە قالتا قۇرىلمادى',
-	'math_notexvc' => 'texvc اتقارىلمالىسى تابىلمادى;
-باپتاۋ ٴۇشىن math/README قۇجاتىن قاراڭىز.',
-);
-
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
-$messages['kk-cyrl'] = array(
-	'math_sample' => 'Өрнекті мында енгізіңіз',
-	'math_tip' => 'Математика өрнегі (LaTeX)',
-	'prefs-math' => 'Өрнектер',
-	'mw_math_png' => 'Әрқашан PNG пішінімен көрсеткіз',
-	'mw_math_simple' => 'Егер өте қарапайым болса — HTML, әйтпесе PNG',
-	'mw_math_html' => 'Егер ықтимал болса — HTML, әйтпесе PNG',
-	'mw_math_source' => 'Бұны TeX пішімінде қалдыр (мәтіндік шолғыштарға)',
-	'mw_math_modern' => 'Осы заманғы шолғыштарына ұсынылады',
-	'mw_math_mathml' => 'Егер ықтимал болса — MathML (сынақтама)',
-	'math_failure' => 'Құрылымын талдатуы сәтсіз бітті',
-	'math_unknown_error' => 'белгісіз қате',
-	'math_unknown_function' => 'белгісіз жете',
-	'math_lexing_error' => 'сөз кенінің қатесі',
-	'math_syntax_error' => 'сөйлем жүйесінің қатесі',
-	'math_image_error' => 'PNG аударысы сәтсіз бітті;
-latex, dvips, gs және convert бағдарламаларының дұрыс орнатуын тексеріп шығыңыз',
-	'math_bad_tmpdir' => 'math деген уақытша қалтасына жазылмады, не қалта құрылмады',
-	'math_bad_output' => 'math деген беріс қалтасына жазылмады, не қалта құрылмады',
-	'math_notexvc' => 'texvc атқарылмалысы табылмады;
-баптау үшін math/README құжатын қараңыз.',
-);
-
-/** Kazakh (Latin) (Қазақша (Latin)) */
-$messages['kk-latn'] = array(
-	'math_sample' => 'Örnekti mında engiziñiz',
-	'math_tip' => 'Matematïka örnegi (LaTeX)',
-	'prefs-math' => 'Örnekter',
-	'mw_math_png' => 'Ärqaşan PNG pişinimen körsetkiz',
-	'mw_math_simple' => 'Eger öte qarapaýım bolsa — HTML, äýtpese PNG',
-	'mw_math_html' => 'Eger ıqtïmal bolsa — HTML, äýtpese PNG',
-	'mw_math_source' => 'Bunı TeX pişiminde qaldır (mätindik şolğıştarğa)',
-	'mw_math_modern' => 'Osı zamanğı şolğıştarına usınıladı',
-	'mw_math_mathml' => 'Eger ıqtïmal bolsa — MathML (sınaqtama)',
-	'math_failure' => 'Qurılımın taldatwı sätsiz bitti',
-	'math_unknown_error' => 'belgisiz qate',
-	'math_unknown_function' => 'belgisiz jete',
-	'math_lexing_error' => 'söz keniniñ qatesi',
-	'math_syntax_error' => 'söýlem jüýesiniñ qatesi',
-	'math_image_error' => 'PNG awdarısı sätsiz bitti;
-latex, dvips, gs jäne convert bağdarlamalarınıñ durıs ornatwın tekserip şığıñız',
-	'math_bad_tmpdir' => 'math degen waqıtşa qaltasına jazılmadı, ne qalta qurılmadı',
-	'math_bad_output' => 'math degen beris qaltasına jazılmadı, ne qalta qurılmadı',
-	'math_notexvc' => 'texvc atqarılmalısı tabılmadı;
-baptaw üşin math/README qujatın qarañız.',
-);
-
-/** Khmer (ភាសាខ្មែរ)
- * @author Chhorran
- * @author Lovekhmer
- * @author Thearith
- * @author គីមស៊្រុន
- * @author វ័ណថារិទ្ធ
- */
-$messages['km'] = array(
-	'math_sample' => 'បញ្ចូលរូបមន្ត​នៅទីនេះ',
-	'math_tip' => 'រូបមន្ត​គណិតវិទ្យា (LaTeX)',
-	'prefs-math' => 'គណិត',
-	'mw_math_png' => 'ជានិច្ចការជាPNG',
-	'mw_math_simple' => 'ជា HTML បើសាមញ្ញបំផុត ឬ ផ្ទុយទៅវិញ ជា PNG',
-	'mw_math_html' => 'ជា HTML បើអាចទៅរួច ឬ ផ្ទុយទៅវិញ ជា PNG',
-	'mw_math_source' => 'ទុកឱ្យនៅជា TeX (ចំពោះឧបករណ៍រាវរកអត្ថបទ)',
-	'mw_math_modern' => 'បានផ្តល់អនុសាសន៍ចំពោះកម្មវិធីរាវរកទំនើបៗ',
-	'mw_math_mathml' => 'MathML បើអាចទៅរួច (ពិសោធ)',
-	'math_failure' => 'បរាជ័យ​ក្នុង​ការ​ញែក​ចេញ​',
-	'math_unknown_error' => 'កំហុសមិនស្គាល់',
-	'math_unknown_function' => 'អនុគមន៍​មិន​ស្គាល់',
-	'math_lexing_error' => 'បញ្ហាក្នុងការអានតួអក្សរ',
-	'math_syntax_error' => 'កំហុសពាក្យសម្ព័ន្ធ',
-	'math_image_error' => 'ការបម្លែងជា PNG បានបរាជ័យ។
-សូមពិនិត្យមើលតើ latex និង dvips (ឬ dvips + gs + convert), បានដំឡើងត្រឹមត្រូវឬអត់',
-	'math_bad_tmpdir' => 'មិនអាចសរសេរទៅ ឬ បង្កើតថតឯកសារគណិតបណ្តោះអាសន្ន',
-	'math_bad_output' => 'មិនអាច សរសេរទៅ ឬ បង្កើត ថតឯកសារ គណិត ទិន្នផល',
-	'math_notexvc' => 'បាត់កម្មវិធី texvc។
-
-សូមមើលក្នុង math/README ដើម្បីធ្វើការកំណត់លំអិត។',
-);
-
-/** Kannada (ಕನ್ನಡ)
- * @author Shushruth
- */
-$messages['kn'] = array(
-	'math_sample' => 'ಇಲ್ಲಿ ಸೂತ್ರವನ್ನು ಅಳವಡಿಸಿ',
-	'math_tip' => 'ಗಣಿತ ಸೂತ್ರ (LaTeX)',
-	'prefs-math' => 'ಗಣಿತ',
-	'mw_math_png' => 'ಯಾವಾಗಲೂ PNG ಪ್ರಕಾರ ತೋರಿಸು',
-	'mw_math_simple' => 'ಸರಳವಾಗಿದ್ದಲ್ಲಿ HTML ಇಲ್ಲದಿದ್ದಲ್ಲಿ PNG',
-	'mw_math_html' => 'ಸಾಧ್ಯವಾದಲ್ಲಿ HTML ಇಲ್ಲದಿದ್ದರೆ PNG',
-	'math_unknown_error' => 'ತಿಳಿದಿಲ್ಲದ ದೋಷ',
-	'math_image_error' => 'PNGಗೆ ಬದಲಾವಣೆ ವಿಫಲವಾಯಿತು;
-latex, dvips, gs, ಸರಿಯಾಗಿ ಸ್ಥಾಪಿತವಾಗಿದೆಯೆ ಎಂದು ಖಾತ್ರಿ ಮಾಡಿ ಬದಲಾಯಿಸಿ',
-);
-
-/** Korean (한국어)
- * @author IRTC1015
- * @author Klutzy
- * @author Kwj2772
- * @author PuzzletChung
- */
-$messages['ko'] = array(
-	'math_sample' => '여기에 수식을 쓰세요',
-	'math_tip' => '수식(LaTeX)',
-	'prefs-math' => '수식',
-	'mw_math_png' => '항상 PNG로 표시',
-	'mw_math_simple' => '아주 간단한 것은 HTML로, 나머지는 PNG로',
-	'mw_math_html' => '가능한 한 HTML로, 나머지는 PNG로',
-	'mw_math_source' => 'TeX로 남겨둠 (텍스트 브라우저용)',
-	'mw_math_modern' => '최신 브라우저 사용자에게 권장',
-	'mw_math_mathml' => '가능하면 MathML로 (시험 중)',
-	'math_failure' => '해석 실패',
-	'math_unknown_error' => '알 수 없는 오류',
-	'math_unknown_function' => '알 수 없는 함수',
-	'math_lexing_error' => '어휘 오류',
-	'math_syntax_error' => '구문 오류',
-	'math_image_error' => 'PNG 변환 실패 - latex, dvipng(혹은 dvips, gs, convert)가 올바르게 설치되어 있는지 확인해 주세요.',
-	'math_bad_tmpdir' => '수식을 임시 폴더에 저장하거나 폴더를 만들 수 없습니다.',
-	'math_bad_output' => '수식을 출력 폴더에 저장하거나 폴더를 만들 수 없습니다.',
-	'math_notexvc' => '실행할 수 있는 texvc이 없습니다. 설정을 위해 math/README를 읽어 주세요.',
-);
-
-/** Komi-Permyak (Перем Коми)
- * @author Yufereff
- */
-$messages['koi'] = array(
-	'math_sample' => 'Пырт татчö формула',
-	'math_tip' => 'Математикаись формула',
-);
-
-/** Karachay-Balkar (Къарачай-Малкъар)
- * @author Iltever
- * @author Къарачайлы
- */
-$messages['krc'] = array(
-	'math_sample' => 'Формуланы бери салыгъыз',
-	'math_tip' => 'Математика формула (LaTeX формат)',
-	'prefs-math' => 'Математика белгиле',
-	'mw_math_png' => 'PNG сурат форматха кёчюргенлей тур',
-	'mw_math_simple' => 'Бек бош эсе HTML, тюл эсе PNG',
-	'mw_math_html' => 'Мадар бар эсе HTML, болмаса PNG',
-	'mw_math_source' => 'Тюрлендирмей TeX болуб къой (текст браузерле ючюн)',
-	'mw_math_modern' => 'Бусагъатдагъы браузерлеге ючюн теджеледи',
-	'mw_math_mathml' => 'Мадар бар эсе "MathML" (сынау опция)',
-	'math_failure' => 'Ангылашынамады',
-	'math_unknown_error' => 'билинмеген халат',
-	'math_unknown_function' => 'билинмеген функция',
-	'math_lexing_error' => 'лексика халат',
-	'math_syntax_error' => 'синтаксис халат',
-	'math_image_error' => 'PNG конвертация джетишимсиз болду; latex бла dvips джарашдырыуларына къарагъыз (неда dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Математиканы кёзюулю каталогуна не джазаргъа, неда къураргъа мадар джокъду',
-	'math_bad_output' => 'Математиканы чыгъыш каталогуна не джазар, неда къурар мадар джокъду',
-	'math_notexvc' => 'texvc файл табылмайды; джарашдырыр ючюн math/README-ге къара.',
-);
-
-/** Colognian (Ripoarisch)
- * @author Purodha
- */
-$messages['ksh'] = array(
-	'math_sample' => 'Heh schriev de Formel en „LaTeX“ Forrem eren',
-	'math_tip' => 'En mathematisch Formel',
-	'prefs-math' => 'Mathematisch Formele',
-	'mw_math_png' => 'Immer nor PNG aanzeije',
-	'mw_math_simple' => 'En einfache Fäll maach HTML, söns PNG',
-	'mw_math_html' => 'Maach HTML wann müjjelich, un söns PNG',
-	'mw_math_source' => 'Lohß et als TeX (jod för de Tex-Brausere)',
-	'mw_math_modern' => 'De bess Enstellung för de Brauser vun hück',
-	'mw_math_mathml' => 'Nemm „MathML“ wann müjjelich (em Probierstadium)',
-	'math_failure' => 'Fähler vum Parser',
-	'math_unknown_error' => 'Fähler, dä mer nit kenne',
-	'math_unknown_function' => 'en Funktion, die mer nit kenne',
-	'math_lexing_error' => 'Fähler beim Lexing',
-	'math_syntax_error' => 'Fähler en de Syntax',
-	'math_image_error' => 'Dat Ömwandele noh PNG es donevve jejange. Dun ens noh de richtije Enstallation luure bei <code lang="en">latex</code> un <code lang="en">dvips</code>, udder bei <code lang="en">dvips</code>, un <code lang="en">gs</code>, un <code lang="en">convert</code>.',
-	'math_bad_tmpdir' => 'Dat Zwescheverzeichnis för de mathematische Formele lööt sich nit aanläje oder nix eren schrieve. Dat es Dress. Sag et enem Wiki-Köbes oder enem ẞööver-Minsch.',
-	'math_bad_output' => 'Dat Verzeichnis för de mathematische Formele lööt sich nit aanläje oder mer kann nix eren schrieve. Dat es Dress. Sag et enem Wiki-Köbes oder enem ẞööver-Minsch.',
-	'math_notexvc' => 'Dat Projamm <code>texvc</code> haM_mer nit jefunge.
-Sag et enemWiki-Köbes, enem ẞööver-Minsch, oder luur ens en dä
-<code>math/README</code>.',
-);
-
-/** Kurdish (Latin) (Kurdî (Latin))
- * @author Bangin
- */
-$messages['ku-latn'] = array(
-	'math_sample' => 'Kurteristê matêmatîk li vir binivisîne',
-	'math_tip' => 'Kurteristê matêmatîk (LaTeX)',
-	'prefs-math' => 'TeX',
-	'mw_math_png' => 'Her caran wek PNG nîşanbide',
-	'mw_math_simple' => 'HTML eger asan be, wekî din PNG',
-	'mw_math_html' => 'HTML eger bibe, wekî din PNG',
-	'mw_math_source' => "Wek TeX bêle (ji browser'ên gotaran ra)",
-	'mw_math_modern' => "Baştir e ji browser'ên nuhtir",
-	'mw_math_mathml' => 'MathML eger bibe (ceribandin)',
-	'math_unknown_error' => 'şaşbûnekî nezanîn',
-	'math_image_error' => 'Wêşandana PNG nemeşî',
-);
-
-/** Cornish (Kernowek)
- * @author Kw-Moon
- */
-$messages['kw'] = array(
-	'math_sample' => 'Keworrewgh an furvel obma',
-	'math_tip' => 'Furvel galcoriethek (LaTeX)',
-);
-
-/** Kirghiz (Кыргызча) */
-$messages['ky'] = array(
-	'math_unknown_error' => 'белгисиз ката',
-);
-
-/** Latin (Latina)
- * @author Omnipaedista
- */
-$messages['la'] = array(
-	'math_sample' => 'Hic inscribe formulam',
-	'math_tip' => 'Formula mathematica (LaTeX)',
-	'prefs-math' => 'Interpretatio artis mathematicae',
-	'mw_math_png' => 'Semper vertere PNG',
-	'mw_math_simple' => 'HTML si admodum simplex, alioqui PNG',
-	'mw_math_html' => 'HTML si fieri potest, alioqui PNG',
-	'mw_math_source' => 'Stet ut TeX (pro navigatri texti)',
-	'mw_math_modern' => 'Commendatum pro navigatri recentes',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Excutare non potest',
-	'math_unknown_error' => 'error ignotus',
-	'math_unknown_function' => 'functio ignota',
-	'math_lexing_error' => 'erratum lexicale',
-	'math_syntax_error' => 'erratum syntaxis',
-);
-
-/** Ladino (Ladino)
- * @author Universal Life
- */
-$messages['lad'] = array(
-	'math_sample' => 'Escribe aquí una formula',
-	'math_tip' => 'Fórmula matemática (LaTeX)',
-	'prefs-math' => 'Fórmulas',
-);
-
-/** Luxembourgish (Lëtzebuergesch)
- * @author Robby
- */
-$messages['lb'] = array(
-	'math_sample' => 'Formel hei asetzen',
-	'math_tip' => 'Mathematesch Formel (LaTeX)',
-	'prefs-math' => 'Math/TeX',
-	'mw_math_png' => 'Ëmmer als PNG duerstellen',
-	'mw_math_simple' => 'Einfachen TeX als HTML duerstellen, soss PNG',
-	'mw_math_html' => 'Wa méiglech als HTML duerstellen, soss PNG',
-	'mw_math_source' => 'Als TeX loossen (fir Textbrowser)',
-	'mw_math_modern' => 'Recommandéiert fir modern Browser',
-	'mw_math_mathml' => 'MathML wa méiglech (experimentell)',
-	'math_failure' => 'Parser-Feeler',
-	'math_unknown_error' => 'Onbekannte Feeler',
-	'math_unknown_function' => 'Onbekannte Funktioun',
-	'math_lexing_error' => "'Lexing'-Feeler",
-	'math_syntax_error' => 'Syntaxfeeler',
-	'math_image_error' => "D'PNG-Konvertéierung huet net fonctionnéiert;
-iwwerpréift déi korrekt Installatioun vu LaTeX an dvipng (oder dvips + gs + convert)",
-	'math_bad_tmpdir' => 'Den temporäre Repertire fir mathematesch Formele kann net ugeluecht ginn oder et kann näischt do gespäichert ginn.',
-	'math_bad_output' => 'Den Zilrepertoire fir mathematesch Formele kann net ugeluecht ginn oder et kann näischt do gespäichert ginn.',
-	'math_notexvc' => 'Den texvc Programm feelt: Liest w.e.g. math/README fir en anzestellen.',
-);
-
-/** Lingua Franca Nova (Lingua Franca Nova)
- * @author Cgboeree
- */
-$messages['lfn'] = array(
-	'math_sample' => 'Introdui formula asi',
-	'math_tip' => 'Formula matematical (LaTeX)',
-	'prefs-math' => 'Matematica',
-);
-
-/** Ganda (Luganda)
- * @author Kizito
- */
-$messages['lg'] = array(
-	'math_sample' => 'Wandika wano fomula yo',
-	'math_tip' => "Bw'onyiga wano, ofuna w'osobolera okuwandika fomula ey'okubala. Okugiwandika, olina okukozesa empandika ey'enkola ya LaTeX.",
-);
-
-/** Limburgish (Limburgs)
- * @author Ooswesthoesbes
- * @author Pahles
- */
-$messages['li'] = array(
-	'math_sample' => 'Veur de formule in',
-	'math_tip' => 'Wiskóndige formule (LaTeX)',
-	'prefs-math' => 'Mattemetik rendere',
-	'mw_math_png' => 'Ummer PNG rendere',
-	'mw_math_simple' => 'HTML in erg simpele gevalle en angesj PNG',
-	'mw_math_html' => 'HTML woe meugelik en angesj PNG',
-	'mw_math_source' => 'Laot de TeX code sjtaon (vuur tèksbrowsers)',
-	'mw_math_modern' => 'Aangeroaje vuur nuui browsers',
-	'mw_math_mathml' => 'MathML woe meugelik (experimenteil)',
-	'math_failure' => 'Parse misluk',
-	'math_unknown_error' => 'onbekènde fout',
-	'math_unknown_function' => 'onbekènde functie',
-	'math_lexing_error' => 'lexicografische fout',
-	'math_syntax_error' => 'fout vanne syntax',
-	'math_image_error' => 'PNG-conversie is mislök. Gank nao of LaTeX en dvipng (of dvips + gs + convert) korrek geïnstalleerd zien.',
-	'math_bad_tmpdir' => 'De map veur tiedelike bestenj veur wiskóndige formules bestuit neet of kin neet gemaak waere',
-	'math_bad_output' => 'Kin neet sjrieve nao de output directory veur mattematik',
-	'math_notexvc' => "Kin 't programma texvc neet vinje; stel alles in volges de besjrieving in math/README.",
-);
-
-/** Líguru (Líguru)
- * @author ZeneizeForesto
- */
-$messages['lij'] = array(
-	'math_sample' => 'Inserî a formûla chì',
-	'math_tip' => 'Fórmûla matemattica (LaTeX)',
-);
-
-/** Līvõ kēļ (Līvõ kēļ)
- * @author Warbola
- */
-$messages['liv'] = array(
-	'math_sample' => 'Kēratigid formula tǟnõ',
-	'math_tip' => 'Matemātili formula (LaTeX)',
-);
-
-/** Lumbaart (Lumbaart)
- * @author Insübrich
- */
-$messages['lmo'] = array(
-	'math_sample' => 'Met dent una furmula chì',
-	'math_tip' => 'Furmula matematega (LaTeX)',
-	'prefs-math' => 'Matem',
-	'mw_math_png' => 'Trasfurmá sempər in PNG',
-	'mw_math_simple' => 'HTML se mia cumplicaa altrimeent PNG',
-	'mw_math_html' => 'HTML se l è pussíbil altrimeent PNG',
-	'mw_math_source' => 'Lassá in furmaa TeX (pər i prugráma də navigazziún dumá in furmaa da testu)',
-	'mw_math_modern' => 'Racumandaa pər i bigatt püssè reçeent',
-	'mw_math_mathml' => 'MathML se l è pussíbil (sperimentaal)',
-);
-
-/** Lao (ລາວ)
- * @author Tuinui
- */
-$messages['lo'] = array(
-	'math_sample' => 'ໃສ່ສູດຢູ່ນີ້',
-	'math_tip' => 'ສູດຄະນິດສາດ (LaTeX)',
-	'prefs-math' => 'ຄະນິດສາດ',
-	'math_syntax_error' => 'ຜິດຫຼັກໄວຍະກອນ',
-);
-
-/** Lozi (Silozi)
- * @author Ooswesthoesbes
- */
-$messages['loz'] = array(
-	'math_sample' => 'Sebu di fomula',
-	'math_tip' => 'Fomula di mat (LaTeX)',
-	'prefs-math' => 'Mat',
-);
-
-/** Lithuanian (Lietuvių)
- * @author Perkunas
- */
-$messages['lt'] = array(
-	'math_sample' => 'Įveskite formulę',
-	'math_tip' => 'Matematinė formulė (LaTeX formatu)',
-	'prefs-math' => 'Matematika',
-	'mw_math_png' => 'Visada formuoti PNG',
-	'mw_math_simple' => 'HTML paprastais atvejais, kitaip - PNG',
-	'mw_math_html' => 'HTML kai įmanoma, kitaip - PNG',
-	'mw_math_source' => 'Palikti TeX formatą (tekstinėms naršyklėms)',
-	'mw_math_modern' => 'Rekomenduojama modernioms naršyklėms',
-	'mw_math_mathml' => 'MathML jei įmanoma (eksperimentinis)',
-	'math_failure' => 'Nepavyko apdoroti',
-	'math_unknown_error' => 'nežinoma klaida',
-	'math_unknown_function' => 'nežinoma funkcija',
-	'math_lexing_error' => 'leksikos klaida',
-	'math_syntax_error' => 'sintaksės klaida',
-	'math_image_error' => 'PNG konvertavimas nepavyko; patikrinkite, ar teisingai įdiegta latex ir dvipng (arba dvips, gs ir convert)',
-	'math_bad_tmpdir' => 'Nepavyksta sukurti arba rašyti į matematikos laikinąjį aplanką',
-	'math_bad_output' => 'Nepavyksta sukurti arba rašyti į matematikos išvesties aplanką',
-	'math_notexvc' => 'Trūksta texvc vykdomojo failo; pažiūrėkite math/README kaip konfigūruoti.',
-);
-
-/** Latgalian (Latgaļu)
- * @author Jureits
- */
-$messages['ltg'] = array(
-	'math_sample' => 'Formulu īrokst ite',
-	'math_tip' => 'Matematiska formula (LaTeX)',
-);
-
-/** Latvian (Latviešu)
- * @author Marozols
- * @author Yyy
- */
-$messages['lv'] = array(
-	'math_sample' => 'Šeit ievieto formulu',
-	'math_tip' => 'Matemātikas formula (LaTeX)',
-	'prefs-math' => 'Formulas',
-	'mw_math_png' => 'Vienmēr attēlot PNG',
-	'mw_math_simple' => 'HTML, ja ļoti vienkārši, vai arī PNG',
-	'mw_math_html' => 'HTML, ja iespējams, vai arī PNG',
-	'mw_math_source' => 'Saglabāt kā TeX (teksta pārlūkiem)',
-	'mw_math_modern' => 'Moderniem pārlūkiem ieteiktais variants',
-	'mw_math_mathml' => 'MathML, ja iespējams (eksperimentāla iespēja)',
-	'math_failure' => 'Pārsēšanas kļūda',
-	'math_unknown_error' => 'nezināma kļūda',
-	'math_unknown_function' => 'nezināma funkcija',
-	'math_lexing_error' => 'leksikas kļūda',
-	'math_syntax_error' => 'sintakses kļūda',
-	'math_image_error' => 'Kļūda konvertējot uz PNG formātu;
-pārbaudi vai ir korekti uzinstalēti latex, dvips, gs, un convert',
-);
-
-/** Literary Chinese (文言) */
-$messages['lzh'] = array(
-	'math_sample' => '此書方程式',
-	'math_tip' => '數學方程式(LaTeX)',
-	'prefs-math' => '數學',
-	'mw_math_png' => '屢作PNG',
-	'mw_math_simple' => '易為則作HTML,否則PNG',
-	'mw_math_html' => '堪為則作HTML,否則PNG',
-	'mw_math_source' => 'TeX依舊,純文覽器適也。',
-	'mw_math_modern' => '今之覽器此薦。',
-	'mw_math_mathml' => '實驗者,堪為則作MathML。',
-	'math_failure' => '譯不成',
-	'math_unknown_error' => '未知之誤',
-	'math_unknown_function' => '未知函式',
-	'math_lexing_error' => '律有誤',
-	'math_syntax_error' => '語法有誤',
-	'math_image_error' => 'PNG 轉敗之;查已裝 latex, dvipng(或dvips + gs + convert)乎',
-	'math_bad_tmpdir' => '無寫或建數式臨目',
-	'math_bad_output' => '無寫或建數式出目',
-	'math_notexvc' => '少「texvc」;參 math/README 置之。',
-);
-
-/** Lazuri (Lazuri)
- * @author Bombola
- */
-$messages['lzz'] = array(
-	'math_sample' => 'Matematʼikuri-ifade-doçʼarit',
-	'math_tip' => 'Matʼematʼikuri formuli (LaTeX)',
-);
-
-/** Maithili (मैथिली)
- * @author Ggajendra
- * @author Vinitutpal
- */
-$messages['mai'] = array(
-	'math_sample' => 'सूत्र समाहित करू',
-	'math_tip' => 'गणितीय सूत्र (LaTeX)',
-	'prefs-math' => 'गणित',
-);
-
-/** Moksha (Мокшень)
- * @author Jarmanj Turtash
- * @author Kranch
- * @author Numulunj pilgae
- */
-$messages['mdf'] = array(
-	'math_sample' => 'Сувафтомс тязк формула',
-	'math_tip' => 'Математиконь формула (LaTeX)',
-	'prefs-math' => 'Няфтемс формулат',
-	'mw_math_png' => 'Фалу ладямс PNG',
-	'mw_math_simple' => 'HTML кда пяк тёждя илякс PNG',
-	'mw_math_html' => 'HTML кда ули кода илякс PNG',
-	'mw_math_source' => 'Катк тянь кода TeX (текстонь вальманди)',
-	'mw_math_modern' => 'Пароль тяниень пингонь содама машинатнень вальмаснонды',
-	'mw_math_mathml' => 'MathML коса ули кода (экспериментокс)',
-	'math_failure' => 'Аф морафтови',
-	'math_unknown_error' => 'аф содаф эльбятькс',
-	'math_unknown_function' => 'аф содаф функцие',
-	'math_lexing_error' => 'лексиконь эльбятькс',
-	'math_syntax_error' => 'синтаксонь эльбятькс',
-	'math_image_error' => 'PNG форматс сёрматфтомась изь лисев; ватт лац эли аф арафтовсть latex, dvips, gs эди convert',
-	'math_bad_tmpdir' => 'Аф сёрматфтови ётконь математик директориес эди директориесь аф тиеви',
-	'math_bad_output' => 'Аф сёрматфтови нолдамань математик директориес эди директориесь аф тиеви',
-	'math_notexvc' => 'Нолдамань файл texvc изь мув; Ванк math/README ладямать колга.',
-);
-
-/** Malagasy (Malagasy)
- * @author Jagwar
- */
-$messages['mg'] = array(
-	'math_sample' => 'Atsofohy eto ny raikipohy',
-	'math_tip' => 'Raikipohy matematika (LaTeX)',
-	'prefs-math' => 'Math',
-	'mw_math_png' => 'Anamboary sary PNG foana',
-	'mw_math_simple' => 'Raha tena tsotra be dia HTML ampiasaina moa raha tsy izany dia PNG',
-	'mw_math_html' => 'HTML raha mety na raha tsy izany dia PNG',
-	'mw_math_source' => "
-Avelao ho TeX (ho an'ny navigateurs textes)",
-	'mw_math_modern' => "
-Amporisihina ho an'ny navigateur moderna",
-	'mw_math_mathml' => 'MathML raha mety (andrana ihany)',
-	'math_failure' => 'Tsy nety ny fanodinana ny raikipohy',
-	'math_unknown_error' => 'tsy fahatomombanana tsy hay antony',
-	'math_unknown_function' => 'fonction tsy fantatra',
-	'math_lexing_error' => 'fahadisoana ara-teny',
-	'math_syntax_error' => 'Misy diso ny raikipohy',
-	'math_image_error' => 'Tsy voavadika ho PNG; hamarino fa mety voapetraka tsara ny rindrankajy latex, dvips, gs ary convert',
-	'math_bad_tmpdir' => "Tsy afaka namorona na nanoratra répertoire vonjimaika ho an'ny matematika",
-	'math_bad_output' => "Tsy afaka namorona na nanoratra tao amin'ny répertoire hampiasain'ny asa matematika",
-	'math_notexvc' => 'Tsy hita ny rindrankajy texvc; azafady jereo math/README hanamboarana azy.',
-);
-
-/** Eastern Mari (Олык Марий)
- * @author Сай
- */
-$messages['mhr'] = array(
-	'math_sample' => 'Формулым тышке шынде',
-	'math_tip' => 'Математик формул (LaTeX)',
-	'prefs-math' => 'Формуло-влак',
-	'mw_math_png' => 'Эре PNG-ым генерироватлаш',
-	'mw_math_simple' => 'Тыглай годым - HTML, уке гын - PNG',
-	'mw_math_html' => 'Лиеш гын - HTML, уке гын - PNG',
-	'mw_math_source' => 'TeX-ым разметкыште кодаш (текст браузер-влаклан)',
-	'mw_math_modern' => 'Кызытлык (у) брузер-влаклан темлыме',
-	'mw_math_mathml' => 'Лиеш гын - MathML (эксперимент опций)',
-);
-
-/** Minangkabau (Baso Minangkabau)
- * @author VoteITP
- */
-$messages['min'] = array(
-	'math_sample' => 'Masuakkan rumus di siko',
-	'math_tip' => 'Rumus matematika (LaTeX)',
-);
-
-/** Macedonian (Македонски)
- * @author Bjankuloski06
- */
-$messages['mk'] = array(
-	'math_sample' => 'Овде вметни формула',
-	'math_tip' => 'Математичка формула (LaTeX)',
-	'prefs-math' => 'Матем. формули',
-	'mw_math_png' => 'Секогаш исцртувај во PNG',
-	'mw_math_simple' => 'HTML ако е многу едноставно, а инаку во PNG',
-	'mw_math_html' => 'HTML ако е можно, ако не PNG',
-	'mw_math_source' => 'Остави го како TeX (за текстуални прелистувачи)',
-	'mw_math_modern' => 'Препорачливо за современи прелистувачи',
-	'mw_math_mathml' => 'MathML ако е можно (експериментално)',
-	'math_failure' => 'Не можев да парсирам',
-	'math_unknown_error' => 'непозната грешка',
-	'math_unknown_function' => 'непозната функција',
-	'math_lexing_error' => 'лексичка грешка',
-	'math_syntax_error' => 'синтаксна грешка',
-	'math_image_error' => 'Претворањето во PNG не успеа. Проверете дали правилно ги имате инсталирано latex и dvipng (или dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Не можам да запишам во или да создадам привремен директориум за математички операции',
-	'math_bad_output' => 'Не можев да запишам во или создадам излезен директориум математички операции',
-	'math_notexvc' => 'Недостасува извршната податотека texvc;
-погледнете math/README за нејзино нагодување.',
-);
-
-/** Malayalam (മലയാളം)
- * @author Praveenp
- * @author Sadik Khalid
- * @author Shijualex
- */
-$messages['ml'] = array(
-	'math_sample' => 'ഇവിടെ സൂത്രവാക്യം ചേർക്കുക',
-	'math_tip' => 'ഗണിതസൂത്രവാക്യം (LaTeX)',
-	'prefs-math' => 'സമവാക്യം',
-	'mw_math_png' => 'എപ്പോഴും PNG ആയി പ്രദർശിപ്പിക്കുക',
-	'mw_math_simple' => 'വളരെ ലളിതമാണെങ്കിൽ HTML അല്ലെങ്കിൽ PNG',
-	'mw_math_html' => 'പറ്റുമെങ്കിൽ HTML അല്ലെങ്കിൽ PNG',
-	'mw_math_source' => 'TeX ആയി തന്നെ പ്രദർശിപ്പിക്കുക (ടെക്സ്റ്റ് ബ്രൗസറുകൾക്ക്)',
-	'mw_math_modern' => 'ആധുനിക ബ്രൗസറുകൾക്കായി നിർദേശിക്കപ്പെട്ടത്',
-	'mw_math_mathml' => 'പറ്റുമെങ്കിൽ MathML (പരീക്ഷണാടിസ്ഥാനം)',
-	'math_failure' => 'പാഴ്സ് ചെയ്യൽ പരാജയപ്പെട്ടു',
-	'math_unknown_error' => 'അപരിചിതമായ പിഴവ്',
-	'math_unknown_function' => 'അജ്ഞാതമായ ഫങ്ങ്ഷൻ',
-	'math_lexing_error' => 'ലെക്സിങ് പിഴവ്',
-	'math_syntax_error' => 'തെറ്റായ പദവിന്യാസം',
-	'math_image_error' => 'PNG രൂപത്തിലേയ്ക്കുള്ള മാറ്റം പരാജയപ്പെട്ടു;
-latex, dvips,എന്നിവ ശരിയായാണോ ഇൻസ്റ്റോൾ ചെയ്തിരിക്കുന്നതെന്നു പരിശോധിക്കുക (അഥവാ dvips + gs +convert)',
-	'math_bad_tmpdir' => 'math temp ഡയറക്ടറി ഉണ്ടാക്കാനോ അതിലേക്കു എഴുതാനോ സാധിച്ചില്ല',
-	'math_bad_output' => 'math output ഡയറക്ടറി ഉണ്ടാക്കാനോ അതിലേക്കു എഴുതാനോ സാധിച്ചില്ല',
-	'math_notexvc' => 'പ്രവർത്തനസജ്ജമായ texvc ലഭ്യമല്ല;
-സജ്ജീകരിച്ചെടുക്കാനുള്ള സഹായത്തിനു ദയവായി math/README കാണുക.',
-);
-
-/** Mongolian (Монгол)
- * @author Chinneeb
- */
-$messages['mn'] = array(
-	'math_sample' => 'Энд томъёогоо оруулна уу',
-	'math_tip' => 'Математикийн томъёо (LaTeX)',
-	'prefs-math' => 'Томъёонууд',
-	'mw_math_png' => 'Байнга PNG болго',
-	'mw_math_simple' => 'Хялбар бол HTML, үгүй бол PNG',
-	'mw_math_html' => 'Болвол HTML, үгүй бол PNG',
-	'mw_math_source' => 'TeX хэвээр үлдээх (текстэн броузеруудад)',
-	'mw_math_modern' => 'Сүүлийн үеийн браузер хэрэглэхийг зөвлөж байна/Интернет хөтлөгчийн шинэ хувилбаруудад зориулсан.',
-	'mw_math_mathml' => 'Бололцоотой бол MathML (туршилт)',
-	'math_failure' => 'Задлан ялгал хийж чадсангүй',
-	'math_unknown_error' => 'үл мэдэгдэх алдаа',
-	'math_unknown_function' => 'үл мэдэгдэх функц',
-	'math_lexing_error' => 'лекслэхэд алдаа гарлаа',
-	'math_syntax_error' => 'синтаксийн алдаа',
-	'math_image_error' => 'PNG руух хувиргал амжилтгүй боллоо;
-latex, dvips, gs, convert-г зөв суулгасан эсэхийг шалгана уу',
-	'math_bad_tmpdir' => 'Математикийн түр зуурын каталогыг үүсгэх, эсвэл түүн руу хуулж чадсангүй',
-	'math_bad_output' => 'Математикийн гадагшлуулах каталогыг үүсгэх, эсвэл түүн руу хуулж чадсангүй',
-	'math_notexvc' => 'texvc программ олдохгүй байна;
-math/README-г уншиж тохируулна уу.',
-);
-
-/** Moldavian (Молдовеняскэ)
- * @author Node ue
- */
-$messages['mo'] = array(
-	'math_sample' => 'Интроду формула аичь',
-	'math_tip' => 'Формулэ математикэ (LaTeX)',
-);
-
-/** Marathi (मराठी)
- * @author Htt
- * @author Kaustubh
- * @author Mahitgar
- */
-$messages['mr'] = array(
-	'math_sample' => 'इथे सूत्र लिहा',
-	'math_tip' => 'गणितीय सूत्र (LaTeX)',
-	'prefs-math' => 'गणित',
-	'mw_math_png' => 'नेहमीच पीएनजी (PNG) रेखाटा',
-	'mw_math_simple' => 'सुलभ असल्यास एचटीएमएल (HTML); अन्यथा पीएनजी (PNG)',
-	'mw_math_html' => 'शक्य असल्यास एचटीएमएल (HTML); अन्यथा पीएनजी (PNG)',
-	'mw_math_source' => '(टेक्स्ट विचरकांकरिता)त्यास TeX म्हणून सोडून द्या',
-	'mw_math_modern' => 'आधूनिक विचरकांकरिता सूचवलेले',
-	'mw_math_mathml' => 'शक्य असल्यास मॅथ एमएल (MathML) (प्रयोगावस्था)',
-	'math_failure' => 'पृथक्करणात अयशस्वी',
-	'math_unknown_error' => 'अपरिचित त्रूटी',
-	'math_unknown_function' => 'अज्ञात कार्य',
-	'math_lexing_error' => 'लेक्झींग(कोशीय?)त्रूटी',
-	'math_syntax_error' => 'आज्ञावली-विन्यास त्रूटी',
-	'math_image_error' => 'पीएनजी रुपांतर अयशस्वी; लॅटेक्स, डीव्हीप्स, जीएसची  स्थापना योग्य झाली आहे काय ते तपासा आणि बदल करा',
-	'math_bad_tmpdir' => '"गणितीय तूर्त धारिके"(math temp directory)ची  निर्मीती करू शकत नाही अथवा "मॅथ तूर्त धारिकेत" लिहू शकत नाही .',
-	'math_bad_output' => 'गणितीय प्राप्त धारिकेची( math output directory) निर्मीती अथवा त्यात लेखन करू शकत नाही.',
-	'math_notexvc' => 'texvcकरणी(texvc एक्झिक्यूटेबल)चूकमुकली आहे;कृपया,सज्जीत करण्याकरिता math/README पहा.',
-);
-
-/** Hill Mari (Кырык мары)
- * @author Amdf
- */
-$messages['mrj'] = array(
-	'math_sample' => 'Тишкӹ формулым шӹндӹдӓ',
-	'math_tip' => 'Математика формула (формат LaTeX)',
-);
-
-/** Malay (Bahasa Melayu)
- * @author Aviator
- * @author CoolCityCat
- * @author Kurniasan
- */
-$messages['ms'] = array(
-	'math_sample' => 'Masukkan rumus di sini',
-	'math_tip' => 'Rumus matematik (LaTeX)',
-	'prefs-math' => 'Matematik',
-	'mw_math_png' => 'Sentiasa lakar PNG',
-	'mw_math_simple' => 'HTML jika ringkas, sebaliknya PNG',
-	'mw_math_html' => 'HTML jika boleh, sebaliknya PNG',
-	'mw_math_source' => 'Biarkan sebagai TeX (untuk pelayar teks)',
-	'mw_math_modern' => 'Dicadangkan untuk pelayar moden',
-	'mw_math_mathml' => 'MathML jika boleh (sedang dalam uji kaji)',
-	'math_failure' => 'Gagal menghurai',
-	'math_unknown_error' => 'ralat yang tidak dikenali',
-	'math_unknown_function' => 'fungsi yang tidak dikenali',
-	'math_lexing_error' => "ralat ''lexing''",
-	'math_syntax_error' => 'ralat sintaks',
-	'math_image_error' => 'Penukaran PNG gagal; periksa sama ada latex dan dvipng (atau dvips + gs + convert) telah dipasang dengan betul',
-	'math_bad_tmpdir' => 'Direktori temp matematik tidak boleh ditulis atau dicipta',
-	'math_bad_output' => 'Direktori output matematik tidak boleh ditulis atau dicipta',
-	'math_notexvc' => 'Atur cara texvc hilang; sila lihat fail math/README untuk maklumat konfigurasi.',
-);
-
-/** Maltese (Malti)
- * @author Chrisportelli
- * @author Giangian15
- */
-$messages['mt'] = array(
-	'math_sample' => 'Daħħal formula hawnhekk',
-	'math_tip' => 'Formula matematika (LaTeX)',
-	'prefs-math' => 'Formuli matematiċi',
-	'mw_math_png' => "Uri dejjem f'PNG",
-	'mw_math_simple' => 'HTML jekk sempliċi ħafna, inkella PNG',
-	'mw_math_html' => 'HTML jekk possibli inkella PNG',
-	'mw_math_source' => "Ħallija bħala TeX (għal browsers ta' test)",
-	'mw_math_modern' => 'Format rakkomandat għall-browsers moderni',
-	'mw_math_mathml' => 'MathML jekk possibli (esperimentali)',
-	'math_failure' => "Problema fil-''parser''",
-	'math_unknown_error' => 'Problema mhux magħrufa',
-	'math_unknown_function' => 'funżjoni mhux magħrufa',
-	'math_lexing_error' => 'żball lessikali',
-	'math_syntax_error' => 'żball fis-sintassi',
-	'math_image_error' => "Konverżjoni għal PNG bla suċċess; verifika li huma installati tajjeb il-programmi segwenti: ''latex, dvips, gs, u convert''",
-	'math_bad_tmpdir' => "Impossibli tikteb jew toħloq direttorju temporanju għal ''math''",
-	'math_bad_output' => "Impossibli tikteb jew toħloq direttorju tal-''output'' tal-''math''",
-	'math_notexvc' => "Esekuzzjoni ''texvc'' nieqes; jekk jogħġbok konsultà ''math/README'' għal konfigurazzjoni.",
-);
-
-/** Mirandese (Mirandés)
- * @author Cecílio
- * @author MCruz
- */
-$messages['mwl'] = array(
-	'math_sample' => 'Poner fórmula eiqui',
-	'math_tip' => 'Fórmula matemática (LaTeX)',
-	'prefs-math' => 'Matemática',
-);
-
-/** Burmese (မြန်မာဘာသာ)
- * @author Hintha
- * @author Lionslayer
- */
-$messages['my'] = array(
-	'math_sample' => 'ဤနေရာတွင် သင်္ချာပုံသေနည်း သုံးရန်',
-	'math_tip' => 'သင်္ချာပုံသေနည်း (LaTeX)',
-	'prefs-math' => 'သင်္ချာ',
-	'mw_math_png' => 'PNG ဖိုင်အဖြစ် အမြဲပုံဖော်ရန်',
-	'mw_math_simple' => 'လွန်စွာရိုးရှင်းပါက HTML အဖြစ် သို့မဟုတ်ပါက PNG အဖြစ်',
-	'mw_math_html' => 'ဖြစ်နိုင်လျှင် HTML သို့မဟုတ်ပါက PNG အဖြစ်',
-	'mw_math_source' => 'TeX အဖြစ်ထားခဲ့ပါ (စာသားသာပြသည့် ဘရောက်ဇာများအတွက်)',
-	'mw_math_modern' => 'ခေတ်ပေါ်ဘရောက်ဇာများအတွက် အကြံပြုသည်',
-	'math_unknown_error' => 'အမည်မသိ အမှား',
-	'math_unknown_function' => 'အမည်မသိ ဖန်ရှင်',
-);
-
-/** Erzya (Эрзянь)
- * @author Amdf
- * @author Botuzhaleny-sodamo
- */
-$messages['myv'] = array(
-	'math_sample' => 'Совавтомс тезэнь хвормула',
-	'math_tip' => 'Математикань хвормула (LaTeX)',
-	'prefs-math' => 'Математика',
-	'mw_math_simple' => 'HTML зярдо вельть шожда, лиякс PNG',
-	'mw_math_html' => 'HTML, те тееви, теик, лиякс PNG',
-	'mw_math_source' => 'Кадык TeX хорматсо (текст вальмас)',
-	'mw_math_modern' => 'Арьсезь неень шкань содый машинань вальмас',
-	'mw_math_mathml' => 'MathML косо ули кода (варчамонь)',
-	'math_failure' => 'А ловнови',
-	'math_unknown_error' => 'апак содань ильведькс',
-	'math_unknown_function' => 'апак содань функция',
-	'math_lexing_error' => 'лексиконь манявкс',
-	'math_syntax_error' => 'синтаксонь ильведевкс',
-);
-
-/** Mazanderani (مازِرونی)
- * @author Ali1986
- */
-$messages['mzn'] = array(
-	'math_sample' => 'فورمـول ره ایجـه دأکـه‌ن',
-	'math_tip' => 'ریاضی فورمول',
-);
-
-/** Nahuatl (Nāhuatl)
- * @author Fluence
- */
-$messages['nah'] = array(
-	'math_sample' => 'Xihcuiloa nicān',
-	'math_tip' => 'Tlapōhualmatiliztlahtōl (LaTeX)',
-	'prefs-math' => 'Tlapōhualmatiliztli',
-);
-
-/** Min Nan Chinese (Bân-lâm-gú)
- * @author Ianbu
- */
-$messages['nan'] = array(
-	'math_sample' => 'Chia siá hong-thêng-sek',
-	'math_tip' => '數學的公式 (LaTeX)',
-	'prefs-math' => 'Sò·-ha̍k ê rendering',
-	'mw_math_png' => 'Tiāⁿ-tio̍h iōng PNG render',
-	'mw_math_simple' => 'Tân-sûn ê chêng-hêng iōng HTML; kî-thaⁿ iōng PNG',
-	'mw_math_html' => 'Chīn-liōng iōng HTML; kî-thaⁿ iōng PNG',
-	'mw_math_source' => 'Î-chhî TeX ê keh-sek (khah ha̍h bûn-jī-sek ê liû-lám-khì)',
-	'mw_math_modern' => 'Kiàn-gī hiān-tāi liû-lám-khì kéng che',
-	'mw_math_mathml' => 'Chīn-liōng iōng MathML (chhì-giām-sèng--ê)',
-);
-
-/** Low German (Plattdüütsch) */
-$messages['nds'] = array(
-	'math_sample' => 'Formel hier infögen',
-	'math_tip' => 'Mathematsche Formel (LaTeX)',
-	'prefs-math' => 'TeX',
-	'mw_math_png' => 'Jümmer as PNG dorstellen',
-	'mw_math_simple' => 'Eenfach TeX as HTML dorstellen, sünst PNG',
-	'mw_math_html' => 'Wenn mööglich as HTML dorstellen, sünst PNG',
-	'mw_math_source' => 'As TeX laten (för Textbrowser)',
-	'mw_math_modern' => 'Anratenswert för moderne Browser',
-	'mw_math_mathml' => 'MathML (experimentell)',
-	'math_failure' => 'Parser-Fehler',
-	'math_unknown_error' => 'Unbekannten Fehler',
-	'math_unknown_function' => 'Unbekannte Funktschoon',
-	'math_lexing_error' => "'Lexing'-Fehler",
-	'math_syntax_error' => 'Syntaxfehler',
-	'math_image_error' => 'dat Konverteren na PNG harr keen Spood.',
-	'math_bad_tmpdir' => 'Kann dat Temporärverteken för mathematsche Formeln nich anleggen oder beschrieven.',
-	'math_bad_output' => 'Kann dat Teelverteken för mathematsche Formeln nich anleggen oder beschrieven.',
-	'math_notexvc' => 'Dat texvc-Programm kann nich funnen warrn. Kiek ok math/README.',
-);
-
-/** Nedersaksisch (Nedersaksisch)
- * @author Servien
- */
-$messages['nds-nl'] = array(
-	'math_sample' => 'a^2 + b^2 = c^2',
-	'math_tip' => 'Wiskundige formule (in LaTeX)',
-	'prefs-math' => 'Wiskundige formules',
-	'mw_math_png' => 'Altied as PNG weergeven',
-	'mw_math_simple' => 'HTML veur eenvoudige formules, aanders PNG',
-	'mw_math_html' => "HTML as 't meugelijk is, aanders PNG",
-	'mw_math_source' => 'Laot TeX-broncode staon (veur teksblaojeraars)',
-	'mw_math_modern' => 'Anbeveulen methode veur niejere webkiekers',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Wiskundige formule neet begriepelijk',
-	'math_unknown_error' => 'Onbekende fout in formule',
-	'math_unknown_function' => 'Onbekende functie in formule',
-	'math_lexing_error' => 'Lexicografische fout in formule',
-	'math_syntax_error' => 'Syntactische fout in formule',
-	'math_image_error' => 'De PNG-umzetting is mislok. Kiek even nao of LaTeX en dvipng (of dvips + gs + convert) wel goed eïnstalleerd bin.',
-	'math_bad_tmpdir' => 'De map veur tiejelijke bestanen veur wiskundige formules besteet neet of is kan neet an-emaak wönnen.',
-	'math_bad_output' => 'De map veur wiskundebestanen besteet neet of is neet an te maken.',
-	'math_notexvc' => "Kan 't pregramma texvc neet vienen; configureer volgens de beschrieving in math/README.",
-);
-
-/** Nepali (नेपाली)
- * @author Bhawani Gautam Rhk
- * @author सरोज कुमार ढकाल
- */
-$messages['ne'] = array(
-	'math_sample' => 'सूत्र यहाँ थप्नुहोस्',
-	'math_tip' => 'गणितीय सूत्र (LaTeX)',
-	'prefs-math' => 'गणित',
-	'mw_math_png' => 'जहिले  PNG खोल्ने',
-	'mw_math_simple' => 'धेरै साधारण भएमा HTML नत्र  PNG',
-	'mw_math_html' => 'संभव भएसम्म HTML नत्र  PNG',
-	'mw_math_source' => 'यसलाई TeX को रुपमा  छोड्ने(पाठ प्रदर्शको लागि)',
-	'mw_math_modern' => 'आधुनिक ब्राउजरको लागि सिफारिस गरिएको',
-	'math_failure' => 'पढ्न सकिएन',
-	'math_unknown_error' => 'अज्ञात समस्या',
-	'math_unknown_function' => 'अज्ञात निर्देशन',
-	'math_lexing_error' => 'वर्ण(lexing) त्रुटी',
-	'math_syntax_error' => 'सूत्र (syntax) त्रुटि',
-);
-
-/** Newari (नेपाल भाषा) */
-$messages['new'] = array(
-	'prefs-math' => 'गणित',
-);
-
-/** Dutch (Nederlands)
- * @author Siebrand
- */
-$messages['nl'] = array(
-	'math_sample' => 'Voer de formule in',
-	'math_tip' => 'Wiskundige formule (in LaTeX)',
-	'prefs-math' => 'Formules',
-	'mw_math_png' => 'Altijd als PNG weergeven',
-	'mw_math_simple' => 'HTML voor eenvoudige formules, anders PNG',
-	'mw_math_html' => 'HTML indien mogelijk, anders PNG',
-	'mw_math_source' => 'De TeX-broncode behouden (voor tekstbrowsers)',
-	'mw_math_modern' => 'Aanbevolen methode voor recente browsers',
-	'mw_math_mathml' => 'MathML als mogelijk (experimenteel)',
-	'math_failure' => 'Parsen mislukt',
-	'math_unknown_error' => 'onbekende fout',
-	'math_unknown_function' => 'onbekende functie',
-	'math_lexing_error' => 'lexicografische fout',
-	'math_syntax_error' => 'syntactische fout',
-	'math_image_error' => 'De PNG-omzetting is mislukt. Controleer of LaTeX en dvipng (of dvips + gs + convert) correct zijn geïnstalleerd.',
-	'math_bad_tmpdir' => 'De map voor tijdelijke bestanden voor wiskundige formules bestaat niet of kan niet gemaakt worden',
-	'math_bad_output' => 'De map voor bestanden met wiskundige formules bestaat niet of kan niet gemaakt worden.',
-	'math_notexvc' => 'Kan het programma texvc niet vinden; stel alles in volgens de beschrijving in math/README.',
-);
-
-/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
- * @author Nghtwlkr
- */
-$messages['nn'] = array(
-	'math_sample' => 'Skriv formel her',
-	'math_tip' => 'Matematisk formel (LaTeX)',
-	'prefs-math' => 'Matematiske formlar',
-	'mw_math_png' => 'Vis alltid som PNG',
-	'mw_math_simple' => 'HTML om svært enkel, elles PNG',
-	'mw_math_html' => 'HTML om mogleg, elles PNG',
-	'mw_math_source' => 'Behald som TeX (for tekst-nettlesarar)',
-	'mw_math_modern' => 'Tilrådd for moderne nettlesarar',
-	'mw_math_mathml' => 'MathML dersom mogleg (eksperimentell)',
-	'math_failure' => 'Klarte ikkje å tolke formelen',
-	'math_unknown_error' => 'ukjend feil',
-	'math_unknown_function' => 'ukjend funksjon',
-	'math_lexing_error' => 'lexerfeil',
-	'math_syntax_error' => 'syntaksfeil',
-	'math_image_error' => 'PNG-konverteringa var mislukka; sjekk at latex og dvipng (eller dvips + gs + convert) er rett installerte',
-	'math_bad_tmpdir' => 'Kan ikkje skrive til eller laga mellombels mattemappe',
-	'math_bad_output' => 'Kan ikkje skrive til eller laga mattemappe',
-	'math_notexvc' => 'Manglar texvc-program; sjå math/README for konfigurasjon.',
-);
-
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- * @author Nghtwlkr
- * @author Stigmj
- */
-$messages['no'] = array(
-	'math_sample' => 'Sett inn formel her',
-	'math_tip' => 'Matematisk formel (LaTeX)',
-	'prefs-math' => 'Matteformler',
-	'mw_math_png' => 'Vis alltid som PNG',
-	'mw_math_simple' => 'HTML hvis veldig enkel, ellers PNG',
-	'mw_math_html' => 'HTML hvis mulig, ellers PNG',
-	'mw_math_source' => 'Behold som TeX (for tekst-nettlesere)',
-	'mw_math_modern' => 'Anbefalt for moderne nettlesere',
-	'mw_math_mathml' => 'MathML hvis mulig',
-	'math_failure' => 'Feil i matematikken',
-	'math_unknown_error' => 'ukjent feil',
-	'math_unknown_function' => 'ukjent funksjon',
-	'math_lexing_error' => 'lexerfeil',
-	'math_syntax_error' => 'syntaksfeil',
-	'math_image_error' => 'PNG-konversjon mislyktes; sjekk at latex og dvipng (eller dvips + gs + convert) er korrekt installert',
-	'math_bad_tmpdir' => 'Kan ikke skrive til eller opprette midlertidig mappe',
-	'math_bad_output' => 'Kan ikke skrive til eller opprette resultatmappe',
-	'math_notexvc' => 'Mangler kjørbar texvc;
-se math/README for oppsett.',
-);
-
-/** Northern Sotho (Sesotho sa Leboa)
- * @author Mohau
- */
-$messages['nso'] = array(
-	'math_sample' => "Lokela ''formula'' mo",
-	'math_tip' => 'Formula ya dipalo (LaTeX)',
-	'math_unknown_error' => 'Phošo ya gose tsebege',
-	'math_syntax_error' => 'phošo ya popafoko',
-);
-
-/** Occitan (Occitan)
- * @author Cedric31
- */
-$messages['oc'] = array(
-	'math_sample' => 'Picatz vòstra formula aicí',
-	'math_tip' => 'Formula matematica (LaTeX)',
-	'prefs-math' => 'Rendut de las matas',
-	'mw_math_png' => 'Totjorn produire un imatge PNG',
-	'mw_math_simple' => 'HTML se plan simpla, si que non PNG',
-	'mw_math_html' => 'HTML se possible, si que non PNG',
-	'mw_math_source' => "Daissar lo còde TeX d'origina",
-	'mw_math_modern' => 'Pels navigadors modèrnes',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Error matas',
-	'math_unknown_error' => 'error indeterminada',
-	'math_unknown_function' => 'foncion desconeguda',
-	'math_lexing_error' => 'error lexicala',
-	'math_syntax_error' => 'error de sintaxi',
-	'math_image_error' => 'La conversion en PNG a pas capitat ; verificatz l’installacion de Latex, dvips, gs e convert',
-	'math_bad_tmpdir' => 'Impossible de crear o d’escriure dins lo repertòri math temporari',
-	'math_bad_output' => 'Impossible de crear o d’escriure dins lo repertòri math de sortida',
-	'math_notexvc' => 'L’executable « texvc » es introbable. Legissètz math/README per lo configurar.',
-);
-
-/** Oriya (ଓଡ଼ିଆ)
- * @author Psubhashish
- */
-$messages['or'] = array(
-	'math_sample' => 'ଏଠି ଫରମୁଲା ପୁରାଅ',
-	'math_tip' => 'ଗାଣିତିକ ସୁତର (ଲାଟେକ୍ସ)',
-);
-
-/** Ossetic (Иронау)
- * @author Amikeco
- */
-$messages['os'] = array(
-	'math_sample' => 'Ныффысс формулæ',
-	'math_tip' => 'Математикон формулæ (формат LaTeX)',
-	'math_unknown_function' => 'нæзонгæ функци',
-	'math_syntax_error' => 'синтаксисы рæдыд',
-);
-
-/** Punjabi (ਪੰਜਾਬੀ) */
-$messages['pa'] = array(
-	'math_tip' => 'ਗਣਿਤ ਫਾਰਮੂਲਾ (LaTeX)',
-	'prefs-math' => 'ਗਣਿਤ',
-	'math_failure' => 'ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ',
-	'math_unknown_error' => 'ਅਣਜਾਣ ਗਲਤੀ',
-	'math_unknown_function' => 'ਅਣਜਾਣ ਫੰਕਸ਼ਨ',
-	'math_lexing_error' => 'lexing ਗਲਤੀ',
-	'math_syntax_error' => 'ਸੰਟੈਕਸ ਗਲਤੀ',
-);
-
-/** Pangasinan (Pangasinan) */
-$messages['pag'] = array(
-	'math_unknown_error' => 'aga-antan error',
-);
-
-/** Pampanga (Kapampangan)
- * @author Katimawan2005
- */
-$messages['pam'] = array(
-	'math_sample' => 'Isingit me ing formula keni',
-	'math_tip' => 'Formulang pang-matematika (LaTeX)',
-	'mw_math_png' => 'Pane yang pakit king ayus/format a PNG',
-	'mw_math_simple' => 'HTML nung simpli yang tagana, at nung ali, PNG',
-	'mw_math_html' => 'HTML nung maliari, at nung ali, PNG',
-	'mw_math_source' => 'Paburen yang TeX (para kareng text browser)',
-	'mw_math_modern' => 'Rerekomenda de kareng makabayung browser',
-	'mw_math_mathml' => 'MathML nung maliari (susubukan da pamu [experimental])',
-	'math_failure' => 'E melaus ing pamag-parse',
-	'math_unknown_error' => 'e makikilalang pamagkamali',
-	'math_unknown_function' => 'e makikilalang gamit (unknown function)',
-	'math_lexing_error' => 'pamagkamali king lexing',
-	'math_syntax_error' => 'pamagkamali king pamituki-tuki (syntax error)',
-	'math_image_error' => 'E melaus ing pamanalis king PNG;
-siguraduan mu ing ustung pamag-install king latex, dvips, gs, at kaibat iyalis (i-convert) me',
-	'math_bad_tmpdir' => 'E makasulat king o makapaglalang piyakitan (directory) a math temp',
-	'math_bad_output' => 'E makasulat king o makapaglalang piyakitan (directory) a math output',
-	'math_notexvc' => 'Mawawala ya ing texvc executable;
-pakilawe me ing math/README ba meng i-configure.',
-);
-
-/** Picard (Picard)
- * @author Geoleplubo
- */
-$messages['pcd'] = array(
-	'math_sample' => "Mètte l'formule ichi",
-	'math_tip' => 'Formule matématike (LaTeX)',
-);
-
-/** Deitsch (Deitsch)
- * @author Xqt
- */
-$messages['pdc'] = array(
-	'math_sample' => 'Formula hier eigewwe',
-);
-
-/** Plautdietsch (Plautdietsch)
- * @author Wikipeeta
- */
-$messages['pdt'] = array(
-	'mw_math_png' => 'Emma aus PNG wiese',
-	'mw_math_simple' => 'HTML es zimlich eenfach, sonst PNG',
-	'mw_math_html' => 'Wan meajlich aus HTML wiese, sonst PNG',
-	'mw_math_source' => 'Aus TeX lote (fe Tatjstbrowser)',
-	'mw_math_modern' => 'Goot fe moderne Browser',
-	'mw_math_mathml' => 'MathML wan meajlich (experimental)',
-);
-
-/** Pälzisch (Pälzisch)
- * @author Als-Holder
- */
-$messages['pfl'] = array(
-	'math_sample' => 'Do Formel aigewwe',
-	'math_tip' => 'Mathematische Formel (LaTeX)',
-);
-
-/** Polish (Polski)
- * @author Sp5uhe
- */
-$messages['pl'] = array(
-	'math_sample' => 'Tutaj wprowadź wzór',
-	'math_tip' => 'Wzór matematyczny (LaTeX)',
-	'prefs-math' => 'Wzory',
-	'mw_math_png' => 'Zawsze generuj grafikę PNG',
-	'mw_math_simple' => 'HTML dla prostych, dla pozostałych grafika PNG',
-	'mw_math_html' => 'Spróbuj HTML, a jeśli zawiedzie użyj grafiki PNG',
-	'mw_math_source' => 'Pozostaw w TeXu (dla przeglądarek tekstowych)',
-	'mw_math_modern' => 'HTML – zalecane dla nowych przeglądarek',
-	'mw_math_mathml' => 'MathML jeśli dostępny (eksperymentalne)',
-	'math_failure' => 'Parser nie mógł rozpoznać',
-	'math_unknown_error' => 'nieznany błąd',
-	'math_unknown_function' => 'nieznana funkcja',
-	'math_lexing_error' => 'błędna nazwa',
-	'math_syntax_error' => 'błąd składni',
-	'math_image_error' => 'Konwersja z lub do formatu PNG nie powiodła się. Sprawdź, czy poprawnie zainstalowane są latex i dvipng (lub dvips, gs i convert)',
-	'math_bad_tmpdir' => 'Nie można utworzyć lub zapisywać w tymczasowym katalogu dla wzorów matematycznych',
-	'math_bad_output' => 'Nie można utworzyć lub zapisywać w wyjściowym katalogu dla wzorów matematycznych',
-	'math_notexvc' => 'Brak programu texvc.
-Zapoznaj się z math/README w celu konfiguracji.',
-);
-
-/** Piedmontese (Piemontèis)
- * @author Borichèt
- */
-$messages['pms'] = array(
-	'math_sample' => 'Che a buta la fòrmula ambelessì',
-	'math_tip' => 'Fòrmula matemàtica (LaTeX)',
-	'prefs-math' => 'Fòrmule ëd matemàtica',
-	'mw_math_png' => 'Most-lo sempe coma PNG',
-	'mw_math_simple' => "But-lo an HTML se a l'é motobin belfé a fesse, dësnò but-lo an PNG",
-	'mw_math_html' => 'But-lo an HTML se as peul, dësnò an PNG',
-	'mw_math_source' => 'Lass-lo coma TeX (për ij programa ëd navigassion testual)',
-	'mw_math_modern' => 'As racomanda për ij programa ëd navigassion pì modern',
-	'mw_math_mathml' => 'But-lo an MathML se as peul (sperimental)',
-	'math_failure' => 'Parsificassion falà',
-	'math_unknown_error' => 'Eror nen conossù',
-	'math_unknown_function' => 'funsion che as sa pa lòn che a la sia',
-	'math_lexing_error' => 'eror ëd léssich',
-	'math_syntax_error' => 'eror ëd sintassi',
-	'math_image_error' => "La conversion an PNG a l'é falìa; che a contròla l'ùltima instalassion ëd latex e dvipng (o dvips + gs + convert)",
-	'math_bad_tmpdir' => "Ël sistema a-i la fa pa a creé la diretriss '''math temp''', ò pura a-i la fa nen a scriv-je andrinta",
-	'math_bad_output' => "Ël sistema a-i la fa pa a creé la diretriss '''math output''', ò pura a-i la fa nen a scriv-je andrinta",
-	'math_notexvc' => 'Pa gnun texvc executable; për piasì, che a contròla math/README për la configurassion.',
-);
-
-/** Western Punjabi (پنجابی)
- * @author Khalid Mahmood
- */
-$messages['pnb'] = array(
-	'math_sample' => 'ایتھے فارمولا لاؤ',
-	'math_tip' => 'ریاضی دا فارمولا (LaTeX)',
-	'prefs-math' => 'حساب کتاب',
-	'math_unknown_error' => 'انجان مسئلہ',
-	'math_unknown_function' => 'انجان کم',
-);
-
-/** Pontic (Ποντιακά)
- * @author Omnipaedista
- * @author Sinopeus
- */
-$messages['pnt'] = array(
-	'math_sample' => 'Αδά εισάγετε την φόρμουλαν',
-	'math_tip' => 'Μαθεματικόν φόρμουλα (LaTeX)',
-	'prefs-math' => 'Απόδοσην μαθηματικίων',
-	'math_unknown_function' => 'άγνωρος συνάρτησην',
-	'math_lexing_error' => 'σφάλμαν λεξικής ανάλυσης',
-	'math_syntax_error' => 'σφάλμαν σύνταξης',
-);
-
-/** Prussian (Prūsiskan)
- * @author Nertiks
- */
-$messages['prg'] = array(
-	'math_sample' => 'Enpeisāis matemātiskan izbilīsenin stwi',
-	'math_tip' => 'Matemātiskas izbilīsenis (LaTeX)',
-	'prefs-math' => 'Matemātiki',
-	'mw_math_png' => 'Wisaddan teīkeis PNG grāfikin',
-	'mw_math_simple' => 'HTML ik spārtai prastan, ik ni - PNG',
-	'mw_math_html' => 'HTML ik mazīngi, ik ni - PNG',
-	'mw_math_source' => 'Palaīdeis en TeX-as fōrmatu (per tekstas lasātlins)',
-	'mw_math_modern' => 'HTML - radītan per nāunans lasātlins',
-	'mw_math_mathml' => 'MathML ik mazīngi (eksperimentālai)',
-	'math_failure' => 'Parsers ni mazēi skaitātun',
-	'math_unknown_error' => 'niwaistā blānda',
-	'math_unknown_function' => 'niwaistā funkciōni',
-	'math_lexing_error' => 'laksisis blānda',
-	'math_syntax_error' => 'sīntaksis blānda',
-	'math_image_error' => 'Mainasnā en PNG ni izpalla.
-Izbandais, anga latex, dvips, gs be convert ast instalītan tikrōmiskai',
-	'math_bad_tmpdir' => 'Ni mazīngi teīktun anga enpeisātun en kīsmingiskasmu matemātiskan fōlderin',
-	'math_bad_output' => 'Ni mazīngi teīktun anga enpeisātun en izēiseniskasmu matemātiskan fōlderin',
-	'math_notexvc' => 'Ni ast texvc prōgraman.
-Wīdais math/README kāi kōnfigurilai.',
-);
-
-/** Pashto (پښتو)
- * @author Ahmed-Najib-Biabani-Ibrahimkhel
- */
-$messages['ps'] = array(
-	'math_sample' => 'فورمول دلته ځای کړی',
-	'math_tip' => 'شمېرپوهنيز فورمول (LaTeX)',
-	'prefs-math' => 'شمېرپوهنه',
-	'math_unknown_error' => 'ناجوته ستونزه',
-	'math_unknown_function' => 'ناجوته کړنه',
-);
-
-/** Portuguese (Português)
- * @author Hamilton Abreu
- */
-$messages['pt'] = array(
-	'math_sample' => 'Inserir fórmula aqui',
-	'math_tip' => 'Fórmula matemática (LaTeX)',
-	'prefs-math' => 'Matemática',
-	'mw_math_png' => 'Gerar sempre como PNG',
-	'mw_math_simple' => 'HTML caso seja simples, caso contrário, PNG',
-	'mw_math_html' => 'HTML se possível, caso contrário, PNG',
-	'mw_math_source' => 'Deixar como TeX (para browsers de texto)',
-	'mw_math_modern' => 'Recomendado para browsers modernos',
-	'mw_math_mathml' => 'MathML se possível (experimental)',
-	'math_failure' => 'Falhou ao verificar gramática',
-	'math_unknown_error' => 'Erro desconhecido',
-	'math_unknown_function' => 'Função desconhecida',
-	'math_lexing_error' => 'Erro léxico',
-	'math_syntax_error' => 'Erro de sintaxe',
-	'math_image_error' => 'Falha na conversão para PNG;
-verifique que o latex, dvips, gs e convert foram correctamente instalados',
-	'math_bad_tmpdir' => "Não foi possível criar o directório temporário ''math'' ou, se já existe, escrever nele",
-	'math_bad_output' => "Não foi possível criar o directório de resultados ''math'' ou, se já existe, escrever nele",
-	'math_notexvc' => 'O executável texvc não foi encontrado. Consulte math/README para instruções da configuração.',
-);
-
-/** Brazilian Portuguese (Português do Brasil)
- * @author Giro720
- * @author 555
- */
-$messages['pt-br'] = array(
-	'math_sample' => 'Inserir fórmula aqui',
-	'math_tip' => 'Fórmula matemática (LaTeX)',
-	'prefs-math' => 'Matemática',
-	'mw_math_png' => 'Gerar sempre como PNG',
-	'mw_math_simple' => 'HTML caso seja simples, caso contrário, PNG',
-	'mw_math_html' => 'HTML se possível, caso contrário, PNG',
-	'mw_math_source' => 'Deixar como TeX (para navegadores de texto)',
-	'mw_math_modern' => 'Recomendado para navegadores modernos',
-	'mw_math_mathml' => 'MathML se possível (experimental)',
-	'math_failure' => 'Falhou ao verificar gramática',
-	'math_unknown_error' => 'Erro desconhecido',
-	'math_unknown_function' => 'Função desconhecida',
-	'math_lexing_error' => 'Erro léxico',
-	'math_syntax_error' => 'Erro de sintaxe',
-	'math_image_error' => 'Falha na conversão para PNG;
-verifique se o latex, dvips, gs e convert estão corretamente instalados',
-	'math_bad_tmpdir' => 'Ocorreram problemas na criação ou escrita no diretório temporário math',
-	'math_bad_output' => 'Ocorreram problemas na criação ou escrita no diretório de resultados math',
-	'math_notexvc' => 'O executável texvc não foi encontrado. Consulte math/README para instruções da configuração.',
-);
-
-/** Quechua (Runa Simi)
- * @author AlimanRuna
- */
-$messages['qu'] = array(
-	'math_sample' => 'Kayman minuywata qillqamuy',
-	'math_tip' => 'Yupana minuywa (LaTeX)',
-	'prefs-math' => 'Minuywa',
-	'mw_math_png' => "Hayk'appas PNG-ta ruray",
-	'mw_math_simple' => 'Ancha sikllalla kaptinqa HTML, mana hinaptinqa PNG',
-	'mw_math_html' => 'Paqtanayaptinqa HTML, mana hinaptinqa PNG',
-	'mw_math_source' => "TeX hinatam saqiy (qillqa wamp'unapaq)",
-	'mw_math_modern' => "Musuq wamp'unakunapaq kamallisqa",
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => "Manam hap'inichu",
-	'math_unknown_error' => 'mana riqsisqa pantasqa',
-	'math_unknown_function' => 'mana riqsisqa rurana',
-	'math_lexing_error' => 'rima pantasqa',
-	'math_syntax_error' => 'rimay ukhunpuray pantasqa',
-	'math_image_error' => "Manam atinichu PNG-man t'ikrayta; latex nisqawan dvipng (icha dvips + gs + convert) nisqakunap tiyachisqa kayninta llanchiy",
-	'math_bad_tmpdir' => "Manam atinichu <em>math</em> nisqapaq mit'alla willañiqi churanata kamayta icha qillqayta",
-	'math_bad_output' => 'Manam atinichu <em>math</em> nisqapaq lluqsichina willañiqi churanata kamayta icha qillqayta',
-	'math_notexvc' => 'Manam kanchu ruranalla <strong>texvc</strong>. Ama hina kaspa, <em>math/README</em> nisqata ñawiriy allinkachinaykipaq.',
-);
-
-/** Romagnol (Rumagnôl)
- * @author Sentruper
- */
-$messages['rgn'] = array(
-	'math_sample' => 'Mèt aquè dentar una formula',
-	'math_tip' => 'Formula metemètica (LaTeX)',
-);
-
-/** Tarifit (Tarifit)
- * @author Agzennay
- */
-$messages['rif'] = array(
-	'math_sample' => 'Egg ijj n formula da',
-	'math_tip' => 'Mathematical formula (LaTeX)',
-);
-
-/** Romansh (Rumantsch)
- * @author Gion-andri
- * @author Kazu89
- */
-$messages['rm'] = array(
-	'math_sample' => 'Scriva qua tia furmla',
-	'math_tip' => 'Furmla matematica (LaTeX)',
-	'prefs-math' => 'TeX',
-	'mw_math_png' => 'Adina mussar sco PNG',
-	'mw_math_simple' => 'HTML sche fitg simpel, uschiglio PNG',
-	'mw_math_html' => 'HTML sche pussibel ed uschiglio PNG',
-	'mw_math_source' => 'Schar en furma da TeX (per navigaturs da text)',
-	'mw_math_modern' => 'Recumandà per navigaturs moderns',
-	'mw_math_mathml' => 'MathML sche pussibel (experimental)',
-	'math_failure' => 'Errur dal parser',
-	'math_unknown_error' => 'errur nunenconuschenta',
-	'math_unknown_function' => 'funcziun nunenconuschenta',
-	'math_lexing_error' => 'Errur lexicala',
-	'math_syntax_error' => 'Sbagl da la sintaxta',
-	'math_image_error' => "La conversiun da PNG n'è betg reussida; 
-controllescha l'installaziun correcta da latext, dvips, gs e convertescha lura",
-	'math_bad_tmpdir' => "Betg pussaivel da scriver u crear l'ordinatur temporar math",
-	'math_bad_output' => "Betg pussaivel da scriver u crear l'ordinatur da destinaziun math",
-	'math_notexvc' => "Il program texvc n'è betg vegnì chattà. Legia math/README per al configurar.",
-);
-
-/** Romani (Romani)
- * @author Desiphral
- */
-$messages['rmy'] = array(
-	'prefs-math' => 'Matematika',
-	'math_unknown_error' => 'bijangli dosh',
-	'math_unknown_function' => 'bijangli funkciya',
-	'math_syntax_error' => 'sintaksaki dosh',
-	'math_bad_output' => 'Nashti te kerel pes vai te lekhavel po matematikano direktoro kai del pes avri.',
-	'math_notexvc' => 'Nai o kerditori (eksekutabilo) texvc; dikh math/README te labyares les.',
-);
-
-/** Romanian (Română)
- * @author Emily
- * @author Laurap
- * @author Minisarm
- * @author Strainu
- */
-$messages['ro'] = array(
-	'math_sample' => 'Introduceți formula aici',
-	'math_tip' => 'Formulă matematică (LaTeX)',
-	'prefs-math' => 'Aspect formule',
-	'mw_math_png' => 'Întodeauna afișează PNG',
-	'mw_math_simple' => 'HTML pentru formule simple, altfel PNG',
-	'mw_math_html' => 'HTML dacă este posibil, altfel PNG',
-	'mw_math_source' => 'Lasă ca TeX (pentru browser-ele text)',
-	'mw_math_modern' => 'Recomandat pentru browser-ele moderne',
-	'mw_math_mathml' => 'MathML dacă este posibil (experimental)',
-	'math_failure' => 'Nu s-a putut interpreta',
-	'math_unknown_error' => 'eroare necunoscută',
-	'math_unknown_function' => 'funcție necunoscută',
-	'math_lexing_error' => 'eroare lexicală',
-	'math_syntax_error' => 'eroare de sintaxă',
-	'math_image_error' => 'Conversie în PNG eșuată; verificați corectitudinea instalării sistemelor LaTex sau dvipng (sau dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Nu se poate crea sau nu se poate scrie în directorul temporar pentru formule matematice',
-	'math_bad_output' => 'Nu se poate crea sau nu se poate scrie în directorul de ieșire pentru formule matematice',
-	'math_notexvc' => 'Lipsește executabilul texvc; vezi math/README pentru configurare.',
-);
-
-/** Tarandíne (Tarandíne)
- * @author Joetaras
- */
-$messages['roa-tara'] = array(
-	'math_sample' => "Mitte 'a formule aqquà",
-	'math_tip' => 'Formula matemateche (LaTeX)',
-	'prefs-math' => 'Math',
-	'mw_math_png' => "Fà sembre 'u render de le PNG",
-	'mw_math_simple' => 'HTML ce jè avveramende facile oppure PNG',
-	'mw_math_html' => 'HTML ce jè possibbile oppure PNG',
-	'mw_math_source' => "Lassele cumme a 'nu TeX (pe le browser de teste)",
-	'mw_math_modern' => 'Raccomandate pe le browser cchiù nuève',
-	'mw_math_mathml' => 'MathML ce possibbile (sperimendele)',
-	'math_failure' => 'Analisi fallite',
-	'math_unknown_error' => 'errore scanusciute',
-	'math_unknown_function' => 'funziona scanusciute',
-	'math_lexing_error' => 'errore de lessiche',
-	'math_syntax_error' => 'errore de sintassi',
-	'math_image_error' => "'A conversione d'u PNG ha fallite;
-condrolle ce l'installazione de latex e dvips (o dvipg + gs + convertitore) jè corrette",
-	'math_bad_tmpdir' => "Non ge puè scrivere o ccrejà 'na cartelle temboranea de math",
-	'math_bad_output' => "Non ge puè scrivere o ccrejà 'na cartelle de destinazzione de math",
-	'math_notexvc' => 'texvc eseguibbele perdute;
-pe piacere vide math/README pe configurà.',
-);
-
-/** Russian (Русский)
- * @author Amire80
- * @author MaxSem
- */
-$messages['ru'] = array(
-	'math_sample' => 'Введите сюда формулу',
-	'math_tip' => 'Математическая формула (формат LaTeX)',
-	'prefs-math' => 'Отображение формул',
-	'mw_math_png' => 'Всегда генерировать PNG',
-	'mw_math_simple' => 'HTML в простых случаях, иначе PNG',
-	'mw_math_html' => 'HTML, если возможно, иначе PNG',
-	'mw_math_source' => 'Оставить в разметке ТеХ (для текстовых браузеров)',
-	'mw_math_modern' => 'Как рекомендуется для современных браузеров',
-	'mw_math_mathml' => 'MathML, если возможно (экспериментальная опция)',
-	'math_failure' => 'Невозможно разобрать выражение',
-	'math_unknown_error' => 'неизвестная ошибка',
-	'math_unknown_function' => 'неизвестная функция',
-	'math_lexing_error' => 'лексическая ошибка',
-	'math_syntax_error' => 'синтаксическая ошибка',
-	'math_image_error' => 'Преобразование в PNG прошло с ошибкой — проверьте правильность установки latex и dvips (или dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Не удаётся создать или записать во временный каталог математики',
-	'math_bad_output' => 'Не удаётся создать или записать в выходной каталог математики',
-	'math_notexvc' => 'Выполняемый файл texvc не найден; См. math/README — справку по настройке.',
-);
-
-/** Rusyn (Русиньскый)
- * @author Gazeb
- */
-$messages['rue'] = array(
-	'math_sample' => 'Вложте ту формулу',
-	'math_tip' => 'Математічна формула (LaTeX)',
-	'prefs-math' => 'Математіка',
-	'mw_math_png' => 'Все ґенеровати PNG',
-	'mw_math_simple' => 'Просте як HTML, інакше PNG',
-	'mw_math_html' => 'HTML кідь ся дасть, інакше PNG',
-	'mw_math_source' => 'Зохабити як TeX (про текстовы переглядачі)',
-	'mw_math_modern' => 'Рекомендоване про сучасны переглядачі',
-	'mw_math_mathml' => 'MathML, кідь є підпороване (експеріменталне)',
-	'math_failure' => 'Не дасть ся розобрати выраз',
-	'math_unknown_error' => 'незнама хыба',
-	'math_unknown_function' => 'незнама функція',
-	'math_lexing_error' => 'лексічна хыба',
-	'math_syntax_error' => 'сінтаксічна хыба',
-	'math_image_error' => 'Злигала конверзія до PNG; перевірте правилну іншталацію latex, dvips (або dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Не дасть ся записати або створити дочасный адресарь про математіку',
-	'math_bad_output' => 'Не дасть ся записати або створити дочасный адресарь про выступ математіку',
-	'math_notexvc' => 'Хыбить спустительный texvc; посмотьте ся до math/README на конфіґурацію.',
-);
-
-/** Megleno-Romanian (Cyrillic) (Vlăheşte (Cyrillic))
- * @author Макѕе
- */
-$messages['ruq-cyrl'] = array(
-	'math_sample' => 'Интродуца формула иси',
-	'math_tip' => 'Формула с-математикс (LaTeX)',
-);
-
-/** Megleno-Romanian (Latin) (Vlăheşte (Latin))
- * @author Макѕе
- */
-$messages['ruq-latn'] = array(
-	'math_sample' => 'Introduca formula isi',
-	'math_tip' => "Formula s'matematiks (LaTeX)",
-);
-
-/** Sanskrit (संस्कृत)
- * @author Naveen Sankar
- */
-$messages['sa'] = array(
-	'math_sample' => 'सूत्रवाक्यं अत्र निवेशयतु',
-	'math_tip' => 'गणितीयसूत्रम् (LaTeX)',
-);
-
-/** Yakut (Саха тыла)
- * @author Andrijko Z.
- * @author HalanTul
- */
-$messages['sah'] = array(
-	'math_sample' => 'Формуланы манна киллэр',
-	'math_tip' => 'Математика формулата (LaTeX)',
-	'prefs-math' => 'Фуормулалар',
-	'mw_math_png' => 'Куруук PNG таһаарарга (туһанарга)',
-	'mw_math_simple' => 'көннөрү түбэлтэҕэ HTML, атын буоллаҕына PNG',
-	'mw_math_html' => 'сатанаҕына HTML, сатамматаҕына PNG',
-	'mw_math_source' => 'TeX бэлиэтин (разметкатын) хааллар (тиэкиһинэн эрэ үлэлиир браузерга)',
-	'mw_math_modern' => 'Аныгы браузердарга анаан',
-	'mw_math_mathml' => 'Сатаннаҕына MathML туһан (experimental)',
-	'math_failure' => 'Сатаан ааҕыллыбата',
-	'math_unknown_error' => 'биллибэт алҕас',
-	'math_unknown_function' => 'биллибэт дьайыы (функция)',
-	'math_lexing_error' => 'лексиката алҕастаах',
-	'math_syntax_error' => 'синтаксис алҕаһа',
-	'math_image_error' => 'PNG-га уларытыы сатаммата; latex, dvips, gs, уонна convert туруоруулара сөбүн көр',
-	'math_bad_tmpdir' => 'Математика быстах кэмнээҕи директорията сатаан оҥоһуллубута',
-	'math_bad_output' => 'Математика таһынааҕы директорията сатаан оҥоһуллубата',
-	'math_notexvc' => 'texvc кыайан толоруллубата; маны math/README көр.',
-);
-
-/** Sardinian (Sardu)
- * @author Andria
- */
-$messages['sc'] = array(
-	'math_sample' => 'Inserta sa fòrmula inoghe',
-	'math_tip' => 'Fòrmula matemàtica (LaTeX)',
-	'prefs-math' => 'Fòrmulas matemàticas',
-	'math_unknown_error' => 'faddina disconnota',
-);
-
-/** Sicilian (Sicilianu)
- * @author Tonyfroio
- */
-$messages['scn'] = array(
-	'math_sample' => 'Nzirisci ccà na fòrmula',
-	'math_tip' => 'Fòrmula matimàtica (LaTeX)',
-	'prefs-math' => 'Fòrmuli',
-	'mw_math_png' => "Ammustra sempri 'n PNG",
-	'mw_math_simple' => 'HTML siddu veru sìmplici, oppuru PNG',
-	'mw_math_html' => 'HTML siddu pussìbbili, oppuru PNG',
-	'mw_math_source' => 'Lassa comu TeX (pi browser tistuali)',
-	'mw_math_modern' => 'Raccumannatu pi li browser muderni',
-	'mw_math_mathml' => 'MathML siddu pussìbbili (spirimintali)',
-	'math_failure' => "S'hà virificatu un erruri ntô parsing",
-	'math_unknown_error' => 'erruri scanusciutu',
-	'math_unknown_function' => 'funzioni scanusciuta',
-	'math_lexing_error' => 'erruri lissicali',
-	'math_syntax_error' => 'erruri di sintassi',
-	'math_image_error' => "Cunvirsioni 'n PNG fallita; virificati la curretta nstallazzioni dî siquenti prugrammi: latex, dvips, gs e convert.",
-	'math_bad_tmpdir' => 'Mpussìbbili scrìviri o criari la directory timpurània pi math',
-	'math_bad_output' => 'Mpussìbbili scrìviri o criari la directory di output pi math',
-	'math_notexvc' => 'Esiquìbbili texvc mancanti; pi favuri cunzurtari math/README pi la cunfigurazzioni.',
-);
-
-/** Scots (Scots)
- * @author OchAyeTheNoo
- */
-$messages['sco'] = array(
-	'math_sample' => 'Pit yer formula here',
-	'math_tip' => 'Mathematical formula (LaTeX)',
-	'prefs-math' => 'Renderin math',
-	'mw_math_png' => 'Aye render PNG',
-	'mw_math_simple' => "HTML gin it's gey simple else PNG",
-	'mw_math_html' => 'HTML gin the possibility else PNG',
-	'mw_math_source' => 'Leave it as TeX (for text brousers)',
-	'mw_math_modern' => 'Recommendit for modren brousers',
-	'mw_math_mathml' => 'MathML gin the possibility (experimental)',
-);
-
-/** Sindhi (سنڌي)
- * @author Aursani
- */
-$messages['sd'] = array(
-	'math_sample' => 'هتي فارمولو وجھو',
-	'math_tip' => 'رياضياتي مساوات (LaTeX)',
-);
-
-/** Sassaresu (Sassaresu)
- * @author Felis
- */
-$messages['sdc'] = array(
-	'math_sample' => 'Insirì la fòimmura inogghi',
-	'math_tip' => 'Fòimmura matemàtigga (LaTeX)',
-	'prefs-math' => 'Fòimmuri matemàtigghi',
-	'mw_math_png' => 'Musthra sempri in PNG',
-	'mw_math_simple' => 'HTML si umbè sémprizi, sinnò PNG',
-	'mw_math_html' => 'HTML si pussìbiri, sinnò PNG',
-	'mw_math_source' => 'Lassa in fuimmaddu TeX (pa nabiggadori testhuari)',
-	'mw_math_modern' => 'Fuimmaddu cunsigliaddu pa li nabiggadori muderni',
-	'mw_math_mathml' => 'Usa MathML si pussìbiri (ippirimintari)',
-	'math_failure' => "Errori i'l'anàrisi sintàttigga",
-	'math_unknown_error' => 'errori ischunisciddu',
-	'math_unknown_function' => 'funzioni ischuniscidda',
-	'math_lexing_error' => 'errori di lingàggiu',
-	'math_syntax_error' => 'errori di sintassi',
-	'math_image_error' => 'Cunvirthimentu in PNG nò ridisciddu; verifiggà chi siani isthalladdi currentementi i sighenti prugrammi: latex, dvips, gs, e convert.',
-	'math_bad_tmpdir' => "Impussìbiri ischribì o crià la carthella timpurània pa ''math''",
-	'math_bad_output' => "Impussìbiri ischribì o crià la carthella d'iscidda pa ''math''",
-	'math_notexvc' => "Fattìbiri ''texvc'' mancanti; pa piazeri cunsulthà ''math/README'' pa la cunfigurazioni.",
-);
-
-/** Northern Sami (Sámegiella)
- * @author Skuolfi
- */
-$messages['se'] = array(
-	'math_sample' => 'Lasit dasa formula',
-	'prefs-math' => 'Matematihkká',
-	'mw_math_png' => 'Čájet álo PNG:n',
-	'math_unknown_error' => 'Dovdameahtun feaila',
-	'math_unknown_function' => 'Dovdameahtun funkšuvdna',
-);
-
-/** Cmique Itom (Cmique Itom)
- * @author SeriCtam
- */
-$messages['sei'] = array(
-	'math_sample' => 'Heformula cuerte damir',
-	'math_tip' => 'Formula mathematatl (LaTeX)',
-	'prefs-math' => 'HTML-cuat',
-	'math_unknown_error' => 'römj ác',
-	'math_unknown_function' => 'functión ác',
-	'math_lexing_error' => 'römjde lexám',
-	'math_syntax_error' => 'römjde syntáx',
-);
-
-/** Samogitian (Žemaitėška) */
-$messages['sgs'] = array(
-	'math_sample' => 'Iveskėt fuormolė',
-	'math_tip' => 'Matematinė fuormolė (LaTeX fuormato)',
-	'prefs-math' => 'Matematėka',
-	'mw_math_png' => 'Vėsumet fuormuotė PNG',
-	'mw_math_simple' => 'HTML paprastās atvejās, kėtēp - PNG',
-	'mw_math_html' => 'HTML kumet imanuoma, kėtēp - PNG',
-	'mw_math_source' => 'Paliktė TeX fuormata (tekstinems naršīklems)',
-	'mw_math_modern' => 'Rekomendounama muodernioms naršīklems',
-	'mw_math_mathml' => 'MathML jēgo imanuoma (ekspermentinis)',
-	'math_failure' => 'Nepavīka apdoruotė',
-	'math_unknown_error' => 'nežinuoma klaida',
-	'math_unknown_function' => 'nežinuoma funkcėjė',
-);
-
-/** Serbo-Croatian (Srpskohrvatski / Српскохрватски)
- * @author OC Ripper
- */
-$messages['sh'] = array(
-	'math_sample' => 'Unesite formulu ovdje',
-	'math_tip' => 'Matematička formula (LaTeX)',
-	'prefs-math' => 'Prikazivanje matematike',
-	'mw_math_png' => 'Uvijek prikaži kao PNG',
-	'mw_math_simple' => 'HTML ako je jednostavno, inače PNG',
-	'mw_math_html' => 'HTML ako je moguće, inače PNG',
-	'mw_math_source' => 'Ostavi kao TeX (za tekstualne preglednike)',
-	'mw_math_modern' => 'Preporučeno za moderne preglednike',
-	'mw_math_mathml' => 'MathML ako je moguće (eksperimentalno)',
-	'math_failure' => 'Neuspjeh pri parsiranju',
-	'math_unknown_error' => 'nepoznata greška',
-	'math_unknown_function' => 'nepoznata funkcija',
-	'math_lexing_error' => 'riječnička greška',
-	'math_syntax_error' => 'sintaksna greška',
-	'math_image_error' => 'PNG konverzija neuspješna; provjerite tačnu instalaciju latex-a i dvipng-a (ili dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Ne može se napisati ili napraviti privremeni matematički direktorijum',
-	'math_bad_output' => 'Ne može se napisati ili napraviti direktorijum za matematički izvještaj.',
-	'math_notexvc' => 'Nedostaje izvršno texvc; molimo Vas da pogledate math/README da podesite.',
-);
-
-/** Tachelhit (Tašlḥiyt)
- * @author Dalinanir
- * @author Zanatos
- */
-$messages['shi'] = array(
-	'math_sample' => 'Skcm talɣat ɣid',
-	'math_tip' => 'Talɣiwt tusnakt (LaTeX)',
-	'prefs-math' => 'mat',
-);
-
-/** Sinhala (සිංහල)
- * @author Singhalawap
- * @author නන්දිමිතුරු
- * @author ශ්වෙත
- */
-$messages['si'] = array(
-	'math_sample' => 'සූත්‍රය මෙහි රුවන්න',
-	'math_tip' => 'ගණිත සූත්‍රය (LaTeX)',
-	'prefs-math' => 'ගණිත',
-	'mw_math_png' => 'සැමවිට PNG ලෙසට විදැහන්න',
-	'mw_math_simple' => 'ඉතා සරල නම් HTML එසේ නොමැති නම් PNG',
-	'mw_math_html' => 'හැකි නම් HTML එසේ නොමැති නම් PNG',
-	'mw_math_source' => 'TeX  ලෙසින් පැවැතීමට හරින්න(පෙළ බ්‍රවුසරයන් සඳහා)',
-	'mw_math_modern' => 'නවීන බ්‍රවුසරයන් සඳහා නිර්දේශ කෙරේ',
-	'mw_math_mathml' => 'හැකි නම් MathML (පරීක්ෂණාත්මක)',
-	'math_failure' => 'ව්‍යාකරණ විග්‍රහය අසමත් විය',
-	'math_unknown_error' => 'හඳුනා නොගත් දෝෂය',
-	'math_unknown_function' => 'හඳුනා නොගත් ශ්‍රිතය',
-	'math_lexing_error' => 'රීතිමය දෝෂයකි',
-	'math_syntax_error' => 'කාරක-රීති දෝෂය',
-	'math_image_error' => 'PNG අන්වර්තනය අසාර්ථකවිය;latex, සහ dvipng (හෝ dvips + gs + convert) හී නිදොස්  ස්ථාපනය සිදුවී ඇතිදැයි පිරික්සන්න',
-	'math_bad_tmpdir' => 'තාවකාලික ගණිත  ඩිරෙක්ටරිය තැනීමට හෝ එහි ලිවීමට නොහැක',
-	'math_bad_output' => 'ගණිත ප්‍රතිදාන ඩිරෙක්ටරිය තැනීමට හෝ එයට ලිවීමට නොහැක',
-	'math_notexvc' => 'texvc අභිවාහකය දක්නට නොමැත;
-වින්‍යාස කෙරුමට කරුණාකර math/README බලන්න.',
-);
-
-/** Slovak (Slovenčina)
- * @author Helix84
- */
-$messages['sk'] = array(
-	'math_sample' => 'Sem vložte vzorec',
-	'math_tip' => 'Matematický vzorec (LaTeX)',
-	'prefs-math' => 'Vykreslenie matematiky',
-	'mw_math_png' => 'Vždy vykresľovať PNG',
-	'mw_math_simple' => 'Na jednoduché použiť HTML, inak PNG',
-	'mw_math_html' => 'Ak sa dá, použiť HTML, inak PNG',
-	'mw_math_source' => 'Ponechať TeX (pre textové prehliadače)',
-	'mw_math_modern' => 'Odporúčané pre moderné prehliadače',
-	'mw_math_mathml' => 'MathML (experimentálne)',
-	'math_failure' => 'Syntaktická analýza (parsing) neúspešná',
-	'math_unknown_error' => 'neznáma chyba',
-	'math_unknown_function' => 'neznáma funkcia',
-	'math_lexing_error' => 'lexikálna chyba',
-	'math_syntax_error' => 'syntaktická chyba',
-	'math_image_error' => 'PNG konverzia neúspešná; skontrolujte správnosť inštalácie programov: latex a dvipng (alebo dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Nemožno zapisovať alebo vytvoriť dočasný matematický adresár',
-	'math_bad_output' => 'Nemožno zapisovať alebo vytvoriť výstupný matematický adresár',
-	'math_notexvc' => 'Chýbajúci program texvc; konfigurácia je popísaná v math/README.',
-);
-
-/** Slovenian (Slovenščina)
- * @author Dbc334
- */
-$messages['sl'] = array(
-	'math_sample' => 'Tu vnesite enačbo',
-	'math_tip' => 'Matematična enačba (LaTeX)',
-	'prefs-math' => 'Prikaz matematičnega besedila',
-	'mw_math_png' => 'Vedno prikaži PNG',
-	'mw_math_simple' => 'Kadar je dovolj preprosto, uporabi HTML, sicer pa PNG',
-	'mw_math_html' => 'Kadar je mogoče, uporabi HTML, sicer pa PNG',
-	'mw_math_source' => 'Pusti v TeX-ovi obliki (za besedilne brskalnike)',
-	'mw_math_modern' => 'Priporočeno za sodobne brskalnike',
-	'mw_math_mathml' => 'Če je le mogoče, uporabi MathML (preizkusno)',
-	'math_failure' => 'Ni mi uspelo razčleniti',
-	'math_unknown_error' => 'neznana napaka',
-	'math_unknown_function' => 'neznana funkcija',
-	'math_lexing_error' => 'slovarska napaka',
-	'math_syntax_error' => 'skladenjska napaka',
-	'math_image_error' => 'Pretvarjanje v PNG ni uspelo; preverite, ali sta latex in dvips (ali dvips + gs + convert) pravilno nameščena.',
-	'math_bad_tmpdir' => 'Začasne mape za math ne morem ustvariti ali pisati vanjo.',
-	'math_bad_output' => 'Izhodne mape za math ne morem ustvariti ali pisati vanjo.',
-	'math_notexvc' => 'Manjka izvedbena datoteka texvc;
-za njeno namestitev si poglejte math/README.',
-);
-
-/** Lower Silesian (Schläsch)
- * @author Schläsinger
- * @author Teutonius
- */
-$messages['sli'] = array(
-	'math_sample' => 'Formel hier eifiega',
-	'mw_math_png' => 'Emmer ols PNG darstalla',
-	'mw_math_simple' => 'Einfaches TeX ols HTML darstella, sunst PNG',
-	'mw_math_html' => 'Wenn meeglich ols HTML darstella, sunst PNG',
-	'mw_math_source' => 'Ols TeX belassen (fier Textbrowser)',
-	'mw_math_modern' => 'Empfehlenswert fier moderne Browser',
-	'math_failure' => 'Parser-Fahler',
-	'math_unknown_error' => 'Unbekennter Fahler',
-	'math_unknown_function' => 'Unbekennte Funksjonn',
-	'math_lexing_error' => '„Lexing“-Fahler',
-	'math_syntax_error' => 'Syntaxfahler',
-	'math_image_error' => 'de PNG-Konvertierung schlug fehl',
-	'math_bad_tmpdir' => 'Doas temporäre Verzeichnis fier mathematische Formeln koan ne oagelagt oder beschrieba waan.',
-	'math_bad_output' => 'Doas Zielverzeichnis fier mathematische Formeln koan ne oagelegt oder beschrieba waan.',
-	'math_notexvc' => 'Doas texvc-Programm wurde ne gefunda. Bitte math/README beachten.',
-);
-
-/** Southern Sami (Åarjelsaemien)
- * @author Andrijko Z.
- */
-$messages['sma'] = array(
-	'math_sample' => 'Bïejedh fårmele daesnie',
-	'math_tip' => 'Ryökneme fårmele (LaTeX)',
-	'math_unknown_error' => 'ammes båajhtede',
-);
-
-/** Somali (Soomaaliga) */
-$messages['so'] = array(
-	'prefs-math' => 'Xisaab',
-);
-
-/** Albanian (Shqip)
- * @author Mikullovci11
- */
-$messages['sq'] = array(
-	'math_sample' => 'Vendos formulen ketu',
-	'math_tip' => 'Formulë matematike (LaTeX)',
-	'prefs-math' => 'Formula',
-	'mw_math_png' => 'Gjithmonë PNG',
-	'mw_math_simple' => 'HTML në qoftë se është e thjeshtë ose ndryshe PNG',
-	'mw_math_html' => 'HTML në qoftë se është e mundur ose ndryshe PNG',
-	'mw_math_source' => 'Lëre si TeX (për shfletuesit tekst)',
-	'mw_math_modern' => 'E rekomanduar për shfletuesit modern',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Nuk e kuptoj',
-	'math_unknown_error' => 'gabim i panjohur',
-	'math_unknown_function' => 'funksion i panjohur',
-	'math_lexing_error' => 'gabim leximi',
-	'math_syntax_error' => 'Gabim sintakse',
-	'math_image_error' => 'Konversioni PNG dështoi; kontrolloni për ndonjë gabim instalimi të latex-it, dvips-it, gs-it, dhe convert-it.',
-	'math_bad_tmpdir' => 'Nuk munda të shkruaj ose krijoj dosjen e përkohshme për matematikë',
-	'math_bad_output' => 'Nuk munda të shkruaj ose të krijoj prodhimin matematik në dosjen',
-	'math_notexvc' => 'Mungon zbatuesi texvc; ju lutem shikoni math/README për konfigurimin.',
-);
-
-/** Serbian Cyrillic ekavian (‪Српски (ћирилица)‬)
- * @author Rancher
- */
-$messages['sr-ec'] = array(
-	'math_sample' => 'Овде унесите формулу',
-	'math_tip' => 'Математичка формула (LaTeX)',
-	'prefs-math' => 'Приказ математичких формула',
-	'mw_math_png' => 'Увек прикажи као PNG',
-	'mw_math_simple' => 'Ако је једноставно – HTML, иначе PNG',
-	'mw_math_html' => 'Ако је могуће – HTML, иначе PNG',
-	'mw_math_source' => 'Остави у формату ТеХ (за текстуалне прегледаче)',
-	'mw_math_modern' => 'Препоручено за савремене прегледаче',
-	'mw_math_mathml' => 'Ако је могуће, MathML (пробна фаза)',
-	'math_failure' => 'Рашчлањивање није успело',
-	'math_unknown_error' => 'непозната грешка',
-	'math_unknown_function' => 'непозната функција',
-	'math_lexing_error' => 'речничка грешка',
-	'math_syntax_error' => 'синтаксна грешка',
-	'math_image_error' => 'Претварање у формат PNG није успело. Проверите да ли су добро инсталирани latex, dvips, gs и convert',
-	'math_bad_tmpdir' => 'Стварање или писање у привремену фасциклу за математику није успело',
-	'math_bad_output' => 'Стварање или писање у одредишној фасцикли за математику није успело',
-	'math_notexvc' => 'Недостаје извршна датотека texvc-а. Погледајте math/README за подешавање.',
-);
-
-/** Serbian Latin ekavian (‪Srpski (latinica)‬) */
-$messages['sr-el'] = array(
-	'math_sample' => 'Ovde unesite formulu',
-	'math_tip' => 'Matematička formula (LaTeX)',
-	'prefs-math' => 'Matematike',
-	'mw_math_png' => 'Uvek prikaži PNG',
-	'mw_math_simple' => 'HTML ako je vrlo jednostavno, inače PNG',
-	'mw_math_html' => 'HTML ako je moguće, inače PNG',
-	'mw_math_source' => 'Ostavi kao TeH (za tekstualne brauzere)',
-	'mw_math_modern' => 'Preporučeno za savremene brauzere',
-	'mw_math_mathml' => 'MathML ako je moguće (eksperimentalno)',
-	'math_failure' => 'Neuspeh pri parsiranju',
-	'math_unknown_error' => 'nepoznata greška',
-	'math_unknown_function' => 'nepoznata funkcija',
-	'math_lexing_error' => 'rečnička greška',
-	'math_syntax_error' => 'sintaksna greška',
-	'math_image_error' => 'PNG konverzija neuspešna; proverite tačnu instalaciju latex-a, dvips-a, gs-a i convert-a',
-	'math_bad_tmpdir' => 'Ne mogu da napišem ili napravim privremeni math direktorijum',
-	'math_bad_output' => 'Ne mogu da napišem ili napravim direktorijum za math izlaz.',
-	'math_notexvc' => 'Nedostaje izvršno texvc; molimo pogledajte math/README da biste podesili.',
-);
-
-/** Sranan Tongo (Sranantongo)
- * @author Adfokati
- * @author Stretsh
- */
-$messages['srn'] = array(
-	'math_sample' => 'Poti formula dyaso',
-	'math_tip' => 'Formula fu teri (LaTeX)',
-	'prefs-math' => 'Fomula',
-	'math_lexing_error' => 'leksikografi fowtu',
-	'math_syntax_error' => 'sintaki fowtu',
-);
-
-/** Seeltersk (Seeltersk)
- * @author Maartenvdbent
- * @author Pyt
- */
-$messages['stq'] = array(
-	'math_sample' => 'Formel hier ienföigje',
-	'math_tip' => 'Mathematiske Formel (LaTeX)',
-	'prefs-math' => 'TeX',
-	'mw_math_png' => 'Altied as PNG deerstaale',
-	'mw_math_simple' => 'Eenfache TeX as HTML deerstaale, uurs PNG',
-	'mw_math_html' => 'Wan muugelk as HTML deerstaale, uurs PNG',
-	'mw_math_source' => 'As TeX beläite (foar Textbrowsere)',
-	'mw_math_modern' => 'Antouräiden foar moderne Browsere',
-	'mw_math_mathml' => 'MathML',
-	'math_failure' => 'Parser-Failer',
-	'math_unknown_error' => 'Uunbekoande Failer',
-	'math_unknown_function' => 'Uunbekoande Funktion',
-	'math_lexing_error' => "'Lexing'-Failer",
-	'math_syntax_error' => 'Syntaxfailer',
-	'math_image_error' => 'ju PNG-Konvertierenge sluuch fail; korrekte Installation fon LaTeX un dvipng wröigje (of dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Kon dät Temporärferteeknis foar mathematiske Formeln nit anlääse of beskrieuwe.',
-	'math_bad_output' => 'Kon dät Sielferteeknis foar mathematiske Formeln nit anlääse of beskrieuwe.',
-	'math_notexvc' => 'Dät texvc-Program kon nit fuunen wäide. Beoachte jädden math/README.',
-);
-
-/** Sundanese (Basa Sunda)
- * @author Irwangatot
- * @author Kandar
- */
-$messages['su'] = array(
-	'math_sample' => 'Asupkeun rumus di dieu',
-	'math_tip' => 'Rumus matematis (LaTeX)',
-	'prefs-math' => 'Maté',
-	'mw_math_png' => 'Jieun wae PNG',
-	'mw_math_simple' => 'Mun basajan HTML, mun henteu PNG',
-	'mw_math_html' => 'Mun bisa HTML, mun henteu PNG',
-	'mw_math_source' => 'Antep salaku TeX (pikeun panyungsi tulisan)',
-	'mw_math_modern' => 'Dianjurkeun pikeun panyungsi modérn',
-	'mw_math_mathml' => 'Mun bisa MathML (uji coba)',
-	'math_failure' => "Peta ''parse'' gagal",
-	'math_unknown_error' => 'Kasalahan teu kanyahoan',
-	'math_unknown_function' => 'fungsi teu kanyahoan',
-	'math_lexing_error' => 'kasalahan lexing',
-	'math_syntax_error' => 'Kasalahan rumpaka',
-	'math_image_error' => 'Konversi PNG gagal; pastikeun yén latex, dvips, gs, jeung convert geus bener nginstalna',
-	'math_bad_tmpdir' => 'Henteu bisa nulis atawa nyieun direktori samentara math',
-	'math_bad_output' => 'Henteu bisa nulisikeun atawa nyieun direktori keluaran math',
-);
-
-/** Swedish (Svenska)
- * @author Boivie
- * @author Habj
- * @author Nghtwlkr
- * @author Sannab
- */
-$messages['sv'] = array(
-	'math_sample' => 'Skriv formeln här',
-	'math_tip' => 'Matematisk formel (LaTeX)',
-	'prefs-math' => 'Matematik',
-	'mw_math_png' => 'Rendera alltid PNG',
-	'mw_math_simple' => 'HTML om mycket enkel, annars PNG',
-	'mw_math_html' => 'HTML om möjligt, annars PNG',
-	'mw_math_source' => 'Låt vara TeX (för textbaserade webbläsare)',
-	'mw_math_modern' => 'Rekommenderat för modern webbläsare',
-	'mw_math_mathml' => 'MathML om möjligt (experimentellt)',
-	'math_failure' => 'Misslyckades med att tolka formel.',
-	'math_unknown_error' => 'okänt fel',
-	'math_unknown_function' => 'okänd funktion',
-	'math_lexing_error' => 'regelfel',
-	'math_syntax_error' => 'syntaxfel',
-	'math_image_error' => 'Konvertering till PNG-format misslyckades; kontrollera om latex och dvipng (eller dvips + gs + convert) är korrekt installerade',
-	'math_bad_tmpdir' => 'Kan inte skriva till eller skapa temporär mapp för matematikresultat',
-	'math_bad_output' => 'Kan inte skriva till eller skapa mapp för matematikresultat',
-	'math_notexvc' => 'Applicationen texvc saknas; läs math/README för konfigureringsanvisningar.',
-);
-
-/** Swahili (Kiswahili)
- * @author Lloffiwr
- * @author Malangali
- */
-$messages['sw'] = array(
-	'math_sample' => 'Ingiza formula hapa',
-	'math_tip' => 'Formula ya kihesabu (LaTeX)',
-	'prefs-math' => 'Hisabati',
-	'math_unknown_error' => 'hitilafu isiyojulikana',
-);
-
-/** Silesian (Ślůnski)
- * @author Lajsikonik
- * @author Timpul
- */
-$messages['szl'] = array(
-	'math_sample' => 'Sam tukej wprowadź wzůr',
-	'math_tip' => 'Wzůr matymatyčny (LaTeX)',
-	'prefs-math' => 'Wzory',
-	'mw_math_png' => 'Zawše gyneruj grafika PNG',
-	'mw_math_simple' => 'HTML dla prostych, do pozostouych grafika PNG',
-	'mw_math_html' => 'Sprůbuj HTML, a jak ńy idźe užyj grafiki PNG',
-	'mw_math_source' => 'Uostow w TeXu (dla přyglůndarek tekstowych)',
-	'mw_math_modern' => 'HTML – zalecane do nowych přyglůndarek',
-	'mw_math_mathml' => 'MathML jak dostympny (eksperymyntalne)',
-	'math_failure' => 'Parser ńy můg rozpoznać',
-	'math_unknown_error' => 'ńyznany feler',
-	'math_unknown_function' => 'ńyznano funkcyjo',
-	'math_lexing_error' => 'feler leksera',
-	'math_syntax_error' => 'felerno skuadńa',
-	'math_image_error' => 'kůnwersyjo do formatu PNG ńy powjodua śe; uobadej, eli poprawńy zainštalowane sům lotex, dvips, gs i convert',
-	'math_bad_tmpdir' => 'Ńy idźe utwořić abo naškryflać w tymčasowym katalůgu do wzorůw matymatyčnych',
-	'math_bad_output' => 'Ńy idźe utwořić abo naškryflać we wyjśćowym katalůgu do wzorůw matymatyčnych',
-	'math_notexvc' => 'Ńy ma sam texvc; zapoznej śe z math/README w celu kůnfiguracyje.',
-);
-
-/** Tamil (தமிழ்)
- * @author Trengarasu
- * @author செல்வா
- */
-$messages['ta'] = array(
-	'math_sample' => 'இங்கே வாய்பாட்டை இடுக',
-	'math_tip' => 'கணித வாய்பாடு (LaTeX)',
-	'prefs-math' => 'கணிதம்',
-	'mw_math_png' => 'எப்போதும் பி.என்.ஞ்சி (PNG) ஆக மாற்று',
-	'mw_math_simple' => 'சிக்கலற்றதாயின் எச்.டி.எம்.எல் (HTML), இல்லாவிடில் பி.என்.ஞ்சி (PNG)',
-	'mw_math_html' => 'கூடுமானால் எச்.டி.எம்.எல் (HTML), இல்லாவிடில் பி.என்.ஞ்சி (PNG)',
-	'mw_math_source' => 'TeX  ஆக விட்டு வை (உரைசார் உலாவிகளுக்கு)',
-	'mw_math_modern' => 'புதிய உலாவிகளுக்குப் பரிந்துரைக்கப்படுவது',
-	'mw_math_mathml' => 'கூடுமாயின் MathML (சோதனை)',
-	'math_failure' => 'பாகுபடுத்தல் தோல்வி',
-	'math_unknown_error' => 'அறியாத ஏதோவொரு பிழை',
-	'math_unknown_function' => 'அறியப்படாத செயற்பாடு',
-	'math_lexing_error' => 'தொகுத்தல் (லெக்சிங்) தவறு',
-	'math_syntax_error' => 'தொடரமைப்புத் தவறு',
-	'math_bad_tmpdir' => 'தற்காலிக கணித அடைவை உருவாக்க அல்லது எழுத முடியவில்லை',
-	'math_bad_output' => 'கணித அடைவை உருவாக்க அல்லது அதில் எழுத முடியவில்லை.',
-);
-
-/** Tulu (ತುಳು)
- * @author VinodSBangera
- */
-$messages['tcy'] = array(
-	'math_sample' => 'ಮುಲ್ಪ ಸೂತ್ರೊನು ಪಾಡ್’ಲೆ',
-	'math_tip' => 'ಗಣಿತ ಸೂತ್ರ (LaTeX)',
-);
-
-/** Telugu (తెలుగు)
- * @author Chaduvari
- * @author Sunil Mohan
- * @author Veeven
- */
-$messages['te'] = array(
-	'math_sample' => 'సూత్రాన్ని ఇక్కడ ఇవ్వండి',
-	'math_tip' => 'గణిత సూత్రం (LaTeX)',
-	'prefs-math' => 'గణితం',
-	'mw_math_png' => 'ఎల్లప్పుడూ PNGగా చూపించు',
-	'mw_math_simple' => 'తేలికగా ఉంటే HTML లేకపోతే PNG',
-	'mw_math_html' => 'వీలైతే ఎచ్‌టీఎంఎల్ లేకపోతే పింగ్',
-	'mw_math_source' => 'టెక్ గానే ఉండనివ్వు (టెక్స్ట్‌ బ్రౌజర్ల కొరకు)',
-	'mw_math_modern' => 'ఆధునిక విహారిణులకు ఉద్దేశించినది',
-	'mw_math_mathml' => 'వీలయితే MathML (ప్రయోగాత్మకం)',
-	'math_failure' => 'పార్స్ చెయ్యలేకపోయాం',
-	'math_unknown_error' => 'గుర్తుతెలియని పొరపాటు',
-	'math_unknown_function' => 'తెలియని ఫంక్షన్',
-	'math_lexing_error' => 'లెక్సింగ్ లోపం',
-	'math_syntax_error' => 'సింటాక్సు లోపం',
-	'math_image_error' => 'PNG మార్పిడి విఫలమైంది; latex మరియు divpng (లేదా dvips + gs + convert) లు స్థాపితమయ్యాయని సరిచూసుకోండి',
-	'math_bad_tmpdir' => 'math తాత్కాలిక డైరెక్టరీని సృష్టించలేకపోడం కానీ, అందులో రాయలేకపోవడంగానీ జరిగింది',
-	'math_bad_output' => 'math ఔట్‌పుట్ డైరెక్టరీని సృష్టించలేకపోడం కానీ, అందులో రాయలేకపోవడంగానీ జరిగింది',
-	'math_notexvc' => 'texvc ఎక్జిక్యూటబుల్ కనబడడం లేదు; కాన్ఫిగరు చెయ్యడానికి math/README చూడండి.',
-);
-
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
- * @author Ibrahim
- */
-$messages['tg-cyrl'] = array(
-	'math_sample' => 'Илова кардани формула дар инҷо',
-	'math_tip' => 'Формулаи риёзӣ (LaTeX)',
-	'prefs-math' => 'Риёзиёт',
-	'mw_math_png' => 'Ҳамеша PNG кашида шавад',
-	'mw_math_simple' => 'Агар хеле содда HTML вагарна PNG',
-	'mw_math_html' => 'Аз рӯи имкон HTML вагарна PNG',
-	'mw_math_source' => 'Ҳамчун TeX боқӣ бимон (барои мурургарҳои матнӣ)',
-	'mw_math_modern' => 'Тавсеҳ шуда барои мурургарҳои замонавӣ',
-	'mw_math_mathml' => 'Истифода аз MathML дар сурати имкон (озмоишӣ)',
-	'math_failure' => 'Шикаст дар таҷзеҳ',
-	'math_unknown_error' => 'хатои ношинос',
-	'math_unknown_function' => 'амали номаълум',
-	'math_lexing_error' => 'хатои lexing',
-	'math_syntax_error' => 'хатои наҳвӣ',
-	'math_image_error' => 'Табдил ба PNG шикаст хӯр; насби дурусти latex, dvips, gs, ва табдилотро баррасӣ кунед',
-	'math_bad_tmpdir' => 'Имкони эҷод ё навистани иттилоот дар пӯшаи муваққатии риёзӣ (temp) вуҷуд надорад',
-	'math_bad_output' => 'Имкони эҷод ё навистани иттилоот дар пӯшаи хуруҷии риёзӣ (output) вуҷуд надорад',
-	'math_notexvc' => 'Барномаи ичроии texvc мавҷуд нест; барои иттилооти бештар ба math/README нигаред.',
-);
-
-/** Tajik (Latin) (Тоҷикӣ (Latin))
- * @author Liangent
- */
-$messages['tg-latn'] = array(
-	'math_sample' => 'Ilova kardani formula dar inço',
-	'math_tip' => 'Formulai rijozī (LaTeX)',
-	'prefs-math' => 'Rijozijot',
-	'mw_math_png' => 'Hameşa PNG kaşida şavad',
-	'mw_math_simple' => 'Agar xele sodda HTML vagarna PNG',
-	'mw_math_html' => 'Az rūi imkon HTML vagarna PNG',
-	'mw_math_source' => 'Hamcun TeX boqī bimon (baroi mururgarhoi matnī)',
-	'mw_math_modern' => 'Tavseh şuda baroi mururgarhoi zamonavī',
-	'mw_math_mathml' => 'Istifoda az MathML dar surati imkon (ozmoişī)',
-	'math_failure' => 'Şikast dar taçzeh',
-	'math_unknown_error' => 'xatoi noşinos',
-	'math_unknown_function' => "amali noma'lum",
-	'math_lexing_error' => 'xatoi lexing',
-	'math_syntax_error' => 'xatoi nahvī',
-	'math_image_error' => 'Tabdil ba PNG şikast xūr; nasbi durusti latex, dvips, gs, va tabdilotro barrasī kuned',
-	'math_bad_tmpdir' => 'Imkoni eçod jo navistani ittiloot dar pūşai muvaqqatiji rijozī (temp) vuçud nadorad',
-	'math_bad_output' => 'Imkoni eçod jo navistani ittiloot dar pūşai xuruçiji rijozī (output) vuçud nadorad',
-	'math_notexvc' => 'Barnomai icroiji texvc mavçud nest; baroi ittilooti beştar ba math/README nigared.',
-);
-
-/** Thai (ไทย)
- * @author Ans
- * @author Octahedron80
- */
-$messages['th'] = array(
-	'math_sample' => 'ใส่สูตรที่นี่',
-	'math_tip' => 'ใส่สูตรทางคณิตศาสตร์ (LaTeX)',
-	'prefs-math' => 'คณิตศาสตร์',
-	'mw_math_png' => 'เรนเดอร์เป็น PNG เสมอ',
-	'mw_math_simple' => 'ใช้พื้นฐานเป็น HTML ถ้าไม่ได้ใช้ PNG',
-	'mw_math_html' => 'ถ้าเป็นไปได้ใช้เป็น HTML ถ้าไม่ได้ใช้ PNG',
-	'mw_math_source' => 'ปล่อยข้อมูลเป็น TeX (สำหรับเว็บเบราว์เซอร์แบบข้อความ)',
-	'mw_math_modern' => 'แนะนำสำหรับเว็บเบราว์เซอร์สมัยใหม่',
-	'mw_math_mathml' => 'ถ้าเป็นไปได้ใช้ MathML (ขั้นทดลอง)',
-	'math_failure' => 'ส่งผ่านค่าไม่ได้',
-	'math_unknown_error' => 'ข้อผิดพลาดที่ไม่ทราบ',
-	'math_unknown_function' => 'คำสั่งที่ไม่ทราบ',
-	'math_lexing_error' => 'การจำแนกสูตรผิดพลาด',
-	'math_syntax_error' => 'ไวยากรณ์ผิดพลาด',
-	'math_image_error' => 'การแปลง PNG ล้มเหลว กรุณาตรวจสอบการติดตั้ง latex และ dvipng (หรือ dvips + gs + convert) ให้ถูกต้อง',
-	'math_bad_tmpdir' => 'ไม่สามารถเขียนค่าหรือสร้าง ลงไดเรกทอรีชั่วคราวสำหรับเก็บค่าทางคณิตศาสตร์ได้',
-	'math_bad_output' => 'ไม่สามารถเขียนค่าหรือสร้าง ลงไดเรกทอรีปลายทางสำหรับเก็บค่าทางคณิตศาสตร์ได้',
-	'math_notexvc' => 'เกิดข้อความผิดพลาด texvc ไม่พบ กรุณาตรวจสอบ math/README เพื่อตั้งค่า',
-);
-
-/** Turkmen (Türkmençe)
- * @author Hanberke
- */
-$messages['tk'] = array(
-	'math_sample' => 'Matematiki formulany şu ýere ýazyň',
-	'math_tip' => 'Matematiki formula (LaTeX formatynda)',
-	'prefs-math' => 'Matematiki formulalar',
-	'mw_math_png' => 'Hemişe PNG öwür',
-	'mw_math_simple' => 'Örän aňsat bolsa HTML, ýogsam PNG',
-	'mw_math_html' => 'Mümkin bolsa HTML, ýogsam PNG',
-	'mw_math_source' => 'TeX-ligine galdyr (tekst brauzerleri üçin)',
-	'mw_math_modern' => 'Häzirkizaman brauzerlere maslahat berilýär',
-	'mw_math_mathml' => 'Mümkin bolsa MathML (eksperimental)',
-	'math_failure' => 'Derňäp bolmady',
-	'math_unknown_error' => 'näbelli säwlik',
-	'math_unknown_function' => 'näbelli funksiýa',
-	'math_lexing_error' => 'leksiki säwlik',
-	'math_syntax_error' => 'sintaktik säwlik',
-	'math_image_error' => 'PNG öwürmeklik şowsuz boldy;
-latex, dvips, gs we convert gurluşlarynyň dogrulygyny barlaň',
-	'math_bad_tmpdir' => 'Matematikanyň wagtlaýyn katalogyny ýazyp ýa-da döredip bolanok',
-	'math_bad_output' => 'Matematika çykyş katalogyny ýazyp ýa-da döredip bolanok',
-	'math_notexvc' => 'texvc ýerine ýetirilýän faýl tapylmady;
-konfigurirlemek üçin math/README serediň.',
-);
-
-/** Tagalog (Tagalog)
- * @author AnakngAraw
- */
-$messages['tl'] = array(
-	'math_sample' => 'Isingit ang pormula dito',
-	'math_tip' => 'Pormulang pangmatematika (LaTeX)',
-	'prefs-math' => 'Matematika',
-	'mw_math_png' => 'Palaging ilarawan sa anyong PNG',
-	'mw_math_simple' => 'HTML kung napakapayak o kaya PNG kung iba',
-	'mw_math_html' => 'HTML kung maaari o kaya PNG kapag iba',
-	'mw_math_source' => "Iwanan bilang TeX (para sa mga panghanap na pangteksto o ''text browser'')",
-	'mw_math_modern' => 'Irekomenda para sa makabagong mga panghanap',
-	'mw_math_mathml' => 'MathML kung maaari (sinusubok pa)',
-	'math_failure' => 'Nabigo sa pagbanghay',
-	'math_unknown_error' => 'hindi nalalamang kamalian',
-	'math_unknown_function' => 'hindi nalalamang tungkulin',
-	'math_lexing_error' => 'kamalian sa pagbabatas',
-	'math_syntax_error' => 'kamalian sa palaugnayan',
-	'math_image_error' => 'Nabigo ang pagpapalit upang maging PNG; suriin kung tama ang pagtatalaga ng latex at dvipng (o dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Hindi maisulat sa o makalikha ng pansamantalang direktoryong pangmatematika',
-	'math_bad_output' => 'Hindi maisulat sa o makalikha ng direktoryo ng produktong pangmatematika',
-	'math_notexvc' => 'Nawawala ang maisasakatuparang texvc;
-pakitingnan ang matematika/BASAHINAKO para maisaayos ang konpigurasyon.',
-);
-
-/** Tonga (lea faka-Tonga)
- * @author Tauʻolunga
- */
-$messages['to'] = array(
-	'math_tip' => "Kupuʻilea fakamatematika ''(LaTex)''",
-	'prefs-math' => 'Matematika',
-	'mw_math_png' => 'Fai PNG taimi kotoa',
-	'mw_math_simple' => 'Fai HTML kapau faingofua ʻaupito, pe toe PNG',
-	'mw_math_html' => 'Fai HTML kapau malava, pe toe PNG',
-	'mw_math_source' => "Fakatoe ʻi he ''TeX'' maʻa e ngaahi palausa tohi pē",
-	'mw_math_modern' => 'ʻOku fakahinohino maʻa e palausa fakaonopooni.',
-	'mw_math_mathml' => 'Fai MathML kapau malava (fakatotolo)',
-	'math_unknown_error' => 'hala taʻeʻiloa',
-	'math_unknown_function' => 'lakanga taʻeʻiloa',
-	'math_bad_output' => 'ʻOku ʻikai lava ʻo tohi pe fakatupu ʻa e takafi maʻa e fua matematika',
-);
-
-/** Tok Pisin (Tok Pisin)
- * @author Iketsi
- */
-$messages['tpi'] = array(
-	'math_tip' => 'Matematik formula (LaTeX)',
-	'prefs-math' => 'Matematiks',
-);
-
-/** Turkish (Türkçe)
- * @author Emperyan
- * @author Erkan Yilmaz
- * @author Joseph
- * @author Runningfridgesrule
- * @author Srhat
- * @author Uğur Başak
- */
-$messages['tr'] = array(
-	'math_sample' => 'Matematiksel-ifadeyi-girin',
-	'math_tip' => 'Matematik formülü (LaTeX formatında)',
-	'prefs-math' => 'Matematiksel simgeler',
-	'mw_math_png' => 'Daima PNG resim formatına çevir',
-	'mw_math_simple' => 'Çok basitse HTML, değilse PNG',
-	'mw_math_html' => 'Mümkünse HTML, değilse PNG',
-	'mw_math_source' => 'Değiştirmeden TeX olarak bırak  (metin tabanlı tarayıcılar için)',
-	'mw_math_modern' => 'Modern tarayıcılar için tavsiye edilen',
-	'mw_math_mathml' => 'Mümkünse MathML (daha deneme aşamasında)',
-	'math_failure' => 'Ayrıştırılamadı',
-	'math_unknown_error' => 'bilinmeyen hata',
-	'math_unknown_function' => 'bilinmeyen fonksiyon',
-	'math_lexing_error' => 'lexing hatası',
-	'math_syntax_error' => 'sözdizim hatası',
-	'math_image_error' => 'PNG çevirisi başarısız; latex, dvips ve gs programlarının doğru yüklendiğine emin olun ve çeviri işlemini başlatın.',
-	'math_bad_tmpdir' => 'Math geçici dizinine yazılamıyor ya da oluşturulamıyor',
-	'math_bad_output' => 'Math çıktı dizinine yazılamıyor ya da oluşturulamıyor',
-	'math_notexvc' => "texvc çalıştırılabiliri kayıp;
-ayarlamak için math/README'ye bakın.",
-);
-
-/** Tatar (Cyrillic) (Татарча/Tatarça (Cyrillic))
- * @author Don Alessandro
- * @author KhayR
- * @author Ерней
- * @author Ильнар
- * @author Рашат Якупов
- */
-$messages['tt-cyrl'] = array(
-	'math_sample' => 'Формуланы монда өстәгез',
-	'math_tip' => 'Математик формула (LaTeX форматы)',
-	'prefs-math' => 'Формулалар',
-	'mw_math_png' => 'Һәрвакыт PNG белән бәйләү',
-	'mw_math_simple' => 'Гади очракларда HTML, яисә PNG кулланылсын',
-	'mw_math_html' => 'Мөмкин булса HTML, яисә PNG кулланылсын',
-	'mw_math_source' => 'ТеХ билгеләнешендә калдырылсын (текстлы браузерлар өчен)',
-	'mw_math_modern' => 'Бүгенге браузерлар өчен кулланылсын',
-	'mw_math_mathml' => 'Мөмкин булса MathML кулланылсын (эксперименталь)',
-	'math_failure' => 'Укый алмадым',
-	'math_unknown_error' => 'беленмәгән хата',
-	'math_unknown_function' => 'билгесез функция',
-	'math_lexing_error' => 'лексик хата',
-	'math_syntax_error' => 'синтаксик хата',
-);
-
-/** Tatar (Latin) (Татарча/Tatarça (Latin))
- * @author Don Alessandro
- */
-$messages['tt-latn'] = array(
-	'math_sample' => 'Formulanı monda östägez',
-	'math_tip' => 'Matematik formula (LaTeX formatı)',
-	'prefs-math' => 'Formulalar',
-	'mw_math_png' => 'Härwaqıt PNG belän bäyläw',
-	'mw_math_simple' => 'Ğädi oçraqlarda HTML, yäisä PNG qullanılsın',
-	'mw_math_html' => 'Mömkin bulsa HTML, yäisä PNG qullanılsın',
-	'mw_math_source' => 'TeX bilgeläneşendä qaldırılsın (tekstlı brauzerlar öçen)',
-	'mw_math_modern' => 'Bügenge brauzerlar öçen qullanılsın',
-	'mw_math_mathml' => 'Mömkin bulsa MathML qullanılsın (eksperimental)',
-	'math_failure' => 'Uqıy almadım',
-	'math_unknown_error' => 'belenmägän xata',
-	'math_unknown_function' => 'bilgesez funksiä',
-	'math_lexing_error' => 'leksik xata',
-	'math_syntax_error' => 'sintaksik xata',
-);
-
-/** Tuvinian (Тыва дыл)
- * @author Sborsody
- */
-$messages['tyv'] = array(
-	'math_sample' => 'Формуланы мынаар киирери',
-	'math_unknown_error' => 'билбес алдаг',
-);
-
-/** ئۇيغۇرچە (ئۇيغۇرچە)
- * @author Sahran
- */
-$messages['ug-arab'] = array(
-	'math_sample' => 'بۇ جايغا فورمۇلا قىستۇر',
-	'math_tip' => 'ماتېماتېكىلىق فورمۇلا (LaTeX)',
-	'prefs-math' => 'ماتېماتېكىلىق فورمۇلا',
-	'mw_math_png' => 'ھەمىشە PNG ئىشلەت',
-	'mw_math_simple' => 'ئەگەر ئاددىي فورمۇلا بولسا HTML ئىشلەت بولمىسا PNG سۈرەت ئىشلەت',
-	'mw_math_html' => 'ئەگەر HTML ئىشلەتكىلى بولسا شۇنى بولمىسا PNG سۈرەت ئىشلەت',
-	'mw_math_source' => 'TeX كودى كۆرسەت (تېكست توركۆرگۈ ئىشلەتكەندە)',
-	'mw_math_modern' => 'يېڭى نەشرىدىكى توركۆرگۈ ئىشلىتىش تەۋسىيە قىلىنىدۇ',
-	'mw_math_mathml' => 'ئامال بار MathML ئىشلىتىدۇ (سىناق)',
-	'math_failure' => 'تەھلىل قىلالمىدى',
-	'math_unknown_error' => 'نامەلۇم خاتالىق',
-	'math_unknown_function' => 'نامەلۇم فونكسىيە',
-	'math_lexing_error' => 'جۈملە خاتالىقى',
-	'math_syntax_error' => 'گرامماتىكىلىق خاتالىق',
-	'math_image_error' => 'PNG ئايلاندۇرۇش مەغلۇپ بولدى؛
-latex، dvips، gs، ۋە convert توغرا قاچىلانغانلىقىنى تەكشۈرۈڭ',
-	'math_bad_tmpdir' => 'ماتېماتېكىلىق فورمۇلا يازىدىغان ياكى قۇرىدىغان ۋاقىتلىق مۇندەرىجە قۇرالمىدى',
-	'math_bad_output' => 'ماتېماتېكىلىق فورمۇلا چىقىرىدىغان مۇندەرىجىگە يازالمىدى ياكى قۇرالمىدى',
-	'math_notexvc' => ' texvc ئىجرا قىلالمىدى؛ math/README دىن پايدىلىنىپ سەپلەڭ.',
-);
-
-/** Ukrainian (Українська)
- * @author Тест
- */
-$messages['uk'] = array(
-	'math_sample' => 'Вставте сюди формулу',
-	'math_tip' => 'Математична формула (LaTeX)',
-	'prefs-math' => 'Відображення формул',
-	'mw_math_png' => 'Завжди генерувати PNG',
-	'mw_math_simple' => 'HTML в простих випадках, інакше - PNG',
-	'mw_math_html' => 'Якщо можливо - HTML, інакше PNG',
-	'mw_math_source' => 'Залишити в вигляді ТеХ (для текстових браузерів)',
-	'mw_math_modern' => 'Рекомендовано для сучасних браузерів',
-	'mw_math_mathml' => 'Якщо можливо - MathML (експериментальна опція)',
-	'math_failure' => 'Неможливо розібрати вираз',
-	'math_unknown_error' => 'невідома помилка',
-	'math_unknown_function' => 'невідома функція',
-	'math_lexing_error' => 'лексична помилка',
-	'math_syntax_error' => 'синтаксична помилка',
-	'math_image_error' => 'PNG перетворення не вдалося; перевірте правильність установки latex і dvipng (або dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Не вдається створити чи записати в тимчасовий каталог математики',
-	'math_bad_output' => 'Не вдається створити чи записати в вихідний каталог математики',
-	'math_notexvc' => 'Не знайдено програму texvc; Див. math/README — довідку про налаштування.',
-);
-
-/** Urdu (اردو)
- * @author محبوب عالم
- */
-$messages['ur'] = array(
-	'math_sample' => 'صیغہ یہاں درج کیجئے',
-	'math_tip' => '(ریاضیاتی صیغہ LaTeX)',
-	'prefs-math' => 'ریاضی',
-	'math_failure' => 'تجزیہ میں ناکام',
-	'math_unknown_error' => 'نامعلوم غلطی',
-	'math_unknown_function' => 'نامعلوم فعل',
-	'math_syntax_error' => 'نحوی غلطی',
-	'math_image_error' => 'PNG; کی تحویل ناکام
-latex، dvips، gs کی صحیح تنصیب کی جانچ کرنے کے بعد دوبارہ تحویل کی کوشش کیجئے.',
-);
-
-/** Uzbek (O'zbek)
- * @author Abdulla
- */
-$messages['uz'] = array(
-	'math_sample' => 'Formula qoʻying',
-	'math_tip' => 'Matematik formula (LaTeX)',
-	'prefs-math' => 'Formulalar',
-);
-
-/** Vèneto (Vèneto)
- * @author Candalua
- * @author Vajotwo
- */
-$messages['vec'] = array(
-	'math_sample' => 'Inserire qua ła formuła',
-	'math_tip' => 'Formula matematega (LaTeX)',
-	'prefs-math' => 'Formułe matematiche',
-	'mw_math_png' => 'Mostra senpre in PNG',
-	'mw_math_simple' => "HTML se'l xe senplice assè, altrimenti PNG",
-	'mw_math_html' => 'HTML se se pol, altrimenti PNG',
-	'mw_math_source' => 'Lassa in formato TeX (par browser testuali)',
-	'mw_math_modern' => 'Racomandà par i browser pì novi',
-	'mw_math_mathml' => 'Usa MathML se se pol (sperimental)',
-	'math_failure' => 'Eror del parser',
-	'math_unknown_error' => 'eror sconossiùo',
-	'math_unknown_function' => 'funzion sconossiùa',
-	'math_lexing_error' => 'eror lessicale',
-	'math_syntax_error' => 'eror de sintassi',
-	'math_image_error' => 'Conversion in PNG fałía',
-	'math_bad_tmpdir' => 'Inpossibile scrìvar o crear la directory tenporanea par math',
-	'math_bad_output' => 'Inpossibile scrìvar o crear la directory de output par math',
-	'math_notexvc' => 'Eseguibile texvc mancante; par piaser consulta math/README par la configurazion.',
-);
-
-/** Veps (Vepsan kel')
- * @author Игорь Бродский
- */
-$messages['vep'] = array(
-	'math_sample' => 'Pangat formul nakhu',
-	'math_tip' => 'Matematine formul (LaTeX-formatas)',
-	'prefs-math' => 'Matematik',
-	'mw_math_png' => 'Kaiken generiruida PNG',
-	'mw_math_simple' => 'Ozutada HTML koveritomil statjoil, ika ozutada PNG',
-	'mw_math_html' => 'Ozutada, ku voib, HTML, ika ozutada PNG',
-	'mw_math_source' => 'Jätkat nece TeX-formas (tekstkaclimiden täht)',
-	'mw_math_modern' => "Kut rekomeduidas nügüd'aigaižiden kaclimiden täht",
-	'mw_math_mathml' => 'MathML, ku sab (eksperimentaližikš)',
-	'math_failure' => 'Ei voi palastada',
-	'math_unknown_error' => 'tundmatoi petuz',
-	'math_unknown_function' => 'tundmatoi funkcii',
-	'math_lexing_error' => 'leksine petuz',
-	'math_syntax_error' => 'sintaksine petuz',
-	'math_image_error' => 'PNG-ks kändmižes ozaižihe petuz;
-kodvgat, oiged-ik oma järgetud: latex, dvips, gs da convert.',
-	'math_bad_tmpdir' => 'Ei voi säta pordaigaline matematine katalog vai ei voi kirjutada sinnä',
-	'math_bad_output' => 'Ei voi säta matematine lähtmižkatalog vai ei voi kirjutada sinnä',
-	'math_notexvc' => 'En voi löuta texvc-töfailad;
-kc. math/README järgendamižen täht.',
-);
-
-/** Vietnamese (Tiếng Việt)
- * @author Minh Nguyen
- * @author Vinhtantran
- */
-$messages['vi'] = array(
-	'math_sample' => 'Nhập công thức toán vào đây',
-	'math_tip' => 'Công thức toán (LaTeX)',
-	'prefs-math' => 'Công thức toán',
-	'mw_math_png' => 'Luôn cho ra dạng hình PNG',
-	'mw_math_simple' => 'HTML nếu rất đơn giản, nếu không thì PNG',
-	'mw_math_html' => 'HTML nếu có thể, nếu không thì PNG',
-	'mw_math_source' => 'Để nguyên mã TeX (dành cho trình duyệt văn bản)',
-	'mw_math_modern' => 'Khuyên dùng với các trình duyệt hiện đại',
-	'mw_math_mathml' => 'MathML nếu có thể (thử nghiệm)',
-	'math_failure' => 'Không thể phân tích cú pháp',
-	'math_unknown_error' => 'lỗi lạ',
-	'math_unknown_function' => 'hàm lạ',
-	'math_lexing_error' => 'lỗi chính tả',
-	'math_syntax_error' => 'lỗi cú pháp',
-	'math_image_error' => 'Không chuyển sang định dạng PNG được; xin kiểm tra lại cài đặt latex, dvips, gs, và convert (hoặc dvips + gs + convert)',
-	'math_bad_tmpdir' => 'Không tạo mới hay viết vào thư mục toán tạm thời được',
-	'math_bad_output' => 'Không tạo mới hay viết vào thư mục kết quả được',
-	'math_notexvc' => 'Không thấy hàm thực thi texvc; xin xem math/README để biết cách cấu hình.',
-);
-
-/** Upper Franconian (Mainfränkisch)
- * @author Altaileopard
- * @author Silvicola
- */
-$messages['vmf'] = array(
-	'math_sample' => 'Dô dii fôrml  (in TEX) nâjschrajm',
-	'math_tip' => 'Mademaadische Fôrml (in LATEX)',
-	'prefs-math' => 'TeX',
-);
-
-/** Volapük (Volapük)
- * @author Smeira
- */
-$messages['vo'] = array(
-	'math_sample' => 'Pladolös malatami isio',
-	'math_tip' => 'Malatam matematik (LaTeX)',
-	'prefs-math' => 'Logot formülas',
-	'mw_math_png' => 'Ai el PNG',
-	'mw_math_simple' => 'El HTML if go balugik, voto eli PNG',
-	'mw_math_html' => 'El HTML if mögos, voto eli PNG',
-	'mw_math_source' => 'Dakipolöd oni as TeX (pro bevüresodatävöms fomätü vödem)',
-	'mw_math_modern' => 'Pakomandöl pro bevüresodatävöms nulädik',
-	'mw_math_mathml' => 'El MathML if mögos (nog sperimänt)',
-	'math_failure' => 'Diletam fomüla no eplöpon',
-	'math_unknown_error' => 'pök nesevädik',
-	'math_unknown_function' => 'dun nesevädik',
-	'math_lexing_error' => 'vödidiletam no eplöpon',
-	'math_syntax_error' => 'süntagapöl',
-	'math_image_error' => 'Feajafam ela PNG no eplöpon;
-vestigolös stitami verätik ela latex, ela dvips, ela gs, e feajafön',
-	'math_bad_tmpdir' => 'No mögos ad penön ini / jafön ragiviär(i) matematik nelaidüpik.',
-	'math_bad_output' => 'No mögos ad penön ini / jafön ragiviär(i) matematik labü seks',
-	'math_notexvc' => 'Program-texvc ledunovik no petuvon;
-logolös eli math/README ad givulön parametemi.',
-);
-
-/** Votic (Vaďďa)
- * @author 2Q
- */
-$messages['vot'] = array(
-	'math_sample' => 'Lissä formula tänne',
-	'math_tip' => 'Matematillin formula (LaTeX)',
-);
-
-/** Võro (Võro)
- * @author Võrok
- */
-$messages['vro'] = array(
-	'math_sample' => 'Kirodaq vallõm siiäq',
-	'math_tip' => 'Matõmaatigatekst (LaTeX)',
-	'prefs-math' => 'Valõmidõ näütämine',
-	'mw_math_png' => 'Kõgõ PNG',
-	'mw_math_simple' => 'Ku väega lihtsä, sis HTML, muido PNG',
-	'mw_math_html' => 'Ku saa, sis HTML, muido PNG',
-	'mw_math_source' => 'Alalõ hoitaq TeX (tekstikaejin)',
-	'mw_math_modern' => 'Vahtsõmbilõ võrgokaejilõ soovitõt',
-	'math_failure' => 'Arvosaamalda süntaks',
-	'math_unknown_error' => 'Tundmalda viga',
-	'math_unknown_function' => 'Tundmalda tallitus',
-	'math_lexing_error' => 'Vällälugõmisviga',
-	'math_syntax_error' => 'Süntaksiviga',
-	'math_image_error' => 'PNG-muutus lää-s kõrda; kaeq üle, et latex, dvips, gs ja convert ommaq õigõhe paika säedüq',
-	'math_bad_tmpdir' => 'Matõmaatigateksti kirotaminõ aotlistõ kausta vai taa kausta luuminõ ei lääq kõrdaq',
-	'math_bad_output' => 'Matõmaatigateksti kirotaminõ välläandmiskausta vai sääntse kausta luuminõ ei lääq kõrda',
-	'math_notexvc' => 'Olõ-i texvc-tüüriista; loeq tuu paikasäädmise kotsilõ math/README-st.',
-);
-
-/** Walloon (Walon) */
-$messages['wa'] = array(
-	'math_sample' => "Tapez l' formule matematike chal",
-	'math_tip' => 'Formule matematike (LaTeX)',
-	'prefs-math' => 'Formules matematikes',
-	'mw_math_png' => 'Håyner tofer come ene imådje PNG',
-	'mw_math_simple' => "Håyner en HTML si c' est foirt simpe, ôtmint e PNG",
-	'mw_math_html' => "Håyner en HTML si c' est possibe, ôtmint e PNG",
-	'mw_math_source' => 'El leyî e TeX (po les betchteus e môde tecse)',
-	'mw_math_modern' => 'Ricmandé po les betchteus modienes',
-	'mw_math_mathml' => "Eployî MathML si c' est possibe (esperimintå)",
-	'math_unknown_error' => 'aroke nén cnoxhowe',
-	'math_unknown_function' => 'fonccion nén cnoxhowe',
-	'math_syntax_error' => 'aroke di sintacse',
-	'math_image_error' => 'Li cviersaedje e PNG a fwait berwete; verifyîz ki les programes latex, dvips, gs eyet convert ont stî astalés comifåt',
-	'math_bad_tmpdir' => "Dji n' sai nén scrire ou ahiver l' ridant timporaire po les formules matematikes",
-	'math_bad_output' => "Dji n' sai nén scrire ou ahiver l' ridant po les fitchîs di rexhowe des formules matematikes",
-	'math_notexvc' => 'I manke li fitchî enondåve texvc; lijhoz math/README po-z apontyî.',
-);
-
-/** Wolof (Wolof)
- * @author Ibou
- */
-$messages['wo'] = array(
-	'math_sample' => 'Duggalal sa mbind fii',
-	'math_tip' => 'Mbindu xayma (LaTeX)',
-	'prefs-math' => 'Xayma',
-	'mw_math_html' => 'HTML su manee ne, lu ko moy PNG',
-	'math_failure' => 'Njuumte ci xayma',
-	'math_unknown_error' => 'Njuumte li xamuñ ko',
-	'math_unknown_function' => 'Solo si xamuñ ko',
-	'math_lexing_error' => 'Njuumteg mbindin',
-	'math_syntax_error' => 'njuumtey mbindin',
-);
-
-/** Wu (吴语)
- * @author Wu-chinese.com
- */
-$messages['wuu'] = array(
-	'math_sample' => '箇搭嵌入数学公式',
-	'math_tip' => '插入数学公式 (LaTeX)',
-	'prefs-math' => '数学公式',
-);
-
-/** Kalmyk (Хальмг)
- * @author Huuchin
- */
-$messages['xal'] = array(
-	'math_sample' => 'Энд тегштклиг бичтн',
-	'math_tip' => 'Тегшткл (LaTeX)',
-	'prefs-math' => 'Тетшкүлүд',
-);
-
-/** Mingrelian (მარგალური)
- * @author Dawid Deutschland
- */
-$messages['xmf'] = array(
-	'math_sample' => 'ქინახუნეთ ფორმულა თაქ',
-	'math_tip' => 'მათემატიკურ ფორმულა (LaTeX)',
-);
-
-/** Yiddish (ייִדיש)
- * @author פוילישער
- */
-$messages['yi'] = array(
-	'math_sample' => 'לייגט אריין פארמל דא',
-	'math_tip' => 'מאטעמאטישע פארמל (LaTeX)',
-	'prefs-math' => 'פאָרמאַל',
-	'math_unknown_error' => 'אומבאַקאַנטער פֿעלער',
-	'math_unknown_function' => 'אומבאַקאַנטע פֿונקציע',
-	'math_lexing_error' => 'לעקסינג טעות',
-	'math_syntax_error' => 'סינטאקס גרייז',
-);
-
-/** Yoruba (Yorùbá)
- * @author Demmy
- */
-$messages['yo'] = array(
-	'math_sample' => "Ẹ fi àgbékalẹ̀ s'íhín",
-	'math_tip' => 'Àgbékalẹ̀ ìsirò (LaTeX)',
-	'prefs-math' => 'Ìṣirò',
-	'math_unknown_error' => 'àsiṣe àwámárìdí',
-	'math_unknown_function' => 'ìfiṣe àwámárìdí',
-	'math_lexing_error' => 'àsiṣe òye ọ̀rọ̀',
-);
-
-/** Cantonese (粵語)
- * @author Waihorace
- */
-$messages['yue'] = array(
-	'math_sample' => '喺呢度插入方程式',
-	'math_tip' => '數學方程(LaTeX)',
-	'prefs-math' => '數',
-	'mw_math_png' => '全部用PNG表示',
-	'mw_math_simple' => '如果好簡單嘅就用HTML,否則就用PNG',
-	'mw_math_html' => '可以嘅話都用HTML,否則就用PNG',
-	'mw_math_source' => '保留返用TeX(文字瀏覽器用)',
-	'mw_math_modern' => '新式瀏覽器嘅建議選項',
-	'mw_math_mathml' => '可以嘅話用MathML(實驗中)',
-	'math_failure' => '語法拼砌失敗',
-	'math_unknown_error' => '唔知錯乜',
-	'math_unknown_function' => '唔知乜函數',
-	'math_lexing_error' => 'lexing錯誤',
-	'math_syntax_error' => '語法錯誤',
-	'math_image_error' => 'PNG 轉換失敗;檢查latex、dvipng(或者dvips+gs+convert)係唔係已經正確咁樣安裝',
-	'math_bad_tmpdir' => '唔能夠寫入或建立臨時數目錄',
-	'math_bad_output' => '唔能夠寫入或建立輸出數目錄',
-	'math_notexvc' => 'texvc 執行檔已經遺失;請睇睇 math/README 去較吓。',
-);
-
-/** Zeeuws (Zeêuws)
- * @author NJ
- */
-$messages['zea'] = array(
-	'math_sample' => 'Voer de formule in',
-	'math_tip' => 'Wiskundihe formule (LaTeX)',
-	'prefs-math' => 'Formules',
-	'math_failure' => 'Parsen mislukt',
-	'math_unknown_error' => 'onbekende fout',
-	'math_unknown_function' => 'onbekende functie',
-	'math_lexing_error' => 'lexicohraofische fout',
-	'math_syntax_error' => 'syntactische fout',
-	'math_image_error' => 'PNG-omzettieng is mislukt. Hi nae of an latex, dvips en gs correct heïnstalleerd zien en zet om',
-	'math_bad_tmpdir' => "De map voe tiedelijke bestan'n voe wiskundihe formules besti nie of kan nie emikt worn",
-	'math_bad_output' => "De map voe bestan'n mie wiskundihe formules besti nie of kan nie emikt worn.",
-	'math_notexvc' => "Kan 't prohramma texvc nie vin'n; stel aolles in volhens de beschrievieng in math/README.",
-);
-
-/** Simplified Chinese (‪中文(简体)‬) */
-$messages['zh-hans'] = array(
-	'math_sample' => '在此插入数学公式',
-	'math_tip' => '插入数学公式 (LaTeX)',
-	'prefs-math' => '数学公式',
-	'mw_math_png' => '永远使用PNG图像',
-	'mw_math_simple' => '如果是简单的公式使用HTML,否则使用PNG图像',
-	'mw_math_html' => '如果可以用HTML,否则用PNG图像',
-	'mw_math_source' => '显示为TeX代码(使用文字浏览器时)',
-	'mw_math_modern' => '推荐为新版浏览器使用',
-	'mw_math_mathml' => '尽可能使用MathML(试验中)',
-	'math_failure' => '解析失败',
-	'math_unknown_error' => '未知错误',
-	'math_unknown_function' => '未知函数',
-	'math_lexing_error' => '句法错误',
-	'math_syntax_error' => '语法错误',
-	'math_image_error' => 'PNG 转换失败 ;检查正确安装的 latex 和 dvipng (或 dvips + gs + convert)',
-	'math_bad_tmpdir' => '无法写入或建立数学公式临时目录',
-	'math_bad_output' => '无法写入或建立数学公式输出目录',
-	'math_notexvc' => '"texvc"执行文件遗失;请参照math/README进行配置。',
-);
-
-/** Traditional Chinese (‪中文(繁體)‬)
- * @author Mark85296341
- */
-$messages['zh-hant'] = array(
-	'math_sample' => '在此插入數學公式',
-	'math_tip' => '插入數學公式 (LaTeX)',
-	'prefs-math' => '數學公式',
-	'mw_math_png' => '永遠使用PNG圖片',
-	'mw_math_simple' => '如果是簡單的公式使用HTML,否則使用PNG圖片',
-	'mw_math_html' => '如果可以用HTML,否則用PNG圖片',
-	'mw_math_source' => '顯示為TeX代碼 (使用文字瀏覽器時)',
-	'mw_math_modern' => '推薦為新版瀏覽器使用',
-	'mw_math_mathml' => '儘可能使用MathML (試驗中)',
-	'math_failure' => '解析失敗',
-	'math_unknown_error' => '未知錯誤',
-	'math_unknown_function' => '未知函數',
-	'math_lexing_error' => '句法錯誤',
-	'math_syntax_error' => '語法錯誤',
-	'math_image_error' => 'PNG 轉換失敗;請檢查是否正確安裝了 latex, dvipng(或dvips + gs + convert)',
-	'math_bad_tmpdir' => '無法寫入或建立數學公式臨時目錄',
-	'math_bad_output' => '無法寫入或建立數學公式輸出目錄',
-	'math_notexvc' => '"texvc"執行檔案遺失;請參照 math/README 進行配置。',
-);
-
-/** Chinese (Taiwan) (‪中文(台灣)‬) */
-$messages['zh-tw'] = array(
-	'mw_math_png' => '永遠使用PNG圖片',
-	'mw_math_simple' => '如果是簡單的公式使用HTML,否則使用PNG圖片',
-	'mw_math_html' => '如果可以用HTML,否則用PNG圖片',
-);
-
-/** Zulu (isiZulu) */
-$messages['zu'] = array(
-	'math_sample' => 'Faka izibalo lapha',
-	'prefs-math' => 'Izibalo',
-);
-
diff --git a/Math.php b/Math.php
index a2477b7..0cdb14f 100644
--- a/Math.php
+++ b/Math.php
@@ -1,101 +1,15 @@
 <?php
-/**
- * MediaWiki math extension
- *
- * @file
- * @ingroup Extensions
- * @version 1.0
- * @author Tomasz Wegrzanowski
- * @author Brion Vibber
- * @copyright © 2002-2011 various MediaWiki contributors
- * @license GPLv2 license; info in main package.
- * @link http://www.mediawiki.org/wiki/Extension:Math Documentation
- * @see https://bugzilla.wikimedia.org/show_bug.cgi?id=14202
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
-	die( "This is not a valid entry point to MediaWiki.\n" );
+if ( function_exists( 'wfLoadExtension' ) ) {
+	wfLoadExtension( 'Math' );
+	// Keep i18n globals so mergeMessageFileList.php doesn't break
+	$wgMessagesDirs['Math'] = __DIR__ . '/i18n';
+	$wgExtensionMessagesFiles['Math'] = __DIR__ . '/Math.alias.php';
+	$wgExtensionMessagesFiles['MathAliasNoTranslate'] = __DIR__ . '/Math.alias.noTranslate.php';
+	/* wfWarn(
+		'Deprecated PHP entry point used for Math extension. Please use wfLoadExtension instead, ' .
+		'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
+	);*/
+	return;
+} else {
+	die( 'This version of the Math extension requires MediaWiki 1.25+' );
 }
-
-// Extension credits that will show up on Special:Version
-$wgExtensionCredits['parserhook'][] = array(
-	'path' => __FILE__,
-	'name' => 'Math',
-	'version' => '1.0',
-	'author' => array( 'Tomasz Wegrzanowski', 'Brion Vibber', '...' ),
-	'description' => 'Render mathematical formulas between <code><math></code> ... <code></math></code> tags',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:Math',
-);
-
-/**@{
- * Maths constants
- */
-define( 'MW_MATH_PNG',    0 );
-define( 'MW_MATH_SIMPLE', 1 );
-define( 'MW_MATH_HTML',   2 );
-define( 'MW_MATH_SOURCE', 3 );
-define( 'MW_MATH_MODERN', 4 );
-define( 'MW_MATH_MATHML', 5 );
-/**@}*/
-
-/** For back-compat */
-$wgUseTeX = true;
-
-/** Location of the texvc binary */
-$wgTexvc = dirname( __FILE__ ) . '/math/texvc';
-/**
- * Texvc background color
- * use LaTeX color format as used in \special function
- * for transparent background use value 'Transparent' for alpha transparency or
- * 'transparent' for binary transparency.
- */
-$wgTexvcBackgroundColor = 'transparent';
-
-/**
- * Normally when generating math images, we double-check that the
- * directories we want to write to exist, and that files that have
- * been generated still exist when we need to bring them up again.
- *
- * This lets us give useful error messages in case of permission
- * problems, and automatically rebuild images that have been lost.
- *
- * On a big site with heavy NFS traffic this can be slow and flaky,
- * so sometimes we want to short-circuit it by setting this to false.
- */
-$wgMathCheckFiles = true;
-
-/**
- * The URL path of the math directory. Defaults to "{$wgUploadPath}/math".
- *
- * See http://www.mediawiki.org/wiki/Manual:Enable_TeX for details about how to
- * set up mathematical formula display.
- */
-$wgMathPath = false;
-
-/**
- * The filesystem path of the math directory.
- * Defaults to "{$wgUploadDirectory}/math".
- *
- * See http://www.mediawiki.org/wiki/Manual:Enable_TeX for details about how to
- * set up mathematical formula display.
- */
-$wgMathDirectory = false;
-
-
-////////// end of config settings.
-
-
-$wgExtensionFunctions[] = 'MathHooks::setup';
-$wgHooks['ParserFirstCallInit'][] = 'MathHooks::onParserFirstCallInit';
-$wgHooks['GetPreferences'][] = 'MathHooks::onGetPreferences';
-$wgHooks['LoadExtensionSchemaUpdates'][] = 'MathHooks::onLoadExtensionSchemaUpdates';
-$wgHooks['ParserTestTables'][] = 'MathHooks::onParserTestTables';
-$wgHooks['ParserTestParser'][] = 'MathHooks::onParserTestParser';
-
-$dir = dirname( __FILE__ ) . '/';
-$wgAutoloadClasses['MathHooks'] = $dir . 'Math.hooks.php';
-$wgAutoloadClasses['MathRenderer'] = $dir . 'Math.body.php';
-
-$wgExtensionMessagesFiles['Math'] = $dir . 'Math.i18n.php';
-
-$wgParserTestFiles[] = $dir . 'mathParserTests.txt';
diff --git a/MathDataModule.php b/MathDataModule.php
new file mode 100644
index 0000000..deeae5d
--- /dev/null
+++ b/MathDataModule.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Resource loader module providing extra data from the server to Math.
+ *
+ * @file
+ * @ingroup Extensions
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+class MathDataModule extends ResourceLoaderModule {
+
+	/* Protected Members */
+
+	protected $origin = self::ORIGIN_USER_SITEWIDE;
+	protected $targets = [ 'desktop', 'mobile' ];
+
+	/* Methods */
+
+	public function getScript( ResourceLoaderContext $context ) {
+		return
+			've.ui.MWMathDialog.static.setSymbols(' .
+				file_get_contents( __DIR__ . '/modules/ve-math/symbols.json' ) .
+			');';
+	}
+
+	public function getDependencies( ResourceLoaderContext $context = null ) {
+		return [
+			'ext.math.visualEditor',
+		];
+	}
+
+	public function enableModuleContentVersion() {
+		return true;
+	}
+}
diff --git a/MathFormatter.php b/MathFormatter.php
new file mode 100644
index 0000000..db7c722
--- /dev/null
+++ b/MathFormatter.php
@@ -0,0 +1,111 @@
+<?php
+
+use DataValues\StringValue;
+use ValueFormatters\Exceptions\MismatchingDataValueTypeException;
+use ValueFormatters\ValueFormatter;
+use Wikibase\Lib\SnakFormatter;
+
+/*
+* Formats the tex string based on the known formats
+* * text/plain: used in the value input field of Wikidata
+* * text/x-wiki: wikitext
+* * text/html: used in Wikidata to display the value of properties
+* Formats can look like this: "text/html; disposition=widget"
+* or just "text/plain"
+*/
+
+class MathFormatter implements ValueFormatter {
+
+	/**
+	 * @var string One of the SnakFormatter::FORMAT_... constants.
+	 */
+	private $format;
+
+	/**
+	 * Loads format to distinguish the type of formatting
+	 *
+	 * @param string $format One of the SnakFormatter::FORMAT_... constants.
+	 *
+	 * @throws InvalidArgumentException
+	 */
+	public function __construct( $format ) {
+		switch ( $format ) {
+			case SnakFormatter::FORMAT_PLAIN:
+			case SnakFormatter::FORMAT_WIKI:
+			case SnakFormatter::FORMAT_HTML:
+			case SnakFormatter::FORMAT_HTML_DIFF:
+			case SnakFormatter::FORMAT_HTML_WIDGET:
+				$this->format = $format;
+				break;
+			default:
+				throw new InvalidArgumentException( 'Unsupported output format: ' . $format );
+		}
+	}
+
+	/**
+	 * @param StringValue $value
+	 *
+	 * @throws MismatchingDataValueTypeException
+	 * @return string
+	 */
+	public function format( $value ) {
+		if ( !( $value instanceof StringValue ) ) {
+			throw new MismatchingDataValueTypeException( 'StringValue', get_class( $value ) );
+		}
+
+		$tex = $value->getValue();
+
+		switch ( $this->format ) {
+			case SnakFormatter::FORMAT_PLAIN:
+				return $tex;
+			case SnakFormatter::FORMAT_WIKI:
+				return "<math>$tex</math>";
+			default:
+				$renderer = new MathMathML( $tex );
+
+				if ( $renderer->checkTex() && $renderer->render() ) {
+					$html = $renderer->getHtmlOutput();
+				} else {
+					$html = $renderer->getLastError();
+				}
+
+				if ( $this->format === SnakFormatter::FORMAT_HTML_DIFF ) {
+					$html = $this->formatDetails( $html, $tex );
+				}
+
+				// TeX string is not valid or rendering failed
+				return $html;
+		}
+	}
+
+	/**
+	 * Constructs a detailed HTML rendering for use in diff views.
+	 *
+	 * @param string $valueHtml HTML
+	 * @param string $tex TeX
+	 *
+	 * @return string HTML
+	 */
+	private function formatDetails( $valueHtml, $tex ) {
+		$html = '';
+		$html .= Html::rawElement( 'h4',
+			[ 'class' => 'wb-details wb-math-details wb-math-rendered' ],
+			$valueHtml
+		);
+
+		$html .= Html::rawElement( 'div',
+			[ 'class' => 'wb-details wb-math-details' ],
+			Html::element( 'code', [], $tex )
+		);
+
+		return $html;
+	}
+
+	/**
+	 * @return string One of the SnakFormatter::FORMAT_... constants.
+	 */
+	public function getFormat() {
+		return $this->format;
+	}
+
+}
diff --git a/MathInputCheck.php b/MathInputCheck.php
new file mode 100644
index 0000000..fb09836
--- /dev/null
+++ b/MathInputCheck.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2014 Tomasz Wegrzanowski, Brion Vibber, Moritz Schubotz,
+ * and other MediaWiki contributors
+ *
+ * GPLv2 license; info in main package.
+ *
+ * @author Moritz Schubotz
+ */
+abstract class MathInputCheck {
+	protected $inputTeX;
+	protected $validTeX;
+	protected $isValid = false;
+	protected $lastError = null;
+
+	/**
+	 * Default constructor
+	 * (performs no checking)
+	 * @param String $tex the TeX InputString to be checked
+	 */
+	public function __construct( $tex = '' ) {
+		$this->inputTeX = $tex;
+		$this->isValid = false;
+	}
+
+	/**
+	 * Returns true if the TeX input String is valid
+	 * @return boolean
+	 */
+	public function isValid() {
+		return $this->isValid;
+	}
+
+	/**
+	 * Returns the string of the last error.
+	 * @return string
+	 */
+	public function getError() {
+		return $this->lastError;
+	}
+
+	/**
+	 * Some TeX checking programs may return
+	 * a modified tex string after having checked it.
+	 * You can get the altered tex string with this method
+	 * @return string A valid Tex string
+	 */
+	public function getValidTex() {
+		return $this->validTeX;
+	}
+}
diff --git a/MathInputCheckRestbase.php b/MathInputCheckRestbase.php
new file mode 100644
index 0000000..b2627c5
--- /dev/null
+++ b/MathInputCheckRestbase.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2015 Tomasz Wegrzanowski, Brion Vibber, Moritz Schubotz,
+ * and other MediaWiki contributors
+ * GPLv2 license; info in main package.
+ *
+ * @author Moritz Schubotz
+ */
+
+class MathInputCheckRestbase extends MathInputCheck {
+	private $restbaseInterface;
+
+	/**
+	 * Default constructor
+	 * (performs no checking)
+	 * @param string $tex the TeX input string to be checked
+	 * @param string $type
+	 * @param MathRestbaseInterface $ref
+	 */
+	public function __construct( $tex = '', $type = 'tex', &$ref = null ) {
+		parent::__construct( $tex );
+		if ( $ref ) {
+			$this->restbaseInterface = $ref;
+		} else {
+			$this->restbaseInterface = new MathRestbaseInterface( $tex, $type );
+			$ref = $this->restbaseInterface;
+		}
+	}
+
+	/**
+	 * @see https://phabricator.wikimedia.org/T119300
+	 * @param stdClass $e
+	 * @param MathRenderer $errorRenderer
+	 * @return string
+	 */
+	public function errorObjectToHtml( stdClass $e, $errorRenderer = null ) {
+		if ( $errorRenderer === null ) {
+			$errorRenderer =  new MathSource( $this->inputTeX );
+		}
+		if ( isset( $e->error->message ) ){
+			if ( $e->error->message === 'Illegal TeX function' ) {
+				return $errorRenderer->getError( 'math_unknown_function', $e->error->found );
+			} elseif ( preg_match( '/Math extension/', $e->error->message ) ) {
+				$names = MathHooks::getMathNames();
+				$mode = $names['mathml'];
+				try {
+					$host = $this->restbaseInterface->getUrl( '' );
+				}
+				catch ( Exception $ignore ) {
+					$host = 'invalid';
+				}
+				$msg = $e->error->message;
+				return $errorRenderer->getError( 'math_invalidresponse', $mode, $host, $msg );
+			}
+			return $errorRenderer->getError( 'math_syntax_error' );
+		}
+		return $errorRenderer->getError( 'math_unknown_error' );
+	}
+	/**
+	 * @return boolean
+	 */
+	public function isValid() {
+		return $this->restbaseInterface->getSuccess();
+	}
+
+	/**
+	 * Some TeX checking programs may return
+	 * a modified tex string after having checked it.
+	 * You can get the altered tex string with this method
+	 * @return string A valid Tex string
+	 */
+	public function getValidTex() {
+		return $this->restbaseInterface->getCheckedTex();
+	}
+
+	/**
+	 * Returns the string of the last error.
+	 * @return string
+	 */
+	public function getError() {
+		$err = $this->restbaseInterface->getError();
+		if ( $err === null ){
+			return null;
+		}
+		return $this->errorObjectToHtml( $err );
+	}
+
+	public function getRbi() {
+		return $this->restbaseInterface;
+	}
+
+}
diff --git a/MathInputCheckTexvc.php b/MathInputCheckTexvc.php
new file mode 100644
index 0000000..59849d6
--- /dev/null
+++ b/MathInputCheckTexvc.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2015 Tomasz Wegrzanowski, Brion Vibber, Moritz Schubotz,
+ * and other MediaWiki contributors
+ * GPLv2 license; info in main package.
+ *
+ * @author Moritz Schubotz
+ */
+
+use MediaWiki\Logger\LoggerFactory;
+
+class MathInputCheckTexvc extends MathInputCheck {
+
+	/**
+	 * Converts an error returned by texvc to a localized exception
+	 *
+	 * @param string $texvcResult error result returned by texvc
+	 * @param bool|MathRenderer $errorRenderer
+	 * @return string
+	 */
+	public function convertTexvcError( $texvcResult, $errorRenderer = false ) {
+		$texvcStatus = substr( $texvcResult, 0, 1 );
+		$errDetails = htmlspecialchars( substr( $texvcResult, 1 ) );
+
+		if ( $errorRenderer === false ) {
+			$errorRenderer =  new MathSource( $this->inputTeX );
+		}
+
+		switch ( $texvcStatus ) {
+			case 'E':
+				$errMsg = $errorRenderer->getError( 'math_lexing_error' );
+				break;
+			case 'S':
+				$errMsg = $errorRenderer->getError( 'math_syntax_error' );
+				break;
+			case 'F':
+				$errMsg = $errorRenderer->getError( 'math_unknown_function', $errDetails );
+				break;
+			default:
+				$errMsg = $errorRenderer->getError( 'math_unknown_error' );
+		}
+
+		return $errMsg;
+	}
+
+	/**
+	 * @return boolean
+	 */
+	public function isValid() {
+		$us = $this;
+		$checkWork = new PoolCounterWorkViaCallback( 'MathTexvc-check', "", [
+			'doWork' => function() use ( $us ) {
+				return $us->doValidCheck();
+			}
+		] );
+		return $checkWork->execute();
+	}
+
+	/**
+	 * @return boolean
+	 */
+	public function doValidCheck() {
+		global $wgMathTexvcCheckExecutable;
+		if ( $wgMathTexvcCheckExecutable === false ){
+			$texvcCheckExecutable = __DIR__ . '/texvccheck/texvccheck';
+		} else {
+			$texvcCheckExecutable = $wgMathTexvcCheckExecutable;
+		}
+		if ( !is_executable( $texvcCheckExecutable ) ) {
+			$msg = 'Missing "texvccheck" executable. Please see math/README to configure.';
+			trigger_error( $msg, E_USER_NOTICE );
+			LoggerFactory::getInstance( 'Math' )->error( $msg );
+			return true;
+		}
+
+		$cmd = $texvcCheckExecutable . ' ' . wfEscapeShellArg( $this->inputTeX );
+
+		if ( wfIsWindows() ) {
+			# Invoke it within cygwin sh, because texvc expects sh features in its default shell
+			$cmd = 'sh -c ' . wfEscapeShellArg( $cmd );
+		}
+
+		LoggerFactory::getInstance( 'Math' )->debug( "TeX check command: $cmd" );
+		$contents = wfShellExec( $cmd );
+		LoggerFactory::getInstance( 'Math' )->debug( "TeX check result: $contents\n---" );
+
+		if ( strlen( $contents ) === 0 ) {
+			LoggerFactory::getInstance( 'Math' )->warning( 'TeX check output was empty.' );
+			$this->lastError = $this->convertTexvcError( $contents );
+
+			return false;
+		}
+
+		$retval = substr( $contents, 0, 1 );
+
+		if ( $retval !== '+' ) {
+			$this->lastError = $this->convertTexvcError( $contents );
+			LoggerFactory::getInstance( 'Math' )->warning( 'checkTex failed: ' . $this->lastError );
+
+			return false;
+		} else {
+			$this->validTeX = substr( $contents, 1 );
+			$this->isValid = true;
+			LoggerFactory::getInstance( 'Math' )->debug(
+				'checkTex successful tex is now: ' . $this->validTeX );
+
+			return true;
+		}
+	}
+
+}
diff --git a/MathLaTeXML.php b/MathLaTeXML.php
new file mode 100644
index 0000000..765342e
--- /dev/null
+++ b/MathLaTeXML.php
@@ -0,0 +1,219 @@
+<?php
+use MediaWiki\Logger\LoggerFactory;
+
+/**
+ * MediaWiki math extension
+ *
+ * (c)2012 Moritz Schubotz
+ * GPLv2 license; info in main package.
+ *
+ * Contains the driver function for the LaTeXML daemon
+ * @file
+ */
+
+class MathLaTeXML extends MathMathML {
+	protected $defaultAllowedRootElements = [ 'math', 'div', 'table', 'query' ];
+	/** @var String settings for LaTeXML daemon */
+	private $LaTeXMLSettings = '';
+
+	public function __construct( $tex = '', $params = [] ) {
+		global $wgMathLaTeXMLUrl;
+		parent::__construct( $tex, $params );
+		$this->hosts = $wgMathLaTeXMLUrl;
+		$this->setMode( 'latexml' );
+	}
+	/**
+	 * Converts an array with LaTeXML settings to a URL encoded String.
+	 * If the argument is a string the input will be returned.
+	 * Thus the function has projector properties and can be applied a second time safely.
+	 * @param (string|array) $array
+	 * @return string
+	 */
+	public function serializeSettings( $array ) {
+		if ( !is_array( $array ) ) {
+			return $array;
+		} else {
+			// removes the [1] [2]... for the unnamed subarrays since LaTeXML
+			// assigns multiple values to one key e.g.
+			// preload=amsmath.sty&preload=amsthm.sty&preload=amstext.sty
+			$cgi_string = wfArrayToCgi( $array );
+			$cgi_string = preg_replace( '|\%5B\d+\%5D|', '', $cgi_string );
+			$cgi_string = preg_replace( '|&\d+=|', '&', $cgi_string );
+			return $cgi_string;
+		}
+	}
+	/**
+	 * Gets the settings for the LaTeXML daemon.
+	 * @global (array|string) $wgMathDefaultLaTeXMLSetting
+	 * @return string
+	 */
+	public function getLaTeXMLSettings() {
+		global $wgMathDefaultLaTeXMLSetting;
+		if ( $this->LaTeXMLSettings ) {
+			return $this->LaTeXMLSettings;
+		} else {
+			return $wgMathDefaultLaTeXMLSetting;
+		}
+	}
+
+	/**
+	 * Sets the settings for the LaTeXML daemon.
+	 * The settings affect only the current instance of the class.
+	 * For a list of possible settings see:
+	 * http://dlmf.nist.gov/LaTeXML/manual/commands/latexmlpost.xhtml
+	 * An empty value indicates to use the default settings.
+	 * @param string|array $settings
+	 */
+	public function setLaTeXMLSettings( $settings ) {
+		$this->LaTeXMLSettings = $settings;
+	}
+
+	/**
+	 * Calculates the HTTP POST Data for the request. Depends on the settings
+	 * and the input string only.
+	 * @return string HTTP POST data
+	 */
+	public function getLaTeXMLPostData() {
+		$tex = $this->getTex();
+		if ( $this->getMathStyle() == 'inlineDisplaystyle' ) {
+			// In 'inlineDisplaystyle' the old
+			// texvc behavior is reproduced:
+			// The equation is rendered in displaystyle
+			// (texvc used $$ $tex $$ to render)
+			// but the equation is not centered.
+			$tex = '{\displaystyle ' . $tex . '}';
+		}
+		$texcmd = rawurlencode( $tex );
+		$settings = $this->serializeSettings( $this->getLaTeXMLSettings() );
+		$postData = $settings . '&tex=' . $texcmd;
+		LoggerFactory::getInstance( 'Math' )->debug( 'Get post data: ' . $postData );
+		return $postData;
+	}
+
+	/**
+	 * Does the actual web request to convert TeX to MathML.
+	 * @return boolean
+	 */
+	protected function doRender() {
+		if ( trim( $this->getTex() ) === '' ) {
+			LoggerFactory::getInstance( 'Math' )->warning(
+				'Rendering was requested, but no TeX string is specified.' );
+			$this->lastError = $this->getError( 'math_empty_tex' );
+			return false;
+		}
+		$res = '';
+		$host = $this->pickHost();
+		$post = $this->getLaTeXMLPostData();
+		// There is an API-inconsistency between different versions of the LaTeXML daemon
+		// some versions require the literal prefix other don't allow it.
+		if ( ! strpos( $host, '/convert' ) ){
+			$post = preg_replace( '/&tex=/', '&tex=literal:', $post, 1 );
+		}
+		$this->lastError = '';
+		$requestResult = $this->makeRequest( $host, $post, $res, $this->lastError );
+		if ( $requestResult ) {
+			$jsonResult = json_decode( $res );
+			if ( $jsonResult && json_last_error() === JSON_ERROR_NONE ) {
+				if ( $this->isValidMathML( $jsonResult->result ) ) {
+					$this->setMathml( $jsonResult->result );
+					Hooks::run( 'MathRenderingResultRetrieved',
+						[ &$this, &$jsonResult ] );// Enables debugging of server results
+					return true;
+				} else {
+					// Do not print bad mathml. It's probably too verbose and might
+					// mess up the browser output.
+					$this->lastError = $this->getError( 'math_invalidxml', $this->getModeStr(), $host );
+					LoggerFactory::getInstance( 'Math' )->warning(
+						'LaTeXML InvalidMathML: ' . var_export( [
+							'post' => $post,
+							'host' => $host,
+							'result' => $res
+						], true ) );
+					return false;
+				}
+			} else {
+				$this->lastError = $this->getError( 'math_invalidjson', $this->getModeStr(), $host );
+				LoggerFactory::getInstance( 'Math' )->warning(
+					'LaTeXML InvalidJSON:' . var_export( [
+						'post' => $post,
+						'host' => $host,
+						'res' => $res
+					], true ) );
+				return false;
+			}
+		} else {
+			// Error message has already been set.
+			return false;
+		}
+	}
+
+	/**
+	 * Internal version of @link self::embedMathML
+	 * @return string
+	 * @return html element with rendered math
+	 */
+	protected function getMathMLTag() {
+		return self::embedMathML( $this->getMathml(), urldecode( $this->getTex() ) );
+	}
+
+	/**
+	 * Embeds the MathML-XML element in a HTML span element with class tex
+	 * @param string $mml : the MathML string
+	 * @param string $tagId : optional tagID for references like (pagename#equation2)
+	 * @param bool $attribs
+	 * @return html element with rendered math
+	 */
+	public static function embedMathML( $mml, $tagId = '', $attribs = false ) {
+		$mml = str_replace( "\n", " ", $mml );
+		if ( ! $attribs ) {
+			$attribs = [ 'class' => 'tex', 'dir' => 'ltr' ];
+			if ( $tagId ) {
+				$attribs['id'] = $tagId;
+			}
+			$attribs = Sanitizer::validateTagAttributes( $attribs, 'span' );
+		}
+		return Xml::tags( 'span', $attribs, $mml );
+	}
+
+	/**
+	 * Calculates the SVG image based on the MathML input
+	 * No cache is used.
+	 * @return boolean
+	 */
+	public function calculateSvg() {
+		$renderer = new MathMathML( $this->getTex() );
+		$renderer->setMathml( $this->getMathml() );
+		$renderer->setMode( 'latexml' );
+		$res = $renderer->render( true );
+		if ( $res == true ) {
+			$this->setSvg( $renderer->getSvg() );
+		} else {
+			$lastError = $renderer->getLastError();
+			LoggerFactory::getInstance( 'Math' )->error(
+				'Failed to convert LaTeXML-MathML to SVG:' . $lastError );
+		}
+		return $res;
+	}
+
+	/**
+	 * Gets the SVG image
+	 *
+	 * @param string $render if set to 'render' (default) and no SVG image exists, the function
+	 *                       tries to generate it on the fly.
+	 *                       Otherwise, if set to 'cached', and there is no SVG in the database
+	 *                       cache, an empty string is returned.
+	 *
+	 * @return string XML-Document of the rendered SVG
+	 */
+	public function getSvg( $render = 'render' ) {
+		if ( $render == 'render' && ( $this->isPurge() || $this->svg == '' ) ) {
+			$this->calculateSvg();
+		}
+		return parent::getSvg( $render );
+	}
+
+	protected function getMathTableName() {
+		return 'mathlatexml';
+	}
+}
+
diff --git a/MathMLRdfBuilder.php b/MathMLRdfBuilder.php
new file mode 100644
index 0000000..efc5543
--- /dev/null
+++ b/MathMLRdfBuilder.php
@@ -0,0 +1,35 @@
+<?php
+
+use Wikibase\DataModel\Snak\PropertyValueSnak;
+use Wikibase\Rdf\ValueSnakRdfBuilder;
+use Wikimedia\Purtle\RdfWriter;
+
+class MathMLRdfBuilder implements ValueSnakRdfBuilder {
+
+	/**
+	 * Adds a value
+	 *
+	 * @param RdfWriter $writer
+	 * @param string $propertyValueNamespace Property value relation namespace
+	 * @param string $propertyValueLName Property value relation name
+	 * @param string $dataType Property data type
+	 * @param PropertyValueSnak $snak
+	 */
+	public function addValue(
+		RdfWriter $writer,
+		$propertyValueNamespace,
+		$propertyValueLName,
+		$dataType,
+		PropertyValueSnak $snak
+	) {
+		$renderer = new MathMathML( $snak->getDataValue()->getValue() );
+		if ( $renderer->checkTeX() && $renderer->render() ) {
+			$mml = $renderer->getMathml();
+		} else {
+			$err = $renderer->getLastError();
+			$mml = "<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><merror>$err</merror></math>";
+		}
+		$writer->say( $propertyValueNamespace, $propertyValueLName )
+			->value( $mml, 'http://www.w3.org/1998/Math/MathML' );
+	}
+}
diff --git a/MathMathML.php b/MathMathML.php
new file mode 100644
index 0000000..2dd091f
--- /dev/null
+++ b/MathMathML.php
@@ -0,0 +1,524 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2015 various MediaWiki contributors
+ * GPLv2 license; info in main package.
+ */
+
+use MediaWiki\Logger\LoggerFactory;
+
+/**
+ * Converts LaTeX to MathML using the mathoid-server
+ */
+class MathMathML extends MathRenderer {
+
+	protected $defaultAllowedRootElements = [ 'math' ];
+	protected $restbaseInputTypes = [ 'tex', 'inline-tex', 'chem' ];
+	protected $allowedRootElements = '';
+	protected $hosts;
+
+	/** @var boolean if false MathML output is not validated */
+	private $XMLValidation = true;
+	private $svgPath = false;
+	private $mathoidStyle;
+
+	public function __construct( $tex = '', $params = [] ) {
+		global $wgMathMathMLUrl;
+		parent::__construct( $tex, $params );
+		$this->setMode( 'mathml' );
+		$this->hosts = $wgMathMathMLUrl;
+		if ( isset( $params['type'] ) ) {
+			if ( $params['type'] == 'pmml' ) {
+				$this->inputType = 'pmml';
+				$this->setMathml( '<math>' . $tex . '</math>' );
+			} elseif ( $params['type'] == 'ascii' ) {
+				$this->inputType = 'ascii';
+			} elseif ( $params['type'] == 'chem' ){
+				$this->inputType = 'chem';
+			}
+		}
+		if ( !isset( $params['display'] ) && $this->getMathStyle() == 'inlineDisplaystyle' ) {
+			// default preserve the (broken) layout as it was
+			$this->tex = '{\\displaystyle ' . $tex . '}';
+		}
+	}
+
+	/**
+	 * Gets the allowed root elements the rendered math tag might have.
+	 *
+	 * @return array
+	 */
+	public function getAllowedRootElements() {
+		if ( $this->allowedRootElements ) {
+			return $this->allowedRootElements;
+		} else {
+			return $this->defaultAllowedRootElements;
+		}
+	}
+
+	/**
+	 * Sets the XML validation.
+	 * If set to false the output of MathML is not validated.
+	 * @param boolean $validation
+	 */
+	public function setXMLValidation( $validation = true ) {
+		$this->XMLValidation = $validation;
+	}
+
+	/**
+	 * Sets the allowed root elements the rendered math tag might have.
+	 * An empty value indicates to use the default settings.
+	 * @param array $settings
+	 */
+	public function setAllowedRootElements( $settings ) {
+		$this->allowedRootElements = $settings;
+	}
+
+	/* (non-PHPdoc)
+	 * @see MathRenderer::render()
+	*/
+	public function render( $forceReRendering = false ) {
+		if ( in_array( $this->inputType, $this->restbaseInputTypes ) && $this->mode == 'mathml' ) {
+			if ( !$this->rbi ){
+				$this->rbi = new MathRestbaseInterface( $this->getTex(), $this->getInputType() );
+			}
+			$rbi = $this->rbi;
+			if ( $rbi->getSuccess() ) {
+				$this->mathml = $rbi->getMathML();
+				$this->mathoidStyle = $rbi->getMathoidStyle();
+				$this->svgPath = $rbi->getFullSvgUrl();
+			} elseif ( $this->lastError === '' ) {
+				$this->doCheck();
+			}
+			$this->changed = false;
+			return $rbi->getSuccess();
+		}
+		if ( $forceReRendering ) {
+			$this->setPurge( true );
+		}
+		if ( $this->renderingRequired() ) {
+			return $this->doRender();
+		}
+		return true;
+	}
+
+	/**
+	 * Helper function to checks if the math tag must be rendered.
+	 * @return boolean
+	 */
+	private function renderingRequired() {
+		$logger = LoggerFactory::getInstance( 'Math' );
+		if ( $this->isPurge() ) {
+			$logger->debug( 'Rerendering was requested.' );
+			return true;
+		} else {
+			$dbres = $this->isInDatabase();
+			if ( $dbres ) {
+				if ( $this->isValidMathML( $this->getMathml() ) ) {
+					$logger->debug( 'Valid MathML entry found in database.' );
+					if ( $this->getSvg( 'cached' ) ) {
+						$logger->debug( 'SVG-fallback found in database.' );
+						return false;
+					} else {
+						$logger->debug( 'SVG-fallback missing.' );
+						return true;
+					}
+				} else {
+					$logger->debug( 'Malformatted entry found in database' );
+					return true;
+				}
+			} else {
+				$logger->debug( 'No entry found in database.' );
+				return true;
+			}
+		}
+	}
+
+	/**
+	 * Performs a HTTP Post request to the given host.
+	 * Uses $wgMathLaTeXMLTimeout as timeout.
+	 * Generates error messages on failure
+	 * @see Http::post()
+	 *
+	 * @global int $wgMathLaTeXMLTimeout
+	 * @param string $host
+	 * @param string $post the encoded post request
+	 * @param mixed $res the result
+	 * @param mixed $error the formatted error message or null
+	 * @param String $httpRequestClass class name of MWHttpRequest (needed for testing only)
+	 * @return boolean success
+	 */
+	public function makeRequest(
+			$host, $post, &$res, &$error = '', $httpRequestClass = 'MWHttpRequest'
+		) {
+		// TODO: Change the timeout mechanism.
+		global $wgMathLaTeXMLTimeout;
+
+		$error = '';
+		$res = null;
+		if ( !$host ) {
+			$host = self::pickHost();
+		}
+		if ( !$post ) {
+			$this->getPostData();
+		}
+		$options = [ 'method' => 'POST', 'postData' => $post, 'timeout' => $wgMathLaTeXMLTimeout ];
+		/** @var $req (CurlHttpRequest|PhpHttpRequest) the request object  */
+		$req = $httpRequestClass::factory( $host, $options );
+		/** @var Status $req Status the request status */
+		$status = $req->execute();
+		if ( $status->isGood() ) {
+			$res = $req->getContent();
+			return true;
+		} else {
+			if ( $status->hasMessage( 'http-timed-out' ) ) {
+				$error = $this->getError( 'math_timeout', $this->getModeStr(), $host );
+				$res = false;
+				LoggerFactory::getInstance( 'Math' )->warning( 'Timeout:' . var_export( [
+						'post' => $post,
+						'host' => $host,
+						'timeout' => $wgMathLaTeXMLTimeout
+					], true ) );
+			} else {
+				// for any other unkonwn http error
+				$errormsg = $status->getHtml();
+				$error =
+					$this->getError( 'math_invalidresponse', $this->getModeStr(), $host, $errormsg,
+						$this->getModeStr( 'mathml' ) );
+				LoggerFactory::getInstance( 'Math' )->warning( 'NoResponse:' . var_export( [
+						'post' => $post,
+						'host' => $host,
+						'errormsg' => $errormsg
+					], true ) );
+			}
+			return false;
+		}
+	}
+
+	/**
+	 * Return a MathML daemon host.
+	 *
+	 * If more than one demon is available, one is chosen at random.
+	 *
+	 * @return string
+	 */
+	protected function pickHost() {
+		if ( is_array( $this->hosts ) ) {
+			$host = array_rand( $this->hosts );
+			$this->hosts = $host; // Use the same host for this class instance
+		} else {
+			$host = $this->hosts;
+		}
+		LoggerFactory::getInstance( 'Math' )->debug( 'Picking host ' . $host );
+		return $host;
+	}
+
+	/**
+	 * Calculates the HTTP POST Data for the request. Depends on the settings
+	 * and the input string only.
+	 * @return string HTTP POST data
+	 * @throws MWException
+	 */
+	public function getPostData() {
+		$input = $this->getTex();
+		if ( $this->inputType == 'pmml' ||
+			 $this->getMode() == 'latexml' && $this->getMathml() ) {
+			$out = 'type=mml&q=' . rawurlencode( $this->getMathml() );
+		} elseif ( $this->inputType == 'ascii' ) {
+			$out = 'type=asciimath&q=' . rawurlencode( $input );
+		} else {
+			throw new MWException( 'Internal error: Restbase should be used for tex rendering' );
+		}
+		LoggerFactory::getInstance( 'Math' )->debug( 'Get post data: ' . $out );
+		return $out;
+	}
+
+	/**
+	 * Does the actual web request to convert TeX to MathML.
+	 * @return boolean
+	 */
+	protected function doRender() {
+		if ( $this->getTex() === '' ) {
+			LoggerFactory::getInstance( 'Math' )->debug(
+				'Rendering was requested, but no TeX string is specified.'
+			);
+			$this->lastError = $this->getError( 'math_empty_tex' );
+			return false;
+		}
+		$res = '';
+		$host = self::pickHost();
+		$post = $this->getPostData();
+		$this->lastError = '';
+		$requestResult = $this->makeRequest( $host, $post, $res, $this->lastError );
+		if ( $requestResult ) {
+			$jsonResult = json_decode( $res );
+			if ( $jsonResult && json_last_error() === JSON_ERROR_NONE ) {
+				if ( $jsonResult->success ) {
+					return $this->processJsonResult( $jsonResult, $host );
+				} else {
+					if ( property_exists( $jsonResult, 'log' ) ) {
+						$log = $jsonResult->log;
+					} else {
+						$log = wfMessage( 'math_unknown_error' )->inContentLanguage()->escaped();
+					}
+					$this->lastError = $this->getError( 'math_mathoid_error', $host, $log );
+					LoggerFactory::getInstance( 'Math' )->warning(
+						'Mathoid conversion error:' . var_export( [
+							'post' => $post,
+							'host' => $host,
+							'result' => $res
+						], true ) );
+					return false;
+				}
+			} else {
+				$this->lastError = $this->getError( 'math_invalidjson', $host );
+				LoggerFactory::getInstance( 'Math' )->error(
+					'MathML InvalidJSON:' . var_export( [
+						'post' => $post,
+						'host' => $host,
+						'res' => $res
+					], true ) );
+				return false;
+			}
+		} else {
+			// Error message has already been set.
+			return false;
+		}
+	}
+
+	/**
+	 * Checks if the input is valid MathML,
+	 * and if the root element has the name math
+	 * @param string $XML
+	 * @return boolean
+	 */
+	public function isValidMathML( $XML ) {
+		$out = false;
+		if ( !$this->XMLValidation ) {
+			return true;
+		}
+
+		$xmlObject = new XmlTypeCheck( $XML, null, false );
+		if ( !$xmlObject->wellFormed ) {
+			LoggerFactory::getInstance( 'Math' )->error(
+				'XML validation error: ' . var_export( $XML, true ) );
+		} else {
+			$name = $xmlObject->getRootElement();
+			$elementSplit = explode( ':', $name );
+			if ( is_array( $elementSplit ) ) {
+				$localName = end( $elementSplit );
+			} else {
+				$localName = $name;
+			}
+			if ( in_array( $localName, $this->getAllowedRootElements() ) ) {
+				$out = true;
+			} else {
+				LoggerFactory::getInstance( 'Math' )->error( "Got wrong root element : $name" );
+			}
+		}
+		return $out;
+	}
+
+	/**
+	 * @param boolean $noRender
+	 * @return type
+	 */
+	private function getFallbackImageUrl( $noRender = false ) {
+		if ( $this->svgPath ) {
+			return $this->svgPath;
+		}
+		return SpecialPage::getTitleFor( 'MathShowImage' )->getLocalURL( [
+				'hash' => $this->getMd5(),
+				'mode' => $this->getMode(),
+				'noRender' => $noRender
+			]
+		);
+	}
+
+	/**
+	 * Helper function to correct the style information for a
+	 * linked SVG image.
+	 * @param string $style current style information to be updated
+	 */
+	public function correctSvgStyle( &$style ) {
+		if ( preg_match( '/style="([^"]*)"/', $this->getSvg(), $styles ) ) {
+			$style .= ' ' . $styles[1]; // merge styles
+			if ( $this->getMathStyle() === 'display' ) {
+				// TODO: Improve style cleaning
+				$style = preg_replace(
+					'/margin\-(left|right)\:\s*\d+(\%|in|cm|mm|em|ex|pt|pc|px)\;/', '', $style
+				);
+			}
+			$style = trim( preg_replace( '/position:\s*absolute;\s*left:\s*0px;/', '', $style ),
+				"; \t\n\r\0\x0B" ) .'; ';
+
+		}
+		// TODO: Figure out if there is a way to construct
+		// a SVGReader from a string that represents the SVG
+		// content
+		if ( preg_match( "/height=\"(.*?)\"/", $this->getSvg(), $matches ) ) {
+			$style .= 'height: ' . $matches[1] . '; ';
+		}
+		if ( preg_match( "/width=\"(.*?)\"/", $this->getSvg(), $matches ) ) {
+			$style .= 'width: ' . $matches[1] . ';';
+		}
+	}
+
+	/**
+	 * Gets img tag for math image
+	 * @param boolean $noRender if true no rendering will be performed
+	 * if the image is not stored in the database
+	 * @param boolean|string $classOverride if classOverride
+	 * is false the class name will be calculated by getClassName
+	 * @return string XML the image html tag
+	 */
+	private function getFallbackImage( $noRender = false, $classOverride = false ) {
+		$url = $this->getFallbackImageUrl( $noRender );
+
+		$attribs = [];
+		if ( $classOverride === false ) { // $class = '' suppresses class attribute
+			$class = $this->getClassName( true );
+		} else {
+			$class = $classOverride;
+		}
+		if ( ! $this->mathoidStyle ) {
+			$this->correctSvgStyle( $this->mathoidStyle );
+		}
+		// TODO: move the common styles to the global stylesheet!
+		$style = 'background-image: url(\''. $url .
+			 '\'); background-repeat: no-repeat; background-size: 100% 100%; '.
+			$this->mathoidStyle;
+		if ( $class ) {
+			$attribs['class'] = $class;
+		}
+
+		// Don't use an empty span, as that is going to be stripped by HTML tidy
+		// when enabled (which is true in production).
+		return Xml::element( 'meta', $this->getAttributes(
+			'span', $attribs, [ 'aria-hidden' => 'true', 'style' => $style
+		] ) );
+	}
+
+	protected function getMathTableName() {
+		return 'mathoid';
+	}
+
+	/**
+	 * Calculates the default class name for a math element
+	 * @param boolean $fallback
+	 * @return string the class name
+	 */
+	private function getClassName( $fallback = false ) {
+		$class = 'mwe-math-';
+		if ( $fallback ) {
+			$class .= 'fallback-image-';
+		} else {
+			$class .= 'mathml-';
+		}
+		if ( $this->getMathStyle() == 'display' ) {
+			$class .= 'display';
+		} else {
+			$class .= 'inline';
+		}
+		if ( !$fallback ) {
+			// @codingStandardsIgnoreStart
+			$class .= ' mwe-math-mathml-a11y';
+			// @codingStandardsIgnoreEnd
+		}
+		return $class;
+	}
+
+	/**
+	 * @return string Html output that is embedded in the page
+	 */
+	public function getHtmlOutput() {
+		if ( $this->getMathStyle() == 'display' ) {
+			$element = 'div';
+		} else {
+			$element = 'span';
+		}
+		$attribs = [];
+		if ( $this->getID() !== '' ) {
+			$attribs['id'] = $this->getID();
+		}
+		$output = Html::openElement( $element, $attribs );
+		// MathML has to be wrapped into a div or span in order to be able to hide it.
+		// Remove displayStyle attributes set by the MathML converter
+		// (Beginning from Mathoid 0.2.5 block is the default layout.)
+		$mml = preg_replace(
+			'/(<math[^>]*)(display|mode)=["\'](inline|block)["\']/', '$1', $this->getMathml()
+		);
+		if ( $this->getMathStyle() == 'display' ) {
+			$mml = preg_replace( '/<math/', '<math display="block"', $mml );
+		}
+		$output .= Xml::tags( $element, [
+			'class' => $this->getClassName(), 'style' => 'display: none;'
+		], $mml );
+		$output .= $this->getFallbackImage();
+		$output .= Html::closeElement( $element );
+		return $output;
+	}
+
+	protected function dbOutArray() {
+		$out = parent::dbOutArray();
+		if ( $this->getMathTableName() == 'mathoid' ) {
+			$out['math_input'] = $out['math_inputtex'];
+			unset( $out['math_inputtex'] );
+		}
+		return $out;
+	}
+
+	protected function dbInArray() {
+		$out = parent::dbInArray();
+		if ( $this->getMathTableName() == 'mathoid' ) {
+			$out = array_diff( $out, [ 'math_inputtex' ] );
+			$out[] = 'math_input';
+		}
+		return $out;
+	}
+
+	protected function initializeFromDatabaseRow( $rpage ) {
+		// mathoid allows different input formats
+		// therefore the column name math_inputtex was changed to math_input
+		if ( $this->getMathTableName() == 'mathoid' && ! empty( $rpage->math_input ) ) {
+			$this->userInputTex = $rpage->math_input;
+		}
+		parent::initializeFromDatabaseRow( $rpage );
+
+	}
+
+	/**
+	 * @param $jsonResult
+	 * @param $host
+	 *
+	 * @return bool
+	 */
+	private function processJsonResult( $jsonResult, $host ) {
+		if ( $this->getMode() == 'latexml' || $this->inputType == 'pmml' ||
+			 $this->isValidMathML( $jsonResult->mml )
+		) {
+			if ( isset( $jsonResult->svg ) ) {
+				$xmlObject = new XmlTypeCheck( $jsonResult->svg, null, false );
+				if ( !$xmlObject->wellFormed ) {
+					$this->lastError = $this->getError( 'math_invalidxml', $host );
+					return false;
+				} else {
+					$this->setSvg( $jsonResult->svg );
+				}
+			} else {
+				LoggerFactory::getInstance( 'Math' )->error(
+					'Missing SVG property in JSON result.' );
+			}
+			if ( $this->getMode() != 'latexml' && $this->inputType != 'pmml' ) {
+				$this->setMathml( $jsonResult->mml );
+			}
+			Hooks::run( 'MathRenderingResultRetrieved',
+				[ &$this, &$jsonResult ] ); // Enables debugging of server results
+			return true;
+		} else {
+			$this->lastError = $this->getError( 'math_unknown_error', $host );
+			return false;
+		}
+	}
+}
diff --git a/MathRenderer.php b/MathRenderer.php
new file mode 100644
index 0000000..e5ed804
--- /dev/null
+++ b/MathRenderer.php
@@ -0,0 +1,707 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2012 Tomasz Wegrzanowski, Brion Vibber, Moritz Schubotz,
+ * and other MediaWiki contributors
+ * GPLv2 license; info in main package.
+ *
+ * @file
+ */
+use MediaWiki\Logger\LoggerFactory;
+
+/**
+ * Abstract base class with static methods for rendering the <math> tags using
+ * different technologies. These static methods create a new instance of the
+ * extending classes and render the math tags based on the mode setting of the user.
+ * Furthermore this class handles the caching of the rendered output.
+ *
+ * @author Tomasz Wegrzanowski
+ * @author Brion Vibber
+ * @author Moritz Schubotz
+ */
+abstract class MathRenderer {
+
+	// REPRESENTATIONS OF THE MATHEMATICAL CONTENT
+	/** @var string tex representation */
+	protected $tex = '';
+	/** @var string MathML content and presentation */
+	protected $mathml = '';
+	/** @var string SVG layout only (no semantics) */
+	protected $svg = '';
+	/** @var string the original user input string (which was used to calculate the inputhash) */
+	protected $userInputTex = '';
+	// FURTHER PROPERTIES OF THE MATHEMATICAL CONTENT
+	/** @var ('inlineDisplaystyle'|'display'|'inline'|'linebreak') the rendering style */
+	protected $mathStyle = 'inlineDisplaystyle';
+	/** @var array with userdefined parameters passed to the extension (not used) */
+	protected $params = [];
+	/** @var string a userdefined identifier to link to the equation. */
+	protected $id = '';
+
+	// STATE OF THE CLASS INSTANCE
+	/** @var boolean has variable tex been security-checked */
+	protected $texSecure = false;
+	/** @var boolean has the mathematical content changed */
+	protected $changed = false;
+	/** @var boolean is there a database entry for the mathematical content */
+	protected $storedInDatabase = null;
+	/** @var boolean is there a request to purge the existing mathematical content */
+	protected $purge = false;
+	/** @var string with last occurred error */
+	protected $lastError = '';
+	/** @var string md5 value from userInputTex */
+	protected $md5 = '';
+	/** @var string binary packed inputhash */
+	protected $inputHash = '';
+	/** @var string rendering mode */
+	protected $mode = 'png';
+	/** @var string input type */
+	protected $inputType = 'tex';
+	/** @var MathRestbaseInterface used for checking */
+	protected $rbi;
+
+	/**
+	 * Constructs a base MathRenderer
+	 *
+	 * @param string $tex (optional) LaTeX markup
+	 * @param array $params (optional) HTML attributes
+	 */
+	public function __construct( $tex = '', $params = [] ) {
+		$this->params = $params;
+		if ( isset( $params['id'] ) ) {
+			$this->id = $params['id'];
+		}
+		if ( isset( $params['display'] ) ) {
+			$layoutMode = $params['display'];
+			if ( $layoutMode == 'block' ) {
+				$this->mathStyle = 'display';
+				$tex = '{\displaystyle ' . $tex . '}';
+				$this->inputType = 'tex';
+			} elseif ( $layoutMode == 'inline' ) {
+				$this->mathStyle = 'inline';
+				$this->inputType = 'inline-tex';
+				$tex = '{\textstyle ' . $tex . '}';
+			} elseif ( $layoutMode == 'linebreak' ) {
+				$this->mathStyle = 'linebreak';
+				$tex = '\[ ' . $tex . ' \]';
+			}
+		}
+		// TODO: Implement caching for attributes of the math tag
+		// Currently the key for the database entry relating to an equation
+		// is md5($tex) the new option to determine if the tex input
+		// is rendered in displaystyle or textstyle would require a database
+		// layout change to use a composite key e.g. (md5($tex),$mathStyle).
+		// As a workaround we use the prefix \displaystyle so that the key becomes
+		// md5((\{\\displaystyle|\{\\textstyle)?\s?$tex\}?)
+		// The new value of $tex string describes now how the rendering should look like.
+		// The variable MathRenderer::mathStyle determines if the rendered equation should
+		// be centered in a new line, or just in be displayed in the current line.
+		$this->userInputTex = $tex;
+		$this->tex = $tex;
+	}
+
+	/**
+	 * Static method for rendering math tag
+	 *
+	 * @param string $tex LaTeX markup
+	 * @param array $params HTML attributes
+	 * @param string $mode constant indicating rendering mode
+	 * @return string HTML for math tag
+	 */
+	public static function renderMath( $tex, $params = [], $mode = 'png' ) {
+		$renderer = self::getRenderer( $tex, $params, $mode );
+		if ( $renderer->render() ) {
+			return $renderer->getHtmlOutput();
+		} else {
+			return $renderer->getLastError();
+		}
+	}
+
+	/**
+	 *
+	 * @param string $md5
+	 * @return MathRenderer the MathRenderer generated from md5
+	 */
+	public static function newFromMd5( $md5 ) {
+		$class = get_called_class();
+		/** @var MathRenderer $instance */
+		$instance = new $class;
+		$instance->setMd5( $md5 );
+		$instance->readFromDatabase();
+		return $instance;
+	}
+
+	/**
+	 * Static factory method for getting a renderer based on mode
+	 *
+	 * @param string $tex LaTeX markup
+	 * @param array $params HTML attributes
+	 * @param string $mode indicating rendering mode
+	 * @return MathRenderer appropriate renderer for mode
+	 */
+	public static function getRenderer( $tex, $params = [], $mode = 'png' ) {
+		global $wgDefaultUserOptions, $wgMathEnableExperimentalInputFormats;
+
+		if ( isset( $params['forcemathmode'] ) ) {
+			$mode = $params['forcemathmode'];
+		}
+		if ( !in_array( $mode, self::getValidModes() ) ) {
+			$mode = $wgDefaultUserOptions['math'];
+		}
+		if ( $wgMathEnableExperimentalInputFormats === true && $mode == 'mathml' &&
+			 isset( $params['type'] ) ) {
+			// Support of MathML input (experimental)
+			// Currently support for mode 'mathml' only
+			if ( !in_array( $params['type'], [ 'pmml', 'ascii' ] ) ) {
+				unset( $params['type'] );
+			}
+		}
+		if ( isset( $params['chem'] ) ) {
+			$mode = 'mathml';
+			$params['type'] = 'chem';
+		}
+		switch ( $mode ) {
+			case 'source':
+				$renderer = new MathSource( $tex, $params );
+				break;
+			case 'png':
+				$renderer = new MathTexvc( $tex, $params );
+				break;
+			case 'latexml':
+				$renderer = new MathLaTeXML( $tex, $params );
+				break;
+			case 'mathml':
+			default:
+				$renderer = new MathMathML( $tex, $params );
+		}
+		LoggerFactory::getInstance( 'Math' )->debug( 'Start rendering $' . $renderer->tex .
+			'$ in mode ' . $mode );
+		return $renderer;
+	}
+
+	/**
+	 * Performs the rendering
+	 *
+	 * @return boolean if rendering was successful.
+	 */
+	abstract public function render();
+
+	/**
+	 * @return string Html output that is embedded in the page
+	 */
+	abstract public function getHtmlOutput();
+
+	/**
+	 * texvc error messages
+	 * TODO: update to MathML
+	 * Returns an internationalized HTML error string
+	 *
+	 * @param string $msg message key for specific error
+	 * @internal param \Varargs $parameters (optional) zero
+	 * or more message parameters for specific error
+	 *
+	 * @return string HTML error string
+	 */
+	public function getError( $msg /*, ... */ ) {
+		$mf = wfMessage( 'math_failure' )->inContentLanguage()->escaped();
+		$parameters = func_get_args();
+		array_shift( $parameters );
+		$errmsg = wfMessage( $msg, $parameters )->inContentLanguage()->escaped();
+		$source = htmlspecialchars( str_replace( "\n", ' ', $this->tex ) );
+		return "<strong class='error texerror'>$mf ($errmsg): $source</strong>\n";
+	}
+
+	/**
+	 * Return hash of input
+	 *
+	 * @return string hash
+	 */
+	public function getMd5() {
+		if ( ! $this->md5 ) {
+			$this->md5 = md5( $this->userInputTex );
+		}
+		return $this->md5;
+	}
+
+	/**
+	 * Set the input hash (if user input tex is not available)
+	 * @param $md5
+	 * @return string hash
+	 */
+	public function setMd5( $md5 ) {
+		$this->md5 = $md5;
+	}
+
+	/**
+	 * Return hash of input
+	 *
+	 * @return string hash
+	 */
+	public function getInputHash() {
+		// TODO: What happens if $tex is empty?
+		if ( !$this->inputHash ) {
+			$dbr = wfGetDB( DB_SLAVE );
+			return $dbr->encodeBlob( pack( "H32", $this->getMd5() ) ); # Binary packed, not hex
+		}
+		return $this->inputHash;
+	}
+
+	/**
+	 * Decode binary packed hash from the database to md5 of input_tex
+	 * @param string $hash (binary)
+	 * @return string md5
+	 */
+	private static function dbHash2md5( $hash ) {
+		$dbr = wfGetDB( DB_SLAVE );
+		$xhash = unpack( 'H32md5', $dbr->decodeBlob( $hash ) . "                " );
+		return $xhash['md5'];
+	}
+
+	/**
+	 * Reads rendering data from database
+	 *
+	 * @return boolean true if read successfully, false otherwise
+	 */
+	public function readFromDatabase() {
+		$dbr = wfGetDB( DB_SLAVE );
+		$rpage = $dbr->selectRow( $this->getMathTableName(),
+			$this->dbInArray(),
+			[ 'math_inputhash' => $this->getInputHash() ],
+			__METHOD__ );
+		if ( $rpage !== false ) {
+			$this->initializeFromDatabaseRow( $rpage );
+			$this->storedInDatabase = true;
+				return true;
+		} else {
+			# Missing from the database and/or the render cache
+			$this->storedInDatabase = false;
+			return false;
+		}
+	}
+
+	/**
+	 * @return array with the database column names
+	 */
+	protected function dbInArray() {
+		$in = [ 'math_inputhash',
+			'math_mathml',
+			'math_inputtex',
+			'math_tex',
+			'math_svg'
+		];
+		return $in;
+	}
+
+	/**
+	 * Reads the values from the database but does not overwrite set values with empty values
+	 * @param stdClass $rpage (a database row)
+	 */
+	protected function initializeFromDatabaseRow( $rpage ) {
+		$this->inputHash = $rpage->math_inputhash; // MUST NOT BE NULL
+		$this->md5 = self::dbHash2md5( $this->inputHash );
+		if ( ! empty( $rpage->math_mathml ) ) {
+			$this->mathml = utf8_decode( $rpage->math_mathml );
+		}
+		if ( ! empty( $rpage->math_inputtex ) ) {
+			// in the current database the field is probably not set.
+			$this->userInputTex = $rpage->math_inputtex;
+		}
+		if ( ! empty( $rpage->math_tex ) ) {
+			$this->tex = $rpage->math_tex;
+		}
+		if ( ! empty( $rpage->math_svg ) ) {
+			$this->svg = $rpage->math_svg;
+		}
+		$this->changed = false;
+	}
+
+	/**
+	 * Writes rendering entry to database.
+	 *
+	 * WARNING: Use writeCache() instead of this method to be sure that all
+	 * renderer specific (such as squid caching) are taken into account.
+	 * This function stores the values that are currently present in the class
+	 * to the database even if they are empty.
+	 *
+	 * This function can be seen as protected function.
+	 * @param DatabaseBase $dbw
+	 */
+	public function writeToDatabase( $dbw = null ) {
+		# Now save it back to the DB:
+		if ( !wfReadOnly() ) {
+			$dbw = $dbw ?: wfGetDB( DB_MASTER );
+			LoggerFactory::getInstance( 'Math' )->debug( 'Store entry for $' . $this->tex .
+				'$ in database (hash:' . $this->getMd5() . ')' );
+			$outArray = $this->dbOutArray();
+			$method = __METHOD__;
+			$mathTableName = $this->getMathTableName();
+			if ( $this->isInDatabase() ) {
+				$inputHash = $this->getInputHash();
+				$dbw->onTransactionIdle( function () use (
+					$dbw, $outArray, $inputHash, $method, $mathTableName
+				) {
+					$dbw->update( $mathTableName, $outArray,
+						[ 'math_inputhash' => $inputHash ], $method );
+					LoggerFactory::getInstance( 'Math' )->debug(
+						'Row updated after db transaction was idle: ' .
+						var_export( $outArray, true ) . " to database" );
+				} );
+			} else {
+				$dbw->onTransactionIdle( function () use (
+					$dbw, $outArray, $method, $mathTableName
+				) {
+					$dbw->insert( $mathTableName, $outArray, $method, [ 'IGNORE' ] );
+					LoggerFactory::getInstance( 'Math' )->debug(
+						'Row inserted after db transaction was idle ' .
+						var_export( $outArray, true ) . " to database" );
+					if ( $dbw->affectedRows() == 0 ) {
+						// That's the price for the delayed update.
+						LoggerFactory::getInstance( 'Math' )->warning(
+							'Entry could not be written. Might be changed in between.' );
+					}
+				} );
+			}
+		}
+	}
+
+	/**
+	 * Gets an array that matches the variables of the class to the database columns
+	 * @return array
+	 */
+	protected function dbOutArray() {
+		$out = [
+			'math_inputhash' => $this->getInputHash(),
+			'math_mathml' => utf8_encode( $this->mathml ),
+			'math_inputtex' => $this->userInputTex,
+			'math_tex' => $this->tex,
+			'math_svg' => $this->svg
+		];
+		return $out;
+	}
+
+	/**
+	 * @param MathRestbaseInterface $param
+	 */
+	public function setRestbaseInterface( $param ) {
+		$this->rbi = $param;
+	}
+
+	/**
+	 * Returns sanitized attributes
+	 *
+	 * @param string $tag element name
+	 * @param array $defaults default attributes
+	 * @param array $overrides attributes to override defaults
+	 * @return array HTML attributes
+	 */
+	protected function getAttributes( $tag, $defaults = [], $overrides = [] ) {
+		$attribs = Sanitizer::validateTagAttributes( $this->params, $tag );
+		$attribs = Sanitizer::mergeAttributes( $defaults, $attribs );
+		$attribs = Sanitizer::mergeAttributes( $attribs, $overrides );
+		return $attribs;
+	}
+
+	/**
+	 * Writes cache. Writes the database entry if values were changed
+	 */
+	public function writeCache() {
+		$logger = LoggerFactory::getInstance( 'Math' );
+		$logger->debug( 'Writing of cache requested.' );
+		if ( $this->isChanged() ) {
+			$logger->debug( 'Change detected. Perform writing.' );
+			$this->writeToDatabase();
+			return true;
+		} else {
+			$logger->debug( "Nothing was changed. Don't write to database." );
+			return false;
+		}
+	}
+
+	/**
+	 * Gets TeX markup
+	 *
+	 * @return string TeX markup
+	 */
+	public function getTex() {
+		return $this->tex;
+	}
+
+	/**
+	 * Gets the rendering mode
+	 *
+	 * @return string
+	 */
+	public function getMode() {
+		return $this->mode;
+	}
+
+	/**
+	 * Sets the rendering mode
+	 * @param string $newMode element of the array $wgMathValidModes
+	 * @return bool
+	 */
+	public function setMode( $newMode ) {
+		if ( in_array( $newMode, self::getValidModes() ) ) {
+			$this->mode = $newMode;
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Sets the TeX code
+	 *
+	 * @param string $tex
+	 */
+	public function setTex( $tex ) {
+		if ( $this->tex != $tex ) {
+			$this->changed = true;
+			$this->tex = $tex;
+		}
+	}
+
+	/**
+	 * Gets the MathML XML element
+	 * @return string in UTF-8 encoding
+	 */
+	public function getMathml() {
+		if ( !StringUtils::isUtf8( $this->mathml ) ) {
+			$this->setMathml( '' );
+		}
+		return $this->mathml;
+	}
+
+	/**
+	 * @param string $mathml use UTF-8 encoding
+	 */
+	public function setMathml( $mathml ) {
+		$this->changed = true;
+		$this->mathml = $mathml;
+	}
+
+	/**
+	 * Get the attributes of the math tag
+	 *
+	 * @return []
+	 */
+	public function getParams() {
+		return $this->params;
+	}
+
+	/**
+	 * @param [] $params
+	 */
+	public function setParams( $params ) {
+		// $changed is not set to true here, because the attributes do not affect
+		// the rendering in the current implementation.
+		// If this behavior will change in the future $this->tex is no longer a
+		// primary key and the input hash cannot be calculate form $this->tex
+		// only. See the discussion 'Tag extensions in Block mode' on wikitech-l.
+		$this->params = $params;
+	}
+
+	/**
+	 * Checks if the instance was modified i.e., because math was rendered
+	 *
+	 * @return boolean true if something was changed false otherwise
+	 */
+	public function isChanged() {
+		return $this->changed;
+	}
+
+	/**
+	 * Checks if there is an explicit user request to rerender the math-tag.
+	 * @return boolean
+	 */
+	function isPurge() {
+		if ( $this->purge ) {
+			return true;
+		}
+		$request = RequestContext::getMain()->getRequest();
+		// TODO: Figure out if ?action=purge
+		// $action = $request->getText('action'); //always returns ''
+		// until this issue is resolved we use ?mathpurge=true instead
+		$mathpurge = $request->getBool( 'mathpurge', false );
+		if ( $mathpurge ) {
+			LoggerFactory::getInstance( 'Math' )->debug( 'Re-Rendering on user request' );
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Sets purge. If set to true the render is forced to rerender and must not
+	 * use a cached version.
+	 * @param bool $purge
+	 * @return boolean
+	 */
+	function setPurge( $purge = true ) {
+		$this->changed = true;
+		$this->purge = $purge;
+	}
+
+	function getLastError() {
+		return $this->lastError;
+	}
+
+	/**
+	 *
+	 * @param string $mathStyle ('inlineDisplaystyle'|'display'|'inline')
+	 */
+	public function setMathStyle( $mathStyle = 'display' ) {
+		if ( $this->mathStyle !== $mathStyle ){
+			$this->changed = true;
+		}
+		$this->mathStyle = $mathStyle;
+		if ( $mathStyle == 'inline' ){
+			$this->inputType = 'inline-tex';
+		} else {
+			$this->inputType = 'tex';
+		}
+	}
+
+	/**
+	 * Returns the value of the DisplayStyle attribute
+	 * @return string ('inlineDisplaystyle'|'display'|'inline'|'linebreak') the DisplayStyle
+	 */
+	public function getMathStyle() {
+		return $this->mathStyle;
+	}
+
+	/**
+	 * Get if the input tex was marked as secure
+	 * @return boolean
+	 */
+	public function isTexSecure() {
+		return $this->texSecure;
+	}
+
+	/**
+	 * @global $wgMathDisableTexFilter
+	 * @return bool
+	 */
+	public function checkTeX() {
+		if ( $this->texSecure || self::getDisableTexFilter() == 'always' ) {
+			// equation was already checked or checking is disabled
+			return true;
+		} else {
+			if ( self::getDisableTexFilter() == 'new' && $this->mode != 'source' ){
+				if ( $this->readFromDatabase() ) {
+					return true;
+				}
+			}
+			return $this->doCheck();
+		}
+	}
+
+	public function isInDatabase() {
+		if ( $this->storedInDatabase === null ) {
+			$this->readFromDatabase();
+		}
+		return $this->storedInDatabase;
+	}
+
+	/**
+	 *
+	 * @return string TeX the original tex string specified by the user
+	 */
+	public function getUserInputTex() {
+		return $this->userInputTex;
+	}
+
+	/**
+	 * @return string user defined ID
+	 */
+	public function getID() {
+		return $this->id;
+	}
+
+	/**
+	 * @param string user defined ID
+	 */
+	public function setID( $id ) {
+		// Changes in the ID affect the container for the math element on the current page
+		// only. Therefore an id change does not affect the $this->changed variable, which
+		// indicates if database relevant fields have been changed.
+		$this->id = $id;
+	}
+
+	/**
+	 *
+	 * @param string $svg
+	 */
+	public function setSvg( $svg ) {
+		$this->changed = true;
+		$this->svg = trim( $svg );
+	}
+
+	/**
+	 * Gets the SVG image
+	 *
+	 * @param string $render if set to 'render' (default) and no SVG image exists, the function
+	 *                       tries to generate it on the fly.
+	 *                       Otherwise, if set to 'cached', and there is no SVG in the database
+	 *                       cache, an empty string is returned.
+	 *
+	 * @return string XML-Document of the rendered SVG
+	 */
+	public function getSvg( /** @noinspection PhpUnusedParameterInspection */ $render = 'render' ) {
+		// Spaces will prevent the image from being displayed correctly in the browser
+		if ( !$this->svg && $this->rbi ){
+			$this->svg = $this->rbi->getSvg();
+		}
+		return trim( $this->svg );
+	}
+
+	abstract protected function getMathTableName();
+
+	public function getModeStr() {
+		$names = MathHooks::getMathNames();
+		return $names[ $this->getMode() ];
+	}
+
+	public static function getValidModes() {
+		global $wgMathValidModes;
+		return array_map( "MathHooks::mathModeToString", $wgMathValidModes );
+	}
+
+	public static function getDisableTexFilter() {
+		global $wgMathDisableTexFilter;
+		return MathHooks::mathCheckToString( $wgMathDisableTexFilter );
+	}
+
+	/**
+	 * @param string $inputType
+	 */
+	public function setInputType( $inputType ) {
+		$this->inputType = $inputType;
+	}
+
+	/**
+	 * @return string
+	 */
+	public function getInputType() {
+		return $this->inputType;
+	}
+
+	/**
+	 * @return bool
+	 */
+	protected function doCheck() {
+		$checker = new MathInputCheckRestbase( $this->tex, $this->getInputType(), $this->rbi );
+		try {
+			if ( $checker->isValid() ) {
+				$this->setTex( $checker->getValidTex() );
+				$this->texSecure = true;
+				return true;
+			}
+		}
+		catch ( MWException $e ) {
+		}
+		$this->lastError = $checker->getError();
+		return false;
+	}
+}
diff --git a/MathRestbaseInterface.php b/MathRestbaseInterface.php
new file mode 100644
index 0000000..d2eef4f
--- /dev/null
+++ b/MathRestbaseInterface.php
@@ -0,0 +1,412 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2015 various MediaWiki contributors
+ * GPLv2 license; info in main package.
+ */
+
+use MediaWiki\Logger\LoggerFactory;
+
+class MathRestbaseInterface {
+	private $hash = false;
+	private $tex;
+	private $type;
+	private $checkedTex;
+	private $success;
+	private $identifiers;
+	private $error;
+	private $mathoidStyle;
+	private $mml;
+
+	/**
+	 * MathRestbaseInterface constructor.
+	 * @param string $tex
+	 * @param string $type
+	 */
+	public function __construct( $tex = '', $type = 'tex' ) {
+		$this->tex = $tex;
+		$this->type = $type;
+	}
+
+	/**
+	 * Bundles several requests for fetching MathML.
+	 * Does not send requests, if the the input TeX is invalid.
+	 * @param $rbis
+	 * @param $serviceClient
+	 */
+	private static function batchGetMathML( $rbis, $serviceClient ) {
+		$requests = [];
+		$skips = [];
+		$i = 0;
+		foreach ( $rbis as $rbi ) {
+			/** @var MathRestbaseInterface $rbi */
+			if ( $rbi->getSuccess() ) {
+				$requests[] = $rbi->getContentRequest( 'mml' );
+			} else {
+				$skips[] = $i;
+			}
+			$i ++;
+		}
+		$results = $serviceClient->runMulti( $requests );
+		$i = 0;
+		$j = 0;
+		foreach ( $results as $response ) {
+			if ( !in_array( $i, $skips ) ) {
+				/** @var MathRestbaseInterface $rbi */
+				$rbi = $rbis[$i];
+				try {
+					$mml = $rbi->evaluateContentResponse( 'mml', $response, $requests[$j] );
+					$rbi->mml = $mml;
+				}
+				catch ( Exception $e ) {
+				}
+				$j ++;
+			}
+			$i ++;
+		}
+	}
+
+	/**
+	 * @return string MathML code
+	 * @throws MWException
+	 */
+	public function getMathML() {
+		if ( !$this->mml ){
+			$this->mml = $this->getContent( 'mml' );
+		}
+		return $this->mml;
+	}
+
+	private function getContent( $type ) {
+		$request = $this->getContentRequest( $type );
+		$serviceClient = $this->getServiceClient();
+		$response = $serviceClient->run( $request );
+		return $this->evaluateContentResponse( $type, $response, $request );
+	}
+
+	private function calculateHash() {
+		if ( !$this->hash ) {
+			if ( !$this->checkTeX() ) {
+				throw new MWException( "TeX input is invalid." );
+			}
+		}
+	}
+
+	public function checkTeX() {
+		$request = $this->getCheckRequest();
+		$requestResult = $this->executeRestbaseCheckRequest( $request );
+		return $this->evaluateRestbaseCheckResponse( $requestResult );
+	}
+
+	/**
+	 * Performs a service request
+	 * Generates error messages on failure
+	 * @see Http::post()
+	 *
+	 * @param array $request the request object
+	 * @return bool success
+	 */
+	private function executeRestbaseCheckRequest( $request ) {
+		$res = null;
+		$serviceClient = $this->getServiceClient();
+		$response =  $serviceClient->run( $request );
+		if ( $response['code'] !== 200 ) {
+			$this->log()->info( 'Tex check failed:', [
+					'post'  => $request['body'],
+					'error' => $response['error'],
+					'url'   => $request['url']
+			] );
+		}
+		return $response;
+
+	}
+
+	/**
+	 * @param array $rbis array of MathRestbaseInterface instances
+	 */
+	public static function batchEvaluate( $rbis ) {
+		if ( count( $rbis ) == 0 ) {
+			return;
+		}
+		$requests = [];
+		/** @var MathRestbaseInterface $first */
+		$first = $rbis[0];
+		$serviceClient = $first->getServiceClient();
+		foreach ( $rbis as $rbi ) {
+			/** @var MathRestbaseInterface $rbi */
+			$requests[] = $rbi->getCheckRequest();
+		}
+		$results = $serviceClient->runMulti( $requests );
+		$i = 0;
+		foreach ( $results as $response ) {
+			/** @var MathRestbaseInterface $rbi */
+			$rbi = $rbis[$i ++];
+			try {
+				$rbi->evaluateRestbaseCheckResponse( $response );
+			} catch ( Exception $e ) {
+			}
+		}
+		self::batchGetMathML( $rbis, $serviceClient );
+	}
+
+	private function getServiceClient() {
+		global $wgVirtualRestConfig, $wgMathConcurrentReqs;
+		$http = new MultiHttpClient( [ 'maxConnsPerHost' => $wgMathConcurrentReqs ] );
+		$serviceClient = new VirtualRESTServiceClient( $http );
+		if ( isset( $wgVirtualRestConfig['modules']['restbase'] ) ) {
+			$cfg = $wgVirtualRestConfig['modules']['restbase'];
+			$cfg['parsoidCompat'] = false;
+			$vrsObject = new RestbaseVirtualRESTService( $cfg );
+			$serviceClient->mount( '/mathoid/', $vrsObject );
+		}
+		return $serviceClient;
+	}
+
+	/**
+	 * The URL is generated accoding to the following logic:
+	 *
+	 * Case A: <code>$internal = false</code>, which means one needs an URL that is accessible from
+	 * outside:
+	 *
+	 * --> If <code>$wgMathFullRestbaseURL</code> is configured use it, otherwise fall back try to
+	 * <code>$wgVisualEditorFullRestbaseURL</code>. (Note, that this is not be worse than failing
+	 * immediately.)
+	 *
+	 * Case B: <code> $internal= true</code>, which means one needs to access content from Restbase
+	 * which does not need to be accessible from outside:
+	 *
+	 * --> Use the mount point whenever possible. If the mount point is not available, use
+	 * <code>$wgMathFullRestbaseURL</code> with fallback to <code>wgVisualEditorFullRestbaseURL</code>
+	 *
+	 * @param string $path
+	 * @param bool|true $internal
+	 * @return string
+	 * @throws MWException
+	 */
+	public function getUrl( $path, $internal = true ) {
+		global $wgVirtualRestConfig, $wgMathFullRestbaseURL, $wgVisualEditorFullRestbaseURL;
+		if ( $internal && isset( $wgVirtualRestConfig['modules']['restbase'] ) ) {
+			return "/mathoid/local/v1/$path";
+		}
+		if ( $wgMathFullRestbaseURL ) {
+			return "{$wgMathFullRestbaseURL}v1/$path";
+		}
+		if ( $wgVisualEditorFullRestbaseURL ) {
+			return "{$wgVisualEditorFullRestbaseURL}v1/$path";
+		}
+		$msg = 'Math extension can not find Restbase URL. Please specify $wgMathFullRestbaseURL.';
+		$this->setErrorMessage( $msg );
+		throw new MWException( $msg );
+	}
+
+	/**
+	 * @return \Psr\Log\LoggerInterface
+	 */
+	private function log() {
+		return LoggerFactory::getInstance( 'Math' );
+	}
+
+	public function getSvg() {
+		return $this->getContent( 'svg' );
+	}
+
+	/**
+	 * @param bool|false $skipConfigCheck
+	 * @return bool
+	 */
+	public function checkBackend( $skipConfigCheck = false ) {
+		try {
+			$request = [
+				'method' => 'GET',
+				'url'    => $this->getUrl( '?spec' )
+			];
+		} catch ( Exception $e ) {
+			return false;
+		}
+		$serviceClient = $this->getServiceClient();
+		$response = $serviceClient->run( $request );
+		if ( $response['code'] === 200 ) {
+			return $skipConfigCheck || $this->checkConfig();
+		}
+		$this->log()->error( "Restbase backend is not correctly set up.", [
+			'request'  => $request,
+			'response' => $response
+		] );
+		return false;
+	}
+
+	/**
+	 * Generates a unique TeX string, renders it and gets it via a public URL.
+	 * The method fails, if the public URL does not point to the same server, who did render
+	 * the unique TeX input in the first place.
+	 * @return bool
+	 */
+	private function checkConfig() {
+		// Generates a TeX string that probably has not been generated before
+		$uniqueTeX = uniqid( 't=', true );
+		$testInterface = new MathRestbaseInterface( $uniqueTeX );
+		if ( ! $testInterface->checkTeX() ){
+			$this->log()->warning( 'Config check failed, since test expression was considered as invalid.',
+				[ 'uniqueTeX' => $uniqueTeX ] );
+			return false;
+		}
+		try {
+			$url = $testInterface->getFullSvgUrl();
+			$req = MWHttpRequest::factory( $url );
+			$status = $req->execute();
+			if ( $status->isOK() ){
+				return true;
+			}
+			$this->log()->warning( 'Config check failed, due to an invalid response code.',
+				[ 'responseCode' => $status ] );
+		} catch ( Exception $e ) {
+			$this->log()->warning( 'Config check failed, due to an exception.', [ $e ] );
+			return false;
+		}
+	}
+
+	/**
+	 * Gets a publicly accessible link to the generated SVG image.
+	 * @return string
+	 * @throws MWException
+	 */
+	public function getFullSvgUrl() {
+		$this->calculateHash();
+		return $this->getUrl( "media/math/render/svg/{$this->hash}", false );
+	}
+
+	/**
+	 * @return string
+	 */
+	public function getCheckedTex() {
+		return $this->checkedTex;
+	}
+
+	/**
+	 * @return boolean
+	 */
+	public function getSuccess() {
+		if ( $this->success === null ) {
+			$this->checkTeX();
+		}
+		return $this->success;
+	}
+
+	/**
+	 * @return array
+	 */
+	public function getIdentifiers() {
+		return $this->identifiers;
+	}
+
+	/**
+	 * @return stdClass
+	 */
+	public function getError() {
+		return $this->error;
+	}
+
+	/**
+	 * @return string
+	 */
+	public function getTex() {
+		return $this->tex;
+	}
+
+	/**
+	 * @return string
+	 */
+	public function getType() {
+		return $this->type;
+	}
+
+	private function setErrorMessage( $msg ) {
+		$this->error = (object)[ 'error' => (object)[ 'message' => $msg ] ];
+	}
+
+	/**
+	 * @return array
+	 * @throws MWException
+	 */
+	public function getCheckRequest() {
+		$request = [
+				'method' => 'POST',
+				'body'   => [
+						'type' => $this->type,
+						'q'    => $this->tex
+				],
+				'url'    => $this->getUrl( "media/math/check/{$this->type}" )
+		];
+		return $request;
+	}
+
+	/**
+	 * @param $response
+	 * @return bool
+	 */
+	public function evaluateRestbaseCheckResponse( $response ) {
+		$json = json_decode( $response['body'] );
+		if ( $response['code'] === 200 ) {
+			$headers = $response['headers'];
+			$this->hash = $headers['x-resource-location'];
+			$this->success = $json->success;
+			$this->checkedTex = $json->checked;
+			$this->identifiers = $json->identifiers;
+			return true;
+		} else {
+			if ( isset( $json->detail ) && isset( $json->detail->success ) ) {
+				$this->success = $json->detail->success;
+				$this->error = $json->detail;
+			} else {
+				$this->success = false;
+				$this->setErrorMessage( 'Math extension cannot connect to Restbase.' );
+			}
+			return false;
+		}
+	}
+
+	/**
+	 * @return mixed
+	 */
+	public function getMathoidStyle() {
+		return $this->mathoidStyle;
+	}
+
+	/**
+	 * @param $type
+	 * @return array
+	 * @throws MWException
+	 */
+	private function getContentRequest( $type ) {
+		$this->calculateHash();
+		$request = [
+			'method' => 'GET',
+			'url' => $this->getUrl( "media/math/render/$type/{$this->hash}" )
+		];
+		return $request;
+	}
+
+	/**
+	 * @param $type
+	 * @param $response
+	 * @param $request
+	 * @return mixed
+	 * @throws MWException
+	 */
+	private function evaluateContentResponse( $type, $response, $request ) {
+		if ( $response['code'] === 200 ) {
+			if ( array_key_exists( 'x-mathoid-style', $response['headers'] ) ) {
+				$this->mathoidStyle = $response['headers']['x-mathoid-style'];
+			}
+			return $response['body'];
+		}
+		$this->log()->error( 'Restbase math server problem:', [
+			'request' => $request,
+			'response' => $response,
+			'type' => $type,
+			'tex' => $this->tex
+		] );
+		throw new MWException( "Cannot get $type. Server problem." );
+	}
+}
diff --git a/MathSource.php b/MathSource.php
new file mode 100644
index 0000000..93d403d
--- /dev/null
+++ b/MathSource.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2012 Tomasz Wegrzanowski, Brion Vibber, Moritz Schubotz and other MediaWiki contributors
+ * GPLv2 license; info in main package.
+ *
+ * Contains everything related to <math> </math> parsing
+ * @file
+ */
+
+/**
+ * Takes LaTeX fragments and outputs the source directly to the browser
+ *
+ * @author Tomasz Wegrzanowski
+ * @author Brion Vibber
+ * @author Moritz Schubotz
+ * @ingroup Parser
+ */
+class MathSource extends MathRenderer {
+	/**
+	 * @param string $tex
+	 * @param array $params
+	 */
+	function __construct( $tex = '', $params = [] ) {
+		parent::__construct( $tex, $params );
+		$this->setMode( 'source' );
+	}
+
+	/**
+	 * Renders TeX by outputting it to the browser in a span tag
+	 *
+	 * @return string span tag with TeX
+	 */
+	function getHtmlOutput() {
+		# No need to render or parse anything more!
+		# New lines are replaced with spaces, which avoids confusing our parser (bugs 23190, 22818)
+		if ( $this->getMathStyle() == 'display' ) {
+			$class = 'mwe-math-fallback-source-display';
+		} else {
+			$class = 'mwe-math-fallback-source-inline';
+		}
+		return Xml::element( 'span',
+			$this->getAttributes(
+				'span',
+				[
+					// the former class name was 'tex'
+					// for backwards compatibility we keep this classname
+					'class' => $class. ' tex',
+					'dir' => 'ltr'
+				]
+			),
+			'$ ' . str_replace( "\n", " ", $this->getTex() ) . ' $'
+		);
+	}
+
+	protected function getMathTableName() {
+		throw new Exception( 'in math source mode no database caching should happen' );
+	}
+
+	/**
+	 * No rendering required in plain text mode
+	 * @return boolean
+	 */
+	function render() {
+		// assume unchanged to avoid unnecessary database access
+		$this->changed = false;
+		return true;
+	}
+}
diff --git a/MathTexvc.php b/MathTexvc.php
new file mode 100644
index 0000000..8a1bc29
--- /dev/null
+++ b/MathTexvc.php
@@ -0,0 +1,481 @@
+<?php
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2012 Tomasz Wegrzanowski, Brion Vibber, Moritz Schubotz,
+ * and other MediaWiki contributors
+ * GPLv2 license; info in main package.
+ *
+ * Contains the driver function for the texvc program
+ * @file
+ */
+use MediaWiki\Logger\LoggerFactory;
+
+/**
+ * Takes LaTeX fragments, sends them to a helper program (texvc) for rendering
+ * to rasterized PNG and HTML and MathML approximations. An appropriate
+ * rendering form is picked and returned.
+ *
+ * @author Tomasz Wegrzanowski
+ * @author Brion Vibber
+ * @author Moritz Schubotz
+ * @deprecated will be deleted in one of the next versions without further notice
+ */
+class MathTexvc extends MathRenderer {
+	private $hash = '';
+	private $html = '';
+	private $conservativeness = 0;
+	const CONSERVATIVE = 2;
+	const MODERATE = 1;
+	const LIBERAL = 0;
+	const MW_TEXVC_SUCCESS = -1;
+
+	/**
+	 * Gets an array that matches the variables of the class to the database columns
+	 * @return array
+	 */
+	public function dbOutArray() {
+		$out = [];
+		$dbr = wfGetDB( DB_SLAVE );
+		$outmd5_sql = $dbr->encodeBlob( pack( 'H32', $this->hash ) );
+		if ( $outmd5_sql instanceof Blob ) {
+			$outmd5_sql = $outmd5_sql->fetch();
+		}
+		$out['math_outputhash'] = $outmd5_sql;
+		$out['math_html_conservativeness'] = $this->conservativeness;
+		$out['math_html'] = $this->html;
+		$out['math_mathml'] = utf8_encode( $this->getMathml() );
+		$out['math_inputhash'] = $this->getInputHash();
+		LoggerFactory::getInstance( 'Math' )->debug( 'Store Hashpath of image' .
+			bin2hex( $outmd5_sql ) );
+		return $out;
+	}
+
+	protected function dbInArray() {
+		return [ 'math_inputhash', 'math_outputhash',
+				'math_html_conservativeness', 'math_html', 'math_mathml' ];
+	}
+
+	/**
+	 * @param database_row $rpage
+	 * @return bool
+	 */
+	protected function initializeFromDatabaseRow( $rpage ) {
+		parent::initializeFromDatabaseRow( $rpage );
+		// get deprecated fields
+		if ( $rpage->math_outputhash ) {
+			$dbr = wfGetDB( DB_SLAVE );
+			$xhash = unpack( 'H32md5',
+				$dbr->decodeBlob( $rpage->math_outputhash ) . "                " );
+			$this->hash = $xhash['md5'];
+			LoggerFactory::getInstance( 'Math' )->debug( 'Hashpath of PNG-File:' .
+				bin2hex( $this->hash ) );
+			$this->conservativeness = $rpage->math_html_conservativeness;
+			$this->html = $rpage->math_html;
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Renders TeX using texvc
+	 *
+	 * @return string rendered TeK
+	 */
+	public function render() {
+		if ( !$this->readCache() ) { // cache miss
+			$result = $this->callTexvc();
+			if ( $result === self::MW_TEXVC_SUCCESS ) {
+				return true;
+			} else {
+				$this->lastError = $result;
+				return false;
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * Gets path to store hashes in
+	 *
+	 * @return string Storage directory
+	 */
+	public function getHashPath() {
+		$path = $this->getBackend()->getRootStoragePath() .
+			'/math-render/' . $this->getHashSubPath();
+		LoggerFactory::getInstance( 'Math' )->debug(
+			"TeX: getHashPath, hash is: {$this->getHash()}, path is: $path" );
+		return $path;
+	}
+
+	/**
+	 * Gets relative directory for this specific hash
+	 *
+	 * @return string Relative directory
+	 */
+	public function getHashSubPath() {
+		return substr( $this->getHash(), 0, 1 )
+			. '/' . substr( $this->getHash(), 1, 1 )
+			. '/' . substr( $this->getHash(), 2, 1 );
+	}
+
+	/**
+	 * Gets URL for math image
+	 *
+	 * @return string image URL
+	 */
+	public function getMathImageUrl() {
+		global $wgMathPath;
+		$dir = $this->getHashSubPath();
+		return "$wgMathPath/$dir/{$this->getHash()}.png";
+	}
+
+	/**
+	 * Gets img tag for math image
+	 *
+	 * @return string img HTML
+	 */
+	public function getMathImageHTML() {
+		$url = $this->getMathImageUrl();
+		$attributes = [
+			// the former class name was 'tex'
+			// for backwards compatibility we keep that classname
+			'class' => 'mwe-math-fallback-image-inline tex',
+			'alt' => $this->getTex()
+		];
+		if ( $this->getMathStyle() === 'display' ){
+			// if DisplayStyle is true, the equation will be centered in a new line
+			$attributes[ 'class' ] = 'mwe-math-fallback-image-display tex';
+		}
+		return Xml::element( 'img',
+			$this->getAttributes(
+				'img',
+				$attributes,
+				[
+					'src' => $url
+				]
+			)
+		);
+
+	}
+
+	/**
+	 * Converts an error returned by texvc to a localized exception
+	 *
+	 * @param string $texvcResult error result returned by texvc
+	 * @return string
+	 */
+	public function convertTexvcError( $texvcResult ) {
+		$errorConverter = new MathInputCheckTexvc();
+		return $errorConverter->convertTexvcError( $texvcResult, $this );
+	}
+
+	/**
+	 * Does the actual call to texvc
+	 *
+	 * @return int|string MW_TEXVC_SUCCESS or error string
+	 */
+	public function callTexvc() {
+		global $wgTexvc, $wgTexvcBackgroundColor, $wgHooks;
+		if ( $wgTexvc === false ){
+			$texvc = __DIR__ . '/math/texvc';
+		} else {
+			$texvc = $wgTexvc;
+		}
+		$tmpDir = wfTempDir();
+		if ( !is_executable( $texvc ) ) {
+			LoggerFactory::getInstance( 'Math' )->error(
+				"$texvc does not exist or is not executable." );
+			return $this->getError( 'math_notexvc' );
+		}
+
+		$escapedTmpDir = wfEscapeShellArg( $tmpDir );
+
+		$cmd = $texvc . ' ' .
+			$escapedTmpDir . ' ' .
+			$escapedTmpDir . ' ' .
+			wfEscapeShellArg( $this->getUserInputTex() ) . ' ' .
+			wfEscapeShellArg( 'UTF-8' ) . ' ' .
+			wfEscapeShellArg( $wgTexvcBackgroundColor );
+
+		if ( wfIsWindows() ) {
+			# Invoke it within cygwin sh, because texvc expects sh features in its default shell
+			$cmd = 'sh -c ' . wfEscapeShellArg( $cmd );
+		}
+		LoggerFactory::getInstance( 'Math' )->debug( "TeX: $cmd" );
+		LoggerFactory::getInstance( 'Math' )->debug( "Executing '$cmd'." );
+		$retval = null;
+		$contents = wfShellExec( $cmd, $retval );
+		LoggerFactory::getInstance( 'Math' )->debug( "TeX output:\n $contents\n---" );
+
+		if ( strlen( $contents ) == 0 ) {
+			if ( !file_exists( $tmpDir ) || !is_writable( $tmpDir ) ) {
+				LoggerFactory::getInstance( 'Math' )->error(
+					"TeX output directory $tmpDir is missing or not writable" );
+				return $this->getError( 'math_bad_tmpdir' );
+			} else {
+				LoggerFactory::getInstance( 'Math' )->error(
+					"TeX command '$cmd' returned no output and status code $retval." );
+				return $this->getError( 'math_unknown_error' );
+			}
+		}
+
+		$tempFsFile = new TempFSFile( "$tmpDir/{$this->getHash()}.png" );
+		$tempFsFile->autocollect(); // destroy file when $tempFsFile leaves scope
+
+		$retval = substr( $contents, 0, 1 );
+		$errmsg = '';
+		if ( ( $retval == 'C' ) || ( $retval == 'M' ) || ( $retval == 'L' ) ) {
+			if ( $retval == 'C' ) {
+				$this->setConservativeness( self::CONSERVATIVE );
+			} elseif ( $retval == 'M' ) {
+				$this->setConservativeness( self::MODERATE );
+			} else {
+				$this->setConservativeness( self::LIBERAL );
+			}
+			$outdata = substr( $contents, 33 );
+
+			$i = strpos( $outdata, "\000" );
+
+			$this->setHtml( substr( $outdata, 0, $i ) );
+			$this->setMathml( substr( $outdata, $i + 1 ) );
+		} elseif ( ( $retval == 'c' ) || ( $retval == 'm' ) || ( $retval == 'l' ) ) {
+			$this->setHtml( substr( $contents, 33 ) );
+			if ( $retval == 'c' ) {
+				$this->setConservativeness( self::CONSERVATIVE );
+			} elseif ( $retval == 'm' ) {
+				$this->setConservativeness( self::MODERATE );
+			} else {
+				$this->setConservativeness( self::LIBERAL );
+			}
+			$this->setMathml( null );
+		} elseif ( $retval == 'X' ) {
+			$this->setHtml( null );
+			$this->setMathml( substr( $contents, 33 ) );
+			$this->setConservativeness( self::LIBERAL );
+		} elseif ( $retval == '+' ) {
+			$this->setHtml( null );
+			$this->setMathml( null );
+			$this->setConservativeness( self::LIBERAL );
+		} else {
+			$errmsg = $this->convertTexvcError( $contents );
+		}
+
+		if ( !$errmsg ) {
+			$newHash = substr( $contents, 1, 32 );
+			if ( $this->hash !== $newHash ) {
+				$this->isInDatabase( false ); // DB needs update in writeCache() (bug 60997)
+			}
+			$this->setHash( $newHash );
+		}
+
+		Hooks::run( 'MathAfterTexvc', [ &$this, &$errmsg ] );
+
+		if ( $errmsg ) {
+			return $errmsg;
+		} elseif ( !preg_match( "/^[a-f0-9]{32}$/", $this->getHash() ) ) {
+			return $this->getError( 'math_unknown_error' );
+		} elseif ( !file_exists( "$tmpDir/{$this->getHash()}.png" ) ) {
+			return $this->getError( 'math_image_error' );
+		} elseif ( filesize( "$tmpDir/{$this->getHash()}.png" ) == 0 ) {
+			return $this->getError( 'math_image_error' );
+		}
+
+		$hashpath = $this->getHashPath(); // final storage directory
+
+		$backend = $this->getBackend();
+		# Create any containers/directories as needed...
+		if ( !$backend->prepare( [ 'dir' => $hashpath ] )->isOK() ) {
+			return $this->getError( 'math_output_error' );
+		}
+		// Store the file at the final storage path...
+		// Bug 56769: buffer the writes and do them at the end.
+		if ( !isset( $wgHooks['ParserAfterParse']['FlushMathBackend'] ) ) {
+			$backend->mathBufferedWrites = [];
+			$wgHooks['ParserAfterParse']['FlushMathBackend'] = function () use ( $backend ) {
+				global $wgHooks;
+				unset( $wgHooks['ParserAfterParse']['FlushMathBackend'] );
+				$backend->doQuickOperations( $backend->mathBufferedWrites );
+				unset( $backend->mathBufferedWrites );
+			};
+		}
+		$backend->mathBufferedWrites[] = [
+			'op'  => 'store',
+			'src' => "$tmpDir/{$this->getHash()}.png",
+			'dst' => "$hashpath/{$this->getHash()}.png",
+			'ref' => $tempFsFile // keep file alive
+		];
+
+		return self::MW_TEXVC_SUCCESS;
+	}
+
+	/**
+	 * Gets file backend
+	 *
+	 * @return FileBackend appropriate file backend
+	 */
+	public function getBackend() {
+		global $wgMathFileBackend, $wgMathDirectory;
+		if ( $wgMathFileBackend ) {
+			return FileBackendGroup::singleton()->get( $wgMathFileBackend );
+		} else {
+			static $backend = null;
+			if ( !$backend ) {
+				$backend = new FSFileBackend( [
+					'name'           => 'math-backend',
+					'wikiId' 	 => wfWikiId(),
+					'lockManager'    => new NullLockManager( [] ),
+					'containerPaths' => [ 'math-render' => $wgMathDirectory ],
+					'fileMode'       => 0777
+				] );
+			}
+			return $backend;
+		}
+	}
+
+	/**
+	 * Does the HTML rendering
+	 *
+	 * @return string HTML string
+	 */
+	public function getHtmlOutput() {
+		return $this->getMathImageHTML();
+	}
+
+	/**
+	 * Overrides base class.  Writes to database, and if configured, squid.
+	 */
+	public function writeCache() {
+		global $wgUseSquid;
+
+		$updated = parent::writeCache();
+		// If we're replacing an older version of the image, make sure it's current.
+		if ( $updated && $wgUseSquid ) {
+			$urls = [ $this->getMathImageUrl() ];
+			$u = new SquidUpdate( $urls );
+			$u->doUpdate();
+		}
+
+		return $updated;
+	}
+
+	/**
+	 * Reads the rendering information from the database.  If configured, checks whether files exist
+	 *
+	 * @return boolean true if retrieved, false otherwise
+	 */
+	public function readCache() {
+		global $wgMathCheckFiles;
+
+		if ( $this->isInDatabase() ) {
+			if ( !$wgMathCheckFiles ) {
+				// Short-circuit the file existence & migration checks
+				return true;
+			}
+			$filename = $this->getHashPath() . "/{$this->getHash()}.png"; // final storage path
+			$backend = $this->getBackend();
+			if ( $backend->fileExists( [ 'src' => $filename ] ) ) {
+				if ( $backend->getFileSize( [ 'src' => $filename ] ) == 0 ) {
+					// Some horrible error corrupted stuff :(
+					$backend->quickDelete( [ 'src' => $filename ] );
+				} else {
+					return true; // cache hit
+				}
+			}
+		}
+		return false;
+	}
+
+	public function getPng() {
+		global $wgHooks;
+		// Workaround for bugfix for Bug 56769
+		if ( isset( $wgHooks['ParserAfterParse']['FlushMathBackend'] ) ) {
+			// XXX: save any pending files so the read below works
+			call_user_func( $wgHooks['ParserAfterParse']['FlushMathBackend'] );
+		}
+		$backend = $this->getBackend();
+		return $backend->getFileContents(
+			[ 'src' => $this->getHashPath() . "/" . $this->getHash() . '.png' ]
+		);
+	}
+
+	public function isInDatabase() {
+		$return = parent::isInDatabase();
+		if ( $this->hash && $return ) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+	/**
+	 * Get the hash calculated by texvc
+	 *
+	 * @return string hash
+	 */
+	public function getHash() {
+		return $this->hash;
+	}
+
+	/**
+	 * @param string $hash
+	 */
+	public function setHash( $hash ) {
+		$this->changed = true;
+		$this->hash = $hash;
+	}
+
+	/**
+	 * Returns the html-representation of the mathematical formula.
+	 * @return string
+	 */
+	public function getHtml() {
+		return $this->html;
+	}
+
+	/**
+	 * @param string $html
+	 */
+	public function setHtml( $html ) {
+		$this->changed = true;
+		$this->html = $html;
+	}
+
+	/**
+	 * Gets the so called 'conservativeness' calculated by texvc
+	 *
+	 * @return int
+	 */
+	public function getConservativeness() {
+		return $this->conservativeness;
+	}
+
+	/**
+	 * @param int $conservativeness
+	 */
+	public function setConservativeness( $conservativeness ) {
+		$this->changed = true;
+		$this->conservativeness = $conservativeness;
+	}
+
+	protected function getMathTableName() {
+		return 'math';
+	}
+
+	public function setOutputHash( $hash ) {
+		$this->hash = $hash;
+	}
+
+	/**
+	 * Skip tex check for texvc rendering mode.
+	 * Checking the tex code in texvc mode just adds a dependency to the
+	 * texvccheck binary which does not improve security since the same
+	 * checks are performed by texvc anyhow. Especially given the fact that
+	 * texvccheck was derived from texvc.
+	 * @return bool
+	 */
+	public function checkTeX() {
+		return true;
+	}
+
+}
diff --git a/MathValidator.php b/MathValidator.php
new file mode 100644
index 0000000..e8f997f
--- /dev/null
+++ b/MathValidator.php
@@ -0,0 +1,50 @@
+<?php
+
+use DataValues\StringValue;
+use ValueFormatters\Exceptions\MismatchingDataValueTypeException;
+use ValueValidators\Error;
+use ValueValidators\Result;
+use ValueValidators\ValueValidator;
+
+// @author Duc Linh Tran, Julian Hilbig, Moritz Schubotz
+
+class MathValidator implements ValueValidator {
+
+	/**
+	 * Validates a value with MathInputCheckRestbase
+	 *
+	 * @param mixed $value The value to validate
+	 *
+	 * @return \ValueValidators\Result
+	 * @throws ValueFormatters\Exceptions\MismatchingDataValueTypeException
+	 */
+	public function validate( $value ) {
+		if ( !( $value instanceof StringValue ) ) {
+			throw new MismatchingDataValueTypeException( 'StringValue', get_class( $value ) );
+		}
+
+		// get input String from value
+		$tex = $value->getValue();
+
+		$checker = new MathInputCheckRestbase( $tex );
+		if ( $checker->isValid() )  {
+			return Result::newSuccess();
+		}
+
+		// TeX string is not valid
+		return Result::newError(
+			[
+				Error::newError( null, null, 'malformed-value', [ $checker->getError() ] )
+			]
+		);
+	}
+
+	/**
+	 * @see ValueValidator::setOptions()
+	 *
+	 * @param array $options
+	 */
+	public function setOptions( array $options ) {
+		// Do nothing. This method shouldn't even be in the interface.
+	}
+}
diff --git a/MathWikidataHook.php b/MathWikidataHook.php
new file mode 100644
index 0000000..2c097e0
--- /dev/null
+++ b/MathWikidataHook.php
@@ -0,0 +1,81 @@
+<?php
+
+use ValueFormatters\FormatterOptions;
+use ValueParsers\StringParser;
+use Wikibase\Rdf\DedupeBag;
+use Wikibase\Rdf\EntityMentionListener;
+use Wikibase\Rdf\RdfVocabulary;
+use Wikibase\Repo\Parsers\WikibaseStringValueNormalizer;
+use Wikibase\Repo\WikibaseRepo;
+use Wikimedia\Purtle\RdfWriter;
+
+class MathWikidataHook {
+
+	/**
+	 * Add Datatype "Math" to the Wikibase Repository
+	 */
+	public static function onWikibaseRepoDataTypes( array &$dataTypeDefinitions ) {
+		global $wgMathEnableWikibaseDataType;
+
+		if ( !$wgMathEnableWikibaseDataType ) {
+			return;
+		}
+
+		$dataTypeDefinitions['PT:math'] = [
+			'value-type'                 => 'string',
+			'validator-factory-callback' => function() {
+				// load validator builders
+				$factory = WikibaseRepo::getDefaultValidatorBuilders();
+
+				// initialize an array with string validators
+				// returns an array of validators
+				// that add basic string validation such as preventing empty strings
+				$validators = $factory->buildStringValidators();
+				$validators[] = new MathValidator();
+				return $validators;
+			},
+			'parser-factory-callback' => function( ParserOptions $options ) {
+				$repo = WikibaseRepo::getDefaultInstance();
+				$normalizer = new WikibaseStringValueNormalizer( $repo->getStringNormalizer() );
+				return new StringParser( $normalizer );
+			},
+			'formatter-factory-callback' => function( $format, FormatterOptions $options ) {
+				global $wgOut;
+				$styles = [ 'ext.math.desktop.styles', 'ext.math.scripts', 'ext.math.styles' ];
+				$wgOut->addModuleStyles( $styles );
+				return new MathFormatter( $format );
+			},
+			'rdf-builder-factory-callback' => function (
+				$mode,
+				RdfVocabulary $vocab,
+				RdfWriter $writer,
+				EntityMentionListener $tracker,
+				DedupeBag $dedupe
+			) {
+				return new MathMLRdfBuilder();
+			},
+		];
+	}
+
+	/*
+	 * Add Datatype "Math" to the Wikibase Client
+	 */
+	public static function onWikibaseClientDataTypes( array &$dataTypeDefinitions ) {
+		global $wgMathEnableWikibaseDataType;
+
+		if ( !$wgMathEnableWikibaseDataType ) {
+			return;
+		}
+
+		$dataTypeDefinitions['PT:math'] = [
+			'value-type'                 => 'string',
+			'formatter-factory-callback' => function( $format, FormatterOptions $options ) {
+				global $wgOut;
+				$styles = [ 'ext.math.desktop.styles', 'ext.math.scripts', 'ext.math.styles' ];
+				$wgOut->addModuleStyles( $styles );
+				return new MathFormatter( $format );
+			},
+		];
+	}
+
+}
diff --git a/README b/README
new file mode 100644
index 0000000..b6862bc
--- /dev/null
+++ b/README
@@ -0,0 +1,61 @@
+This version (for MediaWiki 1.19) has some changes since previous versions:
+
+* rendering options have been reduced to just 'Always PNG' and 'Leave it as TeX'
+** all other rendering options will merge to PNG.
+* initial experimental support for integrating MathJax client-side rendering
+
+See the README in the math subdirectory for more info on setting up the
+low-level conversion tools.
+See the README in the texvccheck subdirectory for more info on setting up the
+security checking tools for MathJax and LaTeXML.
+
+MathML support:
+If you prefer MathML rather than images you can use LaTeXML to convert the
+math tags to MathML. To use that feature you have to enable LaTeXML by setting
+$wgMathUseLaTeXML = true;
+It is possible to choose LaTeXML as default option (for anonymous user) by setting
+$wgDefaultUserOptions['math'] = 'latexml';
+in the LocalSettings.php file.
+The LaTeXML option requires php5-curl to be installed. Without php5-curl no proper
+error handling can be guaranteed.
+Furthermore, a core version of wmf/1.22wmf7 or newer is recommended.
+Otherwise, errors in LaTeXML can lead to mal-formatted XML output and disturb the
+page layout.
+
+MathJax configuration:
+Client-side configuration of MathJax can be done by specifying a mathJax.config
+table, which takes a table as described in:
+http://docs.mathjax.org/en/v1.1-latest/options/index.html#configuration
+
+Example:
+if ( typeof mathJax === 'undefined' ) {
+  mathJax = {};
+  mathJax.config = {
+    showProcessingMessages: true
+  };
+}
+
+Attributes of the <math /> element:
+attribute "display":
+possible values: "inline", "block" or "inline-displaystyle" (default)
+
+"display" reproduces the old texvc behavior:
+The equation is rendered with large height operands (texvc used $$ $tex $$ to render)
+but the equation printed to the current line of the output and not centered in a new line.
+In Wikipedia users use :<math>$tex</math> to move the math element closer to the center.
+
+"inline" renders the equation in with small height operands by adding {\textstyle $tex } to the
+users input ($tex). The equation is displayed in the current text line.
+
+"inline-displaystyle" renders the equation in with large height operands centered in a new line by adding
+{\displaystyle $tex } to the user input ($tex).
+
+
+For testing your installation run
+php tests/phpunit/phpunit.php extensions/Math/tests/
+from your MediWiki home path.
+
+== Logging ==
+The math extension supports PSR-3 logging:
+Configuration can be dona via
+$wgDebugLogGroups['Math'] = [ 'level' => 'info', 'destination' => '/path/to/file.log' ];
diff --git a/RELEASE-NOTES-3.0.0 b/RELEASE-NOTES-3.0.0
new file mode 100644
index 0000000..4df1aaf
--- /dev/null
+++ b/RELEASE-NOTES-3.0.0
@@ -0,0 +1,15 @@
+== Math 3.0.0 ==
+
+Math 3.0.0 is an alpha-quality branch and is not recommended for use in
+production.
+
+=== Configuration changes in 3.0.0 ===
+
+
+=== New features in 3.0.0 ===
+* (T87941) Add extension.json, empty php entry point.
+* (T106631,T88324) Convert the math integer constants to string constants.
+* (T106630) Rename constants.
+* (T99369) Remove client-side MathJax support.
+
+=== Bug fixes in 3.0.0 ===
\ No newline at end of file
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..2877bf6
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,17 @@
+require 'bundler/setup'
+
+require 'rubocop/rake_task'
+RuboCop::RakeTask.new(:rubocop) do |task|
+  # if you use mediawiki-vagrant, rubocop will by default use it's .rubocop.yml
+  # the next line makes it explicit that you want .rubocop.yml from the directory
+  # where `bundle exec rake` is executed
+  task.options = ['-c', '.rubocop.yml']
+end
+
+require 'mediawiki_selenium/rake_task'
+MediawikiSelenium::RakeTask.new
+
+task default: [:test]
+
+desc 'Run all build/tests commands (CI entry point)'
+task test: [:rubocop]
diff --git a/SpecialMathShowImage.php b/SpecialMathShowImage.php
new file mode 100644
index 0000000..060e922
--- /dev/null
+++ b/SpecialMathShowImage.php
@@ -0,0 +1,142 @@
+<?php
+/**
+ * Description of SpecialMathShowSVG
+ *
+ * @author Moritz Schubotz (Physikerwelt)
+ */
+class SpecialMathShowImage extends SpecialPage {
+	private $noRender = false;
+	private $renderer = null;
+	private $mode = 'mathml';
+
+	function __construct() {
+		parent::__construct(
+			'MathShowImage',
+			'', // Don't restrict
+			false // Don't show on Special:SpecialPages - it's not useful interactively
+		);
+	}
+
+	/**
+	 * Sets headers - this should be called from the execute() method of all derived classes!
+	 * @param bool $success
+	 */
+	function setHeaders( $success = true ) {
+		$out = $this->getOutput();
+		$request = $this->getRequest();
+		$out->setArticleBodyOnly( true );
+		$out->setArticleRelated( false );
+		$out->setRobotPolicy( "noindex,nofollow" );
+		$out->disable();
+		if ( $success && $this->mode == 'png' ) {
+			$request->response()->header( "Content-type: image/png;" );
+		} else {
+			$request->response()->header( "Content-type: image/svg+xml; charset=utf-8" );
+		}
+		if ( $success && !( $this->noRender ) ) {
+			$request->response()->header(
+				'Cache-Control: public, s-maxage=604800, max-age=3600'
+			); // 1 week (server) 1 hour (client)
+			$request->response()->header( 'Vary: User-Agent' );
+		}
+	}
+
+	function execute( $par ) {
+		global $wgMathEnableExperimentalInputFormats;
+		$request = $this->getRequest();
+		$hash = $request->getText( 'hash', '' );
+		$tex = $request->getText( 'tex', '' );
+		if ( $wgMathEnableExperimentalInputFormats ) {
+			$asciimath = $request->getText( 'asciimath', '' );
+		} else {
+			$asciimath = '';
+		}
+		$this->mode = MathHooks::mathModeToString( $request->getText( 'mode' ), 'mathml' );
+		if ( !in_array( $this->mode, MathRenderer::getValidModes() ) ) {
+			// Fallback to the default if an invalid mode was specified
+			$this->mode = 'mathml';
+		}
+		if ( $hash === '' && $tex === '' && $asciimath === '' ) {
+			$this->setHeaders( false );
+			echo $this->printSvgError( 'No Inputhash specified' );
+		} else {
+			if ( $tex === '' && $asciimath === '' ){
+				switch ( $this->mode ) {
+					case 'png':
+						$this->renderer = MathTexvc::newFromMd5( $hash );
+						break;
+					case 'latexml':
+						$this->renderer = MathLaTeXML::newFromMd5( $hash );
+						break;
+					default:
+						$this->renderer = MathMathML::newFromMd5( $hash );
+				}
+				$this->noRender = $request->getBool( 'noRender', false );
+				$isInDatabase = $this->renderer->readFromDatabase();
+				if ( $isInDatabase || $this->noRender ) {
+					$success = $isInDatabase;
+				} else {
+					if ( $this->mode == 'png' ) {
+						// get the texvc input from the mathoid database table
+						// and render the conventional way
+						$mmlRenderer = MathMathML::newFromMd5( $hash );
+						$mmlRenderer->readFromDatabase();
+						$this->renderer = MathRenderer::getRenderer(
+							$mmlRenderer->getUserInputTex(), [], 'png'
+						);
+						$this->renderer->setMathStyle( $mmlRenderer->getMathStyle() );
+					}
+					$success = $this->renderer->render();
+				}
+			} elseif ( $asciimath === '' ) {
+				$this->renderer = MathRenderer::getRenderer( $tex, [], $this->mode );
+				$success = $this->renderer->render();
+			} else {
+				$this->renderer = MathRenderer::getRenderer(
+					$asciimath, [ 'type' => 'ascii' ], $this->mode
+				);
+				$success = $this->renderer->render();
+			}
+			if ( $success ) {
+				if ( $this->mode == 'png' ) {
+					$output = $this->renderer->getPng();
+				} else {
+					$output = $this->renderer->getSvg();
+				}
+			} else {
+				// Error message in PNG not supported
+				$output = $this->printSvgError( $this->renderer->getLastError() );
+			}
+			if ( $output == "" ) {
+				$output = $this->printSvgError( 'No Output produced' );
+				$success = false;
+			}
+			$this->setHeaders( $success );
+			echo $output;
+			if ( $success ){
+				$this->renderer->writeCache();
+			}
+		}
+	}
+
+	/**
+	 * Prints the specified error message as svg.
+	 * @param string $msg error message
+	 * @return string xml svg image with the error message
+	 */
+	private function printSvgError( $msg ) {
+		global $wgDebugComments;
+		// @codingStandardsIgnoreStart
+		$result =  '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 4" preserveAspectRatio="xMidYMid meet" >' .
+			'<text text-anchor="start" fill="red" y="2">' . htmlspecialchars( $msg ) . '</text></svg>';
+		// @codingStandardsIgnoreEnd
+		if ( $wgDebugComments ) {
+			$result .= '<!--'. var_export( $this->renderer, true ) .'-->';
+		}
+		return $result;
+	}
+
+	protected function getGroupName() {
+		return 'other';
+	}
+}
diff --git a/SpecialMathStatus.php b/SpecialMathStatus.php
new file mode 100644
index 0000000..53480d3
--- /dev/null
+++ b/SpecialMathStatus.php
@@ -0,0 +1,196 @@
+<?php
+
+use MediaWiki\Logger\LoggerFactory;
+
+/**
+ * MediaWiki math extension
+ *
+ * (c) 2002-2015 Tomasz Wegrzanowski, Brion Vibber, Moritz Schubotz,
+ * and other MediaWiki contributors
+ * GPLv2 license; info in main package.
+ *
+ * @author Moritz Schubotz
+ */
+class SpecialMathStatus extends SpecialPage {
+
+	public function __construct( $name = 'MathStatus' ) {
+		parent::__construct( $name );
+	}
+
+	/**
+	 * @param null|string $query
+	 *
+	 * @throws MWException
+	 * @throws PermissionsError
+	 */
+	function execute( $query ) {
+		$this->setHeaders();
+		if ( ! ( $this->getUser()->isAllowed( 'purge' ) ) ) {
+			// The effect of loading this page is comparable to purge a page.
+			// If desired a dedicated right e.g. "viewmathstatus" could be used instead.
+			throw new PermissionsError( 'purge' );
+		}
+
+		$out = $this->getOutput();
+		$enabledMathModes = MathHooks::getMathNames();
+		$out->addWikiMsg( 'math-status-introduction', count( $enabledMathModes ) );
+
+		foreach ( $enabledMathModes as $modeNr => $modeName ){
+			$out->addWikiText( "=== $modeName ===" );
+			switch ( $modeNr ) {
+				case 'mathml':
+					$this->runMathMLTest( $modeName );
+					break;
+				case 'latexml':
+					$this->runMathLaTeXMLTest( $modeName );
+			}
+		}
+	}
+
+	private function runMathMLTest( $modeName ) {
+		$this->getOutput()->addWikiMsgArray( 'math-test-start', $modeName );
+		$this->testSpecialCaseText();
+		$this->testMathMLIntegration();
+		$this->testPmmlInput();
+		$this->getOutput()->addWikiMsgArray( 'math-test-end', $modeName );
+	}
+
+	private function runMathLaTeXMLTest( $modeName ) {
+		$this->getOutput()->addWikiMsgArray( 'math-test-start', $modeName );
+		$this->testLaTeXMLIntegration();
+		$this->testLaTeXMLLinebreak();
+		$this->getOutput()->addWikiMsgArray( 'math-test-end', $modeName );
+	}
+
+	public function testSpecialCaseText() {
+		$renderer = MathRenderer::getRenderer( 'x^2+\text{a sample Text}', [], 'mathml' );
+		$expected = 'a sample Text</mtext>';
+		$this->assertTrue( $renderer->render(), 'Rendering the input "x^2+\text{a sample Text}"' );
+		$this->assertContains(
+			$expected, $renderer->getHtmlOutput(), 'Comparing to the reference rendering'
+		);
+	}
+
+	/**
+	 * Checks the basic functionality
+	 * i.e. if the span element is generated right.
+	 */
+	public function testMathMLIntegration() {
+		$svgRef = file_get_contents( __DIR__ .'/images/reference.svg' );
+		$svgRefNoSpeech = file_get_contents( __DIR__ .'/images/reference-nospeech.svg' );
+		$renderer = MathRenderer::getRenderer( "a+b", [], 'mathml' );
+		$this->assertTrue( $renderer->render( true ), "Rendering of a+b in plain MathML mode" );
+		$real = str_replace( "\n", '', $renderer->getHtmlOutput() );
+		$expected = '<mo>+</mo>';
+		$this->assertContains( $expected, $real, "Checking the presence of '+' in the MathML output" );
+		$this->assertEquals( [ $svgRef, $svgRefNoSpeech ], $renderer->getSvg(),
+			"Comparing the generated SVG with the reference"
+		);
+	}
+
+	/**
+	 * Checks the experimental option to 'render' MathML input
+	 */
+	public function testPmmlInput() {
+		// sample from 'Navajo Coal Combustion and Respiratory Health Near Shiprock,
+		// New Mexico' in ''Journal of Environmental and Public Health'' , vol. 2010p.
+		// authors  Joseph E. Bunnell;  Linda V. Garcia;  Jill M. Furst;
+		// Harry Lerch;  Ricardo A. Olea;  Stephen E. Suitt;  Allan Kolker
+		// @codingStandardsIgnoreStart
+		$inputSample = '<msub>  <mrow>  <mi> P</mi> </mrow>  <mrow>  <mi> i</mi>  <mi> j</mi> </mrow> </msub>  <mo> =</mo>  <mfrac>  <mrow>  <mn> 100</mn>  <msub>  <mrow>  <mi> d</mi> </mrow>  <mrow>  <mi> i</mi>  <mi> j</mi> </mrow> </msub> </mrow>  <mrow>  <mn> 6.75</mn>  <msub>  <mrow>  <mi> r</mi> </mrow>  <mrow>  <mi> j</mi> </mrow> </msub> </mrow> </mfrac>  <mo> ,</mo> </math>';
+		// @codingStandardsIgnoreEnd
+		$attribs = [ 'type' => 'pmml' ];
+		$renderer = new MathMathML( $inputSample, $attribs );
+		$this->assertEquals( 'pmml', $renderer->getInputType(), 'Checking if MathML input is supported' );
+		$this->assertTrue( $renderer->render(), 'Rendering Presentation MathML sample' );
+		$real = MathRenderer::renderMath( $inputSample, $attribs, 'mathml' );
+		$expected = 'hash=5628b8248b79267ecac656102334d5e3&mode=mathml';
+		$this->assertContains( $expected, $real, 'Checking if the link to SVG image is correct' );
+	}
+
+	/**
+	 * Checks the basic functionality
+	 * i.e. if the span element is generated right.
+	 */
+	public function testLaTeXMLIntegration() {
+		$renderer = MathRenderer::getRenderer( "a+b", [], 'latexml' );
+		$this->assertTrue( $renderer->render( true ), "Rendering of a+b in LaTeXML mode" );
+		// @codingStandardsIgnoreStart
+		$expected = '<math xmlns="http://www.w3.org/1998/Math/MathML" id="p1.m1" class="ltx_Math" alttext="{\displaystyle a+b}" ><semantics><mrow id="p1.m1.4" xref="p1.m1.4.cmml"><mi id="p1.m1.1" xref="p1.m1.1.cmml">a</mi><mo id="p1.m1.2" xref="p1.m1.2.cmml">+</mo><mi id="p1.m1.3" xref="p1.m1.3.cmml">b</mi></mrow><annotation-xml encoding="MathML-Content"><apply id="p1.m1.4.cmml" xref="p1.m1.4"><plus id="p1.m1.2.cmml" xref="p1.m1.2"/><ci id="p1.m1.1.cmml" xref="p1.m1.1">a</ci><ci id="p1.m1.3.cm [...]
+		// @codingStandardsIgnoreEnd
+		$real = preg_replace( "/\n\\s*/", '', $renderer->getHtmlOutput() );
+		$this->assertContains( $expected, $real,
+			"Comparing the output to the MathML reference rendering" .
+			  $renderer->getLastError() );
+	}
+
+	/**
+	 * Checks LaTeXML line break functionality
+	 * i.e. if a long line contains a mtr element.
+	 * http://www.w3.org/TR/REC-MathML/chap3_5.html#sec3.5.2
+	 */
+	public function testLaTeXMLLinebreak() {
+		global $wgMathDefaultLaTeXMLSetting;
+		$tex = '';
+		$testMax = ceil( $wgMathDefaultLaTeXMLSetting[ 'linelength' ] / 2 );
+		for ( $i = 0; $i < $testMax; $i++ ) {
+			$tex .= "$i+";
+		}
+		$tex .= $testMax;
+		$renderer = new MathLaTeXML( $tex, [ 'display' => 'linebreak' ] );
+		$this->assertTrue( $renderer->render( true ), "Rendering of linebreak test in LaTeXML mode" );
+		$expected = 'mtr';
+		$real = preg_replace( "/\n\\s*/", '', $renderer->getHtmlOutput() );
+		$this->assertContains( $expected, $real, "Checking for linebreak" .
+			  $renderer->getLastError() );
+	}
+
+	private function assertTrue( $expression, $message = '' ) {
+		if ( $expression ){
+			$this->getOutput()->addWikiMsgArray( 'math-test-success', $message );
+			return true;
+		} else {
+			$this->getOutput()->addWikiMsgArray( 'math-test-fail', $message );
+			return false;
+		}
+	}
+
+	private function assertContains( $expected, $real, $message = '' ) {
+		if ( ! $this->assertTrue( strpos( $real, $expected ) !== false, $message ) ) {
+			$this->printDiff( $expected, $real, 'math-test-contains-diff' );
+		}
+	}
+
+	private function assertEquals( $expected, $real, $message = '' ) {
+		if ( is_array( $expected ) ) {
+			foreach ( $expected as $alternative ){
+				if ( $alternative === $real ) {
+					$this->getOutput()->addWikiMsgArray( 'math-test-success', $message );
+					return true;
+				}
+			}
+			// non of the alternatives matched
+			$this->getOutput()->addWikiMsgArray( 'math-test-fail', $message );
+			return false;
+		}
+		if ( !$this->assertTrue( $expected === $real, $message ) ) {
+			$this->printDiff( $expected, $real, 'math-test-equals-diff' );
+			return false;
+		}
+		return true;
+	}
+
+	private function printDiff( $expected, $real, $message = '' ) {
+		if ( ExtensionRegistry::getInstance()->isLoaded( "SyntaxHighlight" ) ) {
+			$expected = "<syntaxhighlight lang=\"xml\">$expected</syntaxhighlight>";
+			$real = "<syntaxhighlight lang=\"xml\">$real</syntaxhighlight>";
+			$this->getOutput()->addWikiMsgArray( $message, [ $real, $expected ] );
+		} else {
+			LoggerFactory::getInstance( 'Math' )->warning( 'Can not display expected and real value.'.
+				'SyntaxHighlight is not installed.' );
+		}
+	}
+	protected function getGroupName() {
+		return 'other';
+	}
+}
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..42418c5
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,15 @@
+{
+	"require-dev": {
+		"jakub-onderka/php-parallel-lint": "0.9.2",
+		"mediawiki/mediawiki-codesniffer": "0.6.0"
+	},
+	"scripts": {
+		"test": [
+			"parallel-lint . --exclude vendor",
+			"phpcs -p -s"
+		],
+		"fix": [
+			"phpcbf -p"
+		]
+	}
+}
diff --git a/db/math.db2.sql b/db/math.db2.sql
deleted file mode 100644
index 0c44c30..0000000
--- a/db/math.db2.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-CREATE TABLE math (
-  math_inputhash              VARCHAR(16) FOR BIT DATA     NOT NULL  UNIQUE,
-  math_outputhash             VARCHAR(16) FOR BIT DATA     NOT NULL,
-  math_html_conservativeness  SMALLINT  NOT NULL,
-  math_html                   CLOB(64K) INLINE LENGTH 4096,
-  math_mathml                 CLOB(64K) INLINE LENGTH 4096
-);
diff --git a/db/math.sql b/db/math.mysql.sql
similarity index 77%
copy from db/math.sql
copy to db/math.mysql.sql
index e89991c..d0a3e01 100644
--- a/db/math.sql
+++ b/db/math.mysql.sql
@@ -4,7 +4,7 @@
 --
 CREATE TABLE /*_*/math (
   -- Binary MD5 hash of the latex fragment, used as an identifier key.
-  math_inputhash varbinary(16) NOT NULL,
+  math_inputhash varbinary(16) NOT NULL PRIMARY KEY,
 
   -- Not sure what this is, exactly...
   math_outputhash varbinary(16) NOT NULL,
@@ -16,8 +16,6 @@ CREATE TABLE /*_*/math (
   -- HTML output from texvc, if any
   math_html text,
 
-  -- MathML output from texvc, if any
+  -- MathML output from texvc, or from LaTeXML
   math_mathml text
 ) /*$wgDBTableOptions*/;
-
-CREATE UNIQUE INDEX /*i*/math_inputhash ON /*_*/math (math_inputhash);
diff --git a/db/math.pg.sql b/db/math.postgres.sql
similarity index 100%
rename from db/math.pg.sql
rename to db/math.postgres.sql
diff --git a/db/math.sql b/db/math.sqlite.sql
similarity index 77%
rename from db/math.sql
rename to db/math.sqlite.sql
index e89991c..d0a3e01 100644
--- a/db/math.sql
+++ b/db/math.sqlite.sql
@@ -4,7 +4,7 @@
 --
 CREATE TABLE /*_*/math (
   -- Binary MD5 hash of the latex fragment, used as an identifier key.
-  math_inputhash varbinary(16) NOT NULL,
+  math_inputhash varbinary(16) NOT NULL PRIMARY KEY,
 
   -- Not sure what this is, exactly...
   math_outputhash varbinary(16) NOT NULL,
@@ -16,8 +16,6 @@ CREATE TABLE /*_*/math (
   -- HTML output from texvc, if any
   math_html text,
 
-  -- MathML output from texvc, if any
+  -- MathML output from texvc, or from LaTeXML
   math_mathml text
 ) /*$wgDBTableOptions*/;
-
-CREATE UNIQUE INDEX /*i*/math_inputhash ON /*_*/math (math_inputhash);
diff --git a/db/mathlatexml.mysql.sql b/db/mathlatexml.mysql.sql
new file mode 100644
index 0000000..38ded24
--- /dev/null
+++ b/db/mathlatexml.mysql.sql
@@ -0,0 +1,18 @@
+--
+-- Used by the math module to keep track
+-- of previously-rendered items.
+--
+CREATE TABLE /*_*/mathlatexml (
+  -- Binary MD5 hash of math_inputtex, used as an identifier key.
+  math_inputhash varbinary(16) NOT NULL PRIMARY KEY,
+  -- the user input
+  math_inputtex text NOT NULL,
+  -- the validated tex
+  math_tex text,
+  -- MathML output LaTeXML
+  math_mathml mediumtext,
+  -- SVG output mathoid
+  math_svg text,
+  -- MW_MATHSTYLE_(INLINE_DISPLAYSTYLE|DISPLAY|INLINE)
+  math_style tinyint
+) /*$wgDBTableOptions*/;
diff --git a/db/mathlatexml.postgres.sql b/db/mathlatexml.postgres.sql
new file mode 100644
index 0000000..6d2971b
--- /dev/null
+++ b/db/mathlatexml.postgres.sql
@@ -0,0 +1,18 @@
+--
+-- Used by the math module to keep track
+-- of previously-rendered items.
+--
+CREATE TABLE /*_*/mathlatexml (
+  -- Binary MD5 hash of math_inputtex, used as an identifier key.
+  math_inputhash BYTEA PRIMARY KEY,
+  -- the user input
+  math_inputtex TEXT NOT NULL,
+  -- the validated tex
+  math_tex TEXT,
+  -- MathML output LaTeXML
+  math_mathml TEXT,
+  -- SVG output mathoid
+  math_svg TEXT,
+  -- MW_MATHSTYLE_(INLINE_DISPLAYSTYLE|DISPLAY|INLINE)
+  math_style SMALLINT
+) /*$wgDBTableOptions*/;
diff --git a/db/mathlatexml.sqlite.sql b/db/mathlatexml.sqlite.sql
new file mode 100644
index 0000000..89d8a6c
--- /dev/null
+++ b/db/mathlatexml.sqlite.sql
@@ -0,0 +1,18 @@
+--
+-- Used by the math module to keep track
+-- of previously-rendered items.
+--
+CREATE TABLE /*_*/mathlatexml (
+  -- Binary MD5 hash of math_inputtex, used as an identifier key.
+  math_inputhash varbinary(16) NOT NULL PRIMARY KEY,
+  -- the user input
+  math_inputtex text NOT NULL,
+  -- the validated tex
+  math_tex text,
+  -- MathML output LaTeXML
+  math_mathml text,
+  -- SVG output mathoid
+  math_svg text,
+  -- MW_MATHSTYLE_(INLINE_DISPLAYSTYLE|DISPLAY|INLINE)
+  math_style tinyint
+) /*$wgDBTableOptions*/;
diff --git a/db/mathoid.mysql.sql b/db/mathoid.mysql.sql
new file mode 100644
index 0000000..61abc57
--- /dev/null
+++ b/db/mathoid.mysql.sql
@@ -0,0 +1,20 @@
+--
+-- Used by the math module to keep track
+-- of previously-rendered items.
+--
+CREATE TABLE /*_*/mathoid (
+  -- Binary MD5 hash of math_inputtex, used as an identifier key.
+  math_inputhash varbinary(16) NOT NULL PRIMARY KEY,
+  -- the user input
+  math_input text NOT NULL,
+  -- the validated tex
+  math_tex text,
+  -- MathML output LaTeXML
+  math_mathml text,
+  -- SVG output mathoid
+  math_svg text,
+  -- MW_MATHSTYLE_(INLINE_DISPLAYSTYLE|DISPLAY|INLINE)
+  math_style tinyint,
+  -- type of the Math input (TeX, MathML, AsciiMath...)
+  math_input_type tinyint
+) /*$wgDBTableOptions*/;
diff --git a/db/mathoid.postgres.sql b/db/mathoid.postgres.sql
new file mode 100644
index 0000000..be705b0
--- /dev/null
+++ b/db/mathoid.postgres.sql
@@ -0,0 +1,20 @@
+--
+-- Used by the math module to keep track
+-- of previously-rendered items.
+--
+CREATE TABLE /*_*/mathoid (
+  -- Binary MD5 hash of math_inputtex, used as an identifier key.
+  math_inputhash BYTEA PRIMARY KEY,
+  -- the user input
+  math_input TEXT NOT NULL,
+  -- the validated tex
+  math_tex TEXT,
+  -- MathML output LaTeXML
+  math_mathml TEXT,
+  -- SVG output mathoid
+  math_svg TEXT,
+  -- MW_MATHSTYLE_(INLINE_DISPLAYSTYLE|DISPLAY|INLINE)
+  math_style SMALLINT,
+    -- type of the Math input (TeX, MathML, AsciiMath...)
+  math_input_type SMALLINT
+) /*$wgDBTableOptions*/;
diff --git a/db/mathoid.sqlite.sql b/db/mathoid.sqlite.sql
new file mode 100644
index 0000000..61abc57
--- /dev/null
+++ b/db/mathoid.sqlite.sql
@@ -0,0 +1,20 @@
+--
+-- Used by the math module to keep track
+-- of previously-rendered items.
+--
+CREATE TABLE /*_*/mathoid (
+  -- Binary MD5 hash of math_inputtex, used as an identifier key.
+  math_inputhash varbinary(16) NOT NULL PRIMARY KEY,
+  -- the user input
+  math_input text NOT NULL,
+  -- the validated tex
+  math_tex text,
+  -- MathML output LaTeXML
+  math_mathml text,
+  -- SVG output mathoid
+  math_svg text,
+  -- MW_MATHSTYLE_(INLINE_DISPLAYSTYLE|DISPLAY|INLINE)
+  math_style tinyint,
+  -- type of the Math input (TeX, MathML, AsciiMath...)
+  math_input_type tinyint
+) /*$wgDBTableOptions*/;
diff --git a/db/patches/mathlatexml.mathml-length-adjustment.mysql.sql b/db/patches/mathlatexml.mathml-length-adjustment.mysql.sql
new file mode 100644
index 0000000..8bbb86c
--- /dev/null
+++ b/db/patches/mathlatexml.mathml-length-adjustment.mysql.sql
@@ -0,0 +1 @@
+ALTER TABLE /*_*/mathlatexml MODIFY  math_mathml mediumtext;
\ No newline at end of file
diff --git a/extension.json b/extension.json
new file mode 100644
index 0000000..4f2a525
--- /dev/null
+++ b/extension.json
@@ -0,0 +1,238 @@
+{
+	"name": "Math",
+	"version": "3.0.0",
+	"author": [
+		"Tomasz Wegrzanowski",
+		"Brion Vibber",
+		"Moritz Schubotz",
+		"Derk-Jan Hartman"
+	],
+	"url": "https://www.mediawiki.org/wiki/Extension:Math",
+	"descriptionmsg": "math-desc",
+	"license-name": "GPL-2.0+",
+	"callback": "MathHooks::registerExtension",
+	"type": "parserhook",
+	"AutoloadClasses": {
+		"MathDataModule": "MathDataModule.php",
+		"MathHooks": "Math.hooks.php",
+		"MathRenderer": "MathRenderer.php",
+		"MathRestbaseInterface": "MathRestbaseInterface.php",
+		"MathTexvc": "MathTexvc.php",
+		"MathSource": "MathSource.php",
+		"MathMathML": "MathMathML.php",
+		"MathLaTeXML": "MathLaTeXML.php",
+		"MathInputCheck": "MathInputCheck.php",
+		"MathInputCheckTexvc": "MathInputCheckTexvc.php",
+		"MathInputCheckRestbase": "MathInputCheckRestbase.php",
+		"SpecialMathShowImage": "SpecialMathShowImage.php",
+		"SpecialMathStatus": "SpecialMathStatus.php",
+		"MathValidator": "MathValidator.php",
+		"MathFormatter": "MathFormatter.php",
+		"MathWikidataHook": "MathWikidataHook.php",
+		"MathMLRdfBuilder": "MathMLRdfBuilder.php"
+	},
+	"DefaultUserOptions": {
+		"math": "png"
+	},
+	"ExtensionFunctions": [
+		"MathHooks::setup"
+	],
+	"ExtensionMessagesFiles": {
+		"MathAlias": "Math.alias.php",
+		"MathAliasNoTranslate": "Math.alias.noTranslate.php"
+	},
+	"Hooks": {
+		"ParserFirstCallInit": [
+			"MathHooks::onParserFirstCallInit"
+		],
+		"GetPreferences": [
+			"MathHooks::onGetPreferences"
+		],
+		"LoadExtensionSchemaUpdates": [
+			"MathHooks::onLoadExtensionSchemaUpdates"
+		],
+		"ParserTestTables": [
+			"MathHooks::onParserTestTables"
+		],
+		"UnitTestsList": [
+			"MathHooks::onRegisterUnitTests"
+		],
+		"PageRenderingHash": [
+			"MathHooks::onPageRenderingHash"
+		],
+		"EditPageBeforeEditToolbar": [
+			"MathHooks::onEditPageBeforeEditToolbar"
+		],
+		"WikibaseClientDataTypes": [
+			"MathWikidataHook::onWikibaseClientDataTypes"
+		],
+		"WikibaseRepoDataTypes": [
+			"MathWikidataHook::onWikibaseRepoDataTypes"
+		],
+		"ParserAfterTidy":[
+			"MathHooks::onParserAfterTidy"
+		]
+	},
+	"config": {
+		"MathCheckFiles": true,
+		"MathDefaultLaTeXMLSetting": {
+			"format": "xhtml",
+			"whatsin": "math",
+			"whatsout": "math",
+			"0": "pmml",
+			"1": "cmml",
+			"2": "mathtex",
+			"3": "nodefaultresources",
+			"preload": [
+				"LaTeX.pool",
+				"article.cls",
+				"amsmath.sty",
+				"amsthm.sty",
+				"amstext.sty",
+				"amssymb.sty",
+				"eucal.sty",
+				"[dvipsnames]xcolor.sty",
+				"url.sty",
+				"hyperref.sty",
+				"[ids]latexml.sty",
+				"texvc"
+			],
+			"linelength": 90
+		},
+		"MathDirectory": false,
+		"MathDisableTexFilter": "new",
+		"MathEnableExperimentalInputFormats": false,
+		"MathFileBackend": false,
+		"MathLaTeXMLTimeout": 240,
+		"MathLaTeXMLUrl": "http://gw125.iu.xsede.org:8888",
+		"MathMathMLTimeout": 20,
+		"MathMathMLUrl": "http://mathoid.testme.wmflabs.org",
+		"MathFullRestbaseURL": false,
+		"MathConcurrentReqs": 50,
+		"MathPath": false,
+		"MathTexvcCheckExecutable": false,
+		"MathValidModes": [
+			"png",
+			"source",
+			"mathml"
+		],
+		"MathEnableWikibaseDataType": true,
+		"Texvc": false,
+		"TexvcBackgroundColor": "transparent"
+	},
+	"VisualEditorPluginModules": [
+		"ext.math.visualEditor"
+	],
+	"MessagesDirs": {
+		"Math": [
+			"i18n"
+		]
+	},
+	"ParserTestFiles": [
+		"mathParserTests.txt"
+	],
+	"ResourceModules": {
+		"ext.math.styles": {
+			"position": "top",
+			"styles": "ext.math.css",
+			"targets": [
+				"desktop",
+				"mobile"
+			]
+		},
+		"ext.math.desktop.styles": {
+			"position": "top",
+			"styles": "ext.math.desktop.css"
+		},
+		"ext.math.scripts": {
+			"scripts": "ext.math.js"
+		},
+		"ext.math.editbutton.enabler": {
+			"scripts": "ext.math.editbutton.js",
+			"messages": [
+				"math_tip",
+				"math_sample"
+			]
+		},
+		"ext.math.visualEditor": {
+			"scripts": [
+				"ve-math/ve.dm.MWMathNode.js",
+				"ve-math/ve.ce.MWMathNode.js",
+				"ve-math/ve.ui.MWMathInspector.js",
+				"ve-math/ve.ui.MWMathContextItem.js",
+				"ve-math/ve.ui.MWMathDialog.js",
+				"ve-math/ve.ui.MWMathPage.js",
+				"ve-math/ve.ui.MWMathDialogTool.js"
+			],
+			"styles": [
+				"ve-math/ve.ce.MWMathNode.css",
+				"ve-math/ve.ui.MWMathIcons.css",
+				"ve-math/ve.ui.MWMathInspector.css",
+				"ve-math/ve.ui.MWMathDialog.css"
+			],
+			"dependencies": [
+				"ext.visualEditor.mwcore"
+			],
+			"messages": [
+				"math-visualeditor-mwmathcontextitem-quickedit",
+				"math-visualeditor-mwmathdialog-title",
+				"math-visualeditor-mwmathdialog-card-formula",
+				"math-visualeditor-mwmathdialog-card-options",
+				"math-visualeditor-mwmathinspector-display",
+				"math-visualeditor-mwmathinspector-display-block",
+				"math-visualeditor-mwmathinspector-display-default",
+				"math-visualeditor-mwmathinspector-display-inline",
+				"math-visualeditor-mwmathinspector-id",
+				"math-visualeditor-mwmathinspector-title",
+				"math-visualeditor-symbol-group-accents",
+				"math-visualeditor-symbol-group-arrows",
+				"math-visualeditor-symbol-group-bounds",
+				"math-visualeditor-symbol-group-derivatives",
+				"math-visualeditor-symbol-group-functions",
+				"math-visualeditor-symbol-group-geometry",
+				"math-visualeditor-symbol-group-greek",
+				"math-visualeditor-symbol-group-hebrew",
+				"math-visualeditor-symbol-group-large",
+				"math-visualeditor-symbol-group-logic",
+				"math-visualeditor-symbol-group-matrices",
+				"math-visualeditor-symbol-group-modular",
+				"math-visualeditor-symbol-group-operators",
+				"math-visualeditor-symbol-group-parentheses",
+				"math-visualeditor-symbol-group-projections",
+				"math-visualeditor-symbol-group-relations",
+				"math-visualeditor-symbol-group-root",
+				"math-visualeditor-symbol-group-sets",
+				"math-visualeditor-symbol-group-spacing",
+				"math-visualeditor-symbol-group-special",
+				"math-visualeditor-symbol-group-subscripts",
+				"math-visualeditor-symbol-group-symbols",
+				"math-visualeditor-symbol-group-typefaces",
+				"math-visualeditor-symbol-group-unsorted"
+			],
+			"targets": [
+				"desktop",
+				"mobile"
+			]
+		},
+		"ext.math.visualEditor.data": {
+			"class": "MathDataModule"
+		},
+		"ext.math.visualEditor.symbols": {
+			"styles": [
+				"ve-math/ve.ui.MWMathSymbols.css"
+			],
+			"dependencies": [
+				"ext.math.visualEditor.data"
+			]
+		}
+	},
+	"ResourceFileModulePaths": {
+		"localBasePath": "modules",
+		"remoteExtPath": "Math/modules"
+	},
+	"SpecialPages": {
+		"MathShowImage": "SpecialMathShowImage",
+		"MathStatus": "SpecialMathStatus"
+	},
+	"manifest_version": 1
+}
diff --git a/gitinfo.json b/gitinfo.json
new file mode 100644
index 0000000..da45184
--- /dev/null
+++ b/gitinfo.json
@@ -0,0 +1 @@
+{"headSHA1": "efdd7c29671e014ce5559ba8bf1b94aebb044d67\n", "head": "efdd7c29671e014ce5559ba8bf1b94aebb044d67\n", "remoteURL": "https://gerrit.wikimedia.org/r/mediawiki/extensions/Math", "branch": "efdd7c29671e014ce5559ba8bf1b94aebb044d67\n", "headCommitDate": "1464280314"}
\ No newline at end of file
diff --git a/i18n/ace.json b/i18n/ace.json
new file mode 100644
index 0000000..343452c
--- /dev/null
+++ b/i18n/ace.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Si Gam Acèh"
+		]
+	},
+	"math_sample": "Pasoë rumuh nyoë pat",
+	"math_tip": "Rumuh matematik (LaTeX)"
+}
diff --git a/i18n/af.json b/i18n/af.json
new file mode 100644
index 0000000..48b400a
--- /dev/null
+++ b/i18n/af.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Naudefj",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Die gids vir lêers met wiskundige formules bestaan nie of kan nie geskep word nie",
+	"math_bad_tmpdir": "Die gids vir tydelike lêers vir wiskundige formules bestaan nie of kan nie geskep word nie",
+	"math_failure": "Kon nie verbeeld nie",
+	"math_image_error": "PNG-omskakeling het gefaal.\nKontroleer of LaTeX en dvipng (of dvips + gs + convert) korrek geïnstalleer is.",
+	"math_lexing_error": "leksikale fout",
+	"math_notexvc": "Kan nie die <code>texvc</code> program vind nie;\nstel asseblief op volgens die beskrywing in math/README.",
+	"math_sample": "Plaas formule hier",
+	"math_syntax_error": "sintaksfout",
+	"math_tip": "Wiskundige formule (LaTeX)",
+	"math_unknown_error": "onbekende fout",
+	"math_unknown_function": "onbekende funksie",
+	"mw_math_mathml": "MathML",
+	"mw_math_png": "Gebruik altyd PNG.",
+	"mw_math_source": "Los as LaTeX (vir teksblaaiers).",
+	"prefs-math": "Wiskunde"
+}
diff --git a/i18n/aln.json b/i18n/aln.json
new file mode 100644
index 0000000..f1faa0b
--- /dev/null
+++ b/i18n/aln.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Bresta",
+			"Cradel"
+		]
+	},
+	"math_sample": "Vendos formulën këtu",
+	"math_tip": "Formulë matematikore (LaTeX)",
+	"prefs-math": "Formulë"
+}
diff --git a/i18n/am.json b/i18n/am.json
new file mode 100644
index 0000000..22c32d9
--- /dev/null
+++ b/i18n/am.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": {
+		"authors": [
+			"Codex Sinaiticus"
+		]
+	},
+	"math_bad_output": "ወደ math ውጤት ዶሴ መጻፍ ወይም መፍጠር አይቻልም",
+	"math_failure": "ዘርዛሪው ተሳነው",
+	"math_lexing_error": "የlexing ስህተት",
+	"math_sample": "የሒሳብ ቀመር በዚህ ይግባ",
+	"math_syntax_error": "የሰዋሰው ስህተት",
+	"math_tip": "የሒሳብ ቀመር (LaTeX) ለመጨመር",
+	"math_unknown_error": "የማይታወቅ ስኅተት",
+	"math_unknown_function": "የማይታወቅ ተግባር",
+	"mw_math_mathml": "MathML ከተቻለ (የሙከራ)",
+	"mw_math_png": "ሁልጊዜ እንደ PNG",
+	"prefs-math": "የሂሳብ መልክ"
+}
diff --git a/i18n/an.json b/i18n/an.json
new file mode 100644
index 0000000..d2289c8
--- /dev/null
+++ b/i18n/an.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Juanpabl",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "No s'ha puesto escribir u creyar o directorio de salida d'esprisions matematicas",
+	"math_bad_tmpdir": "No s'ha puesto escribir u creyar o directorio temporal d'esprisions matematicas",
+	"math_failure": "Error en o codigo",
+	"math_image_error": "A conversión enta PNG ha tenito errors;\ncomprebe si latex, dvips, gs y convert son bien instalatos.",
+	"math_lexing_error": "error de lexico",
+	"math_notexvc": "No s'ha trobato o fichero executable ''<code>texvc</code>''. Por favor, leiga <em>math/README</em> ta confegurar-lo correctament.",
+	"math_sample": "Escriba aquí a formula",
+	"math_syntax_error": "error de sintaxi",
+	"math_tip": "Formula matematica (LaTeX)",
+	"math_unknown_error": "error esconoxita",
+	"math_unknown_function": "función esconoxita",
+	"mw_math_mathml": "MathML si ye posible (esperimental)",
+	"mw_math_png": "Producir siempre PNG",
+	"mw_math_source": "Deixar como LaTeX (ta navegadores en formato texto)",
+	"prefs-math": "Esprisions matematicas"
+}
diff --git a/i18n/ang.json b/i18n/ang.json
new file mode 100644
index 0000000..70b1cec
--- /dev/null
+++ b/i18n/ang.json
@@ -0,0 +1,12 @@
+{
+	"@metadata": {
+		"authors": [
+			"Gott wisst",
+			"Wōdenhelm"
+		]
+	},
+	"math_sample": "Settan endebyrdunge hēr",
+	"math_tip": "Rīmcræftlīc endebyrdung (LaTeX)",
+	"math_unknown_error": "uncūþ wōh",
+	"prefs-math": "Rīmcræft"
+}
diff --git a/i18n/anp.json b/i18n/anp.json
new file mode 100644
index 0000000..62a1a88
--- /dev/null
+++ b/i18n/anp.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Angpradesh"
+		]
+	},
+	"math_sample": "गणितीय सूत्र यहाँ डालॊ",
+	"math_tip": "गणितीय सूत्र (LaTeX)"
+}
diff --git a/i18n/ar.json b/i18n/ar.json
new file mode 100644
index 0000000..a91214e
--- /dev/null
+++ b/i18n/ar.json
@@ -0,0 +1,58 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ciphers",
+			"Meno25",
+			"زكريا",
+			"Omda4wady",
+			"Abanima",
+			"Macofe",
+			"محمد أحمد عبد الفتاح",
+			"Maroen1990"
+		]
+	},
+	"math-desc": "حوِّل الصيغ الرياضية بين وسمي <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "تعديل سريع",
+	"math-visualeditor-mwmathdialog-title": " صيغة",
+	"math-visualeditor-mwmathdialog-card-formula": "صيغة",
+	"math-visualeditor-mwmathdialog-card-options": "خيارات",
+	"math-visualeditor-mwmathinspector-display": "اعرض",
+	"math-visualeditor-mwmathinspector-display-block": "منع",
+	"math-visualeditor-mwmathinspector-display-default": "افتراضي",
+	"math-visualeditor-mwmathinspector-display-inline": "على نفس السطر",
+	"math-visualeditor-mwmathinspector-id": "معرِّف الوصلة (اختياري)",
+	"math-visualeditor-mwmathinspector-title": "صيغة",
+	"math-visualeditor-symbol-group-accents": "لهجات والتشكيل",
+	"math-visualeditor-symbol-group-arrows": "السهام",
+	"math-visualeditor-symbol-group-bounds": "حدود",
+	"math-visualeditor-symbol-group-geometry": "هندسي",
+	"math-visualeditor-symbol-group-greek": "الأبجدية اليونانية",
+	"math-visualeditor-symbol-group-hebrew": "الابجدية العبرية",
+	"math-visualeditor-symbol-group-logic": "منطق",
+	"math-visualeditor-symbol-group-matrices": "المصفوفات",
+	"math-visualeditor-symbol-group-operators": "المشغل",
+	"math-visualeditor-symbol-group-projections": "إسقاط",
+	"math-visualeditor-symbol-group-parentheses": "بين قوسين",
+	"math-visualeditor-symbol-group-relations": "علاقات",
+	"math-visualeditor-symbol-group-sets": "مجموعات",
+	"math-visualeditor-symbol-group-spacing": "فراغ",
+	"math-visualeditor-symbol-group-special": "الخاصة",
+	"math_bad_output": "لا يمكن الكتابة إلى أو إنشاء مجلد الخرج للرياضيات",
+	"math_bad_tmpdir": "لا يمكن الكتابة إلى أو إنشاء مجلد الرياضيات المؤقت",
+	"math_failure": "خطأ رياضيات",
+	"math_image_error": "فشل التحويل إلى صيغة PNG؛ تحقق من تثبيت كل من Latex و dvipng (أو dvips + gs + محول)",
+	"math_lexing_error": "خطأ في الصيغة",
+	"math_mathoid_error": "خطأ في التحويل. أبلغ الخادوم («$1») عن: «$2»",
+	"math_notexvc": "مفقود <code>texvc</code> executable؛\nمن فضلك انظر math/README للضبط.",
+	"math_output_error": "لا يمكن تخزين صورة مطابقة على نظام الملفات.",
+	"math_sample": "أدخل الصيغة هنا",
+	"math_syntax_error": "خطأ في الصياغة",
+	"math_tip": "صيغة رياضية (لا تك)",
+	"math_unknown_error": "خطأ غير معروف",
+	"math_unknown_function": "وظيفة غير معروفة «$1»",
+	"mw_math_mathml": "اعرض بصيغة MathML إن أمكن (تجريبي)",
+	"mw_math_png": "دائما اعرض على هيئة PNG",
+	"mw_math_source": "اعرض على هيئة LaTeX (للمتصفحات النصية)",
+	"prefs-math": "رياضيات",
+	"mathstatus": "حالة الرياضيات"
+}
diff --git a/i18n/arc.json b/i18n/arc.json
new file mode 100644
index 0000000..63ca73f
--- /dev/null
+++ b/i18n/arc.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Basharh"
+		]
+	},
+	"math_unknown_error": "ܦܘܕܐ ܠܐ ܝܕܝܥܐ",
+	"prefs-math": "ܡܬܡܐܛܝܩܘܬܐ"
+}
diff --git a/i18n/ary.json b/i18n/ary.json
new file mode 100644
index 0000000..f117e43
--- /dev/null
+++ b/i18n/ary.json
@@ -0,0 +1,17 @@
+{
+	"@metadata": {
+		"authors": [
+			"Enzoreg",
+			"Zanatos"
+		]
+	},
+	"math_failure": "khata flmat",
+	"math_lexing_error": "khata fsigha",
+	"math_sample": "Kṫeb ĝalaqa de l-mat hnaya",
+	"math_syntax_error": "khata fsiyagha",
+	"math_tip": "Ĝalaqa de l-mat (LaTeX)",
+	"math_unknown_error": "khat mjhol",
+	"math_unknown_function": "wadifa mjhola",
+	"mw_math_png": "dima biyn bhal  PNG",
+	"prefs-math": "mat"
+}
diff --git a/i18n/arz.json b/i18n/arz.json
new file mode 100644
index 0000000..7365edb
--- /dev/null
+++ b/i18n/arz.json
@@ -0,0 +1,25 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ghaly",
+			"Meno25",
+			"Ramsis II",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "مش ممكن الكتابة لـ أو إنشاء مجلد الخرج للرياضيات",
+	"math_bad_tmpdir": "مش ممكن الكتابة أو انشاء مجلد الرياضة الموؤقت",
+	"math_failure": "الاعراب فشل",
+	"math_image_error": "فشل التحويل لـ PNG ؛\nاتاكد من التثبيت المضبوط لـ :Latex و dvips و gs و convert.",
+	"math_lexing_error": "غلط فى الكلمة",
+	"math_notexvc": "ضايع<code>texvc</code> executable ؛ لو سمحت شوفmath/README للضبط.",
+	"math_sample": "اكتب المعادله هنا",
+	"math_syntax_error": "غلط فى تركيب الجملة",
+	"math_tip": "معادله رياضيه (لا تكس )",
+	"math_unknown_error": "غلط مش معروف",
+	"math_unknown_function": "وظيفة مش معروفة",
+	"mw_math_mathml": "اعرض بصيغة MathML لو ممكن (تحت التجريب)",
+	"mw_math_png": "دايما اعرض PNG",
+	"mw_math_source": "اعرض على هيئة LaTeX (للبراوزرات النصية)",
+	"prefs-math": "رياضة"
+}
diff --git a/i18n/as.json b/i18n/as.json
new file mode 100644
index 0000000..6518daf
--- /dev/null
+++ b/i18n/as.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": {
+		"authors": [
+			"Bishnu Saikia",
+			"Chaipau",
+			"Gitartha.bordoloi",
+			"Rajuonline"
+		]
+	},
+	"math-visualeditor-mwmathinspector-title": "সূত্ৰ",
+	"math_failure": "পাৰ্চ কৰিব অসমৰ্থ",
+	"math_sample": "ইয়াত গণিতীয় সুত্ৰ সুমুৱাওক",
+	"math_syntax_error": "চীন্‌টেক্স ত্ৰুটি",
+	"math_tip": "গণিতীয় সুত্ৰ (LaTeX)",
+	"math_unknown_error": "অজ্ঞাত ত্ৰুটি",
+	"math_unknown_function": "অজ্ঞাত কাৰ্য্য",
+	"prefs-math": "গণিত"
+}
diff --git a/i18n/ast.json b/i18n/ast.json
new file mode 100644
index 0000000..890827b
--- /dev/null
+++ b/i18n/ast.json
@@ -0,0 +1,79 @@
+{
+	"@metadata": {
+		"authors": [
+			"Esbardu",
+			"Xuacu",
+			"Macofe"
+		]
+	},
+	"math-desc": "Dibuxa les fórmules matemátiques ente les etiquetes <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Edición rápida",
+	"math-visualeditor-mwmathdialog-title": "Fórmula",
+	"math-visualeditor-mwmathdialog-card-formula": "Fórmula",
+	"math-visualeditor-mwmathdialog-card-options": "Opciones",
+	"math-visualeditor-mwmathinspector-display": "Amosar",
+	"math-visualeditor-mwmathinspector-display-block": "Bloquiar",
+	"math-visualeditor-mwmathinspector-display-default": "Predetermináu",
+	"math-visualeditor-mwmathinspector-display-inline": "En llinia",
+	"math-visualeditor-mwmathinspector-id": "ID del enllaz (opcional)",
+	"math-visualeditor-mwmathinspector-title": "Fórmula",
+	"math-visualeditor-symbol-group-accents": "Acentos y diacríticos",
+	"math-visualeditor-symbol-group-arrows": "Fleches",
+	"math-visualeditor-symbol-group-bounds": "Llendes",
+	"math-visualeditor-symbol-group-derivatives": "Diferenciales y derivaes",
+	"math-visualeditor-symbol-group-functions": "Funciones numbériques estándar",
+	"math-visualeditor-symbol-group-geometry": "Xeometría",
+	"math-visualeditor-symbol-group-greek": "Alfabetu griegu",
+	"math-visualeditor-symbol-group-hebrew": "Alfabetu hebréu",
+	"math-visualeditor-symbol-group-large": "Diseños grandes",
+	"math-visualeditor-symbol-group-logic": "Lóxicos",
+	"math-visualeditor-symbol-group-matrices": "Matrices",
+	"math-visualeditor-symbol-group-modular": "Aritmética modular",
+	"math-visualeditor-symbol-group-operators": "Operadores",
+	"math-visualeditor-symbol-group-projections": "Proyecciones",
+	"math-visualeditor-symbol-group-parentheses": "Paréntesis",
+	"math-visualeditor-symbol-group-relations": "Rellaciones",
+	"math-visualeditor-symbol-group-root": "Radicales",
+	"math-visualeditor-symbol-group-sets": "Conxuntos",
+	"math-visualeditor-symbol-group-spacing": "Espaciáu",
+	"math-visualeditor-symbol-group-special": "Especiales",
+	"math-visualeditor-symbol-group-subscripts": "Subíndices, superíndices ya integrales",
+	"math-visualeditor-symbol-group-symbols": "Símbolos y constantes",
+	"math-visualeditor-symbol-group-typefaces": "Fontes de lletra",
+	"math-visualeditor-symbol-group-unsorted": "Sin clasificar",
+	"math_bad_output": "Nun se pue escribir o crear el direutoriu de salida 'math'",
+	"math_bad_tmpdir": "Nun se pue escribir o crear el direutoriu temporal 'math'",
+	"math_failure": "Fallu al revisar la fórmula",
+	"math_image_error": "Falló la conversión PNG; comprueba que tea bien la instalación de latex y dvipng (o dvips + gs + convert)",
+	"math_invalidjson": "La rempuesta $1 del sirvidor ye JSON inválidu.",
+	"math_invalidresponse": "$1: Respuesta inválida (\"$3\") dende'l sirvidor \"$2\":",
+	"math_invalidxml": "El MathML o'l SVG ye XML inválidu.",
+	"math_lexing_error": "Error lléxicu",
+	"math_mathoid_error": "Error de conversion. El sirvidor (\"$1\") informó: «$2»",
+	"math_notexvc": "Falta l'executable <code>texvc</code>; por favor vea math/README pa configuralu.",
+	"math_output_error": "Nun pue guardase la imaxe matemática nel sistema de ficheros.",
+	"math_sample": "Inxertar fórmula equí",
+	"math-status-introduction": "Esta páxina amuesa información tocante {{PLURAL:$1|al mou|a los moos}} de representar les matemátiques activaos.\n\n{{PLURAL:$1|El siguiente mou de representación ta activáu|Los siguientes moos de representación tan activaos}}:",
+	"math_syntax_error": "error de sintaxis",
+	"math_timeout": "Tiempu d'espera $1 escosáu dende \"$2\"",
+	"math-test-end": "Pruebes del backend pal mou de representación «$1» completaes.",
+	"math-test-fail": "<span style=\"color:red\">Falló</span> la prueba ''$1''.",
+	"math-test-start": "Executando les pruebes del backend pal mou de representación «$1».",
+	"math-test-success": "<span style=\"color:green\">Pasada</span> la prueba ''$1''.",
+	"math-test-contains-diff": "La cadena «$1» devuelta nun contien la cadena esperada «$2».",
+	"math-test-equals-diff": "La cadena «$1» devuelta ye distinta de la cadena esperada «$2»",
+	"math_tip": "Fórmula matemática",
+	"math_unknown_error": "error desconocíu",
+	"math_unknown_function": "función '$1' desconocida",
+	"mw_math_latexml": "LaTeXML (esperimental; usa MathML)",
+	"mw_math_latexml_jax": "LaTeXML con MathJax nel llau del veceru (esperimental; usa MathML)",
+	"mw_math_mathjax": "MathJax nel llau del veceru (lentu; ameyora la representación en dellos restoladores y ferramientes d'accesibilidá)",
+	"mw_math_mathml": "MathML con alternativa SVG o PNG (recomendau en restoladores y ferramientes d'accesibilidá modernos)",
+	"mw_math_png": "Imaxes PNG",
+	"mw_math_source": "Fonte LaTeX (pa restoladores de testu)",
+	"prefs-math": "Fórmules matemátiques",
+	"mathstatus": "Estau de Math",
+	"datatypes-type-math": "Espresión matemática",
+	"wikibase-listdatatypes-math-head": "Espresión matemática",
+	"wikibase-listdatatypes-math-body": "Campu lliteral de datos pa espresiones matemátiques, formules, ecuaciones y coses asemeyaes, espresaes nuna variante de LaTeX."
+}
diff --git a/i18n/av.json b/i18n/av.json
new file mode 100644
index 0000000..9b59fc0
--- /dev/null
+++ b/i18n/av.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Amire80",
+			"Gazimagomedov"
+		]
+	},
+	"math_unknown_error": "лъалареб гъалатӀ"
+}
diff --git a/i18n/avk.json b/i18n/avk.json
new file mode 100644
index 0000000..9d67231
--- /dev/null
+++ b/i18n/avk.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Zetud",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Redura ik sutera ko divaxo tid merotisa",
+	"math_bad_tmpdir": "Redura ik sutera ko ugaloraxo tid merotisa",
+	"math_failure": "Erreur math",
+	"math_image_error": "La conversion en PNG a échoué, vérifiez l'installation de Latex, dvips, gs et convert",
+	"math_lexing_error": "ravlemafa rokla",
+	"math_notexvc": "L'éxécutable « <code>texvc</code> » est introuvable. Lisez math/README pour le configurer.",
+	"math_sample": "Va rinaf tazukoy batliz cenkal",
+	"math_syntax_error": "erurafa rokla",
+	"math_tip": "Solokseropaf tazukoy (LaTeX)",
+	"math_unknown_error": "erreur indéterminée",
+	"math_unknown_function": "megrupen fliok",
+	"mw_math_mathml": "MathML",
+	"mw_math_png": "Toujours produire une image PNG",
+	"mw_math_source": "Laisser le code LaTeX original",
+	"prefs-math": "Rendu des maths"
+}
diff --git a/i18n/awa.json b/i18n/awa.json
new file mode 100644
index 0000000..62086e1
--- /dev/null
+++ b/i18n/awa.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"1AnuraagPandey"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display": "डिस्प्ले",
+	"math-visualeditor-mwmathinspector-display-block": "अवरोधित करा जाय",
+	"math-visualeditor-mwmathinspector-display-default": "डिफ़ॉल्ट"
+}
diff --git a/i18n/az.json b/i18n/az.json
new file mode 100644
index 0000000..9cfe946
--- /dev/null
+++ b/i18n/az.json
@@ -0,0 +1,17 @@
+{
+	"@metadata": {
+		"authors": [
+			"PrinceValiant",
+			"Macofe"
+		]
+	},
+	"math_sample": "Riyazi formulu bura yazın",
+	"math_syntax_error": "sintaksis xətası",
+	"math_tip": "Riyazi formul (LaTeX formatı)",
+	"math_unknown_error": "bilinməyən xəta",
+	"math_unknown_function": "bilinməyən funksiya",
+	"mw_math_mathml": "Mümkünsə MathML (sınaq)",
+	"mw_math_png": "Həmişə PNG formatında göstər",
+	"mw_math_source": "LaTeX kimi saxla (mətn brouzerləri üçün)",
+	"prefs-math": "Riyaziyyat"
+}
diff --git a/i18n/azb.json b/i18n/azb.json
new file mode 100644
index 0000000..244bc8d
--- /dev/null
+++ b/i18n/azb.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ebrahimi-amir",
+			"Koroğlu",
+			"Alp Er Tunqa",
+			"Macofe"
+		]
+	},
+	"mw_math_mathjax": "MathJax (آزمایشی)",
+	"mw_math_png": "بوتونلوکله PNG چکیلسین",
+	"mw_math_source": "LaTeX قالیبینده قالسین (یازی بروزرلر اوچون)",
+	"prefs-math": "ریاضیات علامت‌لری",
+	"mathstatus": "ریاضی وضعیت"
+}
diff --git a/i18n/ba.json b/i18n/ba.json
new file mode 100644
index 0000000..2777339
--- /dev/null
+++ b/i18n/ba.json
@@ -0,0 +1,79 @@
+{
+	"@metadata": {
+		"authors": [
+			"Assele",
+			"Haqmar",
+			"Рустам Нурыев",
+			"Macofe",
+			"Sagan",
+			"Янмурза Баки",
+			"Азат Хәлилов",
+			"Лилиә"
+		]
+	},
+	"math-desc": "<code><math></code> ... <code></math></code> тегтарында математик формулаларҙы күрһәтә",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Тиҙ мөхәррирләү",
+	"math-visualeditor-mwmathdialog-title": "Формула",
+	"math-visualeditor-mwmathdialog-card-formula": "Формула",
+	"math-visualeditor-mwmathdialog-card-options": "Көйләүҙәр",
+	"math-visualeditor-mwmathinspector-display": "Күрһәтергә",
+	"math-visualeditor-mwmathinspector-display-block": "Блок",
+	"math-visualeditor-mwmathinspector-display-default": "Һайланмаған",
+	"math-visualeditor-mwmathinspector-display-inline": "Һыҙылған",
+	"math-visualeditor-mwmathinspector-id": "ID һылтанмалар (мәжбүри түгел)",
+	"math-visualeditor-mwmathinspector-title": "Формула",
+	"math-visualeditor-symbol-group-accents": "Баҫымдар һәм диакритик тамғалар",
+	"math-visualeditor-symbol-group-arrows": "Уҡтар",
+	"math-visualeditor-symbol-group-bounds": "Сиктәр",
+	"math-visualeditor-symbol-group-derivatives": "Дифференциалдар",
+	"math-visualeditor-symbol-group-functions": "Стандарт һан функциялары",
+	"math-visualeditor-symbol-group-geometry": "Геометрик",
+	"math-visualeditor-symbol-group-greek": "Греция алфавиты",
+	"math-visualeditor-symbol-group-hebrew": "Йәһүд алфавиты",
+	"math-visualeditor-symbol-group-large": "Ҙур макеттар",
+	"math-visualeditor-symbol-group-logic": "Логика",
+	"math-visualeditor-symbol-group-matrices": "Матрицалар",
+	"math-visualeditor-symbol-group-modular": "Модуль буйынса сағыштырыу",
+	"math-visualeditor-symbol-group-operators": "Оператор",
+	"math-visualeditor-symbol-group-projections": "Проекциялар",
+	"math-visualeditor-symbol-group-parentheses": "Йәйәләр",
+	"math-visualeditor-symbol-group-relations": "Мөнәсәбәт",
+	"math-visualeditor-symbol-group-root": "Тамырҙары",
+	"math-visualeditor-symbol-group-sets": "Йыйылма",
+	"math-visualeditor-symbol-group-spacing": "Ара",
+	"math-visualeditor-symbol-group-special": "Махсус",
+	"math-visualeditor-symbol-group-subscripts": "Юл өҫтөндәгеләр, юл аҫтындағылар һәм интегралдар",
+	"math-visualeditor-symbol-group-symbols": "Символдар һәм константалар",
+	"math-visualeditor-symbol-group-typefaces": "Шрифт төрҙәре",
+	"math-visualeditor-symbol-group-unsorted": "Айырылмаған",
+	"math_bad_output": "Математика директорияһы булдырып йәки директорияға яҙҙырып булмай",
+	"math_bad_tmpdir": "Ваҡытлы математика директорияһы булдырып йәки директорияға яҙҙырып булмай",
+	"math_failure": "Уҡып булмай",
+	"math_image_error": "PNG яһау хатаһы.\nlatex һәм dvipng (йәки dvips + gs + convert) дөрөҫ ҡуйылыуын тикшерегеҙ.",
+	"math_invalidjson": "Дөрөҫ булмаған JSON-форматында серверҙың яуабы — $1.",
+	"math_invalidresponse": "$1: «$2»серверенан (\"$3\") ярамаған яуап:",
+	"math_invalidxml": "MathML йәки SVG -ҙа ярамаған XML-код бар.",
+	"math_lexing_error": "лексик хата",
+	"math_mathoid_error": "Үҙгәртеүҙең хатаһы. Сервер («$1») хәбәр итте: «$2»",
+	"math_notexvc": "Башҡарыла торған <code>texvc</code> файлы юҡ. Көйләүҙәр буйынса белешмәне — math/README уҡығыҙ.",
+	"math_output_error": "Файс системаһында матаматик һүрәт һаҡланмай",
+	"math_sample": "Формуланы бында керетегеҙ",
+	"math-status-introduction": "Был бит математиканы күрһәтеү буйынса, {{PLURAL:$1|тоҡанған режим}} тураһында мәғлүмәт бирә.\n\n{{PLURAL:$1|Математиканы күрһәтеүҙең киләһе режимы тоҡанған}}:",
+	"math_syntax_error": "синтаксик хата",
+	"math_timeout": "«$2»-нән көтөү ваҡыты $1 үтте",
+	"math-test-fail": "Тест буйынса һынау ''$1'' <span style=\"color:red\">үтмәне</span>.",
+	"math-test-success": "Тест буйынса һынау «$1» <span style=\"color:green\">уңышлы үтте</span>.",
+	"math_tip": "Математик формула (LaTeX форматы)",
+	"math_unknown_error": "билдәһеҙ хата",
+	"math_unknown_function": "билдәһеҙ функция «$1»",
+	"mw_math_latexml": "LaTeXML (эксперименталь; MathML ҡуллана)",
+	"mw_math_latexml_jax": "MathJax-ге LaTeXML клиент яғында (MathML эксперименталь опция ҡулланыусы)",
+	"mw_math_mathjax": "MathJax клиентты яҡлай (әкрен; ҡайһы бер браузерҙарҙағы эшкәртеүҙе төҙәтә һәм инеүҙе еңеләйтә)",
+	"mw_math_mathml": "SVG йәки PNG форматтарына күсеү өсөн MathML ҡулланыу (яңы төр заманса браузерҙар һәм ҡорал мөмкинселектәрен күтәререгә тәҡъдим итә)",
+	"mw_math_png": "PNG рәсемдәр",
+	"mw_math_source": "LaTeX форматында ҡалдырырға (текст браузерҙары өсөн)",
+	"prefs-math": "Формулалар",
+	"mathstatus": "Математика статусы",
+	"datatypes-type-math": "Математик аңлатма",
+	"wikibase-listdatatypes-math-head": "Математик әйтем"
+}
diff --git a/i18n/bar.json b/i18n/bar.json
new file mode 100644
index 0000000..28e4563
--- /dev/null
+++ b/i18n/bar.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mucalexx"
+		]
+	},
+	"math_sample": "Formel dodan aifyng",
+	"math_tip": "Mathematische Formel (LaTeX)",
+	"math_unknown_function": "Unbekannte Funktion"
+}
diff --git a/i18n/bcc.json b/i18n/bcc.json
new file mode 100644
index 0000000..5080c58
--- /dev/null
+++ b/i18n/bcc.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mostafadaneshvar",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "نه تونیت بنویسیت یا مشیر خروجی ریاضی شرکنت.",
+	"math_bad_tmpdir": "نه نونیت بنویسیت یا مسیر غیر دایمی ریاضی شرکنت",
+	"math_failure": "تجزیه پروش وارت",
+	"math_image_error": "بدل کتن PNGپروش وارت;\nکنترل کنیت په نصب latex, dvips, gs, و convert",
+	"math_lexing_error": "حطا نوشتاری",
+	"math_notexvc": "ترکیب کتن <code>texvc</code>  قابل اجرا;\nلطفا بچار math/README په تنظیم کتن.",
+	"math_sample": "فرمول اداں وارد کن",
+	"math_syntax_error": "حطا ساختار",
+	"math_tip": "فرمول ریاضی  (LaTeX)",
+	"math_unknown_error": "ناشناسین حطا",
+	"math_unknown_function": "ناشناس عملگر",
+	"mw_math_mathml": "MathML اگر ممکن انت (آزمایشی)",
+	"mw_math_png": "یکسره PNG تحویل دی",
+	"mw_math_source": "آیء په داب LaTeX بل (په بروززان متنی)",
+	"prefs-math": "ریاضی"
+}
diff --git a/i18n/bcl.json b/i18n/bcl.json
new file mode 100644
index 0000000..ef7bf09
--- /dev/null
+++ b/i18n/bcl.json
@@ -0,0 +1,25 @@
+{
+	"@metadata": {
+		"authors": [
+			"Filipinayzd",
+			"Steven*fung",
+			"Geopoet",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Dai masuratan o magibo an direktoryo kan salida nin math",
+	"math_bad_tmpdir": "Dai masuratan o magibo an direktoryo nin mat temp",
+	"math_failure": "Nagprakaso an pagatíd-atíd",
+	"math_image_error": "Nagprakaso an konbersyon kan PNG; sosogon tabî an pagkaag nin latex, dvips, gs, asin ikonbertir",
+	"math_lexing_error": "may salâ sa analisador léxico",
+	"math_notexvc": "May nawawarang <code>texvc</code> na ehekutable; hilingón tabî an mat/README para makonpigurar.",
+	"math_sample": "Isaliôt an pormula digdi",
+	"math_syntax_error": "may salâ sa analisador nin sintaksis",
+	"math_tip": "Pórmulang matemátika (LaTeX)",
+	"math_unknown_error": "dai aram an salâ",
+	"math_unknown_function": "Dai aram an gamit",
+	"mw_math_mathml": "MathML na igwang SVG o baya PNG na hulog pabalik (eksperimental)",
+	"mw_math_png": "Itaô pirmi an PNG",
+	"mw_math_source": "Pabayaan na bilang LaTeX (para sa mga ''browser'' na teksto)",
+	"prefs-math": "Mat"
+}
diff --git a/i18n/be-tarask.json b/i18n/be-tarask.json
new file mode 100644
index 0000000..8e1bc85
--- /dev/null
+++ b/i18n/be-tarask.json
@@ -0,0 +1,32 @@
+{
+	"@metadata": {
+		"authors": [
+			"EugeneZelenko",
+			"Jim-by",
+			"Wizardist",
+			"Red Winged Duck",
+			"Macofe"
+		]
+	},
+	"math-desc": "Выводзіць матэматычныя формулы, запісаныя паміж тэгамі <code><math></code> і <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Хуткая праўка",
+	"math_bad_output": "Немагчыма запісаць ці стварыць выходную матэматычную дырэкторыю",
+	"math_bad_tmpdir": "Немагчыма запісаць ці стварыць часовую дырэкторыю для матэматыкі",
+	"math_failure": "Немагчыма разабраць",
+	"math_image_error": "Памылка пераўтварэньня ў фармат PNG;\nправерце слушнасьць усталяваньня latex, dvips (ці dvips + gs + convert)",
+	"math_lexing_error": "лексычная памылка",
+	"math_notexvc": "Выканаўчы модуль <code>texvc</code> ня знойдзены.\nКалі ласка, прачытайце math/README пра яго канфігурацыю.",
+	"math_output_error": "Не ўдалося захаваць выяву выразу ў файлавай сыстэме.",
+	"math_sample": "Зьмясьціце тут формулу",
+	"math_syntax_error": "сынтаксычная памылка",
+	"math_tip": "Матэматычная формула (LaTeX)",
+	"math_unknown_error": "невядомая памылка",
+	"math_unknown_function": "невядомая функцыя '$1'",
+	"mw_math_latexml": "LaTeXML (экспэрымэнтальна; ужывае MathML)",
+	"mw_math_mathjax": "MathJax на баку кліента (марудны; паляпшае апрацоўку ў некаторых браўзэрах і інструмэнтах падвышэньня даступнасьці)",
+	"mw_math_mathml": "MathML зь вяртаньнем да SVG ці PNG (рэкамэндуецца для сучасных браўзэраў і інструмэнтаў падвышэньня даступнасьці)",
+	"mw_math_png": "PNG-выявы",
+	"mw_math_source": "LaTeX-разьметка (для тэкставых браўзэраў)",
+	"prefs-math": "Матэматычныя формулы",
+	"mathstatus": "Генэрацыя матэматычных формулаў"
+}
diff --git a/i18n/be.json b/i18n/be.json
new file mode 100644
index 0000000..390d46e
--- /dev/null
+++ b/i18n/be.json
@@ -0,0 +1,24 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mienski",
+			"Yury Tarasievich",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Немагчыма запісаць у або стварыць выводны каталог для матэматыкі",
+	"math_bad_tmpdir": "Немагчыма запісаць у або стварыць тымчасовы каталог для матэматыкі",
+	"math_failure": "Не ўдалося разабраць",
+	"math_image_error": "Не ўдалося ператварыць PNG; праверце правільнасць устаноўкі пакетаў latex і dvipng (або dvips і gs і convert)",
+	"math_lexing_error": "лексічная памылка",
+	"math_notexvc": "Не знойдзены выканальны модуль <code>texvc</code>; аб яго настаўленнях чытайце ў math/README.",
+	"math_sample": "Уставіць формулу тут",
+	"math_syntax_error": "памылка сінтаксісу",
+	"math_tip": "Матэматычная формула (LaTeX)",
+	"math_unknown_error": "невядомая памылка",
+	"math_unknown_function": "невядомая функцыя",
+	"mw_math_mathml": "MathML калі магчыма (эксперыментальнае)",
+	"mw_math_png": "Заўсёды вырабляць PNG",
+	"mw_math_source": "Пакідаць у выглядзе LaTeX (для тэкставых браўзераў)",
+	"prefs-math": "Матэматыка"
+}
diff --git a/i18n/bg.json b/i18n/bg.json
new file mode 100644
index 0000000..500d73f
--- /dev/null
+++ b/i18n/bg.json
@@ -0,0 +1,32 @@
+{
+	"@metadata": {
+		"authors": [
+			"DCLXVI",
+			"Vodnokon4e",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathdialog-title": "Формула",
+	"math-visualeditor-mwmathdialog-card-formula": "Формула",
+	"math-visualeditor-mwmathdialog-card-options": "Настройки",
+	"math-visualeditor-mwmathinspector-display": "Показване",
+	"math-visualeditor-mwmathinspector-display-default": "По подразбиране",
+	"math-visualeditor-mwmathinspector-title": "Формула",
+	"math-visualeditor-symbol-group-greek": "Гръцка азбука",
+	"math-visualeditor-symbol-group-hebrew": "Еврейска азбука",
+	"math_bad_output": "Невъзможно е писането във или създаването на изходяща директория за математическите операции",
+	"math_bad_tmpdir": "Невъзможно е писането във или създаването на временна директория за математическите операции",
+	"math_failure": "Неуспех при разбора",
+	"math_image_error": "Превръщането към PNG не сполучи. Проверете дали latex и dvipng (или dvips + gs + convert) са правилно инсталирани.",
+	"math_lexing_error": "лексикална грешка",
+	"math_notexvc": "Липсва изпълнимият файл на <code>texvc</code>. Прегледайте math/README за информация относно конфигурирането.",
+	"math_sample": "Тук въведете формулата",
+	"math_syntax_error": "синтактична грешка",
+	"math_tip": "Математическа формула (LaTeX)",
+	"math_unknown_error": "непозната грешка",
+	"math_unknown_function": "непозната функция \"$1\"",
+	"mw_math_mathml": "MathML по възможност (експериментално)",
+	"mw_math_png": "Използване винаги на PNG",
+	"mw_math_source": "Оставяне като LaTeX (за текстови браузъри)",
+	"prefs-math": "Математически формули"
+}
diff --git a/i18n/bho.json b/i18n/bho.json
new file mode 100644
index 0000000..9971b8e
--- /dev/null
+++ b/i18n/bho.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ganesh"
+		]
+	},
+	"math_tip": "गणितिय सूत्र (LaTeX)",
+	"prefs-math": "गणित"
+}
diff --git a/i18n/bjn.json b/i18n/bjn.json
new file mode 100644
index 0000000..295a111
--- /dev/null
+++ b/i18n/bjn.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ezagren",
+			"J Subhi"
+		]
+	},
+	"math_sample": "Masukakan rumus di sia",
+	"math_tip": "Rumus matamatika (LaTeX)",
+	"prefs-math": "Matik"
+}
diff --git a/i18n/bn.json b/i18n/bn.json
new file mode 100644
index 0000000..4781be0
--- /dev/null
+++ b/i18n/bn.json
@@ -0,0 +1,74 @@
+{
+	"@metadata": {
+		"authors": [
+			"Aftab1995",
+			"Bellayet",
+			"Zaheen",
+			"Aftabuzzaman"
+		]
+	},
+	"math-visualeditor-mwmathcontextitem-quickedit": "দ্রুত সম্পাদনা",
+	"math-visualeditor-mwmathdialog-title": "সূত্র",
+	"math-visualeditor-mwmathdialog-card-formula": "সূত্র",
+	"math-visualeditor-mwmathdialog-card-options": "বিকল্প",
+	"math-visualeditor-mwmathinspector-display": "প্রদর্শন",
+	"math-visualeditor-mwmathinspector-display-block": "ব্লক",
+	"math-visualeditor-mwmathinspector-display-default": "পূর্বনির্ধারিত",
+	"math-visualeditor-mwmathinspector-display-inline": "এক রেখায়",
+	"math-visualeditor-mwmathinspector-id": "সংযোগ ID (ঐচ্ছিক)",
+	"math-visualeditor-mwmathinspector-title": "সূত্র",
+	"math-visualeditor-symbol-group-accents": "স্বরাঘাত ও ডায়াক্রিটিক",
+	"math-visualeditor-symbol-group-arrows": "তীরচিহ্ন",
+	"math-visualeditor-symbol-group-bounds": "সীমা",
+	"math-visualeditor-symbol-group-derivatives": "পার্থক্যমূলক ও উপজাত",
+	"math-visualeditor-symbol-group-functions": "মানক সংখ্যাসূচক ফাংশন",
+	"math-visualeditor-symbol-group-geometry": "জ্যামিতিক",
+	"math-visualeditor-symbol-group-greek": "গ্রিক বর্ণমালা",
+	"math-visualeditor-symbol-group-hebrew": "হিব্রু বর্ণমালা",
+	"math-visualeditor-symbol-group-large": "বৃহৎ বহির্বিন্যাস",
+	"math-visualeditor-symbol-group-logic": "যুক্তি",
+	"math-visualeditor-symbol-group-matrices": "ম্যাট্রিক্স",
+	"math-visualeditor-symbol-group-modular": "মডুলার পাটিগণিত",
+	"math-visualeditor-symbol-group-operators": "চালক",
+	"math-visualeditor-symbol-group-projections": "অভিক্ষেপ",
+	"math-visualeditor-symbol-group-parentheses": "বন্ধনী",
+	"math-visualeditor-symbol-group-relations": "সম্পর্ক",
+	"math-visualeditor-symbol-group-root": "বর্গমূল",
+	"math-visualeditor-symbol-group-sets": "সেট",
+	"math-visualeditor-symbol-group-spacing": "ফাঁকা",
+	"math-visualeditor-symbol-group-special": "বিশেষ",
+	"math-visualeditor-symbol-group-subscripts": "নিম্নলিপি, ঊর্ধ্বলিপি ও পূর্ণরাশিক",
+	"math-visualeditor-symbol-group-symbols": "চিহ্ন ও ধ্রুবক",
+	"math-visualeditor-symbol-group-typefaces": "মুদ্রাক্ষর",
+	"math-visualeditor-symbol-group-unsorted": "অবাছাই",
+	"math_bad_output": "ম্যাথ আউটপুট ডিরেক্টরি সৃষ্টি করতে বা এতে লিখতে পারা যাচ্ছে না।",
+	"math_bad_tmpdir": "সাময়িক ম্যাথ ডিরেক্টরি সৃষ্টি করতে বা এতে লিখতে পারা যাচ্ছে না।",
+	"math_failure": "পার্স করতে ব্যর্থ",
+	"math_image_error": "PNG রূপান্তর ব্যর্থ; latex ও dvipng (বা dvips + gs + convert) ঠিকমত ইন্সটল হয়েছে কি না পরীক্ষা করুন",
+	"math_invalidjson": "$1 সার্ভারের প্রতিক্রিয়া বৈধ JSON নয়।",
+	"math_invalidresponse": "$1: \"$2\" সার্ভার থেকে অবৈধ উত্তর (\"$3\"):",
+	"math_invalidxml": "MathML বা SVG বৈধ XML নয়।",
+	"math_lexing_error": "লেক্সিং ত্রুটি",
+	"math_mathoid_error": "রূপান্তর ত্রুটি। সার্ভার (\"$1\") জানাচ্ছে: \"$2\"",
+	"math_notexvc": "<code>texvc</code> executable হারানো গেছে; অনুগ্রহ করে কনফিগার করার জন্য math/README দেখুন।",
+	"math_output_error": "ফাইলসিস্টেমে গণিতের চিত্রটি সংরক্ষণ করা যাবে না।",
+	"math_sample": "সূত্র এখানে লিখুন",
+	"math_syntax_error": "সিনট্যাক্স ত্রুটি",
+	"math_timeout": "\"$2\" থেকে $1-এর সময় শেষ।",
+	"math-test-end": "$1 মোড রেন্ডারিংয়ের জন্য ব্যাকএন্ড পরীক্ষা সম্পন্ন।",
+	"math-test-fail": "''$1'' পরীক্ষা <span style=\"color:red\">ব্যর্থ হয়েছে</span>।",
+	"math-test-start": "$1 মোড রেন্ডারিংয়ের জন্য ব্যাকএন্ড পরীক্ষা চলানো হচ্ছে।",
+	"math-test-success": "''$1'' পরীক্ষা <span style=\"color:green\">সফল হয়েছে</span>।",
+	"math_tip": "গাণিতিক সূত্র (LaTeX)",
+	"math_unknown_error": "অজানা ত্রুটি",
+	"math_unknown_function": "'$1' অজানা ফাংশন",
+	"mw_math_latexml": "LaTeXML (পরীক্ষামূলক; MathML ব্যবহার)",
+	"mw_math_mathjax": "ক্লায়েন্ট-সাইড ম্যাথজ্যাক্স (দেখায়; কিছু ব্রাউজার এবং অভিগম্যতা সরঞ্জামের উপর রেন্ডারিং উন্নত করে)",
+	"mw_math_mathml": "SVG বা PNG পশ্চাদপসরণসহ MathML (আধুনিক ব্রাউজার এবং প্রবেশযোগ্যতা সরঞ্জামের জন্য সুপারিশ করা)",
+	"mw_math_png": "PNG চিত্রসমূহ",
+	"mw_math_source": "LaTeX উৎস (পাঠ্য ব্রাউজারগুলোর জন্য)",
+	"prefs-math": "গণিত",
+	"mathstatus": "গণিতের অবস্থা",
+	"datatypes-type-math": "গাণিতিক এক্সপ্রেশন",
+	"wikibase-listdatatypes-math-head": "গাণিতিক এক্সপ্রেশন"
+}
diff --git a/i18n/bpy.json b/i18n/bpy.json
new file mode 100644
index 0000000..843983e
--- /dev/null
+++ b/i18n/bpy.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Usingha"
+		]
+	},
+	"math_sample": "এহাত সুত্র বরা",
+	"math_tip": "অংকর সুত্র (LaTeX)",
+	"prefs-math": "গণিত"
+}
diff --git a/i18n/bqi.json b/i18n/bqi.json
new file mode 100644
index 0000000..397bb2f
--- /dev/null
+++ b/i18n/bqi.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Behdarvandyani"
+		]
+	},
+	"math_sample": "فرمول نهادن ایچو",
+	"math_tip": "فرمول ریاضی (LaTeX)"
+}
diff --git a/i18n/br.json b/i18n/br.json
new file mode 100644
index 0000000..69e8136
--- /dev/null
+++ b/i18n/br.json
@@ -0,0 +1,29 @@
+{
+	"@metadata": {
+		"authors": [
+			"Fulup",
+			"Fohanno",
+			"Y-M D",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display-block": "Stankañ",
+	"math-visualeditor-mwmathinspector-display-default": "Dre ziouer",
+	"math-visualeditor-mwmathinspector-title": "Formulenn",
+	"math_bad_output": "N'hall ket krouiñ pe skrivañ er c'havlec'h ermaeziañ",
+	"math_bad_tmpdir": "N'hall ket krouiñ pe skrivañ er c'havlec'h da c'hortoz",
+	"math_failure": "Fazi jedoniezh",
+	"math_image_error": "C'hwitet eo bet an amdroadur PNG; gwiriit eo staliet mat Latex ha devipng (pe dvips, gs ha convert)",
+	"math_lexing_error": "fazi ger",
+	"math_notexvc": "N'hall ket an erounezeg '<code>texvc</code>' bezañ kavet. Lennit math/README evit he c'hefluniañ.",
+	"math_sample": "Lakait ho formulenn amañ",
+	"math_syntax_error": "fazi ereadur",
+	"math_tip": "Formulenn jedoniel (LaTeX)",
+	"math_unknown_error": "fazi dianav",
+	"math_unknown_function": "arc'hwel dianav \"$1\"",
+	"mw_math_mathjax": "MathJax (arnodiñ)",
+	"mw_math_mathml": "MathML",
+	"mw_math_png": "Produiñ atav ur skeudenn PNG",
+	"mw_math_source": "Leuskel ar c'hod LaTeX orin",
+	"prefs-math": "Tres jedoniel"
+}
diff --git a/i18n/bs.json b/i18n/bs.json
new file mode 100644
index 0000000..44a9ff3
--- /dev/null
+++ b/i18n/bs.json
@@ -0,0 +1,76 @@
+{
+	"@metadata": {
+		"authors": [
+			"CERminator",
+			"Semso98",
+			"Srdjan m",
+			"Munja",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathdialog-title": "Formula",
+	"math-visualeditor-mwmathdialog-card-formula": "Formula",
+	"math-visualeditor-mwmathdialog-card-options": "Opcije",
+	"math-visualeditor-mwmathinspector-display": "Prikaži",
+	"math-visualeditor-mwmathinspector-display-block": "Blok",
+	"math-visualeditor-mwmathinspector-display-default": "Predodređeno",
+	"math-visualeditor-mwmathinspector-display-inline": "U redu",
+	"math-visualeditor-mwmathinspector-id": "ID linka (neobavezno)",
+	"math-visualeditor-mwmathinspector-title": "Formula",
+	"math-visualeditor-symbol-group-accents": "Akcenti i dijakritički znakovi",
+	"math-visualeditor-symbol-group-arrows": "Strelice",
+	"math-visualeditor-symbol-group-bounds": "Granice",
+	"math-visualeditor-symbol-group-derivatives": "Diferencijali i izvodi",
+	"math-visualeditor-symbol-group-functions": "Standardne numeričke funkcije",
+	"math-visualeditor-symbol-group-geometry": "Geometrijski",
+	"math-visualeditor-symbol-group-greek": "Grčki alfabet",
+	"math-visualeditor-symbol-group-hebrew": "Hebrejski alfabet",
+	"math-visualeditor-symbol-group-large": "Veliki raspored",
+	"math-visualeditor-symbol-group-logic": "Logički",
+	"math-visualeditor-symbol-group-matrices": "Matrice",
+	"math-visualeditor-symbol-group-modular": "Modularna aritmetika",
+	"math-visualeditor-symbol-group-operators": "Operatori",
+	"math-visualeditor-symbol-group-projections": "Projekcije",
+	"math-visualeditor-symbol-group-parentheses": "Zagrade",
+	"math-visualeditor-symbol-group-relations": "Odnosi",
+	"math-visualeditor-symbol-group-root": "Korijeni",
+	"math-visualeditor-symbol-group-sets": "Skupovi",
+	"math-visualeditor-symbol-group-spacing": "Razmaci",
+	"math-visualeditor-symbol-group-special": "Specijalni",
+	"math-visualeditor-symbol-group-subscripts": "Indeksi, stepeni i integrali",
+	"math-visualeditor-symbol-group-symbols": "Simboli i konstante",
+	"math-visualeditor-symbol-group-typefaces": "Oblici fonta",
+	"math-visualeditor-symbol-group-unsorted": "Nesortirano",
+	"math_bad_output": "Ne može se napisati ili napraviti direktorij za matematični izvještaj",
+	"math_bad_tmpdir": "Ne može se napisati ili napraviti privremeni matematični direktorij",
+	"math_failure": "Neuspjeh pri parsiranju",
+	"math_image_error": "PNG konverzija neuspješna; provjerite tačnu instalaciju latex-a i dvipng-a (ili dvips + gs + convert)",
+	"math_invalidjson": "Odgovor servera $1 je nevažeći JSON.",
+	"math_invalidresponse": "$1: Neispravan odgovor (\"$3\") sa servera \"$2\":",
+	"math_invalidxml": "MathML ili SVG je neispravan XML.",
+	"math_lexing_error": "riječnička greška",
+	"math_mathoid_error": "Greška u razgovoru. Server (\"$1\") izvještava: \"$2\"",
+	"math_notexvc": "Nedostaje izvršno <code>texvc</code>; molimo Vas da pogledate math/README da podesite.",
+	"math_output_error": "Nije moguće spremiti matematičku sliku na sistem.",
+	"math_sample": "Unesite formulu ovdje",
+	"math-status-introduction": "Ova stranica prikazuje informacije o dozvoljenim načinima renderiranja matematike.\n\nNaredni renderirajući {{PLURAL:$1|način je|načini su}} dozvoljeni:",
+	"math_syntax_error": "sintaksna greška",
+	"math_timeout": "$1 istek vremena sa \"$2\".",
+	"math-test-end": "Testovi za backend za način renderiranja ''$1'' su završeni.",
+	"math-test-fail": "Test ''$1'' <span style=\"color:red\">nije uspio</span>.",
+	"math-test-start": "Pokreću se backend testovi za način renderiranja ''$1''.",
+	"math-test-success": "Test ''$1'' <span style=\"color:green\">je uspio</span>.",
+	"math-test-contains-diff": "Vraćeni string $1 ne sadrži očekivani string $2.",
+	"math-test-equals-diff": "Vraćeni string $1 je različit od očekivanog stringa $2.",
+	"math_tip": "Matematička formula (LaTeX)",
+	"math_unknown_error": "nepoznata greška",
+	"math_unknown_function": "nepoznata funkcija \"$1\"",
+	"mw_math_latexml": "LaTeXML (eksperimentalni; koristi MathML)",
+	"mw_math_latexml_jax": "LaTeXML sa MathJax-om na klijent računaru (eksperimentalni; koristi MathML)",
+	"mw_math_mathjax": "Klijentni MathJax (spor; poboljšava prikaz na nekim preglednicima i pristupačnim alatima)",
+	"mw_math_mathml": "MathML sa SVG ili PNG rezervom (preporučuje se za moderne preglednike i alate pristupačnosti)",
+	"mw_math_png": "PNG slike",
+	"mw_math_source": "LaTeX izvor (za tekstualne preglednike)",
+	"prefs-math": "Matematika",
+	"mathstatus": "Stanje matematike"
+}
diff --git a/i18n/ca.json b/i18n/ca.json
new file mode 100644
index 0000000..3518da9
--- /dev/null
+++ b/i18n/ca.json
@@ -0,0 +1,37 @@
+{
+	"@metadata": {
+		"authors": [
+			"Alvaro Vidal-Abarca",
+			"Martorell",
+			"Papapep",
+			"SMP",
+			"Toniher",
+			"Vriullop",
+			"Arnaugir",
+			"Macofe"
+		]
+	},
+	"math-desc": "Composa fórmules matemàtiques escrites entre les etiquetes <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathinspector-title": "Fórmula",
+	"math_bad_output": "No s'ha pogut crear el directori d'eixida de math o escriure-hi dins.",
+	"math_bad_tmpdir": "No s'ha pogut crear el directori temporal de math o escriure-hi dins.",
+	"math_failure": "No s'ha pogut entendre",
+	"math_image_error": "Hi ha hagut una errada en la conversió a PNG. Verifiqueu la instaŀlació de latex i dvipng (o dvips, gs i convert).",
+	"math_invalidjson": "$1 La resposta del servidor és un JSON invàlid.",
+	"math_invalidresponse": "$1: Resposta invàlida ('$3') del servidor '$2':",
+	"math_invalidxml": " MathML conté XML invàlid.",
+	"math_lexing_error": "error de lèxic",
+	"math_notexvc": "No s'ha trobat el fitxer executable ''<code>texvc</code>''; si us plau, vegeu math/README per a configurar-lo.",
+	"math_output_error": "No es pot emmagatzemar imatge de fórmula matemàtica al sistema d'arxius.",
+	"math_sample": "Inseriu una fórmula ací",
+	"math_syntax_error": "error de sintaxi",
+	"math_tip": "Fórmula matemàtica (LaTeX)",
+	"math_unknown_error": "error desconegut",
+	"math_unknown_function": "funció '$1' desconeguda",
+	"mw_math_latexml": "LaTeXML (experimental; utilitza MathML)",
+	"mw_math_mathjax": "MathJax (experimental)",
+	"mw_math_mathml": "MathML si és possible (experimental)",
+	"mw_math_png": "Produeix sempre PNG",
+	"mw_math_source": "Deixa com a LaTeX (per a navegadors de text)",
+	"prefs-math": "Com es mostren les fórmules"
+}
diff --git a/i18n/cdo.json b/i18n/cdo.json
new file mode 100644
index 0000000..d105322
--- /dev/null
+++ b/i18n/cdo.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Yejianfei",
+			"唐吉訶德的侍從"
+		]
+	},
+	"math_unknown_error": "𣍐曉其綻",
+	"math_unknown_function": "𣍐八其函數「$1」",
+	"prefs-math": "數學"
+}
diff --git a/i18n/ce.json b/i18n/ce.json
new file mode 100644
index 0000000..6f4422a
--- /dev/null
+++ b/i18n/ce.json
@@ -0,0 +1,42 @@
+{
+	"@metadata": {
+		"authors": [
+			"Sasan700",
+			"Умар",
+			"Macofe"
+		]
+	},
+	"math-desc": "Гойту математикан формулш тегашкахь <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Сиха чуйилар",
+	"math-visualeditor-mwmathinspector-display": "Дисплей",
+	"math-visualeditor-mwmathinspector-display-block": "Блоктохар",
+	"math-visualeditor-mwmathinspector-display-default": "Дефолт",
+	"math-visualeditor-mwmathinspector-display-inline": "Сизийн",
+	"math-visualeditor-mwmathinspector-id": "ID хьажоргаш (тӀехь дац)",
+	"math-visualeditor-mwmathinspector-title": "Формула",
+	"math_bad_output": "Математикан арахьара гулам кхолла я дӀаязбан цало",
+	"math_bad_tmpdir": "Математикан хана болу гулам кхолла я дӀаязбан цало",
+	"math_failure": "Алар вовшахдаккха цало",
+	"math_image_error": "PNG тӀе хийцар гӀалате чекхдели — latex а, dvips а нийса дӀахӀоттийна юьй хьажа (я dvips + gs + convert)",
+	"math_invalidjson": "Серверан жоп $1 — нийса йоцу JSON-тайпан.",
+	"math_invalidresponse": "$1: Мегаш доцу жоп («$3») серверера «$2»:",
+	"math_invalidxml": "MathML я SVG чохь магийна йоцу XML-код ю.",
+	"math_lexing_error": "лексикин гӀалат",
+	"math_mathoid_error": "Тайп хицаран гӀалат. Серверо («$1») хаам бина: «$2»",
+	"math_notexvc": "Лоху файл <code>texvc</code> цакарий; См. math/README — нисяран гӀо.",
+	"math_output_error": "Математикан сурт файлийн системин чохь Ӏалашдан цаделира",
+	"math_sample": "Каьчдинарг чудила кхузе",
+	"math_syntax_error": "синтаксин гӀалат",
+	"math_timeout": "$1 хьоьжу хан сов аьлла «$2»",
+	"math_tip": "Матlематlекхиа каьчйар (барам LaTeX)",
+	"math_unknown_error": "дойзаш доцу гӀалат",
+	"math_unknown_function": "йоьвзуш йоцу функци «$1»",
+	"mw_math_latexml": "LaTeXML (экспериментан; лелош ю MathML)",
+	"mw_math_latexml_jax": "LaTeXML, MathJax тӀера клиентан агӀора (экспериментан опци, MathML лелош йолу)",
+	"mw_math_mathjax": "MathJax клиентан агӀорахь (меллаша; кечдар нисдо цхьайолу браузерш чохь а, гӀирсаш чохь а тӀекхачар хьаладоккхуш)",
+	"mw_math_mathml": "MathML SVG я PNG дехьайолуш (магош ю таханлера браузерашна а, тӀекхачар совйоккху гӀирсанша а)",
+	"mw_math_png": "PNG-сурт",
+	"mw_math_source": "LaTeX билгало (йозан браузершан)",
+	"prefs-math": "Формулаш гар",
+	"mathstatus": "Математикан статус"
+}
diff --git a/i18n/ceb.json b/i18n/ceb.json
new file mode 100644
index 0000000..05baeb2
--- /dev/null
+++ b/i18n/ceb.json
@@ -0,0 +1,12 @@
+{
+	"@metadata": {
+		"authors": [
+			"Jordz",
+			"Leeheonjin"
+		]
+	},
+	"math-visualeditor-symbol-group-geometry": "Heometriya",
+	"math_sample": "I-insert dinhi ang formula",
+	"math_tip": "Mathematical formula (LaTeX)",
+	"prefs-math": "Math"
+}
diff --git a/i18n/ch.json b/i18n/ch.json
new file mode 100644
index 0000000..a4e57e7
--- /dev/null
+++ b/i18n/ch.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"Gadao01"
+		]
+	},
+	"math_failure": "Lachi ma parse",
+	"math_lexing_error": "linachi lexing",
+	"math_sample": "Po'lo i fotmula mågi",
+	"math_syntax_error": "linachi syntax",
+	"math_tip": "Fotmulan matematika (LaTeX)",
+	"math_unknown_error": "linachi ti matungo'",
+	"math_unknown_function": "fonksion ti matungo'",
+	"prefs-math": "Math"
+}
diff --git a/i18n/ckb.json b/i18n/ckb.json
new file mode 100644
index 0000000..293d789
--- /dev/null
+++ b/i18n/ckb.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Arastein",
+			"Asoxor",
+			"Calak",
+			"Marmzok",
+			"Macofe",
+			"Sarchia"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display-default": "بنچینەیی",
+	"math_sample": "فۆرموول لێرە بنووسە",
+	"math_syntax_error": "ڕستەکار هەڵەیە",
+	"math_tip": "فۆرموولی بیرکاری (LaTeX)",
+	"math_unknown_error": "هەڵەیەکی نەزانراو",
+	"math_unknown_function": "فەرمانێکی نەناسراو",
+	"mw_math_mathjax": "MathJax (بۆ ئەزموون)",
+	"mw_math_png": "ھەموو جارێک وەک PNG نیشان بدە",
+	"mw_math_source": "وەک LaTeX بمێنێتەوە (بۆ وێبگەڕە دەقی‌یەکان)",
+	"prefs-math": "ماتماتیک"
+}
diff --git a/i18n/co.json b/i18n/co.json
new file mode 100644
index 0000000..afe4afc
--- /dev/null
+++ b/i18n/co.json
@@ -0,0 +1,5 @@
+{
+	"@metadata": [],
+	"math_syntax_error": "errore di sintassa",
+	"prefs-math": "Matematica"
+}
diff --git a/i18n/cps.json b/i18n/cps.json
new file mode 100644
index 0000000..a64e3b4
--- /dev/null
+++ b/i18n/cps.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Oxyzen"
+		]
+	},
+	"math_sample": "Isulod ang diya pormula",
+	"math_tip": "Pormula nga pangmatematika (LaTeX)"
+}
diff --git a/i18n/crh-cyrl.json b/i18n/crh-cyrl.json
new file mode 100644
index 0000000..d808e05
--- /dev/null
+++ b/i18n/crh-cyrl.json
@@ -0,0 +1,19 @@
+{
+	"@metadata": {
+		"authors": [
+			"Don Alessandro",
+			"Macofe"
+		]
+	},
+	"math_failure": "Айырыштырыламды",
+	"math_lexing_error": "лексик хата",
+	"math_sample": "Бу ерге формуланы кирсетинъиз",
+	"math_syntax_error": "синтаксис хатасы",
+	"math_tip": "Риязий (математик) формула (LaTeX форматында)",
+	"math_unknown_error": "билинмеген хата",
+	"math_unknown_function": "бельгисиз функция",
+	"mw_math_mathml": "Мумкюн олса MathML (даа денъеме алында)",
+	"mw_math_png": "Даима PNG ресим форматына чевир",
+	"mw_math_source": "Денъиштирмеден LaTeX оларакъ ташла  (метин темелли браузерлер ичюн)",
+	"prefs-math": "Риязий (математик) ишаретлер"
+}
diff --git a/i18n/crh-latn.json b/i18n/crh-latn.json
new file mode 100644
index 0000000..3ee0783
--- /dev/null
+++ b/i18n/crh-latn.json
@@ -0,0 +1,19 @@
+{
+	"@metadata": {
+		"authors": [
+			"Don Alessandro",
+			"Macofe"
+		]
+	},
+	"math_failure": "Ayırıştırılamadı",
+	"math_lexing_error": "leksik hata",
+	"math_sample": "Bu yerge formulanı kirsetiñiz",
+	"math_syntax_error": "sintaksis hatası",
+	"math_tip": "Riyaziy (matematik) formula (LaTeX formatında)",
+	"math_unknown_error": "bilinmegen hata",
+	"math_unknown_function": "belgisiz funktsiya",
+	"mw_math_mathml": "Mümkün olsa MathML (daa deñeme alında)",
+	"mw_math_png": "Daima PNG resim formatına çevir",
+	"mw_math_source": "Deñiştirmeden LaTeX olaraq taşla (metin temelli brauzerler içün)",
+	"prefs-math": "Riyaziy (matematik) işaretler"
+}
diff --git a/i18n/cs.json b/i18n/cs.json
new file mode 100644
index 0000000..908724f
--- /dev/null
+++ b/i18n/cs.json
@@ -0,0 +1,80 @@
+{
+	"@metadata": {
+		"authors": [
+			"Danny B.",
+			"Mormegil",
+			"Cvanca",
+			"Matěj Suchánek"
+		]
+	},
+	"math-desc": "Vykresluje matematické vzorce vyznačené pomocí <code><math></code> … <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Rychlá editace",
+	"math-visualeditor-mwmathdialog-title": "Vzorec",
+	"math-visualeditor-mwmathdialog-card-formula": "Vzorec",
+	"math-visualeditor-mwmathdialog-card-options": "Možnosti",
+	"math-visualeditor-mwmathinspector-display": "Zobrazení",
+	"math-visualeditor-mwmathinspector-display-block": "Blok",
+	"math-visualeditor-mwmathinspector-display-default": "Výchozí",
+	"math-visualeditor-mwmathinspector-display-inline": "V řádce",
+	"math-visualeditor-mwmathinspector-id": "ID odkazu (nepovinné)",
+	"math-visualeditor-mwmathinspector-title": "Vzorec",
+	"math-visualeditor-symbol-group-accents": "Diakritika",
+	"math-visualeditor-symbol-group-arrows": "Šipky",
+	"math-visualeditor-symbol-group-bounds": "Meze",
+	"math-visualeditor-symbol-group-derivatives": "Diferenciály a derivace",
+	"math-visualeditor-symbol-group-functions": "Standardní číselné funkce",
+	"math-visualeditor-symbol-group-geometry": "Geometrie",
+	"math-visualeditor-symbol-group-greek": "Řecká abeceda",
+	"math-visualeditor-symbol-group-hebrew": "Hebrejská abeceda",
+	"math-visualeditor-symbol-group-large": "Velká rozvržení",
+	"math-visualeditor-symbol-group-logic": "Logika",
+	"math-visualeditor-symbol-group-matrices": "Matice",
+	"math-visualeditor-symbol-group-modular": "Modulární aritmetika",
+	"math-visualeditor-symbol-group-operators": "Operátory",
+	"math-visualeditor-symbol-group-projections": "Projekce",
+	"math-visualeditor-symbol-group-parentheses": "Závorky",
+	"math-visualeditor-symbol-group-relations": "Porovnání",
+	"math-visualeditor-symbol-group-root": "Odmocniny",
+	"math-visualeditor-symbol-group-sets": "Množiny",
+	"math-visualeditor-symbol-group-spacing": "Mezery",
+	"math-visualeditor-symbol-group-special": "Speciální",
+	"math-visualeditor-symbol-group-subscripts": "Horní a dolní indexy a integrály",
+	"math-visualeditor-symbol-group-symbols": "Symboly a konstanty",
+	"math-visualeditor-symbol-group-typefaces": "Písma",
+	"math-visualeditor-symbol-group-unsorted": "Netříděné",
+	"math_bad_output": "Nelze zapsat nebo vytvořit adresář pro výstup matematiky",
+	"math_bad_tmpdir": "Nelze zapsat nebo vytvořit dočasný adresář pro matematiku",
+	"math_failure": "Nelze pochopit",
+	"math_image_error": "Selhala konverze do PNG; zkontrolujte správnou instalaci latexu a dvipng (nebo dvips + gs + convert)",
+	"math_invalidjson": "Odpověď serveru $1 není platný JSON.",
+	"math_invalidresponse": "$1: Neplatná odpověď („$3“) od serveru „$2“:",
+	"math_invalidxml": "MathML nebo SVG není platné XML.",
+	"math_lexing_error": "chyba při lexingu",
+	"math_mathoid_error": "Chyba konverze. Server („$1“) hlásí: „$2“",
+	"math_notexvc": "Chybí spustitelný <code>texvc</code>. Podívejte se prosím do math/README na konfiguraci.",
+	"math_output_error": "Matematický obrázek nelze uložit do souborového systému.",
+	"math_sample": "Vložit sem vzorec",
+	"math-status-introduction": "Tato stránka zobrazuje informace o {{PLURAL:$1|povoleném režimu|povolených režimech}} vykreslování matematiky.\n\n{{PLURAL:$1|Povolen je následující režim|Povoleny jsou následující režimy}} vykreslování:",
+	"math_syntax_error": "syntaktická chyba",
+	"math_timeout": "Vypršel časový limit na $1 z „$2“",
+	"math-test-end": "Serverové testy režimu vykreslování „$1“ byly dokončeny.",
+	"math-test-fail": "Test „$1“  <span style=\"color:red\">selhal</span>.",
+	"math-test-start": "Provádějí se serverové testy režimu vykreslování „$1“.",
+	"math-test-success": "Test „$1“ <span style=\"color:green\">uspěl</span>.",
+	"math-test-contains-diff": "Vrácený řetězec $1 neobsahuje očekávaný řetězec $2.",
+	"math-test-equals-diff": "Vrácený řetězec $1 se liší od očekávaného řetězce $2.",
+	"math_tip": "Matematický vzorec (LaTeX)",
+	"math_unknown_error": "neznámá chyba",
+	"math_unknown_function": "neznámá funkce „$1“",
+	"mw_math_latexml": "LaTeXML (experimentální; používá MathML)",
+	"mw_math_latexml_jax": "LaTeXML s MathJaxem na klientské straně (experimentální; používá MathML)",
+	"mw_math_mathjax": "MathJax na klientské straně (pomalý; vylepší vykreslování v některých prohlížečích a kompenzačních pomůckách)",
+	"mw_math_mathml": "MathML, alternativně SVG nebo PNG (doporučeno pro moderní prohlížeče a kompenzační pomůcky)",
+	"mw_math_png": "PNG obrázky",
+	"mw_math_source": "Zdrojový kód LaTeX (pro textové prohlížeče)",
+	"prefs-math": "Matematika",
+	"mathstatus": "Stav matematiky",
+	"datatypes-type-math": "Matematický výraz",
+	"wikibase-listdatatypes-math-head": "Matematický výraz",
+	"wikibase-listdatatypes-math-body": "Literálová datová položka pro matematické výrazy, vzorce, rovnice apod., vyjádřené ve variantě LaTeXu."
+}
diff --git a/i18n/csb.json b/i18n/csb.json
new file mode 100644
index 0000000..d606e91
--- /dev/null
+++ b/i18n/csb.json
@@ -0,0 +1,16 @@
+{
+	"@metadata": {
+		"authors": [
+			"Kaszeba",
+			"Warszk",
+			"Macofe"
+		]
+	},
+	"math_failure": "Parser nie rozmiôł rozpòznac",
+	"math_sample": "Wstôwi tuwò fòrmùłã",
+	"math_tip": "Matematicznô fòrmùła (LaTeX)",
+	"mw_math_mathml": "Wëskrzëniwôj jakno MathML jeżlë mòżlëwé (eksperimentalné)",
+	"mw_math_png": "Wiedno wëskrzëniwôj jakno PNG",
+	"mw_math_source": "Òstawi jakno LaTeX (dlô tekstowich przezérników)",
+	"prefs-math": "Matematika"
+}
diff --git a/i18n/cu.json b/i18n/cu.json
new file mode 100644
index 0000000..e7194d3
--- /dev/null
+++ b/i18n/cu.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"ОйЛ"
+		]
+	},
+	"math-visualeditor-mwmathdialog-card-options": "строи",
+	"math-visualeditor-symbol-group-greek": "грьчьска аꙁъбоукꙑ",
+	"math-visualeditor-symbol-group-hebrew": "єврєиска аꙁъбоукꙑ",
+	"math_tip": "маѳиматїчьна формоула (LaTeX)"
+}
diff --git a/i18n/cv.json b/i18n/cv.json
new file mode 100644
index 0000000..ae6a9cc
--- /dev/null
+++ b/i18n/cv.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"PCode"
+		]
+	},
+	"math_sample": "Формулăна кунта кĕртĕр",
+	"math_syntax_error": "синтаксис йăнăшĕ",
+	"math_tip": "Математика формули (LaTeX форматпа)",
+	"mw_math_png": "Яланах PNG хатĕрлемелле"
+}
diff --git a/i18n/cy.json b/i18n/cy.json
new file mode 100644
index 0000000..fe3ff5b
--- /dev/null
+++ b/i18n/cy.json
@@ -0,0 +1,26 @@
+{
+	"@metadata": {
+		"authors": [
+			"Lloffiwr",
+			"Robin Owain",
+			"Macofe"
+		]
+	},
+	"math-desc": "Arddangos fformwla mathemategol rhwng y tagiau <code><math></code> ... <code></math></code>",
+	"math_bad_output": "Yn methu creu cyfeiriadur allbwn mathemateg nac ysgrifennu iddo",
+	"math_bad_tmpdir": "Yn methu creu cyfeiriadur mathemateg dros dro, nac ysgrifennu iddo",
+	"math_failure": "Wedi methu dosrannu",
+	"math_image_error": "Trosiad PNG wedi methu; gwiriwch fod latex a dvips (neu dvips + gs + convert) wedi'u gosod yn gywir cyn trosi.",
+	"math_lexing_error": "gwall lecsio",
+	"math_notexvc": "Rhaglen <code>texvc</code> yn eisiau; gwelwch math/README er mwyn ei chyflunio.",
+	"math_sample": "Gosodwch fformwla yma",
+	"math_syntax_error": "gwall cystrawen",
+	"math_tip": "Fformwla mathemategol (LaTeX)",
+	"math_unknown_error": "gwall anhysbys",
+	"math_unknown_function": "ffwythiant anhysbys, '$1'",
+	"mw_math_mathjax": "MathJax (arbrofol)",
+	"mw_math_mathml": "MathML os yn bosib (arbrofol)",
+	"mw_math_png": "Delweddau PNG",
+	"mw_math_source": "Gadewch fel côd LaTeX (ar gyfer porwyr testun)",
+	"prefs-math": "Mathemateg"
+}
diff --git a/i18n/da.json b/i18n/da.json
new file mode 100644
index 0000000..1581fe6
--- /dev/null
+++ b/i18n/da.json
@@ -0,0 +1,56 @@
+{
+	"@metadata": {
+		"authors": [
+			"Christian List",
+			"Nghtwlkr",
+			"Peter Alberti",
+			"Thomsen",
+			"Macofe"
+		]
+	},
+	"math-desc": "Gengiver matematiske formler inden i <code><math></code> … <code></math></code>-tags",
+	"math-visualeditor-mwmathdialog-title": "Formel",
+	"math-visualeditor-mwmathdialog-card-formula": "Formel",
+	"math-visualeditor-mwmathdialog-card-options": "Valgmuligheder",
+	"math-visualeditor-mwmathinspector-title": "Formel",
+	"math-visualeditor-symbol-group-arrows": "Pile",
+	"math-visualeditor-symbol-group-greek": "Det græske alfabet",
+	"math-visualeditor-symbol-group-hebrew": "Det hebraiske alfabet",
+	"math-visualeditor-symbol-group-logic": "Logik",
+	"math-visualeditor-symbol-group-matrices": "Matricer",
+	"math-visualeditor-symbol-group-modular": "Modulær aritmetik",
+	"math-visualeditor-symbol-group-operators": "Operatorer",
+	"math-visualeditor-symbol-group-projections": "Projektioner",
+	"math-visualeditor-symbol-group-parentheses": "Parenteser",
+	"math-visualeditor-symbol-group-relations": "Relationer",
+	"math-visualeditor-symbol-group-sets": "Mængder",
+	"math-visualeditor-symbol-group-symbols": "Symboler og konstanter",
+	"math-visualeditor-symbol-group-typefaces": "Skrifttyper",
+	"math-visualeditor-symbol-group-unsorted": "Usorteret",
+	"math_bad_output": "Kan ikke skrive til eller oprette uddata-mappe til math",
+	"math_bad_tmpdir": "Kan ikke skrive til eller oprette temp-mappe til math",
+	"math_failure": "Fejl i matematikken",
+	"math_image_error": "PNG-konvertering mislykkedes; undersøg om latex og dvipng (eller dvips + gs + convert) er installeret korrekt",
+	"math_invalidjson": "$1 svar fra serveren er ugyldig JSON.",
+	"math_invalidresponse": "$1: ugyldigt svar (\"$3\") fra serveren \"$2\":",
+	"math_invalidxml": " MathML eller SVG er ugyldig XML.",
+	"math_lexing_error": "lexerfejl",
+	"math_mathoid_error": "Konverteringsfejl. Serveren (\"$1\") rapporterede: \"$2\"",
+	"math_notexvc": "Manglende eksekvérbar <code>texvc</code>; se math/README for opsætningsoplysninger.",
+	"math_output_error": "Kan ikke gemme matematikbillede på filsystem.",
+	"math_sample": "Indsæt formel her (LaTeX)",
+	"math_syntax_error": "syntaksfejl",
+	"math_timeout": "$1 timeout fra \"$2\".",
+	"math_tip": "Matematisk formel (LaTeX)",
+	"math_unknown_error": "ukendt fejl",
+	"math_unknown_function": "ukendt funktion '$1'",
+	"mw_math_latexml": "LaTeXML (eksperimentel; anvender MathML)",
+	"mw_math_latexml_jax": "LaTeXML med client-side MathJax (eksperimentel; bruger MathML)",
+	"mw_math_mathjax": "Client-side MathJax (langsom; forbedrer præstationen på nogle browsere og værktøjer)",
+	"mw_math_mathml": "MathML med SVG- eller PNG-fallback (anbefalet til moderne browsere og værktøjer)",
+	"mw_math_png": "PNG-billeder",
+	"mw_math_source": "LaTeX-source (for tekstbrowsere)",
+	"prefs-math": "Matematiske formler",
+	"datatypes-type-math": "Matematisk udtryk",
+	"wikibase-listdatatypes-math-head": "Matematisk udtryk"
+}
diff --git a/i18n/de.json b/i18n/de.json
new file mode 100644
index 0000000..592593f
--- /dev/null
+++ b/i18n/de.json
@@ -0,0 +1,80 @@
+{
+	"@metadata": {
+		"authors": [
+			"Kghbln",
+			"Metalhead64",
+			"Revolus",
+			"Umherirrender"
+		]
+	},
+	"math-desc": "Ergänzt das Tag <code><math></code> zum Darstellen mathematischer Formeln",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Schnelle Bearbeitung",
+	"math-visualeditor-mwmathdialog-title": "Formel",
+	"math-visualeditor-mwmathdialog-card-formula": "Formel",
+	"math-visualeditor-mwmathdialog-card-options": "Optionen",
+	"math-visualeditor-mwmathinspector-display": "Anzeige",
+	"math-visualeditor-mwmathinspector-display-block": "Block",
+	"math-visualeditor-mwmathinspector-display-default": "Standard",
+	"math-visualeditor-mwmathinspector-display-inline": "Inline",
+	"math-visualeditor-mwmathinspector-id": "Linkkennung (optional)",
+	"math-visualeditor-mwmathinspector-title": "Formel",
+	"math-visualeditor-symbol-group-accents": "Akzente und diakritische Zeichen",
+	"math-visualeditor-symbol-group-arrows": "Pfeile",
+	"math-visualeditor-symbol-group-bounds": "Schranken",
+	"math-visualeditor-symbol-group-derivatives": "Differentiale und Ableitungen",
+	"math-visualeditor-symbol-group-functions": "Standardnumerische Funktionen",
+	"math-visualeditor-symbol-group-geometry": "Geometrisch",
+	"math-visualeditor-symbol-group-greek": "Griechisches Alphabet",
+	"math-visualeditor-symbol-group-hebrew": "Hebräisches Alphabet",
+	"math-visualeditor-symbol-group-large": "Große Entwürfe",
+	"math-visualeditor-symbol-group-logic": "Logik",
+	"math-visualeditor-symbol-group-matrices": "Matrizen",
+	"math-visualeditor-symbol-group-modular": "Modulare Arithmetik",
+	"math-visualeditor-symbol-group-operators": "Operatoren",
+	"math-visualeditor-symbol-group-projections": "Projektionen",
+	"math-visualeditor-symbol-group-parentheses": "Runde Klammern",
+	"math-visualeditor-symbol-group-relations": "Beziehungen",
+	"math-visualeditor-symbol-group-root": "Wurzeln",
+	"math-visualeditor-symbol-group-sets": "Sätze",
+	"math-visualeditor-symbol-group-spacing": "Abstände",
+	"math-visualeditor-symbol-group-special": "Spezial",
+	"math-visualeditor-symbol-group-subscripts": "Subskripte, Superskripte und Integrale",
+	"math-visualeditor-symbol-group-symbols": "Symbole und Konstanten",
+	"math-visualeditor-symbol-group-typefaces": "Schriftarten",
+	"math-visualeditor-symbol-group-unsorted": "Unsortiert",
+	"math_bad_output": "Das Ausgabeverzeichnis für mathematische Formeln kann nicht angelegt oder beschrieben werden.",
+	"math_bad_tmpdir": "Das temporäre Verzeichnis für mathematische Formeln kann nicht angelegt oder beschrieben werden.",
+	"math_failure": "Fehler beim Parsen",
+	"math_image_error": "PNG-Konvertierung fehlgeschlagen. Bitte die korrekte Installation von LaTeX und dvipng überprüfen (oder dvips + gs + convert)",
+	"math_invalidjson": "$1 Serverantwort ist ungültiges JSON.",
+	"math_invalidresponse": "$1: Ungültige Antwort („$3“) von Server „$2“:",
+	"math_invalidxml": "MathML oder SVG ist ungültiges XML.",
+	"math_lexing_error": "Lexikalischer Fehler",
+	"math_mathoid_error": "Konvertierungsfehler. Der Server („$1“) hat berichtet: „$2“",
+	"math_notexvc": "Das <code>texvc</code>-Programm wurde nicht gefunden. Bitte zur Konfiguration die Hinweise in der Datei math/README beachten.",
+	"math_output_error": "Das Formelbild kann auf dem Dateisystem nicht gespeichert werden.",
+	"math_sample": "Formel hier einfügen",
+	"math-status-introduction": "Diese Seite zeigt Informationen über {{PLURAL:$1|den aktivierten Math-Renderingsmodus|die aktivierten Math-Renderingsmodi}} an.\n\n{{PLURAL:$1|Der folgende Renderingsmodus ist|Die folgenden Renderingsmodi sind}} aktiviert.",
+	"math_syntax_error": "Syntaxfehler",
+	"math_timeout": "$1 Zeitüberschreitung von „$2“",
+	"math-test-end": "Backend-Tests für den Renderingsmodus ''$1'' abgeschlossen.",
+	"math-test-fail": "Test ''$1'' <span style=\"color:red\">fehlgeschlagen</span>.",
+	"math-test-start": "Führt Backend-Tests für den Renderingsmodus ''$1'' aus.",
+	"math-test-success": "Test ''$1'' <span style=\"color:green\">erfolgreich</span>.",
+	"math-test-contains-diff": "Die zurückgegebene Zeichenfolge $1 enthält nicht die erwartete Zeichenfolge $2.",
+	"math-test-equals-diff": "Die zurückgegebene Zeichenfolge $1 weicht von der erwarteten Zeichenfolge $2 ab.",
+	"math_tip": "Mathematische Formel (LaTeX)",
+	"math_unknown_error": "Unbekannter Fehler",
+	"math_unknown_function": "Unbekannte Funktion „$1“",
+	"mw_math_latexml": "LaTeXML (experimentell; verwendet MathML)",
+	"mw_math_latexml_jax": "LaTeXML mit clientseitigem MathJax (experimentell; verwendet MathML)",
+	"mw_math_mathjax": "Clientseitiges MathJax (langsam, verbessert das Rendering auf einigen Browsern und Barrierefreiheitswerkzeugen)",
+	"mw_math_mathml": "MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge)",
+	"mw_math_png": "PNG-Bilder",
+	"mw_math_source": "LaTeX-Quelle (für Textbrowser)",
+	"prefs-math": "Mathematische Formeln",
+	"mathstatus": "Math-Status",
+	"datatypes-type-math": "Mathematischer Ausdruck",
+	"wikibase-listdatatypes-math-head": "Mathematischer Ausdruck",
+	"wikibase-listdatatypes-math-body": "Literales Datenfeld für mathematische Ausdrücke, Formeln, Gleichungen oder ähnliches, ausgedrückt in einer LaTeX-Variante."
+}
diff --git a/i18n/diq.json b/i18n/diq.json
new file mode 100644
index 0000000..86bd87f
--- /dev/null
+++ b/i18n/diq.json
@@ -0,0 +1,30 @@
+{
+	"@metadata": {
+		"authors": [
+			"Aspar",
+			"Erdemaslancan",
+			"Gorizon",
+			"Mirzali",
+			"Xoser",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-symbol-group-logic": "Qeyd",
+	"math-visualeditor-symbol-group-special": "Xususi",
+	"math-visualeditor-symbol-group-unsorted": "Nikılmiya",
+	"math_bad_output": "Nieşkeno binusi ya zi direktorê mathi ye outputi virazi",
+	"math_bad_tmpdir": "Nieşkeno binusi ya zi direktorê mathi virazi",
+	"math_failure": "Parse de ğeleti biyo",
+	"math_image_error": "Açarnayışê PNG nêbı;programan de latex, dvips u gs ra rast barbıyayışi ra emel bê u karfinayışê açarnayışi dest pêkerê.",
+	"math_lexing_error": "ğeleto lexing",
+	"math_notexvc": "xebetnayekarê <code>texvc</code>'i vindbiyo\nqey 'eyar kerdışi bıewnê math/README'yi.",
+	"math_sample": "Formula itiya ra bınus",
+	"math_syntax_error": "ğeleto sintaks",
+	"math_tip": "Formulayo Matematik (LaTeX)",
+	"math_unknown_error": "ğeleti nizanyeno",
+	"math_unknown_function": "fonksiyon nizanyeno",
+	"mw_math_mathml": "Eka mumkin, MathML (deneme)",
+	"mw_math_png": "Herzeman PNG render bike",
+	"mw_math_source": "Çımeyê LaTeXi (seba geyroğê metınan rê)",
+	"prefs-math": "Matematigane simgey"
+}
diff --git a/i18n/dsb.json b/i18n/dsb.json
new file mode 100644
index 0000000..f156765
--- /dev/null
+++ b/i18n/dsb.json
@@ -0,0 +1,28 @@
+{
+	"@metadata": {
+		"authors": [
+			"Michawiki",
+			"Nepl1",
+			"Pe7er",
+			"Qualia",
+			"Macofe"
+		]
+	},
+	"math-desc": "Dodawa matematiske formule mjazy toflickoma <code><math></code> ... <code></math></code>",
+	"math_bad_output": "Njejo móžno celowy zapisk za matematiske formule załožyś resp. do njogo pisaś.",
+	"math_bad_tmpdir": "Njejo móžno temporarny zapisk za matematiske formule załožyś resp. do njogo pisaś.",
+	"math_failure": "Zmólka",
+	"math_image_error": "PNG-konwertěrowanje njejo se raźiło; pśekontrolěruj korektnu instalaciju latex a dvipng (abo dvips + gs + konwertěruj)",
+	"math_lexing_error": "leksikaliska zmólka",
+	"math_notexvc": "Program <code>texvc</code> felujo. Pšosym glědaj do math/README.",
+	"math_sample": "Zapódaj how formulu",
+	"math_syntax_error": "syntaktiska zmólka",
+	"math_tip": "Matematiska formula (LaTeX)",
+	"math_unknown_error": "njeznata zmólka",
+	"math_unknown_function": "njeznata funkcija \"$1\"",
+	"mw_math_mathjax": "MathJax (eksperimentelny)",
+	"mw_math_mathml": "Jo-lic móžno - MathML (eksperimentelny)",
+	"mw_math_png": "Pśecej ako PNG zwobrazniś.",
+	"mw_math_source": "Ako LaTeX wóstajiś (za tekstowe browsery)",
+	"prefs-math": "Math"
+}
diff --git a/i18n/dtp.json b/i18n/dtp.json
new file mode 100644
index 0000000..9374aec
--- /dev/null
+++ b/i18n/dtp.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"FRANCIS5091"
+		]
+	},
+	"math_sample": "Posuango puralanon do hiti",
+	"math_tip": "Karalano monintaban (LaTeX)"
+}
diff --git a/i18n/dz.json b/i18n/dz.json
new file mode 100644
index 0000000..35a7ae5
--- /dev/null
+++ b/i18n/dz.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Tenzin"
+		]
+	},
+	"math_sample": "ནཱ་ལུ་ ཐབས་རྟགས་བཙུགས།",
+	"math_tip": "ཨང་རྩིས་ཐབས་རྟགས་ (LaTeX)"
+}
diff --git a/i18n/egl.json b/i18n/egl.json
new file mode 100644
index 0000000..4190639
--- /dev/null
+++ b/i18n/egl.json
@@ -0,0 +1,7 @@
+{
+	"@metadata": {
+		"authors": [
+			"Lévi"
+		]
+	}
+}
diff --git a/i18n/el.json b/i18n/el.json
new file mode 100644
index 0000000..59f7971
--- /dev/null
+++ b/i18n/el.json
@@ -0,0 +1,27 @@
+{
+	"@metadata": {
+		"authors": [
+			"Badseed",
+			"Geraki",
+			"Indoril",
+			"Evropi",
+			"Glavkos",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Δεν είναι δυνατή η δημιουργία  μαθηματικών δεδομένων (ή η εγγραφή σε κατάλογο εξόδου)",
+	"math_bad_tmpdir": "Δεν είναι δυνατή η δημιουργία μαθηματικών δεδομένων (ή η εγγραφή σε προσωρινό κατάλογο)",
+	"math_failure": "Δεν μπόρεσε να γίνει ανάλυση του όρου.",
+	"math_image_error": "Η μετατροπή σε PNG απέτυχε. Παρακαλούμε ελέγξτε ότι έχουν εγκατασταθεί σωστά τα latex  και dvipng (ή dvips + gs + convert)",
+	"math_lexing_error": "Σφάλμα στην λεξική ανάλυση",
+	"math_notexvc": "Λείπει το εκτελέσιμο <code>texvc</code> -παρακαλούμε συμβουλευτείτε το math/README για να ρυθμίσετε τις παραμέτρους.",
+	"math_sample": "Εισαγωγή τύπου εδώ",
+	"math_syntax_error": "Λάθος σύνταξης",
+	"math_tip": "Μαθηματικός τύπος (LaTeX)",
+	"math_unknown_error": "άγνωστο σφάλμα",
+	"math_unknown_function": "άγνωστη συνάρτηση \"$1\"",
+	"mw_math_mathml": "MathML με SVG ή μετάπτωση σε PNG (συνιστάται για σύγχρονους browsers και εργαλεία πρόσβασης)",
+	"mw_math_png": "Εικόνες PNG",
+	"mw_math_source": "Πηγή LaTeX (για text browsers)",
+	"prefs-math": "Απόδοση μαθηματικών"
+}
diff --git a/i18n/eml.json b/i18n/eml.json
new file mode 100644
index 0000000..f9e7379
--- /dev/null
+++ b/i18n/eml.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Gloria sah"
+		]
+	},
+	"datatypes-type-math": "Espresiòun matemàtica",
+	"wikibase-listdatatypes-math-head": "Espresiòun matemàtica"
+}
diff --git a/i18n/en.json b/i18n/en.json
new file mode 100644
index 0000000..7066b3c
--- /dev/null
+++ b/i18n/en.json
@@ -0,0 +1,90 @@
+{
+	"@metadata": {
+		"authors": [
+			"Brion Vibber",
+			"Chad Horohoe",
+			"Ed Sanders",
+			"Frédéric Wang",
+			"Gabriel Wicke",
+			"Jack Phoenix",
+			"James D. Forrester",
+			"Matthew Flaschen",
+			"Moritz Schubotz",
+			"Raimond Spekking",
+			"Roan Kattouw",
+			"Sam Reed",
+			"Siebrand Mazeland",
+			"Yuki Shira"
+		]
+	},
+	"math-desc": "Render mathematical formulas between <code><math></code> ... <code></math></code> tags",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Quick edit",
+	"math-visualeditor-mwmathdialog-title": "Formula",
+	"math-visualeditor-mwmathdialog-card-formula": "Formula",
+	"math-visualeditor-mwmathdialog-card-options": "Options",
+	"math-visualeditor-mwmathinspector-display": "Display",
+	"math-visualeditor-mwmathinspector-display-block": "Block",
+	"math-visualeditor-mwmathinspector-display-default": "Default",
+	"math-visualeditor-mwmathinspector-display-inline": "Inline",
+	"math-visualeditor-mwmathinspector-id": "Link ID (optional)",
+	"math-visualeditor-mwmathinspector-title": "Formula",
+	"math-visualeditor-symbol-group-accents": "Accents and diacritics",
+	"math-visualeditor-symbol-group-arrows": "Arrows",
+	"math-visualeditor-symbol-group-bounds": "Bounds",
+	"math-visualeditor-symbol-group-derivatives": "Differentials and derivatives",
+	"math-visualeditor-symbol-group-functions": "Standard numerical functions",
+	"math-visualeditor-symbol-group-geometry": "Geometric",
+	"math-visualeditor-symbol-group-greek": "Greek alphabet",
+	"math-visualeditor-symbol-group-hebrew": "Hebrew alphabet",
+	"math-visualeditor-symbol-group-large": "Large layouts",
+	"math-visualeditor-symbol-group-logic": "Logic",
+	"math-visualeditor-symbol-group-matrices": "Matrices",
+	"math-visualeditor-symbol-group-modular": "Modular arithmetic",
+	"math-visualeditor-symbol-group-operators": "Operators",
+	"math-visualeditor-symbol-group-projections": "Projections",
+	"math-visualeditor-symbol-group-parentheses": "Parentheses",
+	"math-visualeditor-symbol-group-relations": "Relations",
+	"math-visualeditor-symbol-group-root": "Radicals",
+	"math-visualeditor-symbol-group-sets": "Sets",
+	"math-visualeditor-symbol-group-spacing": "Spacing",
+	"math-visualeditor-symbol-group-special": "Special",
+	"math-visualeditor-symbol-group-subscripts": "Subscripts, superscripts and integrals",
+	"math-visualeditor-symbol-group-symbols": "Symbols and constants",
+	"math-visualeditor-symbol-group-typefaces": "Typefaces",
+	"math-visualeditor-symbol-group-unsorted": "Unsorted",
+	"math_bad_output": "Cannot write to or create math output directory",
+	"math_bad_tmpdir": "Cannot write to or create math temp directory",
+	"math_failure": "Failed to parse",
+	"math_image_error": "PNG conversion failed; check for correct installation of latex and dvipng (or dvips + gs + convert)",
+	"math_invalidjson": "$1 server response is invalid JSON.",
+	"math_invalidresponse": "$1: Invalid response (\"$3\") from server \"$2\":",
+	"math_invalidxml": "MathML or SVG is invalid XML.",
+	"math_lexing_error": "lexing error",
+	"math_mathoid_error": "Conversion error. Server (\"$1\") reported: \"$2\"",
+	"math_notexvc": "Missing <code>texvc</code> executable. Please see math/README to configure.",
+	"math_output_error": "Cannot store math image on filesystem.",
+	"math_sample": "Insert formula here",
+	"math-status-introduction" : "This page displays information about the enabled math rendering {{PLURAL:$1|mode|modes}}.\n\nThe following rendering {{PLURAL:$1|mode is|modes are}} enabled:",
+	"math_syntax_error": "syntax error",
+	"math_timeout": "$1 timeout from \"$2\".",
+	"math-test-end": "Backend tests for rendering mode ''$1'' completed.",
+	"math-test-fail": "Test ''$1'' <span style=\"color:red\">failed</span>.",
+	"math-test-start": "Running backend tests for rendering mode ''$1''.",
+	"math-test-success": "Test ''$1'' <span style=\"color:green\">succeeded</span>.",
+	"math-test-contains-diff" : "Returned string $1 does not contain expected string $2.",
+	"math-test-equals-diff" : "Returned string $1 is different from expected string $2.",
+	"math_tip": "Mathematical formula (LaTeX)",
+	"math_unknown_error": "unknown error",
+	"math_unknown_function": "unknown function \"$1\"",
+	"mw_math_latexml": "LaTeXML (experimental; uses MathML)",
+	"mw_math_latexml_jax": "LaTeXML with client-side MathJax (experimental; uses MathML)",
+	"mw_math_mathjax": "Client-side MathJax (slow; improves rendering on some browsers and accessibility tools)",
+	"mw_math_mathml": "MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools)",
+	"mw_math_png": "PNG images",
+	"mw_math_source": "LaTeX source (for text browsers)",
+	"prefs-math": "Math",
+	"mathstatus": "Math status",
+	"datatypes-type-math": "Mathematical expression",
+	"wikibase-listdatatypes-math-head": "Mathematical expression",
+	"wikibase-listdatatypes-math-body": "Literal data field for mathematical expressions, formula, equations and such, expressed in a variant of LaTeX."
+}
diff --git a/i18n/eo.json b/i18n/eo.json
new file mode 100644
index 0000000..98b9e64
--- /dev/null
+++ b/i18n/eo.json
@@ -0,0 +1,32 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mihxil",
+			"Yekrats",
+			"לערי ריינהארט",
+			"KuboF",
+			"Robin van der Vliet",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathdialog-title": "Formulo",
+	"math-visualeditor-mwmathdialog-card-formula": "Formulo",
+	"math-visualeditor-mwmathdialog-card-options": "Agordoj",
+	"math-visualeditor-mwmathinspector-display-default": "Defaŭlta",
+	"math-visualeditor-mwmathinspector-title": "Formulo",
+	"math_bad_output": "Ne povas enskribi aŭ krei matematikan eligan dosierujon",
+	"math_bad_tmpdir": "Ne povas skribi al aŭ krei matematikian labor-dosierujon.",
+	"math_failure": "malsukcesis analizi formulon",
+	"math_image_error": "Konverto al PNG malsukcesis; kontrolu ĉu estas ĝuste instalitaj latex kaj dvipng (aŭ dvips + gs + convert)",
+	"math_lexing_error": "leksika analizo malsukcesis",
+	"math_notexvc": "Programo <code>texvc</code> ne ekzistas; bonvolu vidi math/README por konfiguri.",
+	"math_sample": "Enmeti formulon ĉi tien",
+	"math_syntax_error": "sintakseraro",
+	"math_tip": "Matematika formulo (LaTeX)",
+	"math_unknown_error": "nekonata eraro",
+	"math_unknown_function": "nekonata funkcio \"$1\"",
+	"mw_math_mathml": "MathML, alternative SVG aŭ PNG (rekomendata por modernaj foliumiloj kaj alirebleco-iloj)",
+	"mw_math_png": "PNG-bildoj",
+	"mw_math_source": "LaTeX-fonto (por tekstfoliumiloj)",
+	"prefs-math": "Matematikaĵoj"
+}
diff --git a/i18n/es.json b/i18n/es.json
new file mode 100644
index 0000000..95d2f36
--- /dev/null
+++ b/i18n/es.json
@@ -0,0 +1,82 @@
+{
+	"@metadata": {
+		"authors": [
+			"Armando-Martin",
+			"Ciencia Al Poder",
+			"Dferg",
+			"Fitoschido",
+			"MarcoAurelio",
+			"Platonides",
+			"Translationista",
+			"Macofe",
+			"Amitie 10g",
+			"Ryo567",
+			"Syum90"
+		]
+	},
+	"math-desc": "Representa fórmulas matemáticas entre las etiquetas <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Edición rápida",
+	"math-visualeditor-mwmathdialog-title": "Fórmula",
+	"math-visualeditor-mwmathdialog-card-formula": "Fórmula",
+	"math-visualeditor-mwmathdialog-card-options": "Opciones",
+	"math-visualeditor-mwmathinspector-display": "Mostrar",
+	"math-visualeditor-mwmathinspector-display-block": "Bloquear",
+	"math-visualeditor-mwmathinspector-display-default": "Predeterminado",
+	"math-visualeditor-mwmathinspector-display-inline": "En línea",
+	"math-visualeditor-mwmathinspector-id": "ID de enlace (opcional)",
+	"math-visualeditor-mwmathinspector-title": "Fórmula",
+	"math-visualeditor-symbol-group-accents": "Acentos y diacríticos",
+	"math-visualeditor-symbol-group-arrows": "Flechas",
+	"math-visualeditor-symbol-group-bounds": "Límites",
+	"math-visualeditor-symbol-group-derivatives": "Diferenciales y derivadas",
+	"math-visualeditor-symbol-group-functions": "Funciones numéricas estándares",
+	"math-visualeditor-symbol-group-geometry": "Geométricas",
+	"math-visualeditor-symbol-group-greek": "Alfabeto griego",
+	"math-visualeditor-symbol-group-hebrew": "Alfabeto hebreo",
+	"math-visualeditor-symbol-group-large": "Diseños grandes",
+	"math-visualeditor-symbol-group-logic": "Lógica",
+	"math-visualeditor-symbol-group-matrices": "Matrices",
+	"math-visualeditor-symbol-group-modular": "Aritmética modular",
+	"math-visualeditor-symbol-group-operators": "Operadores",
+	"math-visualeditor-symbol-group-projections": "Proyecciones",
+	"math-visualeditor-symbol-group-parentheses": "Paréntesis",
+	"math-visualeditor-symbol-group-relations": "Relaciones",
+	"math-visualeditor-symbol-group-root": "Raíces",
+	"math-visualeditor-symbol-group-sets": "Conjuntos",
+	"math-visualeditor-symbol-group-spacing": "Espaciado",
+	"math-visualeditor-symbol-group-special": "Especial",
+	"math-visualeditor-symbol-group-subscripts": "Subíndices, superíndices e integrales",
+	"math-visualeditor-symbol-group-symbols": "Símbolos y constantes",
+	"math-visualeditor-symbol-group-unsorted": "Miscelánea",
+	"math_bad_output": "No se puede escribir o crear el directorio de salida de <em>math</em>",
+	"math_bad_tmpdir": "No se puede escribir o crear el directorio temporal de <em>math</em>",
+	"math_failure": "Error al representar",
+	"math_image_error": "La conversión a PNG ha fallado; comprueba que latex, dvips, gs, y convert estén instalados correctamente",
+	"math_invalidjson": "La respuesta $1 del servidor no es JSON válido.",
+	"math_invalidresponse": "$1: respuesta no válida («$3») del servidor «$2»:",
+	"math_invalidxml": "MathML o SVG no es XML válido.",
+	"math_lexing_error": "error léxico",
+	"math_mathoid_error": "Error de conversión. El servidor (\"$1\") informó: \"$2\"",
+	"math_notexvc": "Falta el ejecutable <code>texvc</code>. Véase math/README para configurarlo.",
+	"math_output_error": "No se puede almacenar la imagen matemática en el sistema de archivos.",
+	"math_sample": "Escribir la fórmula aquí",
+	"math-status-introduction": "Esta página muestra información sobre los modos de representación matemáticas activados.\n\n{{PLURAL:$1|El siguiente modo de representación está activado|Los siguientes modos de representación están activados}}:",
+	"math_syntax_error": "error de sintaxis",
+	"math_timeout": "El tiempo de espera de $1 en «$2» se agotó.",
+	"math-test-fail": "<span style=\"color:red\">Falló</span> la prueba ''$1''.",
+	"math-test-success": "Se <span style=\"color:green\">superó</span> la prueba ''$1''.",
+	"math-test-contains-diff": "La cadena devuelta $1 no contiene a la cadena esperada $2",
+	"math-test-equals-diff": "La cadena devuelta $1 es diferente de la esperada $2",
+	"math_tip": "Fórmula matemática (LaTeX)",
+	"math_unknown_error": "error desconocido",
+	"math_unknown_function": "función desconocida «$1»",
+	"mw_math_latexml": "LaTeXML (experimental, usa MathML)",
+	"mw_math_mathjax": "MathJax del lado del cliente (lento; mejora el dibujado en algunos navegadores y herramientas de accesibilidad)",
+	"mw_math_mathml": "MathML con SVG o PNG como alternativa (recomendado para navegadores modernos y herramientas de accesibilidad)",
+	"mw_math_png": "Imágenes PNG",
+	"mw_math_source": "Código LaTeX (para navegadores de texto)",
+	"prefs-math": "Matemáticas",
+	"mathstatus": "Estado de matemáticas",
+	"datatypes-type-math": "Expresión matemática",
+	"wikibase-listdatatypes-math-head": "Expresión matemática"
+}
diff --git a/i18n/et.json b/i18n/et.json
new file mode 100644
index 0000000..c1aa68a
--- /dev/null
+++ b/i18n/et.json
@@ -0,0 +1,74 @@
+{
+	"@metadata": {
+		"authors": [
+			"KaidoKikkas",
+			"Pikne",
+			"WikedKentaur",
+			"Macofe"
+		]
+	},
+	"math-desc": "Viimistleb siltide <code><math></code> ... <code></math></code> vahel olevad matemaatilised valemid.",
+	"math-visualeditor-mwmathdialog-title": "Valem",
+	"math-visualeditor-mwmathdialog-card-formula": "Valem",
+	"math-visualeditor-mwmathdialog-card-options": "Suvandid",
+	"math-visualeditor-mwmathinspector-display": "Kuvamine",
+	"math-visualeditor-mwmathinspector-display-block": "Plokk",
+	"math-visualeditor-mwmathinspector-display-default": "Vaikimisi",
+	"math-visualeditor-mwmathinspector-display-inline": "Tekstisisene",
+	"math-visualeditor-mwmathinspector-id": "Ankur (valikuline)",
+	"math-visualeditor-mwmathinspector-title": "Valem",
+	"math-visualeditor-symbol-group-accents": "Rõhumärgid ja muud diakriitikud",
+	"math-visualeditor-symbol-group-arrows": "Nooled",
+	"math-visualeditor-symbol-group-bounds": "Piirid",
+	"math-visualeditor-symbol-group-derivatives": "Diferentsiaalid ja tuletised",
+	"math-visualeditor-symbol-group-functions": "Arvufunktsioonid",
+	"math-visualeditor-symbol-group-geometry": "Geomeetria",
+	"math-visualeditor-symbol-group-greek": "Kreeka tähestik",
+	"math-visualeditor-symbol-group-hebrew": "Heebrea tähestik",
+	"math-visualeditor-symbol-group-large": "Suured küljendid",
+	"math-visualeditor-symbol-group-logic": "Loogika",
+	"math-visualeditor-symbol-group-matrices": "Maatriksid",
+	"math-visualeditor-symbol-group-modular": "Modulaararitmeetika",
+	"math-visualeditor-symbol-group-operators": "Tehtemärgid",
+	"math-visualeditor-symbol-group-projections": "Projektsioonid",
+	"math-visualeditor-symbol-group-parentheses": "Sulud",
+	"math-visualeditor-symbol-group-relations": "Seosed",
+	"math-visualeditor-symbol-group-root": "Juuremärgid",
+	"math-visualeditor-symbol-group-sets": "Hulgad",
+	"math-visualeditor-symbol-group-spacing": "Sõrendus",
+	"math-visualeditor-symbol-group-special": "Erimärgid",
+	"math-visualeditor-symbol-group-subscripts": "Allindeksid, ülaindeksid ja integraalid",
+	"math-visualeditor-symbol-group-symbols": "Sümbolid ja konstandid",
+	"math-visualeditor-symbol-group-typefaces": "Kirjatüübid",
+	"math-visualeditor-symbol-group-unsorted": "Sortimata",
+	"math_bad_output": "Matemaatika-väljundkataloogi loomine või sinna kirjutamine ebaõnnestus",
+	"math_bad_tmpdir": "Ajutise matemaatikakataloogi loomine või sinna kirjutamine ebaõnnestus",
+	"math_failure": "Liigendamine ebaõnnestus",
+	"math_image_error": "PNG konvertimine ebaõnnestus; kontrolli, kas latex ja dvipng (või dvips, gs ja convert) on õigesti installitud.",
+	"math_invalidjson": "$1-serveri vastus on vigane JSON.",
+	"math_invalidresponse": "$1: Vigane vastus (\"$3\") serverist \"$2\":",
+	"math_invalidxml": "MathML või SVG on vigane XML.",
+	"math_lexing_error": "Väljalugemisviga",
+	"math_mathoid_error": "Teisendustõrge. Serveri (\"$1\") aruanne: \"$2\"",
+	"math_notexvc": "<code>Texvc</code>-rakendus puudub. Häälestamiseks vaata palun faili math/README.",
+	"math_output_error": "Valemipilti ei saa failisüsteemis talletada.",
+	"math_sample": "Sisesta valem siia",
+	"math-status-introduction": "Siin leheküljel näidatakse teavet matemaatiliste valemite lubatud viimistlusrežiimide kohta.\n\nLubatud on {{PLURAL:$1|järgmine viimistlusrežiim|järgmised viimistlusrežiimid}}:",
+	"math_syntax_error": "Süntaksiviga",
+	"math_timeout": "Viimistlustüübi $1 ajalõpp asukohas \"$2\".",
+	"math-test-end": "Tagakomponendi katsetused täidetud järgmise viimistlusrežiimi jaoks: ''$1''.",
+	"math-test-fail": "<span style=\"color:red\">Ebaõnnestunud</span> katse: ''$1''.",
+	"math-test-start": "Tagakomponendi katsetuste täitmine järgmise viimistlusrežiimi jaoks: ''$1''.",
+	"math-test-success": "<span style=\"color:green\">Edukas</span> katse: ''$1''.",
+	"math-test-contains-diff": "Tagastatud sõne $1 ei sisalda oodatud sõnet $2.",
+	"math-test-equals-diff": "Tagastatud sõne $1 erineb oodatud sõnest $2.",
+	"math_tip": "Matemaatiline valem (LaTeX)",
+	"math_unknown_error": "Tundmatu viga",
+	"math_unknown_function": "tundmatu funktsioon '$1'",
+	"mw_math_mathjax": "Kliendipoolne MathJax (aeglane, parem viimistlus mõne veebilehitseja ja hõlbustusriista puhul)",
+	"mw_math_mathml": "MathML SVG- või PNG-taanderežiimiga (soovitatav uuemate veebilehitsejate ja hõlbustusriistade puhul)",
+	"mw_math_png": "PNG-pildid",
+	"mw_math_source": "LaTeX-lähtetekst (tekstibrauserite puhul)",
+	"prefs-math": "Valemite näitamine",
+	"mathstatus": "Matemaatiliste valemite olek"
+}
diff --git a/i18n/eu.json b/i18n/eu.json
new file mode 100644
index 0000000..1f23260
--- /dev/null
+++ b/i18n/eu.json
@@ -0,0 +1,49 @@
+{
+	"@metadata": {
+		"authors": [
+			"An13sa",
+			"Bengoa",
+			"Subi",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathdialog-title": "Formula",
+	"math-visualeditor-mwmathdialog-card-formula": "Formula",
+	"math-visualeditor-mwmathdialog-card-options": "Aukerak",
+	"math-visualeditor-mwmathinspector-display": "Bistaratu",
+	"math-visualeditor-mwmathinspector-display-block": "Blokeatu",
+	"math-visualeditor-mwmathinspector-title": "Formula",
+	"math-visualeditor-symbol-group-accents": "Azentuak eta diakritikoak",
+	"math-visualeditor-symbol-group-arrows": "Geziak",
+	"math-visualeditor-symbol-group-derivatives": "Diferentzialak eta deribatuak",
+	"math-visualeditor-symbol-group-functions": "Zenbakizko funtzio estandarrak",
+	"math-visualeditor-symbol-group-geometry": "Geometrikoak",
+	"math-visualeditor-symbol-group-greek": "Alfabeto grekoa",
+	"math-visualeditor-symbol-group-hebrew": "Hebrear alfabetoa",
+	"math-visualeditor-symbol-group-logic": "Logikoak",
+	"math-visualeditor-symbol-group-matrices": "Matrizeak",
+	"math-visualeditor-symbol-group-operators": "Eragileak",
+	"math-visualeditor-symbol-group-projections": "Proiekzioak",
+	"math-visualeditor-symbol-group-parentheses": "Parentesiak",
+	"math-visualeditor-symbol-group-root": "Erro-ikurrak",
+	"math-visualeditor-symbol-group-special": "Bereziak",
+	"math-visualeditor-symbol-group-subscripts": "Azpiindizeak, goi-indizeak eta integralak",
+	"math-visualeditor-symbol-group-symbols": "Ikurrak eta konstanteak",
+	"math_bad_output": "Ezin da math direktorioa sortu edo bertan idatzi",
+	"math_bad_tmpdir": "Ezin da math direktorio tenporala sortu edo bertan idatzi",
+	"math_failure": "Interpretazio errorea",
+	"math_image_error": "PNG bilakatze errorea; egiaztatu latex eta dvipng (edo dvips + gs + convert) ongi instalatuta dauden begiratu",
+	"math_lexing_error": "errore lexikoa",
+	"math_notexvc": "<code>texvc</code> exekutagarria falta da; mesedez, ikus math/README konfiguratzeko.",
+	"math_output_error": "Formula matematikoa duen irudia ezin da fitxategi-sisteman gorde.",
+	"math_sample": "Formula hemen idatzi",
+	"math_syntax_error": "sintaxi errorea",
+	"math_tip": "Formula matematikoa (LaTeX)",
+	"math_unknown_error": "errore ezezaguna",
+	"math_unknown_function": "\"$1\" funtzio ezezaguna",
+	"mw_math_latexml": "LaTeXML (esperimentala, MathML erabiltzen du)",
+	"mw_math_mathml": "MathML posible bada (proba fasean)",
+	"mw_math_png": "PNG irudiak",
+	"mw_math_source": "LaTeX kodea (testu nabigatzaileentzako)",
+	"prefs-math": "Formulak"
+}
diff --git a/i18n/ext.json b/i18n/ext.json
new file mode 100644
index 0000000..c0a0449
--- /dev/null
+++ b/i18n/ext.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Better",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Nu es posibri escribil u crial el diretoriu e salia e <em>math</em>",
+	"math_bad_tmpdir": "Nu es posibri escribil u crial el diretoriu temporal de <em>math</em>",
+	"math_failure": "Nu es posibri entendel",
+	"math_image_error": "Marru convirtiendu a PNG; compreba que latex, dvips, gs, i convert estén corretamenti istalaus",
+	"math_lexing_error": "marru lésicu",
+	"math_notexvc": "Farta el ehecutabri e <strong><code>texvc</code></strong>; pol favol, lei <em>math/README</em> pa configuralu.",
+	"math_sample": "Añiil la hórmula aquí",
+	"math_syntax_error": "marru ena sintasis",
+	"math_tip": "Hórmula matemática (LaTeX)",
+	"math_unknown_error": "marru andarriu",
+	"math_unknown_function": "hunción andarria",
+	"mw_math_mathml": "MathML si es posibri (esperimental)",
+	"mw_math_png": "Renderiçal sempri PNG",
+	"mw_math_source": "Quealu cumu LaTeX (pa escrucaoris de testu)",
+	"prefs-math": "Hórmulas"
+}
diff --git a/i18n/fa.json b/i18n/fa.json
new file mode 100644
index 0000000..699bd65
--- /dev/null
+++ b/i18n/fa.json
@@ -0,0 +1,47 @@
+{
+	"@metadata": {
+		"authors": [
+			"Armin1392",
+			"Ebraminio",
+			"Huji",
+			"Omidh",
+			"ZxxZxxZ",
+			"Reza1615",
+			"Alirezaaa",
+			"Mehran",
+			"Mjbmr",
+			"Macofe"
+		]
+	},
+	"math-desc": "فرمول‌های ریاضی میان برچسب‌های <code><math></code> ... <code></math></code> را رندر می‌کند",
+	"math-visualeditor-mwmathinspector-display": "نمایش",
+	"math-visualeditor-mwmathinspector-display-block": "بستن",
+	"math-visualeditor-mwmathinspector-display-default": "پیش‌فرض",
+	"math-visualeditor-mwmathinspector-display-inline": "درخط",
+	"math-visualeditor-mwmathinspector-id": "شناسه پیوند (اختیاری)",
+	"math-visualeditor-mwmathinspector-title": "فرمول",
+	"math_bad_output": "امکان ایجاد یا نوشتن اطلاعات در پوشه خروجی (output) ریاضی وجود ندارد.",
+	"math_bad_tmpdir": "امکان ایجاد یا نوشتن اطلاعات در پوشه موقت (temp) ریاضی وجود ندارد.",
+	"math_failure": "شکست در تجزیه",
+	"math_image_error": "تبدیل به PNG شکست خورد؛ از نصب درست لاتکس و dvipng (یا dvips و gs و convert) اطمینان حاصل کنید",
+	"math_invalidjson": "پاسخ سرور $1 جی‌سن نامعتبر است.",
+	"math_invalidresponse": "پاسخ نامعتبر $1 (\"$3\") از سرور \"$2\":",
+	"math_invalidxml": "MathML یا SVG اکس‌ام‌ال نامعتبر است.",
+	"math_lexing_error": "خطای lexing",
+	"math_mathoid_error": "خطای تبدیل. سرور («$1») گزارش داد: «$2»",
+	"math_notexvc": "برنامهٔ اجرایی <code>texvc</code> موجود نیست. برای اطلاعات بیشتر به <span dir=ltr>math/README</span> مراجعه کنید.",
+	"math_output_error": "نمی‌تواند عکس ریاضی را در سامانه‌های پرونده ذخیره کند.",
+	"math_sample": "درج فرمول در اینجا",
+	"math_syntax_error": "خطای نحوی",
+	"math_timeout": "$1 زمان از دست رفتن از «$2»",
+	"math_tip": "فرمول ریاضی (LaTeX)",
+	"math_unknown_error": "خطای ناشناخته",
+	"math_unknown_function": "تابع ناشناختهٔ '$1'",
+	"mw_math_latexml": "لته ایکس‌ام ال (تجربی؛ از مت‌ ام‌ال استفاده می‌کند)",
+	"mw_math_mathjax": "MathJax (آزمایشی)",
+	"mw_math_mathml": "MathML همراه SVG یا PNG جایگزین (آزمایشی)",
+	"mw_math_png": "تصاویر PNG",
+	"mw_math_source": "در قالب LaTeX باقی بماند (برای مرورگرهای متنی)",
+	"prefs-math": "نمایش ریاضیات",
+	"mathstatus": "وضعیت ریاضی"
+}
diff --git a/i18n/fi.json b/i18n/fi.json
new file mode 100644
index 0000000..b98421e
--- /dev/null
+++ b/i18n/fi.json
@@ -0,0 +1,32 @@
+{
+	"@metadata": {
+		"authors": [
+			"Crt",
+			"Nike",
+			"Samoasambia",
+			"VezonThunder",
+			"Wix",
+			"Stryn",
+			"Macofe"
+		]
+	},
+	"math-desc": "Esittää matemaattiset kaavat tunnisteiden <code><math></code> ... <code></math></code> välillä",
+	"math-visualeditor-mwmathinspector-title": "Kaava",
+	"math_bad_output": "Matematiikan tulostehakemistoon kirjoittaminen tai tiedostonluonti ei onnistu",
+	"math_bad_tmpdir": "Matematiikan kirjoittaminen väliaikaishakemistoon tai tiedostonluonti ei onnistu",
+	"math_failure": "Jäsentäminen epäonnistui",
+	"math_image_error": "Muuntaminen PNG-tiedostomuotoon epäonnistui; tarkista, että latex ja dvipng (tai dvips, gs ja convert) on asennettu oikein.",
+	"math_lexing_error": "Tulkintavirhe",
+	"math_notexvc": "Texvc-sovellus puuttuu, lue math/READMEstä asennustietoja",
+	"math_sample": "Lisää kaava tähän",
+	"math_syntax_error": "Jäsennysvirhe",
+	"math_tip": "Matemaattinen kaava (LaTeX)",
+	"math_unknown_error": "Tuntematon virhe",
+	"math_unknown_function": "tuntematon funktio '$1'",
+	"mw_math_latexml": "LaTeXML (kokeellinen; käyttää MathML:ää)",
+	"mw_math_mathjax": "MathJax (kokeellinen)",
+	"mw_math_mathml": "Näytä MathML:nä, jos mahdollista (kokeellinen)",
+	"mw_math_png": "PNG-kuvat",
+	"mw_math_source": "Näytä LaTeX-muodossa (tekstiselaimille)",
+	"prefs-math": "Matematiikka"
+}
diff --git a/i18n/fo.json b/i18n/fo.json
new file mode 100644
index 0000000..32d827f
--- /dev/null
+++ b/i18n/fo.json
@@ -0,0 +1,16 @@
+{
+	"@metadata": {
+		"authors": [
+			"Krun",
+			"Quackor",
+			"Spacebirdy",
+			"Macofe"
+		]
+	},
+	"math_sample": "Set formil her",
+	"math_tip": "Støddfrøðiligur formil (LaTeX)",
+	"mw_math_mathml": "MathML um møguligt (roynd)",
+	"mw_math_png": "Vís altíð sum PNG",
+	"mw_math_source": "Lat verða sum LaTeX (til tekstkagara)",
+	"prefs-math": "Støddfrøðiligir formlar"
+}
diff --git a/i18n/fr.json b/i18n/fr.json
new file mode 100644
index 0000000..baa28b4
--- /dev/null
+++ b/i18n/fr.json
@@ -0,0 +1,89 @@
+{
+	"@metadata": {
+		"authors": [
+			"Gomoko",
+			"Hello71",
+			"Peter17",
+			"Sherbrooke",
+			"Wyz",
+			"Yona b",
+			"Constructeur",
+			"Djiboun",
+			"Mattho69",
+			"PifyZ",
+			"Grind24",
+			"Macofe",
+			"Wladek92"
+		]
+	},
+	"math-desc": "Restitue les formules mathématiques entre les balises <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Modification rapide",
+	"math-visualeditor-mwmathdialog-title": "Formule",
+	"math-visualeditor-mwmathdialog-card-formula": "Formule",
+	"math-visualeditor-mwmathdialog-card-options": "Options",
+	"math-visualeditor-mwmathinspector-display": "Alignement",
+	"math-visualeditor-mwmathinspector-display-block": "En block",
+	"math-visualeditor-mwmathinspector-display-default": "Par défaut",
+	"math-visualeditor-mwmathinspector-display-inline": "En ligne",
+	"math-visualeditor-mwmathinspector-id": "ID du lien (facultatif)",
+	"math-visualeditor-mwmathinspector-title": "Formule",
+	"math-visualeditor-symbol-group-accents": "Accents et diacritiques",
+	"math-visualeditor-symbol-group-arrows": "Flèches",
+	"math-visualeditor-symbol-group-bounds": "Limites",
+	"math-visualeditor-symbol-group-derivatives": "Différentielles et dérivées",
+	"math-visualeditor-symbol-group-functions": "Fonctions numériques standards",
+	"math-visualeditor-symbol-group-geometry": "Géométrique",
+	"math-visualeditor-symbol-group-greek": "Alphabet grec",
+	"math-visualeditor-symbol-group-hebrew": "Alphabet hébreu",
+	"math-visualeditor-symbol-group-large": "Grandes dispositions",
+	"math-visualeditor-symbol-group-logic": "Logique",
+	"math-visualeditor-symbol-group-matrices": "Matrices",
+	"math-visualeditor-symbol-group-modular": "Arithmétique modulaire",
+	"math-visualeditor-symbol-group-operators": "Opérateurs",
+	"math-visualeditor-symbol-group-projections": "Projections",
+	"math-visualeditor-symbol-group-parentheses": "Parenthèses",
+	"math-visualeditor-symbol-group-relations": "Relations",
+	"math-visualeditor-symbol-group-root": "Racines",
+	"math-visualeditor-symbol-group-sets": "Ensembles",
+	"math-visualeditor-symbol-group-spacing": "Espaces",
+	"math-visualeditor-symbol-group-special": "Spécial",
+	"math-visualeditor-symbol-group-subscripts": "Subíndices, superíndices Et intégrales",
+	"math-visualeditor-symbol-group-symbols": "Symboles et constantes",
+	"math-visualeditor-symbol-group-typefaces": "Polices de caractère",
+	"math-visualeditor-symbol-group-unsorted": "Non trié",
+	"math_bad_output": "Impossible de créer ou d’écrire dans le répertoire math de sortie",
+	"math_bad_tmpdir": "Impossible de créer ou d’écrire dans le répertoire math temporaire",
+	"math_failure": "Échec d'analyse",
+	"math_image_error": "La conversion en PNG a échoué ; vérifiez l’installation de latex et dvipng (ou dvips + gs + convert)",
+	"math_invalidjson": "La réponse du serveur $1 est un JSON invalide",
+	"math_invalidresponse": "$1: Réponse invalide(« $3 ») du serveur « $2 » :",
+	"math_invalidxml": "MathML ou SVG n'est pas du XML valide.",
+	"math_lexing_error": "erreur lexicale",
+	"math_mathoid_error": "Erreur de conversion. Le serveur (« $1 ») a indiqué : « $2 »",
+	"math_notexvc": "L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.",
+	"math_output_error": "Ne peut pas sauvegarder les images mathématiques dans le système de fichiers.",
+	"math_sample": "Entrez votre formule ici",
+	"math-status-introduction": "Cette page affiche des informations sur {{PLURAL:$1|le mode activé|les modes activés}} de rendu mathématique.\n\n{{PLURAL:$1|Le mode de rendu suivant est activé|Les modes de rendu suivants sont activés}} :",
+	"math_syntax_error": "erreur de syntaxe",
+	"math_timeout": "$1 délais de \"$2\"",
+	"math-test-end": "Tests du serveur pour le mode rendu « $1 » terminés.",
+	"math-test-fail": "Le test \"$1\" <span style=\"color:red\">a échoué</span>.",
+	"math-test-start": "Exécution des tests de serveur pour le mode de rendu « $1 ».",
+	"math-test-success": "Le test \"$1\" <span style=\"color:green\">a réussi</span>.",
+	"math-test-contains-diff": "La chaîne renvoyée $1 ne contient pas la chaîne attendue $2.",
+	"math-test-equals-diff": "La chaîne renvoyée $1 est différente de celle attendue $2.",
+	"math_tip": "Formule mathématique (LaTeX)",
+	"math_unknown_error": "erreur indéterminée",
+	"math_unknown_function": "fonction inconnue « $1 »",
+	"mw_math_latexml": "LaTeXML (expérimental, utilise MathML)",
+	"mw_math_latexml_jax": "LaTeXML avec MathJax côté client (expérimental ; utilise MathML)",
+	"mw_math_mathjax": "MathJax côté client (lent, améliore le rendu pour certains navigateurs et outils d’accessibilité)",
+	"mw_math_mathml": "MathML avec SVG ou PNG en secours (recommandé pour les navigateurs modernes et les outils d’accessibilité)",
+	"mw_math_png": "Images PNG",
+	"mw_math_source": "Source LaTeX (pour les navigateurs en mode texte)",
+	"prefs-math": "Rendu des maths",
+	"mathstatus": "État mathématique",
+	"datatypes-type-math": "Expression mathématique",
+	"wikibase-listdatatypes-math-head": "Expression mathématique",
+	"wikibase-listdatatypes-math-body": "Champ de données littéral pour les expressions mathématiques, les formules, les équations et autres, exprimé dans une variante de LaTeX."
+}
diff --git a/i18n/frc.json b/i18n/frc.json
new file mode 100644
index 0000000..808c167
--- /dev/null
+++ b/i18n/frc.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"RoyAlcatraz"
+		]
+	},
+	"math_sample": "Mettez la formule ici",
+	"math_tip": "Formule d'arithmitique (LaTeX)"
+}
diff --git a/i18n/frp.json b/i18n/frp.json
new file mode 100644
index 0000000..2f5e71c
--- /dev/null
+++ b/i18n/frp.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"ChrisPtDe"
+		]
+	},
+	"math_bad_output": "Empossiblo d’ècrire dens ou ben de fâre lo rèpèrtouèro math de sortia",
+	"math_bad_tmpdir": "Empossiblo d’ècrire dens ou ben de fâre lo rèpèrtouèro math temporèro",
+	"math_failure": "Èrror d’analise sintaxica",
+	"math_image_error": "La convèrsion en PNG at pas reussia ; controlâd l’enstalacion de LaTeX et dvipng (ou ben dvips + gs + convert)",
+	"math_lexing_error": "èrror lèxicâla",
+	"math_notexvc": "L’ègzécutâblo « <code>texvc</code> » est entrovâblo.\nVolyéd liére « math/README » por lo configurar.",
+	"math_sample": "Buchiéd voutra formula ique",
+	"math_syntax_error": "èrror de sintaxa",
+	"math_tip": "Formula matèmatica (LaTeX)",
+	"math_unknown_error": "èrror encognua",
+	"math_unknown_function": "fonccion encognua",
+	"mw_math_mathml": "MathML se possiblo (èxpèrimentâl)",
+	"mw_math_png": "Tojorn fâre una émâge PNG",
+	"mw_math_source": "Lèssiér lo code TeX originâl",
+	"prefs-math": "Rendu de les formules matèmatiques"
+}
diff --git a/i18n/frr.json b/i18n/frr.json
new file mode 100644
index 0000000..91dc05b
--- /dev/null
+++ b/i18n/frr.json
@@ -0,0 +1,40 @@
+{
+	"@metadata": {
+		"authors": [
+			"Murma174",
+			"Pyt",
+			"Macofe"
+		]
+	},
+	"math-desc": "Wiset matemaatisk formeln tesken <code><math></code> an <code></math></code> uun.",
+	"math-visualeditor-mwmathinspector-display": "Uunwisin",
+	"math-visualeditor-mwmathinspector-display-block": "Sper",
+	"math-visualeditor-mwmathinspector-display-default": "Fööriinstelang",
+	"math-visualeditor-mwmathinspector-display-inline": "Inline",
+	"math-visualeditor-mwmathinspector-id": "Link ID (freiwalag)",
+	"math-visualeditor-mwmathinspector-title": "Formel",
+	"math_bad_output": "Det fertiaknis för matemaatisk formeln küd ei brükt of iinracht wurd.",
+	"math_bad_tmpdir": "Det föörluupen fertiaknis för matemaatisk formeln küd ei brükt of iinracht wurd.",
+	"math_failure": "Bi't auersaaten as wat skiaf gingen.",
+	"math_image_error": "PNG konwertiarin as skiaf gingen. Preewe det iinrachtang faan LaTeX an dvipng (of dvips + gs + convert)",
+	"math_invalidjson": "$1 Server oonswaar as ferkiard JSON.",
+	"math_invalidresponse": "$1: Ferkiard oonswaar („$3“) faan server „$2“:",
+	"math_invalidxml": "MathML of SVG as ferkiard XML.",
+	"math_lexing_error": "Leksikaalisk feeler",
+	"math_mathoid_error": "Konwerjuunsfeeler. Di server („$1“) sait: „$2“",
+	"math_notexvc": "Det <code>texvc</code> program as ei diar. Luke hü det iinrachten gongt uun't datei math/README.",
+	"math_output_error": "Det formelbil koon üüb det dateisüsteem ei seekert wurd.",
+	"math_sample": "Formel heer önjfäige",
+	"math_syntax_error": "Süntaksfeeler",
+	"math_timeout": "$1 tu leed för \"$2\"",
+	"math_tip": "Matemaatisch formel (LaTex)",
+	"math_unknown_error": "Ünbekäänd feeler",
+	"math_unknown_function": "Ünbekäänd funktjuun „$1“",
+	"mw_math_latexml": "LaTeXML (experimentel; werket mä MathML)",
+	"mw_math_latexml_jax": "LaTeXML mä clientsidjag MathJax (eksperimentel; brükt MathML)",
+	"mw_math_mathjax": "Clientsidjag MathJax (eewen, ferbeedert oober det uunwisin üüb enkelt browsern an halperwerktjüügen)",
+	"mw_math_mathml": "MathML mä SVG- of PNG-fallback (beeder för neier browsern an halperwerktjüügen)",
+	"mw_math_png": "PNG-bilen",
+	"mw_math_source": "LaTeX-kwel (för tekst-browsern)",
+	"prefs-math": "TeX"
+}
diff --git a/i18n/fur.json b/i18n/fur.json
new file mode 100644
index 0000000..9c95631
--- /dev/null
+++ b/i18n/fur.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Macofe"
+		]
+	},
+	"math_sample": "Inserìs la formule culì",
+	"math_tip": "Formule matematiche (LaTeX)",
+	"mw_math_mathml": "MathML se pussibil (sperimentâl)",
+	"mw_math_png": "Torne simpri PNG",
+	"mw_math_source": "Lassile come LaTeX (par sgarfadôrs testuâi)",
+	"prefs-math": "Matematiche"
+}
diff --git a/i18n/fy.json b/i18n/fy.json
new file mode 100644
index 0000000..e869aa8
--- /dev/null
+++ b/i18n/fy.json
@@ -0,0 +1,27 @@
+{
+	"@metadata": {
+		"authors": [
+			"Pyt",
+			"Snakesteuben",
+			"Robin0van0der0vliet",
+			"Macofe",
+			"Robin van der Vliet"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display-default": "Standert",
+	"math_bad_output": "De formulepad kin net skreaun of makke wêze.",
+	"math_bad_tmpdir": "De tydlike formulepad kin net skreaun of makke wêze.",
+	"math_failure": "Untsjutbere formule",
+	"math_image_error": "PNG-omsetting is mislearre. Gean nei oft atex en dvipng (of dvips + gs + convert) goed ynstallearre binne en set om.",
+	"math_lexing_error": "Unbekind wurd",
+	"math_notexvc": "It programma <code>texvc</code> net fûn; sjoch math/README te ynstallearjen.",
+	"math_sample": "Foechje hjir in formule yn",
+	"math_syntax_error": "Sinboufout",
+	"math_tip": "Wiskundige formule (LaTeX)",
+	"math_unknown_error": "Unbekinde fout",
+	"math_unknown_function": "unbekinde funksje \"$1\"",
+	"mw_math_mathml": "MathML",
+	"mw_math_png": "PNG-ôfbyldings",
+	"mw_math_source": "LaTeX-boarne (foar tekstblêders)",
+	"prefs-math": "Formules"
+}
diff --git a/i18n/ga.json b/i18n/ga.json
new file mode 100644
index 0000000..bfaf035
--- /dev/null
+++ b/i18n/ga.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Alison",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Ní féidir scríobh chuig an fillteán mata aschomhaid, nó é a chruthú",
+	"math_bad_tmpdir": "Ní féidir scríobh chuig an fillteán mata sealadach, nó é a chruthú",
+	"math_failure": "Theip ó anailís na foirmle",
+	"math_image_error": "Theip ó aistriú an PNG; tástáil má tá na ríomh-oidis latex, dvips, gs, agus convert i suite go maith.",
+	"math_lexing_error": "Theip ó anailís an fhoclóra",
+	"math_notexvc": "Níl an ríomhchlár <code>texvc</code> ann; féach ar mata/EOLAIS chun é a sainathrú.",
+	"math_sample": "Cuir foirmle isteach anseo",
+	"math_syntax_error": "earráid comhréire",
+	"math_tip": "Foirmle mhatamataice (LaTeX)",
+	"math_unknown_error": "earráid anaithnid",
+	"math_unknown_function": "foirmle anaithnid",
+	"mw_math_mathml": "MathML más féidir (turgnamhach)",
+	"mw_math_png": "Déan PNG-íomhá gach uair",
+	"mw_math_source": "Fág mar cló LaTeX (do teacsleitheoirí)",
+	"prefs-math": "Matamaitice"
+}
diff --git a/i18n/gag.json b/i18n/gag.json
new file mode 100644
index 0000000..c8e6e6a
--- /dev/null
+++ b/i18n/gag.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Cuman"
+		]
+	},
+	"math_sample": "Matematik-formulanı-koyun",
+	"math_tip": "Matematik formula (LaTeX formatında)"
+}
diff --git a/i18n/gan-hans.json b/i18n/gan-hans.json
new file mode 100644
index 0000000..a65edb0
--- /dev/null
+++ b/i18n/gan-hans.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Macofe"
+		]
+	},
+	"math_bad_output": "写伓正或建伓正数学公式输出目录",
+	"math_bad_tmpdir": "写伓正或建伓正数学公式临时目录",
+	"math_failure": "分析失败",
+	"math_image_error": "PNG转换失败;请检查系否装正嘞latex, dvips, gs同到convert",
+	"math_lexing_error": "句法错误",
+	"math_notexvc": "执行伓正\"<code>texvc</code>\";请参看 math/README 再配置过。",
+	"math_sample": "到个首扻入数学公式",
+	"math_syntax_error": "文法错误",
+	"math_tip": "数学公式 (LaTeX)",
+	"math_unknown_error": "未知错误",
+	"math_unknown_function": "未知函数",
+	"mw_math_mathml": "尽可能用MathML (试验中)",
+	"mw_math_png": "全部使用PNG图像",
+	"mw_math_source": "显示系LaTeX代码 (文字浏览器用)",
+	"prefs-math": "数学公式"
+}
diff --git a/i18n/gan-hant.json b/i18n/gan-hant.json
new file mode 100644
index 0000000..ffc4535
--- /dev/null
+++ b/i18n/gan-hant.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Macofe"
+		]
+	},
+	"math_bad_output": "寫伓正或建伓正數學公式輸出目錄",
+	"math_bad_tmpdir": "寫伓正或建伓正數學公式臨時目錄",
+	"math_failure": "分析失敗",
+	"math_image_error": "PNG轉換失敗;請檢查係否裝正嘞latex, dvips, gs同到convert",
+	"math_lexing_error": "句法錯誤",
+	"math_notexvc": "執行伓正\"<code>texvc</code>\";請參看 math/README 再配置過。",
+	"math_sample": "到箇首扻入數學公式",
+	"math_syntax_error": "文法錯誤",
+	"math_tip": "數學公式 (LaTeX)",
+	"math_unknown_error": "未知錯誤",
+	"math_unknown_function": "未知函數",
+	"mw_math_mathml": "儘可能用MathML (試驗中)",
+	"mw_math_png": "全部使用PNG圖像",
+	"mw_math_source": "顯示係LaTeX代碼 (文字瀏覽器用)",
+	"prefs-math": "數學公式"
+}
diff --git a/i18n/gd.json b/i18n/gd.json
new file mode 100644
index 0000000..5a8247d
--- /dev/null
+++ b/i18n/gd.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Akerbeltz"
+		]
+	},
+	"math_sample": "Cuir a-steach foirmle an-seo",
+	"math_tip": "Foirmle matamataig (LaTeX)",
+	"math_unknown_error": "mearachd neo-aithnichte"
+}
diff --git a/i18n/gl.json b/i18n/gl.json
new file mode 100644
index 0000000..e3c0de3
--- /dev/null
+++ b/i18n/gl.json
@@ -0,0 +1,82 @@
+{
+	"@metadata": {
+		"authors": [
+			"Alma",
+			"Toliño",
+			"Xosé",
+			"Elisardojm",
+			"Banjo",
+			"Macofe"
+		]
+	},
+	"math-desc": "Renderiza fórmulas matemáticas entre etiquetas <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Edición rápida",
+	"math-visualeditor-mwmathdialog-title": "Fórmula",
+	"math-visualeditor-mwmathdialog-card-formula": "Fórmula",
+	"math-visualeditor-mwmathdialog-card-options": "Opcións",
+	"math-visualeditor-mwmathinspector-display": "Mostrar",
+	"math-visualeditor-mwmathinspector-display-block": "Bloquear",
+	"math-visualeditor-mwmathinspector-display-default": "Por defecto",
+	"math-visualeditor-mwmathinspector-display-inline": "Conectado",
+	"math-visualeditor-mwmathinspector-id": "Identificador de ligazón (opcional)",
+	"math-visualeditor-mwmathinspector-title": "Fórmula",
+	"math-visualeditor-symbol-group-accents": "Acentos e diacríticos",
+	"math-visualeditor-symbol-group-arrows": "Frechas",
+	"math-visualeditor-symbol-group-bounds": "Límites",
+	"math-visualeditor-symbol-group-derivatives": "Diferenciais e derivadas",
+	"math-visualeditor-symbol-group-functions": "Funcións numéricas estándar",
+	"math-visualeditor-symbol-group-geometry": "Xeometrico",
+	"math-visualeditor-symbol-group-greek": "Alfabeto grego",
+	"math-visualeditor-symbol-group-hebrew": "Alfabeto hebreo",
+	"math-visualeditor-symbol-group-large": "Deseños grandes",
+	"math-visualeditor-symbol-group-logic": "Lóxica",
+	"math-visualeditor-symbol-group-matrices": "Matrices",
+	"math-visualeditor-symbol-group-modular": "Aritmética modular",
+	"math-visualeditor-symbol-group-operators": "Operadores",
+	"math-visualeditor-symbol-group-projections": "Proxeccións",
+	"math-visualeditor-symbol-group-parentheses": "Parénteses",
+	"math-visualeditor-symbol-group-relations": "Relacións",
+	"math-visualeditor-symbol-group-root": "Raíces",
+	"math-visualeditor-symbol-group-sets": "Conxuntos",
+	"math-visualeditor-symbol-group-spacing": "Espazado",
+	"math-visualeditor-symbol-group-special": "Especial",
+	"math-visualeditor-symbol-group-subscripts": "Subscripts, superscripts e integrais",
+	"math-visualeditor-symbol-group-symbols": "Símbolos e constantes",
+	"math-visualeditor-symbol-group-typefaces": "Fontes de letra",
+	"math-visualeditor-symbol-group-unsorted": "Miscelánea",
+	"math_bad_output": "Non se pode crear ou escribir no directorio matemático de saída",
+	"math_bad_tmpdir": "Non se pode crear ou escribir no directorio matemático temporal",
+	"math_failure": "Fallou a conversión do código",
+	"math_image_error": "Fallou a conversión a PNG; comprobe que latex e dvipng están ben instalados (ou dvips + gs + convert)",
+	"math_invalidjson": "A resposta do servidor de $1 non é un JSON válido.",
+	"math_invalidresponse": "$1: Resposta non válida (\"$3\") desde o servidor \"$2\":",
+	"math_invalidxml": "MathML ou SVG non é un XML válido.",
+	"math_lexing_error": "erro de léxico",
+	"math_mathoid_error": "Erro de conversión. Servidor (\"$1\") indicou: \"$2\"",
+	"math_notexvc": "Falta o executable <code>texvc</code>. Consulte math/README para configuralo.",
+	"math_output_error": "Non se pode almacenar a imaxe matemática no sistema de ficheiros.",
+	"math_sample": "Insira unha fórmula aquí",
+	"math-status-introduction": "Esta páxina amosa información sobre {{PLURAL:$1|o modo|os modos}} de representación matemáticas activados.\n\n{{PLURAL:$1|O seguinte modo está habilitado|Os seguintes modos están habilitados}}:",
+	"math_syntax_error": "erro de sintaxe",
+	"math_timeout": "$1 excedeu o tempo de espera desde \"$2\"",
+	"math-test-end": "As probas internas para o modo de renderizado ''$1'' foron completadas.",
+	"math-test-fail": "A proba ''$1'' <span style=\"color:red\">fallou</span>.",
+	"math-test-start": "A executar probas internas para o modo de renderizado ''$1''.",
+	"math-test-success": "<span style=\"color:green\">Superouse</span> a proba ''$1''.",
+	"math-test-contains-diff": "Agardábase a presenza da cadea \"$2\" na cadea devolta \"$1\".",
+	"math-test-equals-diff": "A cadea devolta \"$1\" é diferente da cadea esperada \"$2\".",
+	"math_tip": "Fórmula matemática (LaTeX)",
+	"math_unknown_error": "erro descoñecido",
+	"math_unknown_function": "descoñécese a función \"$1\"",
+	"mw_math_latexml": "LaTeXML (experimental; usa MathML)",
+	"mw_math_latexml_jax": "LaTeXML con MathJax do lado do cliente (experimental; usa MathML)",
+	"mw_math_mathjax": "MathJax do lado do cliente (lento; mellora a renderización nalgúns navegadores e ferramentas de acesibilidade)",
+	"mw_math_mathml": "MathML con respaldo en SVG ou PNG (recomendado para navegadores máis modernos e ferramentas de acesibilidade)",
+	"mw_math_png": "Imaxes PNG",
+	"mw_math_source": "Código LaTeX (para os navegadores de texto)",
+	"prefs-math": "Fórmulas matemáticas",
+	"mathstatus": "Estado de Math",
+	"datatypes-type-math": "Expresión matemática",
+	"wikibase-listdatatypes-math-head": "Expresión matemática",
+	"wikibase-listdatatypes-math-body": "Campo de dato literal para expresións matemáticas, fórmulas, ecuacións e similares, expresada nunha variante de LaTeX."
+}
diff --git a/i18n/gn.json b/i18n/gn.json
new file mode 100644
index 0000000..447693e
--- /dev/null
+++ b/i18n/gn.json
@@ -0,0 +1,4 @@
+{
+	"@metadata": [],
+	"math_tip": "Matemátika kuaareko (LaTeX)"
+}
diff --git a/i18n/got.json b/i18n/got.json
new file mode 100644
index 0000000..174d5ec
--- /dev/null
+++ b/i18n/got.json
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Jocke Pirat"
+        ]
+    },
+    "math_sample": "Lagjan formula her",
+    "math_tip": "Maþemateikaleiks formula (LaTeX)"
+}
\ No newline at end of file
diff --git a/i18n/grc.json b/i18n/grc.json
new file mode 100644
index 0000000..aabf652
--- /dev/null
+++ b/i18n/grc.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Lefcant",
+			"Omnipaedista"
+		]
+	},
+	"math_bad_output": "Ἀδύνατος ἦτο ἡ ποίησις μαθηματικῶν δεδομένων ἢ ἡ ἐγγραφὴ ἐν ἀρχειοκαταλόγῳ ἐξόδου",
+	"math_bad_tmpdir": "Ἀδύνατος ἦτο ἡ ποίησις μαθηματικῶν δεδομένων ἢ ἡ ἐγγραφὴ ἐν προσκαίρῳ ἀρχειοκαταλόγῳ",
+	"math_failure": "Λεξιανάλυσις ἀποτετυχηκυῖα",
+	"math_image_error": "Ἡ PNG-μετατροπὴ ἀπετεύχθη·\nἔλεγξον τὴν ὀρθὴν ἐγκατάστασιν τῶν latex καὶ dvipng (ἢ dvips + gs + convert)",
+	"math_lexing_error": "σφάλμα λεξικῆς ἀναλύσεως",
+	"math_notexvc": "Ἐλλεῖπον ἐκτελέσιμον <code>texvc</code>;\nἴδε math/README διὰ τὸ διαμορφοῦν.",
+	"math_sample": "Εἰσάγειν τύπον ὧδε",
+	"math_syntax_error": "σφάλμα συντάξεως",
+	"math_tip": "Μαθηματικὸς τύπος (LaTeX)",
+	"math_unknown_error": "ἄγνωστον σφάλμα",
+	"math_unknown_function": "ἄγνωστος ἐνέργεια",
+	"mw_math_mathml": "MathML εἰ δυνατόν (πειραστικόν)",
+	"mw_math_png": "Ἀπόδοσις PNG πάντοτε",
+	"mw_math_source": "Ἄφες το ὡς TeX (διὰ τὰ πλοηγητήρια κειμένων)",
+	"prefs-math": "Τὰ μαθηματικά"
+}
diff --git a/i18n/gsw.json b/i18n/gsw.json
new file mode 100644
index 0000000..8ebfa81
--- /dev/null
+++ b/i18n/gsw.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Als-Holder"
+		]
+	},
+	"math_bad_output": "S Ziilverzeichnis fir mathematischi Formle cha nit aagleit oder bschribe wäre.",
+	"math_bad_tmpdir": "S temporär Verzeichnis fir mathematischi Formle cha nit aagleit oder bschribe wäre.",
+	"math_failure": "Parser-Fähler",
+	"math_image_error": "D PNG-Konvertierig het nit funktioniert; prief di korrekt Installation vu LaTeX un dvipng (oder dvips + gs + convert)",
+	"math_lexing_error": "'Lexing'-Fähler",
+	"math_notexvc": "S <code>texvc</code>-Programm isch nit gfunde wore. Bitte acht gee uf math/README.",
+	"math_sample": "Formel do yyfiege",
+	"math_syntax_error": "Syntaxfähler",
+	"math_tip": "Mathematisch Formel (LaTeX)",
+	"math_unknown_error": "Nit bekannte Fähler",
+	"math_unknown_function": "Nit bekannti Funktion",
+	"mw_math_mathml": "MathML (experimentäll)",
+	"mw_math_png": "Immer als PNG aazeige",
+	"mw_math_source": "Als TeX la sy (für Tekschtbrowser)",
+	"prefs-math": "TeX"
+}
diff --git a/i18n/gu.json b/i18n/gu.json
new file mode 100644
index 0000000..41a6b5e
--- /dev/null
+++ b/i18n/gu.json
@@ -0,0 +1,32 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ashok modhvadia",
+			"Dsvyas",
+			"Mohit.dalal",
+			"Sushant savla",
+			"NehalDaveND",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display-block": "પ્રતિબંધ",
+	"math-visualeditor-mwmathinspector-display-default": "મૂળભૂત",
+	"math_bad_output": "ગણિત પરિણામ ડીરેક્ટરીમાં લખવું કે નવી બનાવવી શક્ય નથી",
+	"math_bad_tmpdir": "હંગામી ગણિત ડીરેક્ટરીમાં લખવું કે નવી બનાવવી શક્ય નથી",
+	"math_failure": "પદચ્છેદ અસફળ",
+	"math_image_error": "PNG રૂપાંતરણ નિષ્ફળ;  latex અને dvipng (or dvips + gs + convert)નું પ્રતિષ્ઠાપન બરાબર થયું છે કે નહી તે ચકાસો",
+	"math_invalidjson": "$1 સર્વર પ્રતિભાવ અમાન્ય JSON છે.",
+	"math_invalidxml": " MathML કે SVG અમાન્ય XML છે.",
+	"math_lexing_error": "નિયમ ભંગ",
+	"math_notexvc": "ચલાવી શકાય તેવી <code>texvc</code> ગાયબ ; આને ચડાવવા math/README  જુઓ.",
+	"math_sample": "સૂત્ર અહીં દાખલ કરો",
+	"math_syntax_error": "સૂત્રલેખન ત્રુટિ",
+	"math_tip": "ગણિતિક સૂત્ર (LaTeX)",
+	"math_unknown_error": "અજ્ઞાત ત્રુટિ",
+	"math_unknown_function": "અજ્ઞાત કાર્ય '$1'",
+	"mw_math_latexml": "LaTeXML (પ્રાયોગીક; MathML વાપરે છે)",
+	"mw_math_mathml": " MathML શક્ય હોય તો  (પ્રયોગાત્મક)",
+	"mw_math_png": "PNG ચિત્રો",
+	"mw_math_source": "LaTeX સ્રોત (ટેક્સ્ટ બ્રાઉઝરો માટે)",
+	"prefs-math": "ગણિત"
+}
diff --git a/i18n/gv.json b/i18n/gv.json
new file mode 100644
index 0000000..fab39a6
--- /dev/null
+++ b/i18n/gv.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"MacTire02"
+		]
+	},
+	"math_sample": "Cur formley stiagh ayns shoh",
+	"math_syntax_error": "Co-ordrail marranagh",
+	"math_tip": "Formley maddaghtoil (LaTeX)",
+	"mw_math_png": "Jean PNG dagh ooilley hraa"
+}
diff --git a/i18n/ha.json b/i18n/ha.json
new file mode 100644
index 0000000..a3b8d34
--- /dev/null
+++ b/i18n/ha.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mladanali"
+		]
+	},
+	"math_sample": "Shigar da haɗi a nan",
+	"math_tip": "Haɗin lissafi (LaTeX)"
+}
diff --git a/i18n/hak.json b/i18n/hak.json
new file mode 100644
index 0000000..a8737ab
--- /dev/null
+++ b/i18n/hak.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Hakka"
+		]
+	},
+	"math_bad_output": "Mò-fap siá-ngi̍p fe̍t-chá kien-li̍p su-ho̍k kûng-sṳt sû-chhut muk-liu̍k",
+	"math_bad_tmpdir": "Mò-fap siá-ngi̍p fe̍t-chá kien-li̍p su-ho̍k kûng-sṳt lìm-sṳ̀ muk-liu̍k",
+	"math_failure": "Kié-sak sṳt-phai",
+	"math_image_error": "PNG chón-von sṳt-phai; chhiáng kiám-chhà he-feu chṳn-khok ôn-chông latex, dvips, gs lâu convert",
+	"math_lexing_error": "ki-fap chho-ngu",
+	"math_notexvc": "Mò-fap chṳp-hàng \"<code>texvc</code>\"; chhiáng chhâm-cheu math/README chin-hàng phi-chṳ.",
+	"math_sample": "Chhai-chhṳ́chhap-ngi̍p sṳ-ho̍k kûng-sṳt",
+	"math_syntax_error": "ngî-fap chho-ngu",
+	"math_tip": "Chhap-ngi̍p sṳ-ho̍k kûng-sṳt (LaTeX)",
+	"math_unknown_error": "Mò-tî chho-ngu",
+	"math_unknown_function": "Mò-tî chhṳ-su",
+	"mw_math_mathml": "Chhin khó-nèn sṳ́-yung MathML (sṳ-ngiam chûng)",
+	"mw_math_png": "Yún-yén sṳ́-yung PNG thù-chhiong",
+	"mw_math_source": "Hién-sṳ TeX thoi-ho (sṳ́-yung vùn-sṳ hi-khí sṳ̀)",
+	"prefs-math": "Sṳ-ho̍k kûng-sṳt"
+}
diff --git a/i18n/haw.json b/i18n/haw.json
new file mode 100644
index 0000000..98f3a42
--- /dev/null
+++ b/i18n/haw.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Kolonahe",
+			"Singularity"
+		]
+	},
+	"math_tip": "Ha‘ilula makemakika (LaTeX)",
+	"prefs-math": "Makemakika"
+}
diff --git a/i18n/he.json b/i18n/he.json
new file mode 100644
index 0000000..a288b2f
--- /dev/null
+++ b/i18n/he.json
@@ -0,0 +1,82 @@
+{
+	"@metadata": {
+		"authors": [
+			"Amire80",
+			"ExampleTomer",
+			"Yona b",
+			"Ronel1",
+			"Guycn2",
+			"Macofe"
+		]
+	},
+	"math-desc": "הדפסת נוסחאות מתמטיות בין התגים <bdi><code><math></code> ... <code></math></code></bdi>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "עריכה מהירה",
+	"math-visualeditor-mwmathdialog-title": "נוסחה",
+	"math-visualeditor-mwmathdialog-card-formula": "נוסחה",
+	"math-visualeditor-mwmathdialog-card-options": "אפשרויות",
+	"math-visualeditor-mwmathinspector-display": "הצגה",
+	"math-visualeditor-mwmathinspector-display-block": "בפִסקה נפרדת",
+	"math-visualeditor-mwmathinspector-display-default": "בררת מחדל",
+	"math-visualeditor-mwmathinspector-display-inline": "בתוך הפִסקה",
+	"math-visualeditor-mwmathinspector-id": "מזהה קישור (לא חובה)",
+	"math-visualeditor-mwmathinspector-title": "נוסחה",
+	"math-visualeditor-symbol-group-accents": "אקצנטים וסימנים דיאקריטיים",
+	"math-visualeditor-symbol-group-arrows": "חצים",
+	"math-visualeditor-symbol-group-bounds": "גבולות",
+	"math-visualeditor-symbol-group-derivatives": "נגזרות ודיפרנציאלים",
+	"math-visualeditor-symbol-group-functions": "פונקציות מספריות תקניות",
+	"math-visualeditor-symbol-group-geometry": "הנדסה",
+	"math-visualeditor-symbol-group-greek": "אלפבית יווני",
+	"math-visualeditor-symbol-group-hebrew": "אלפבית עברי",
+	"math-visualeditor-symbol-group-large": "עימודים גדולים",
+	"math-visualeditor-symbol-group-logic": "לוגיקה",
+	"math-visualeditor-symbol-group-matrices": "מטריצות",
+	"math-visualeditor-symbol-group-modular": "חשבון מודולרי",
+	"math-visualeditor-symbol-group-operators": "אופרטורים",
+	"math-visualeditor-symbol-group-projections": "הטלות",
+	"math-visualeditor-symbol-group-parentheses": "סוגריים",
+	"math-visualeditor-symbol-group-relations": "יחסים",
+	"math-visualeditor-symbol-group-root": "שורשים",
+	"math-visualeditor-symbol-group-sets": "קבוצות",
+	"math-visualeditor-symbol-group-spacing": "רווחים",
+	"math-visualeditor-symbol-group-special": "מיוחד",
+	"math-visualeditor-symbol-group-subscripts": "כתיב עילי, כתיב תחתי ואינטגרלים",
+	"math-visualeditor-symbol-group-symbols": "סמלים וקבועים",
+	"math-visualeditor-symbol-group-typefaces": "גופנים",
+	"math-visualeditor-symbol-group-unsorted": "לא ממוין",
+	"math_bad_output": "התוכנה לא הצליחה לכתוב או ליצור את ספריית הפלט של המתמטיקה",
+	"math_bad_tmpdir": "התוכנה לא הצליחה לכתוב או ליצור את הספרייה הזמנית של המתמטיקה",
+	"math_failure": "עיבוד הנוסחה נכשל",
+	"math_image_error": "ההמרה ל־PNG נכשלה; נא לבדוק אם התקנת נכון את latex ואת dvipng (או צירוף של dvips‏, gs ו־convert)",
+	"math_invalidjson": "התשובה משרת $1 היא JSON בלתי־תקין.",
+	"math_invalidresponse": "$1: תגובה בלתי־תקינה (\"$3\") מהשרת \"$2\":",
+	"math_invalidxml": "קוד XML של MathML או SVG אינו תקין.",
+	"math_lexing_error": "שגיאת לקסינג",
+	"math_mathoid_error": "שגיאת המרה. השרת (\"$1\") השיב: \"$2\"",
+	"math_notexvc": "קובץ ההפעלה <code>texvc</code> אינו זמין. נא לעיין ב־math/README כדי להגדירו.",
+	"math_output_error": "לא ניתן לאחסן תמונה מתמטית במערכת קבצים.",
+	"math_sample": "formula",
+	"math-status-introduction": "הדף הזה מציג מידע על {{PLURAL:$1|מצב תיצוג המתמטיקה המופעל|מצבי תיצוג המתמטיקה המופעלים}}.\n\n{{PLURAL:$1|מצב התיצוג הבא מופעל|מצבי התיצוג הבאים מופעלים}} כאן.",
+	"math_syntax_error": "שגיאת תחביר",
+	"math_timeout": "עיכוב $1 מהשרת \"$2\"",
+	"math-test-end": "בדיקות רקע למצב תיצוג ''$1'' הושלמו.",
+	"math-test-fail": "הבדיקת ''$1'' <span style=\"color:red\">נכשלה</span>.",
+	"math-test-start": "הרצת בדיקות רגע למצב התיצוג ''$1''.",
+	"math-test-success": "הבדיקה ''$1'' <span style=\"color:green\">הצליחה</span>..",
+	"math-test-contains-diff": "המחרוזת המוחזרת $1 אינה מכילה את המחרוזת הצפויה $2.",
+	"math-test-equals-diff": "המחרוזת המוחזרת $1 שונה מהמחרוזת הצפויה $2.",
+	"math_tip": "נוסחה מתמטית (LaTeX)",
+	"math_unknown_error": "שגיאה לא ידועה",
+	"math_unknown_function": "פונקציה $1 לא מוכרת",
+	"mw_math_latexml": "LaTeXML (נסיוני; משתמש ב־MathML)",
+	"mw_math_latexml_jax": "LaTeXML עם MathJax בצד הלקוח (ניסיוני; משתמש ב־MathML)",
+	"mw_math_mathjax": "MathJax בצד הלקוח (אטי; משפר את התצוגה בחלק מהדפדפנים ובכלי נגישות)",
+	"mw_math_mathml": "MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות)",
+	"mw_math_png": "תמונות PNG",
+	"mw_math_source": "קוד מקור של LaTeX (לדפדפני טקסט)",
+	"prefs-math": "נוסחאות מתמטיות",
+	"mathstatus": "מצב מתמטיקה",
+	"datatypes-type-math": "ביטוי מתמטי",
+	"wikibase-listdatatypes-math-head": "ביטוי מתמטי",
+	"wikibase-listdatatypes-math-body": "שדה נתונים מפורש לביטויים מתמטיים, נוסחאות, משוואות וכיו\"ב, בתור הגוון של LaTeX."
+}
diff --git a/i18n/hi.json b/i18n/hi.json
new file mode 100644
index 0000000..d232f66
--- /dev/null
+++ b/i18n/hi.json
@@ -0,0 +1,48 @@
+{
+	"@metadata": {
+		"authors": [
+			"Kaustubh",
+			"Siddhartha Ghai",
+			"आलोक",
+			"संजीव कुमार",
+			"NehalDaveND",
+			"Sfic",
+			"जनक राज भट्ट",
+			"Rajat11"
+		]
+	},
+	"math-desc": "<code><math></code> ... <code></math></code> टैगों के बीच गणितीय सूत्र रेंडर करें",
+	"math-visualeditor-mwmathcontextitem-quickedit": "शीघ्र संपादित",
+	"math-visualeditor-mwmathdialog-title": "सूत्र",
+	"math-visualeditor-mwmathdialog-card-formula": "सूत्र",
+	"math-visualeditor-mwmathdialog-card-options": "विकल्प",
+	"math-visualeditor-mwmathinspector-display": "प्रदर्शन",
+	"math-visualeditor-mwmathinspector-display-block": "अवरोध",
+	"math-visualeditor-mwmathinspector-display-default": "डिफ़ॉल्ट",
+	"math-visualeditor-mwmathinspector-display-inline": "इनलाइन",
+	"math-visualeditor-mwmathinspector-id": "लिंक आईडी (वैकल्पिक)",
+	"math-visualeditor-mwmathinspector-title": "सूत्र",
+	"math-visualeditor-symbol-group-special": "विशेष",
+	"math_bad_output": "मैथ आउटपुट डाइरेक्टरी या तो बना नहीं सकते या फिर उसमें लिख नहीं सकते",
+	"math_bad_tmpdir": "मैथ अस्थायी डाइरेक्टरी या तो बना नहीं सकते या फिर उसमें लिख नहीं सकते",
+	"math_failure": "पार्स नहीं कर पाये",
+	"math_image_error": "PNG रूपांतरण विफल; latex और dvipng (अथवा dvips, gs, और convert) के इन्स्टॉलेशन की जाँच करें",
+	"math_invalidjson": "लेटेक्सएमएल सर्वर का उत्तर अमान्य JSON है।",
+	"math_invalidresponse": "सर्वर '$2' से अमान्य लेटेक्सएमएल उत्तर ('$3')",
+	"math_invalidxml": "लेटेक्सएमएल मैथएमएल अमान्य एक्सएमएल है।",
+	"math_lexing_error": "लेक्सिंग त्रुटि",
+	"math_notexvc": "<code>texvc</code> एक्ज़ीक्यूटेबल फ़ाइल मिल नहीं रहीं; कन्फिगर करने के लिए के लिये math/README देखें।",
+	"math_output_error": "फ़ाइल सिस्टम पर मैथ चित्र नहीं सहेजा जा सकता।",
+	"math_sample": "गणितीय सूत्र यहाँ डालें",
+	"math_syntax_error": "सिन्टैक्स त्रुटि",
+	"math_tip": "गणितीय सूत्र (लेटेक्स)",
+	"math_unknown_error": "अज्ञात त्रुटि",
+	"math_unknown_function": "अज्ञात फंक्शन '$1'",
+	"mw_math_latexml": "लेटेक्सएमएल (प्रयोगात्मक; मैथ॰एम॰एल का प्रयोग करता है)",
+	"mw_math_mathjax": "मैथजैक्स (प्रयोगात्मक; अधिकांश ब्राउज़रों के लिए सबसे बेहतर)",
+	"mw_math_mathml": "MathML अगर हो सके तो (प्रायोगिक)",
+	"mw_math_png": "हमेशा PNG बनायें",
+	"mw_math_source": "उसे TeX ही रखें (पाठ ब्राउज़र के लिये)",
+	"prefs-math": "गणित",
+	"mathstatus": "गणित स्थिति"
+}
diff --git a/i18n/hif-latn.json b/i18n/hif-latn.json
new file mode 100644
index 0000000..e376ce3
--- /dev/null
+++ b/i18n/hif-latn.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Girmitya",
+			"Thakurji"
+		]
+	},
+	"math_bad_output": "Math output directory me likhe nai to banae nai sakta hai",
+	"math_bad_tmpdir": "Math temporary directory nai banae sakta hai",
+	"math_failure": "Parse nai kare sakaa",
+	"math_image_error": "PNG conversion fail hoe gais; latex, dvips aur gs ke correct installation ke check kar ke convert convert karo",
+	"math_lexing_error": "lexing me galti",
+	"math_notexvc": "Texvc executable nai hai;\nConfigure kare khatir meharbani kar ke math/README ke dekho.",
+	"math_sample": "Hian pe formula insert karo",
+	"math_syntax_error": "syntax me galti",
+	"math_tip": "Mathematiical niyam (LaTeX)",
+	"math_unknown_error": "galti ke nai samajhta",
+	"math_unknown_function": "nai samajhta ki ii kon chij khatir hai",
+	"mw_math_mathml": "MathML hoe sake tab (experimental)",
+	"mw_math_png": "PNG ke sab time render karo",
+	"mw_math_source": "TeX ke rakam chhorr do (text browsers ke khatir)",
+	"prefs-math": "Math"
+}
diff --git a/i18n/hil.json b/i18n/hil.json
new file mode 100644
index 0000000..7cb55b5
--- /dev/null
+++ b/i18n/hil.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Tagimata"
+		]
+	},
+	"math_sample": "Ibutang ang pormula diri",
+	"math_tip": "Math pormula (LaTeX)"
+}
diff --git a/i18n/hr.json b/i18n/hr.json
new file mode 100644
index 0000000..afaaa10
--- /dev/null
+++ b/i18n/hr.json
@@ -0,0 +1,55 @@
+{
+	"@metadata": {
+		"authors": [
+			"Herr Mlinka",
+			"MaGa",
+			"Roberta F.",
+			"SpeedyGonsales"
+		]
+	},
+	"math-visualeditor-mwmathcontextitem-quickedit": "Brzo uređivanje",
+	"math-visualeditor-mwmathdialog-card-options": "Mogućnosti",
+	"math-visualeditor-mwmathinspector-display": "Prikaz",
+	"math-visualeditor-mwmathinspector-display-block": "Blok",
+	"math-visualeditor-mwmathinspector-display-default": "Zadano",
+	"math-visualeditor-mwmathinspector-display-inline": "U redu",
+	"math-visualeditor-mwmathinspector-id": "ID poveznice (neobvezno)",
+	"math-visualeditor-symbol-group-accents": "Naglasci i dijakritici",
+	"math-visualeditor-symbol-group-arrows": "Strijelice",
+	"math-visualeditor-symbol-group-derivatives": "Diferencijali i derivacije",
+	"math-visualeditor-symbol-group-functions": "Standardne numeričke funkcije",
+	"math-visualeditor-symbol-group-geometry": "Geometrijski simboli",
+	"math-visualeditor-symbol-group-greek": "Grčki alfabet",
+	"math-visualeditor-symbol-group-hebrew": "Hebrejski alfabet",
+	"math-visualeditor-symbol-group-logic": "Logički operatori",
+	"math-visualeditor-symbol-group-matrices": "Matrice",
+	"math-visualeditor-symbol-group-modular": "Modularna aritmetika",
+	"math-visualeditor-symbol-group-operators": "Operatori",
+	"math-visualeditor-symbol-group-projections": "Projekcije",
+	"math-visualeditor-symbol-group-parentheses": "Zagrade",
+	"math-visualeditor-symbol-group-relations": "Odnosi",
+	"math-visualeditor-symbol-group-root": "Korijeni",
+	"math-visualeditor-symbol-group-sets": "Skupovi",
+	"math-visualeditor-symbol-group-spacing": "Razmaci",
+	"math-visualeditor-symbol-group-special": "Posebno",
+	"math-visualeditor-symbol-group-subscripts": "Indeksi, potencije i integrali",
+	"math-visualeditor-symbol-group-symbols": "Simboli i konstante",
+	"math-visualeditor-symbol-group-typefaces": "Vrste pisma",
+	"math-visualeditor-symbol-group-unsorted": "Nerazvrstano",
+	"math_bad_output": "Ne mogu otvoriti ili pisati u odredišni direktorij za matematiku",
+	"math_bad_tmpdir": "Ne mogu otvoriti ili pisati u privremeni direktorij za matematiku",
+	"math_failure": "Obrada nije uspjela.",
+	"math_image_error": "Pretvorba u PNG nije uspjela; provjerite jesu li dobro instalirani latex, dvips, gs, i convert",
+	"math_lexing_error": "rječnička pogrješka (lexing error)",
+	"math_notexvc": "Nedostaje izvršna datoteka <code>texvc</code>-a; pogledajte math/README za postavke.",
+	"math_sample": "Ovdje unesi formulu",
+	"math_syntax_error": "sintaksna pogrješka",
+	"math_tip": "Matematička formula (LaTeX)",
+	"math_unknown_error": "nepoznata pogrješka",
+	"math_unknown_function": "nepoznata funkcija",
+	"mw_math_mathjax": "MathJax (pokusno)",
+	"mw_math_mathml": "Ako je moguće MathML (u pokusnoj fazi)",
+	"mw_math_png": "Uvijek kao PNG",
+	"mw_math_source": "Ostavi u formatu TeX (za tekstualne preglednike)",
+	"prefs-math": "Prikaz matematičkih formula"
+}
diff --git a/i18n/hsb.json b/i18n/hsb.json
new file mode 100644
index 0000000..b308e8f
--- /dev/null
+++ b/i18n/hsb.json
@@ -0,0 +1,25 @@
+{
+	"@metadata": {
+		"authors": [
+			"Michawiki"
+		]
+	},
+	"math-desc": "Přidawa matematiske formle mjez tafličkomaj <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathinspector-title": "Formla",
+	"math_bad_output": "Njemóžno do matematiskeho zapisa za wudaće pisać abo jón wutworić",
+	"math_bad_tmpdir": "Njemóžno do nachwilneho matematiskeho zapisa pisać abo jón wutworić",
+	"math_failure": "Analyza njeje so poradźiła",
+	"math_image_error": "Konwertowanje do PNG zwrěšćiło; kontroluj prawu instalaciju latex a dvipng (abo dvips + gs + konwertuj)",
+	"math_lexing_error": "leksikalny zmylk",
+	"math_notexvc": "Wuwjedźomny <code>texvc</code> pobrachuje; prošu hlej math/README za konfiguraciju.",
+	"math_sample": "Zasuń tu formulu",
+	"math_syntax_error": "syntaktiski zmylk",
+	"math_tip": "Matematiska formula (LaTeX)",
+	"math_unknown_error": "njeznaty zmylk",
+	"math_unknown_function": "njeznata funkcija \"$1\"",
+	"mw_math_mathjax": "MathJax (eksperimentalny)",
+	"mw_math_mathml": "MathML jeli móžno (eksperimentalnje)",
+	"mw_math_png": "Přeco jako PNG zwobraznić",
+	"mw_math_source": "Jako TeX wostajić (za tekstowe wobhladowaki)",
+	"prefs-math": "Math"
+}
diff --git a/i18n/ht.json b/i18n/ht.json
new file mode 100644
index 0000000..0e3f9f1
--- /dev/null
+++ b/i18n/ht.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Masterches"
+		]
+	},
+	"math_sample": "Antre fòmil ou an isit",
+	"math_tip": "Fòmil matematik (LaTeX)"
+}
diff --git a/i18n/hu-formal.json b/i18n/hu-formal.json
new file mode 100644
index 0000000..16512e0
--- /dev/null
+++ b/i18n/hu-formal.json
@@ -0,0 +1,8 @@
+{
+	"@metadata": {
+		"authors": [
+			"Dani"
+		]
+	},
+	"math_image_error": "PNG-vé alakítás sikertelen; ellenőrizze, hogy a latex és dvipng (vagy dvips + gs + convert) helyesen van-e telepítve"
+}
diff --git a/i18n/hu.json b/i18n/hu.json
new file mode 100644
index 0000000..7979318
--- /dev/null
+++ b/i18n/hu.json
@@ -0,0 +1,69 @@
+{
+	"@metadata": {
+		"authors": [
+			"Dani",
+			"Dj",
+			"Csega",
+			"Tacsipacsi",
+			"Bencoke",
+			"Macofe",
+			"Máté"
+		]
+	},
+	"math-visualeditor-mwmathcontextitem-quickedit": "Gyors szerkesztés",
+	"math-visualeditor-mwmathdialog-title": "Képlet",
+	"math-visualeditor-mwmathdialog-card-formula": "Képlet",
+	"math-visualeditor-mwmathdialog-card-options": "Beállítások",
+	"math-visualeditor-mwmathinspector-display": "Megjelenítés",
+	"math-visualeditor-mwmathinspector-display-block": "Blokk",
+	"math-visualeditor-mwmathinspector-display-default": "Alapértelmezett",
+	"math-visualeditor-mwmathinspector-display-inline": "A szöveggel egy sorban",
+	"math-visualeditor-mwmathinspector-id": "Linkazonosító (opcionális, a képletre mutató közvetlen hivatkozásokhoz szükséges)",
+	"math-visualeditor-mwmathinspector-title": "Képlet",
+	"math-visualeditor-symbol-group-accents": "Ékezetek és egyéb megkülönböztető jelek",
+	"math-visualeditor-symbol-group-arrows": "Nyilak",
+	"math-visualeditor-symbol-group-bounds": "Határértékek",
+	"math-visualeditor-symbol-group-derivatives": "Differenciálok és deriváltak",
+	"math-visualeditor-symbol-group-functions": "Standard numerikus függvények",
+	"math-visualeditor-symbol-group-geometry": "Geometria",
+	"math-visualeditor-symbol-group-greek": "Görög ábécé",
+	"math-visualeditor-symbol-group-hebrew": "Héber ábécé",
+	"math-visualeditor-symbol-group-large": "Többsoros képletek",
+	"math-visualeditor-symbol-group-logic": "Logika",
+	"math-visualeditor-symbol-group-matrices": "Mátrixok",
+	"math-visualeditor-symbol-group-modular": "Oszthatóság",
+	"math-visualeditor-symbol-group-operators": "Műveleti jelek",
+	"math-visualeditor-symbol-group-parentheses": "Zárójelek",
+	"math-visualeditor-symbol-group-relations": "Relációk",
+	"math-visualeditor-symbol-group-root": "Gyökök",
+	"math-visualeditor-symbol-group-sets": "Halmazok",
+	"math-visualeditor-symbol-group-special": "Speciális",
+	"math-visualeditor-symbol-group-subscripts": "Alsó és felső indexek, integrálok",
+	"math-visualeditor-symbol-group-symbols": "Szimbólumok és állandók",
+	"math-visualeditor-symbol-group-typefaces": "Betűstílusok",
+	"math-visualeditor-symbol-group-unsorted": "Besorolatlan",
+	"math_bad_output": "Nem lehet létrehozni vagy írni a matematikai függvények kimeneti könyvtárába",
+	"math_bad_tmpdir": "Nem írható vagy nem hozható létre a matematikai ideiglenes könyvtár",
+	"math_failure": "Értelmezés sikertelen",
+	"math_image_error": "PNG-vé alakítás sikertelen; ellenőrizd, hogy a latex és dvipng (vagy dvips + gs + convert) helyesen van-e telepítve",
+	"math_invalidjson": "A $1-szerver válasza nem érvényes JSON.",
+	"math_invalidresponse": "$1: Érvénytelen válasz („$3”) a(z) $2 szervertől:",
+	"math_invalidxml": "A MathML vagy SVG érvénytelen XML.",
+	"math_lexing_error": "lexikai hiba",
+	"math_mathoid_error": "Átalakítási hiba. A szerver („$1”) a következőt jelentette: „$2”",
+	"math_notexvc": "Hiányzó <code>texvc</code> végrehajtható fájl; a beállítást lásd a math/README fájlban.",
+	"math_output_error": "A képletképet nem lehet tárolni a fájlrendszerben.",
+	"math_sample": "Ide írd a képletet",
+	"math-status-introduction": "Ez a lap információkat jelenít meg az engedélyezett képletfeldolgozási {{PLURAL:$1|módról|módokról}}.\n\nA következő {{PLURAL:$1|mód van|módok vannak}} engedélyezve:",
+	"math_syntax_error": "formai hiba",
+	"math_tip": "Matematikai képlet (LaTeX)",
+	"math_unknown_error": "ismeretlen hiba",
+	"math_unknown_function": "ismeretlen „$1” függvény",
+	"mw_math_mathjax": "Kliens-oldali MathJax (lassú; egyes böngészők és kisegítő eszközök esetén javítja a renderelést)",
+	"mw_math_mathml": "MathML SVG vagy PNG tartalékkal (modern böngészők és kisegítő eszközök számára ajánlott)",
+	"mw_math_png": "PNG-képek",
+	"mw_math_source": "LaTeX-forrás (szöveges böngészőknek)",
+	"prefs-math": "Képletek",
+	"datatypes-type-math": "Matematikai kifejezés",
+	"wikibase-listdatatypes-math-head": "Matematikai kifejezés"
+}
diff --git a/i18n/hy.json b/i18n/hy.json
new file mode 100644
index 0000000..944c287
--- /dev/null
+++ b/i18n/hy.json
@@ -0,0 +1,61 @@
+{
+	"@metadata": {
+		"authors": [
+			"Chaojoker",
+			"Teak",
+			"Xelgen",
+			"Դավիթ Սարոյան",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathdialog-title": "Բանաձև",
+	"math-visualeditor-mwmathdialog-card-formula": "Բանաձև",
+	"math-visualeditor-mwmathdialog-card-options": "Ընտրանքներ",
+	"math-visualeditor-mwmathinspector-display": "Ցուցադրել",
+	"math-visualeditor-mwmathinspector-display-block": "Բլոկ",
+	"math-visualeditor-mwmathinspector-display-default": "Լռելյայն",
+	"math-visualeditor-mwmathinspector-display-inline": "Գծային",
+	"math-visualeditor-mwmathinspector-id": "ID հղումներ (պարտադիր չէ)",
+	"math-visualeditor-mwmathinspector-title": "Բանաձև",
+	"math-visualeditor-symbol-group-accents": "Շեշտեր և հնչյունատարբերակիչներ",
+	"math-visualeditor-symbol-group-arrows": "Սլաքներ",
+	"math-visualeditor-symbol-group-bounds": "Սահմաններ",
+	"math-visualeditor-symbol-group-derivatives": "Դիֆերենցիալներ և ածանցյալներ",
+	"math-visualeditor-symbol-group-functions": "Տարրական ֆունկցիաներ",
+	"math-visualeditor-symbol-group-geometry": "Երկրաչափական",
+	"math-visualeditor-symbol-group-greek": "Հունական այբուբեն",
+	"math-visualeditor-symbol-group-hebrew": "Եբրայական այբուբեն",
+	"math-visualeditor-symbol-group-large": "Լայն ուրվագծեր",
+	"math-visualeditor-symbol-group-logic": "Տրամաբանական",
+	"math-visualeditor-symbol-group-matrices": "Մատրիցներ",
+	"math-visualeditor-symbol-group-modular": "Մոդուլային թվաբանություն",
+	"math-visualeditor-symbol-group-operators": "Օպերատորներ",
+	"math-visualeditor-symbol-group-projections": "Պրոյեկցիաներ",
+	"math-visualeditor-symbol-group-parentheses": "Փակագծեր",
+	"math-visualeditor-symbol-group-relations": "Հարաբերություններ",
+	"math-visualeditor-symbol-group-root": "Արմատներ",
+	"math-visualeditor-symbol-group-sets": "Բազմություններ",
+	"math-visualeditor-symbol-group-spacing": "Բացատներ",
+	"math-visualeditor-symbol-group-special": "Հատուկ",
+	"math-visualeditor-symbol-group-subscripts": "Ենթատողային, վերտողային և ինտեգրալներ",
+	"math-visualeditor-symbol-group-symbols": "Սիմվոլներ և հաստատուններ",
+	"math-visualeditor-symbol-group-typefaces": "Տառատեսակներ",
+	"math-visualeditor-symbol-group-unsorted": "Չդասակարգված",
+	"math_bad_output": "Չի հաջողվում ստեղծել կամ գրել մաթեմատիկայի արտածման թղթապանակին",
+	"math_bad_tmpdir": "Չի հաջողվում ստեղծել կամ գրել մաթեմատիկայի ժամանակավոր թղթապանակին։",
+	"math_failure": "Չհաջողվեց վերլուծել",
+	"math_image_error": "PNG վերածումը ձախողվեց. ստուգեք latex, dvips, gs և convert ծրագրերի (կամ dvips + gs + convert) տեղադրման ճշտությունը։",
+	"math_invalidxml": "MathML կամ SVG պարունակում է անթույլատրելի XML:",
+	"math_lexing_error": "բառական սխալ",
+	"math_notexvc": "Կատարման <code>texvc</code> նիշքը չի գտնվել։ Տեսեք math/README՝ կարգավորման համար։",
+	"math_sample": "Գրեք բանաձևը այստեղ",
+	"math_syntax_error": "շարահյուսության սխալ",
+	"math_tip": "Մաթեմատիկական բանաձև (LaTeX)",
+	"math_unknown_error": "անհայտ սխալ",
+	"math_unknown_function": "«$1» անհայտ ֆունկցիա",
+	"mw_math_latexml": "LaTeXML (փորձնական, օգտագործում է MathML)",
+	"mw_math_mathml": "MathML, SVG կամ PNG անցումով(խորհուրդ է տրվում ժամանակակից բրոուզերների և հասանելիությունը բարձրացնող գործիքների համար):",
+	"mw_math_png": "PNG պատկերներ",
+	"mw_math_source": "LaTeX (տեքստային բրաուզերների համար)",
+	"prefs-math": "Մաթեմատիկական բանաձևեր"
+}
diff --git a/i18n/ia.json b/i18n/ia.json
new file mode 100644
index 0000000..5dd85ce
--- /dev/null
+++ b/i18n/ia.json
@@ -0,0 +1,26 @@
+{
+	"@metadata": {
+		"authors": [
+			"McDutchie",
+			"Macofe"
+		]
+	},
+	"math-desc": "Visualisar formulas mathematic inter etiquettas <code><math></code> ... <code></math></code>",
+	"math_bad_output": "Non pote scriber in o crear le directorio de output \"math\".",
+	"math_bad_tmpdir": "Non pote scriber in o crear le directorio temporari \"math\".",
+	"math_failure": "Error durante le analyse del syntaxe",
+	"math_image_error": "Le conversion in PNG ha fallite;\nverifica le installation del programmas ''latex\" e \"dvipng\" (o \"dvips\" + \"gs\" + ''convert'').",
+	"math_lexing_error": "error lexic",
+	"math_notexvc": "Le executabile ''<code>texvc</code>'' manca;\nper favor vide math/README pro configurar lo.",
+	"math_sample": "Inserer formula hic",
+	"math_syntax_error": "error de syntaxe",
+	"math_tip": "Formula mathematic (LaTeX)",
+	"math_unknown_error": "error incognite",
+	"math_unknown_function": "function '$1' incognite",
+	"mw_math_latexml_jax": "LaTeXML con MathJax latere cliente (experimental; utilisa MathML)",
+	"mw_math_mathjax": "MathJax latere cliente (lente; meliora le rendition pro certe navigatores e instrumentos de accessibilitate)",
+	"mw_math_mathml": "MathML con recurso a SVG o PNG (recommendate pro navigatores moderne e instrumentos de accessibilitate)",
+	"mw_math_png": "Sempre producer PNG",
+	"mw_math_source": "Codice-fonte LaTeX (pro navigatores in modo texto)",
+	"prefs-math": "Mathematica"
+}
diff --git a/i18n/id.json b/i18n/id.json
new file mode 100644
index 0000000..86a9e2e
--- /dev/null
+++ b/i18n/id.json
@@ -0,0 +1,28 @@
+{
+	"@metadata": {
+		"authors": [
+			"IvanLanin",
+			"Iwan Novirion",
+			"William Surya Permana",
+			"Bennylin"
+		]
+	},
+	"math-visualeditor-mwmathinspector-title": "Rumus",
+	"math_bad_output": "Tidak dapat menulisi atau membuat direktori keluaran math",
+	"math_bad_tmpdir": "Tidak dapat menulisi atau membuat direktori sementara math",
+	"math_failure": "Gagal memparse",
+	"math_image_error": "Konversi PNG gagal; periksa apakah latex dan dvips (atau dvips + gs + convert) terinstal dengan benar",
+	"math_lexing_error": "kesalahan lexing",
+	"math_notexvc": "Executable <code>texvc</code> hilang; silakan lihat math/README untuk cara konfigurasi.",
+	"math_sample": "Masukkan rumus di sini",
+	"math_syntax_error": "kesalahan sintaks",
+	"math_tip": "Rumus matematika (LaTeX)",
+	"math_unknown_error": "Kesalahan yang tidak diketahui",
+	"math_unknown_function": "fungsi yang tidak diketahui",
+	"mw_math_mathjax": "MathJax (eksperimen)",
+	"mw_math_mathml": "MathML jika mungkin (percobaan)",
+	"mw_math_png": "Selalu jadikan PNG",
+	"mw_math_source": "Biarkan sebagai TeX (untuk penjelajah web teks)",
+	"prefs-math": "Matematika",
+	"mathstatus": "Status Math"
+}
diff --git a/i18n/ie.json b/i18n/ie.json
new file mode 100644
index 0000000..73b63f9
--- /dev/null
+++ b/i18n/ie.json
@@ -0,0 +1,8 @@
+{
+	"@metadata": {
+		"authors": [
+			"Renan"
+		]
+	},
+	"math_tip": "Formul mathematical (LaTeX)"
+}
diff --git a/i18n/ig.json b/i18n/ig.json
new file mode 100644
index 0000000..4fff7b2
--- /dev/null
+++ b/i18n/ig.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ukabia"
+		]
+	},
+	"math_sample": "Tinyé zùbe ómárí ngá",
+	"math_tip": "Ihe ọtùtù ọmúmú-ónúọgụgụ (LaTeX)",
+	"prefs-math": "Ọmúmú-ónúọgụgụ"
+}
diff --git a/i18n/ike-cans.json b/i18n/ike-cans.json
new file mode 100644
index 0000000..e97757d
--- /dev/null
+++ b/i18n/ike-cans.json
@@ -0,0 +1,5 @@
+{
+	"@metadata": [],
+	"math_unknown_error": "ᑐᓴᐅᒪᔭᐅᙱᑐᖅ ᑕᒻᒪᓇᖅᑐᖅ",
+	"math_unknown_function": "ᑐᓴᐅᒪᔭᐅᙱᑐᖅ ᐃᓕᐅᕐᓂᖅ"
+}
diff --git a/i18n/ike-latn.json b/i18n/ike-latn.json
new file mode 100644
index 0000000..b619bf7
--- /dev/null
+++ b/i18n/ike-latn.json
@@ -0,0 +1,5 @@
+{
+	"@metadata": [],
+	"math_unknown_error": "tusaumajaunngituq tammanaqtuq",
+	"math_unknown_function": "tusaumajaunngituq iliurniq"
+}
diff --git a/i18n/ilo.json b/i18n/ilo.json
new file mode 100644
index 0000000..9e52cf7
--- /dev/null
+++ b/i18n/ilo.json
@@ -0,0 +1,29 @@
+{
+	"@metadata": {
+		"authors": [
+			"Lam-ang",
+			"Saluyot"
+		]
+	},
+	"math-desc": "Agipaay kadagiti matematiko a pagannurotan a nagbaetan dagiti <code><math></code> ... <code></math></code> nga etiketa",
+	"math_bad_output": "Saan a makasurat wenno makapartuat ti maiparang a direktorio ti math",
+	"math_bad_tmpdir": "Saan a makasurat wenno makapartuat ti temporario a direktorio ti math",
+	"math_failure": "Napaay a na-parse",
+	"math_image_error": "Napaay ti panagbalbaliw ti PNG ; kitaen para kadagiti husto a panagikabil iti latex ken dvipng (wenno dvips + gs + panagbalbaliw)",
+	"math_invalidjson": "$1 Ti server a sungbat ket imbalido a JSON.",
+	"math_invalidresponse": "$1: Imbalido a sungbat ('$3') manipud ti server '$2':",
+	"math_invalidxml": " MathML ket imbalido a XML.",
+	"math_lexing_error": "lexing a biddut",
+	"math_notexvc": "Awan dagiti mapabalin a <code>texvc</code>; pangngaasi a kitaen ti math/README tapno maaramid.",
+	"math_output_error": "Saan a maidulin ti ladawan ti math iti sistema ti papeles",
+	"math_sample": "Isengngat ti pagannurotan ditoy",
+	"math_syntax_error": "biddut ti gramatika",
+	"math_tip": "Matematiko a pagannurotan  (LaTeX)",
+	"math_unknown_error": "di amammo a biddut",
+	"math_unknown_function": "di ammo a pamay-an ti '$1'",
+	"mw_math_latexml": "LaTeXML (eksperimental; agus-usar ti MathML)",
+	"mw_math_mathjax": "MathJax (eksperimento)",
+	"mw_math_png": "Kanayon nga ipaay ti PNG",
+	"mw_math_source": "Ibati lattan a kas ti TeX (para kadagiti testo a pagbasabasa)",
+	"prefs-math": "Math"
+}
diff --git a/i18n/io.json b/i18n/io.json
new file mode 100644
index 0000000..2fd252e
--- /dev/null
+++ b/i18n/io.json
@@ -0,0 +1,14 @@
+{
+	"@metadata": {
+		"authors": [
+			"Lakaoso",
+			"Malafaya"
+		]
+	},
+	"math_bad_output": "Onu ne povas skribar o krear la arkivaro por la matematiko",
+	"math_bad_tmpdir": "Onu ne povas skribar o krear la tempala matematikala arkivaro",
+	"math_sample": "Insertez formulo hike",
+	"math_tip": "Formulo matematika (LaTeX)",
+	"math_unknown_error": "nekonocata eroro",
+	"prefs-math": "Quale montrar la formuli"
+}
diff --git a/i18n/is.json b/i18n/is.json
new file mode 100644
index 0000000..4f920fe
--- /dev/null
+++ b/i18n/is.json
@@ -0,0 +1,48 @@
+{
+	"@metadata": {
+		"authors": [
+			"Krun",
+			"S.Örvarr.S",
+			"Snævar",
+			"Macofe"
+		]
+	},
+	"math-desc": "Ganga frá stærðfræðilegum formúlum á milli <code><math></code> ... <code></math></code> taga",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Snögg breyting",
+	"math-visualeditor-mwmathdialog-title": "Formúla",
+	"math-visualeditor-mwmathdialog-card-formula": "Formúla",
+	"math-visualeditor-mwmathdialog-card-options": "Möguleikar",
+	"math-visualeditor-mwmathinspector-display-block": "Reitur",
+	"math-visualeditor-mwmathinspector-display-default": "Sjálfgefið",
+	"math-visualeditor-mwmathinspector-display-inline": "Í textanum",
+	"math-visualeditor-mwmathinspector-id": "Auðkenni tengils (valfrjálst)",
+	"math-visualeditor-mwmathinspector-title": "Formúla",
+	"math-visualeditor-symbol-group-accents": "Áherslur og stafmerki",
+	"math-visualeditor-symbol-group-arrows": "Örvar",
+	"math-visualeditor-symbol-group-bounds": "Mörk",
+	"math-visualeditor-symbol-group-derivatives": "Deildun og afleiður",
+	"math-visualeditor-symbol-group-functions": "Hefðbundin töluleg gildi",
+	"math-visualeditor-symbol-group-geometry": "Rúmfræði",
+	"math-visualeditor-symbol-group-greek": "Gríska stafrófið",
+	"math-visualeditor-symbol-group-hebrew": "Hebreska stafrófið",
+	"math-visualeditor-symbol-group-logic": "Rökfræði",
+	"math_bad_output": "Get ekki skrifað frálagsgögn í möppu eða búið hana til.",
+	"math_bad_tmpdir": "Get ekki skrifað í eða búið til tímabundna möppu.",
+	"math_failure": "Þáttun mistókst",
+	"math_image_error": "PNG yfirfærsla mistókst; athugaðu hvort latex og dvipng (eða dvips + gs + convert) hafi verið sett upp á réttann hátt",
+	"math_invalidresponse": "$1: Ógilt svar (\"$3\") frá vefþjóninum \"$2\":",
+	"math_invalidxml": "MathML eða SVG inniheldur ógilt XML.",
+	"math_lexing_error": "lestrarvilla",
+	"math_output_error": "Get ekki geymt stærðfræði mynd á skráarkerfi.",
+	"math_sample": "Sláið inn formúlu hér",
+	"math_syntax_error": "málfræðivilla",
+	"math-test-fail": "Próf ''$1'' <span style=\"color:red\">mistókst</span>.",
+	"math-test-success": "Próf ''$1'' <span style=\"color:green\">tókst</span>.",
+	"math_tip": "Stærðfræðiformúla (LaTeX)",
+	"math_unknown_error": "óþekkt villa",
+	"math_unknown_function": "óþekkt aðgerð „$1”",
+	"mw_math_mathml": "MathML með SVG eða PNG til vara (mælt með fyrir nútíma vafra og hjálpartæki)",
+	"mw_math_png": "PNG myndir",
+	"mw_math_source": "LaTeX uppruni (fyrir textavafra)",
+	"prefs-math": "Stærðfræðiformúlur"
+}
diff --git a/i18n/it.json b/i18n/it.json
new file mode 100644
index 0000000..72540f6
--- /dev/null
+++ b/i18n/it.json
@@ -0,0 +1,81 @@
+{
+	"@metadata": {
+		"authors": [
+			"Beta16",
+			"Ricordisamoa",
+			"Statix64",
+			"Fringio",
+			"Macofe"
+		]
+	},
+	"math-desc": "Esegue il rendering di formule matematiche tra i tag <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Modifica rapida",
+	"math-visualeditor-mwmathdialog-title": "Formula",
+	"math-visualeditor-mwmathdialog-card-formula": "Formula",
+	"math-visualeditor-mwmathdialog-card-options": "Opzioni",
+	"math-visualeditor-mwmathinspector-display": "Aspetto",
+	"math-visualeditor-mwmathinspector-display-block": "Blocco",
+	"math-visualeditor-mwmathinspector-display-default": "Predefinito",
+	"math-visualeditor-mwmathinspector-display-inline": "In linea",
+	"math-visualeditor-mwmathinspector-id": "ID collegamento (opzionale)",
+	"math-visualeditor-mwmathinspector-title": "Formula",
+	"math-visualeditor-symbol-group-accents": "Accenti e segni diacritici",
+	"math-visualeditor-symbol-group-arrows": "Frecce",
+	"math-visualeditor-symbol-group-bounds": "Limiti",
+	"math-visualeditor-symbol-group-derivatives": "Differenziali e derivate",
+	"math-visualeditor-symbol-group-functions": "Funzioni numeriche standard",
+	"math-visualeditor-symbol-group-geometry": "Geometriche",
+	"math-visualeditor-symbol-group-greek": "Alfabeto greco",
+	"math-visualeditor-symbol-group-hebrew": "Alfabeto ebraico",
+	"math-visualeditor-symbol-group-large": "Grandi formati",
+	"math-visualeditor-symbol-group-logic": "Logica",
+	"math-visualeditor-symbol-group-matrices": "Matrici",
+	"math-visualeditor-symbol-group-modular": "Aritmetica modulare",
+	"math-visualeditor-symbol-group-operators": "Operatori",
+	"math-visualeditor-symbol-group-projections": "Proiezioni",
+	"math-visualeditor-symbol-group-parentheses": "Parentesi",
+	"math-visualeditor-symbol-group-relations": "Relazioni",
+	"math-visualeditor-symbol-group-root": "Radicali",
+	"math-visualeditor-symbol-group-sets": "Insiemi",
+	"math-visualeditor-symbol-group-spacing": "Spaziatura",
+	"math-visualeditor-symbol-group-special": "Speciale",
+	"math-visualeditor-symbol-group-subscripts": "Apici, pedici e integrali",
+	"math-visualeditor-symbol-group-symbols": "Simboli e costanti",
+	"math-visualeditor-symbol-group-typefaces": "Caratteri tipografici",
+	"math-visualeditor-symbol-group-unsorted": "Indifferenziato",
+	"math_bad_output": "Impossibile scrivere o creare la directory di output per math",
+	"math_bad_tmpdir": "Impossibile scrivere o creare la directory temporanea per math",
+	"math_failure": "Errore del parser",
+	"math_image_error": "Conversione in PNG non riuscita; verificare che siano correttamente installati i seguenti programmi: latex e dvipng (o dvips, gs e convert).",
+	"math_invalidjson": "la risposta del server $1 non è un JSON valido.",
+	"math_invalidresponse": "$1: risposta non valida (\"$3\") dal server \"$2\":",
+	"math_invalidxml": "MathML o SVG non è un XML valido.",
+	"math_lexing_error": "errore lessicale",
+	"math_mathoid_error": "Errore di conversione. Server (\"$1\") riporta: \"$2\"",
+	"math_notexvc": "Eseguibile <code>texvc</code> mancante; per favore consultare math/README per la configurazione.",
+	"math_output_error": "Non è possibile archiviare l'immagine della formula matematica sul filesystem.",
+	"math_sample": "Inserire qui la formula",
+	"math-status-introduction": "Questa pagina mostra le informazioni {{PLURAL:$1|sulla modalità di rappresentazione abilitata|sulle modalità di rappresentazioni abilitate}} per la matematica.\n\n{{PLURAL:$1|La seguente modalità di rappresentazione è abilitata|Le seguenti modalità di rappresentazioni sono abilitate}}:",
+	"math_syntax_error": "errore di sintassi",
+	"math_timeout": "$1 timeout da \"$2\"",
+	"math-test-end": "Test backend per modalità di rappresentazione ''$1'' completato.",
+	"math-test-fail": "Test ''$1'' <span style=\"color:red\">fallito</span>.",
+	"math-test-start": "Esecuzione in corso del test backend per modalità di rappresentazione ''$1''.",
+	"math-test-success": "Test ''$1'' <span style=\"color:green\">riuscito</span>.",
+	"math-test-contains-diff": "La stringa restituita $1 non contiene la stringa attesa $2.",
+	"math-test-equals-diff": "La stringa restituita $1 è diversa dalla stringa prevista $2.",
+	"math_tip": "Formula matematica (LaTeX)",
+	"math_unknown_error": "errore sconosciuto",
+	"math_unknown_function": "funzione sconosciuta '$1'",
+	"mw_math_latexml": "LaTeXML (sperimentale; usa MathML)",
+	"mw_math_latexml_jax": "LaTeXML con MathJax lato client (sperimentale; usa MathML)",
+	"mw_math_mathjax": "MathJax lato client (lento; migliora il rendering su alcuni browser e strumenti di accesso facilitato)",
+	"mw_math_mathml": "MathML, altrimenti SVG o PNG (consigliato per browser moderni e strumenti di accesso facilitato)",
+	"mw_math_png": "Immagini PNG",
+	"mw_math_source": "Sorgente LaTeX (per browser testuali)",
+	"prefs-math": "Formule matematiche",
+	"mathstatus": "Stato Math",
+	"datatypes-type-math": "Espressione matematica",
+	"wikibase-listdatatypes-math-head": "Espressione matematica",
+	"wikibase-listdatatypes-math-body": "Campo dati letterale per espressioni matematiche, formule, equazioni e simili, espresse in una variante di LaTeX."
+}
diff --git a/i18n/ja.json b/i18n/ja.json
new file mode 100644
index 0000000..a4977a7
--- /dev/null
+++ b/i18n/ja.json
@@ -0,0 +1,70 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ant176",
+			"Eseki",
+			"Fryed-peach",
+			"Ohgi",
+			"Shirayuki",
+			"Whym",
+			"青子守歌",
+			"SkyDaisy9",
+			"Sujiniku",
+			"Otokoume",
+			"Macofe"
+		]
+	},
+	"math-desc": "<code><math></code> ... <code></math></code> タグで囲まれた数式をレンダリング",
+	"math-visualeditor-mwmathcontextitem-quickedit": "簡易編集",
+	"math-visualeditor-mwmathdialog-title": "数式",
+	"math-visualeditor-mwmathdialog-card-options": "オプション",
+	"math-visualeditor-mwmathinspector-display": "ディスプレイ",
+	"math-visualeditor-mwmathinspector-display-block": "ブロック",
+	"math-visualeditor-mwmathinspector-display-default": "デフォルト",
+	"math-visualeditor-mwmathinspector-display-inline": "インライン",
+	"math-visualeditor-mwmathinspector-id": "リンクID(オプション)",
+	"math-visualeditor-mwmathinspector-title": "数式",
+	"math-visualeditor-symbol-group-accents": "アクセントと発音区別符号",
+	"math-visualeditor-symbol-group-arrows": "矢印",
+	"math-visualeditor-symbol-group-bounds": "有界集合",
+	"math-visualeditor-symbol-group-derivatives": "微分と導関数",
+	"math-visualeditor-symbol-group-functions": "初等関数など",
+	"math-visualeditor-symbol-group-geometry": "幾何学",
+	"math-visualeditor-symbol-group-greek": "ギリシャ文字アルファベット",
+	"math-visualeditor-symbol-group-hebrew": "ヘブライ文字アルファベット",
+	"math-visualeditor-symbol-group-large": "大きなレイアウト",
+	"math-visualeditor-symbol-group-logic": "論理",
+	"math-visualeditor-symbol-group-matrices": "行列",
+	"math-visualeditor-symbol-group-modular": "モジュラー演算",
+	"math-visualeditor-symbol-group-operators": "演算子",
+	"math-visualeditor-symbol-group-parentheses": "括弧",
+	"math-visualeditor-symbol-group-relations": "関係",
+	"math-visualeditor-symbol-group-root": "累乗根",
+	"math-visualeditor-symbol-group-sets": "集合",
+	"math-visualeditor-symbol-group-special": "特殊文字",
+	"math-visualeditor-symbol-group-subscripts": "下付き文字、上付き文字、および積分",
+	"math-visualeditor-symbol-group-symbols": "記号と定数",
+	"math-visualeditor-symbol-group-typefaces": "書体",
+	"math_bad_output": "数式出力ディレクトリでの書き込みまたは作成ができません",
+	"math_bad_tmpdir": "数式一時ディレクトリでの書き込みまたは作成ができません",
+	"math_failure": "構文解析に失敗",
+	"math_image_error": "PNG への変換に失敗しました。latex および dvipng (または dvips + gs + convert) が正しくインストールされているか確認してください。",
+	"math_invalidjson": "$1 サーバーが無効な JSON を返しました。",
+	"math_invalidresponse": "$1: サーバー「$2」から無効な応答 (\"$3\"):",
+	"math_invalidxml": "MathML または SVG が無効な XML です。",
+	"math_lexing_error": "字句解析エラー",
+	"math_notexvc": "<code>texvc</code> の実行可能ファイルが見つかりません。math/README を読んで設定してください。",
+	"math_output_error": "数式画像をファイルシステムに格納できません。",
+	"math_sample": "ここに数式を挿入",
+	"math_syntax_error": "構文エラー",
+	"math_tip": "数式 (LaTeX)",
+	"math_unknown_error": "不明なエラー",
+	"math_unknown_function": "不明な関数「$1」",
+	"mw_math_latexml": "LaTeXML (開発中。MathML を使用)",
+	"mw_math_latexml_jax": "LaTeXML + クライアント側 MathJax (開発中。MathML を使用)",
+	"mw_math_mathjax": "クライアント側 MathJax (低速;一部のブラウザーや補助ツール使用時にレンダリングを改善 )",
+	"mw_math_mathml": "MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨)",
+	"mw_math_png": "PNG 画像",
+	"mw_math_source": "LaTeX ソース (テキスト ブラウザー向け)",
+	"prefs-math": "数式"
+}
diff --git a/i18n/jam.json b/i18n/jam.json
new file mode 100644
index 0000000..22bd2c5
--- /dev/null
+++ b/i18n/jam.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Yocahuna"
+		]
+	},
+	"math_sample": "Insoert faamiula yaso",
+	"math_tip": "Matimatikal faamiula (LaTeX)"
+}
diff --git a/i18n/jut.json b/i18n/jut.json
new file mode 100644
index 0000000..b17cb85
--- /dev/null
+++ b/i18n/jut.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ælsån",
+			"Jyllanj"
+		]
+	},
+	"math_sample": "Insätt formel her (LaTeX)",
+	"math_tip": "Matematisk formel (LaTeX)"
+}
diff --git a/i18n/jv.json b/i18n/jv.json
new file mode 100644
index 0000000..3420276
--- /dev/null
+++ b/i18n/jv.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Meursault2004"
+		]
+	},
+	"math_bad_output": "Ora bisa nulis utawa nggawé dirèktori paweton math",
+	"math_bad_tmpdir": "Ora bisa nulis utawa nggawé dirèktori sauntara math",
+	"math_failure": "Gagal nglakoni parse",
+	"math_image_error": "Konversi PNG gagal; priksa apa latex, dvips, gs, lan convert wis diinstalasi sing bener",
+	"math_lexing_error": "kaluputan ''lexing''",
+	"math_notexvc": "Executable <code>texvc</code> ilang;\nmangga delengen math/README kanggo cara konfigurasi.",
+	"math_sample": "Lebokna rumus ing kéné",
+	"math_syntax_error": "''syntax error'' (kaluputan sintaksis)",
+	"math_tip": "Rumus matematika (LaTeX)",
+	"math_unknown_error": "Kaluputan sing ora dimangertèni",
+	"math_unknown_function": "fungsi sing ora dimangertèni",
+	"mw_math_mathml": "MathML yèn bisa (pracoban)",
+	"mw_math_png": "Mesthi nggawé PNG",
+	"mw_math_source": "Dijarna waé minangka TeX (kanggo panjlajah wèb tèks)",
+	"prefs-math": "Matématika"
+}
diff --git a/i18n/ka.json b/i18n/ka.json
new file mode 100644
index 0000000..ca5d3c3
--- /dev/null
+++ b/i18n/ka.json
@@ -0,0 +1,55 @@
+{
+	"@metadata": {
+		"authors": [
+			"Alsandro",
+			"David1010",
+			"გიორგიმელა",
+			"MIKHEIL",
+			"Dawid Deutschland",
+			"Tokoko",
+			"BRUTE"
+		]
+	},
+	"math-visualeditor-mwmathcontextitem-quickedit": "სწრაფი რედაქტირება",
+	"math-visualeditor-mwmathdialog-title": "ფორმულა",
+	"math-visualeditor-mwmathdialog-card-formula": "ფორმულა",
+	"math-visualeditor-mwmathdialog-card-options": "პარამეტრები",
+	"math-visualeditor-mwmathinspector-display": "ჩვენება",
+	"math-visualeditor-mwmathinspector-display-block": "ბლოკირება",
+	"math-visualeditor-mwmathinspector-display-default": "საწყისი",
+	"math-visualeditor-mwmathinspector-display-inline": "ქსელში",
+	"math-visualeditor-mwmathinspector-id": "ბმულის ID (არასავალდებულო)",
+	"math-visualeditor-mwmathinspector-title": "ფორმულა",
+	"math-visualeditor-symbol-group-accents": "მახვილი და დიაკრიტიკული ნიშნები",
+	"math-visualeditor-symbol-group-arrows": "ისრები",
+	"math-visualeditor-symbol-group-functions": "სტანდარტული რიცხვითი ფუნქციები",
+	"math-visualeditor-symbol-group-geometry": "გეომეტრიული",
+	"math-visualeditor-symbol-group-greek": "ბერძნული ანბანი",
+	"math-visualeditor-symbol-group-hebrew": "ებრაული ანბანი",
+	"math-visualeditor-symbol-group-large": "დიდი განლაგებები",
+	"math-visualeditor-symbol-group-logic": "ლოგიკა",
+	"math-visualeditor-symbol-group-operators": "ოპერატორები",
+	"math-visualeditor-symbol-group-parentheses": "მრგვალი ფრჩხილები",
+	"math-visualeditor-symbol-group-relations": "ურთიერთობები",
+	"math-visualeditor-symbol-group-root": "ფესვები",
+	"math-visualeditor-symbol-group-special": "სპეციალური",
+	"math-visualeditor-symbol-group-typefaces": "შრიფტები",
+	"math_bad_output": "შეუძლებელია შექმნა ან ჩაწერა მათემატიკურ გამსვლელ კატალოგში",
+	"math_bad_tmpdir": "შეუძლებელია ჩანაწერის შექმნა მათემატიკურ დროებით კატალოგში",
+	"math_failure": "შეუძლებელია გამონათქვამის გარჩევაშ",
+	"math_image_error": "PNG-ში გარდაქმნისას წარმოიშვა შეცდომა; შეამოწმეთ latex, dvips, gs და convert-ის დაყენების სისწორე",
+	"math_lexing_error": "ლექსიკური შეცდომა",
+	"math_notexvc": "შემსრულებელი ფაილი <code>texvc</code> არ არის ნაპოვნი; იხ.math/README ინფორმაციისთვის.",
+	"math_sample": "ჩასვით ფორმულა აქ",
+	"math_syntax_error": "სინტაქსი არასწორია",
+	"math_tip": "მათემატიკური ფორმულა (LaTeX)",
+	"math_unknown_error": "უცნობი შეცდომა",
+	"math_unknown_function": "უცნობი ფუნქცია „$1“",
+	"mw_math_mathjax": "MathJax (ექსპერიმენტული)",
+	"mw_math_mathml": "MathML თუ შესაძლებელია (ექსპერიმენტული)",
+	"mw_math_png": "PNG სურათები",
+	"mw_math_source": "LaTeX-ის წყარო (ტექსტური ბრაუზერებისთვის)",
+	"prefs-math": "მათემატიკა",
+	"datatypes-type-math": "მათემატიკური გამოსახულება",
+	"wikibase-listdatatypes-math-head": "მათემატიკური გამოსახულება"
+}
diff --git a/i18n/kaa.json b/i18n/kaa.json
new file mode 100644
index 0000000..89689ab
--- /dev/null
+++ b/i18n/kaa.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"Atabek",
+			"Jiemurat"
+		]
+	},
+	"math_lexing_error": "leksikalıq qa'telik",
+	"math_sample": "Usı jerge formulanı jazın'",
+	"math_syntax_error": "sintaksikalıq qa'telik",
+	"math_tip": "Matematik formula (LaTeX)",
+	"math_unknown_error": "belgisiz qa'telik",
+	"math_unknown_function": "belgisiz funktsiya",
+	"prefs-math": "Formulalar"
+}
diff --git a/i18n/kab.json b/i18n/kab.json
new file mode 100644
index 0000000..f87a88c
--- /dev/null
+++ b/i18n/kab.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Agurzil",
+			"Mmistmurt"
+		]
+	},
+	"math_bad_output": "Ur yezmir ara ad yaru ɣef/ɣer tusnakt n tuffɣa directory/dossier",
+	"math_bad_tmpdir": "Ur yezmir ara ad yaru ɣef/ɣer tusnakt n temp directory/dossier",
+	"math_failure": "Agul n tusnakt",
+	"math_image_error": "Aselket ɣer PNG yexser ; ssenqed aserkeb n latex d dvipng (neɣ dvips + gs + convert)",
+	"math_lexing_error": "Agul n tmawalt",
+	"math_notexvc": "''<code>texvc</code> executable'' / ''executable <code>texvc</code>'' ulac-it; ẓer math/README akken a textareḍ isemyifiyen.",
+	"math_sample": "Ssekcem tasemselt dagi",
+	"math_syntax_error": "Agul n tseddast",
+	"math_tip": "Tasemselt tusnakt (LaTeX)",
+	"math_unknown_error": "Agul mačči d aḍahri",
+	"math_unknown_function": "tawuri warisem « $1 »",
+	"mw_math_mathml": "MathML ma yezmer (experimental)",
+	"mw_math_png": "Daymen err-it PNG",
+	"mw_math_source": "Eǧǧ-it s TeX (i browsers/explorateurs n weḍris)",
+	"prefs-math": "Tusnakt"
+}
diff --git a/i18n/kbd-cyrl.json b/i18n/kbd-cyrl.json
new file mode 100644
index 0000000..10b280c
--- /dev/null
+++ b/i18n/kbd-cyrl.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Bogups",
+			"Тамэ Балъкъэрхэ"
+		]
+	},
+	"math_sample": "Мыбдеж формулэ итхэ",
+	"math_tip": "Математикэм тещIыхьауэ формулэ (LaTeX)",
+	"prefs-math": "формулэхэр гъэлъэгъуэн"
+}
diff --git a/i18n/khw.json b/i18n/khw.json
new file mode 100644
index 0000000..adbf6d7
--- /dev/null
+++ b/i18n/khw.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Rachitrali"
+		]
+	},
+	"math_sample": "فارمولو ھیارا درج کورے",
+	"math_tip": " ریاضیاتی صیغہ (LaTeX)"
+}
diff --git a/i18n/kiu.json b/i18n/kiu.json
new file mode 100644
index 0000000..b099298
--- /dev/null
+++ b/i18n/kiu.json
@@ -0,0 +1,19 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mirzali"
+		]
+	},
+	"math_bad_output": "Sıma nêşikinê indeksê formulunê matematiki de bınusê ya ki bıafernê",
+	"math_bad_tmpdir": "Sıma nêşikinê indeksê ''math temp''i de bınusê ya ki bıafernê",
+	"math_failure": "Analiz de xeta",
+	"math_image_error": "Werênaisê ''PNG''y de xeta biye;\nenstale-kerdena ''latex'', ''dvips'', ''gs'', u ''convert''i qontrol ke",
+	"math_lexing_error": "xeta grameri",
+	"math_notexvc": "''Texvc''o gurênae çino;\nSerba areze-kerdene qaytê ''math/README''y ke.",
+	"math_sample": "İta formuli cıke",
+	"math_syntax_error": "xeta cumla",
+	"math_tip": "Formulê matematiki (formatê LaTeXi de)",
+	"math_unknown_error": "xeta nêzanaiye",
+	"math_unknown_function": "fonksiyono nêzanae",
+	"prefs-math": "Mat"
+}
diff --git a/i18n/kk-arab.json b/i18n/kk-arab.json
new file mode 100644
index 0000000..fb379b3
--- /dev/null
+++ b/i18n/kk-arab.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": [],
+	"math_bad_output": "math دەگەن بەرىس قالتاسىنا جازىلمادى, نە قالتا قۇرىلمادى",
+	"math_bad_tmpdir": "math دەگەن ۋاقىتشا قالتاسىنا جازىلمادى, نە قالتا قۇرىلمادى",
+	"math_failure": "قۇرىلىمىن تالداتۋى ٴساتسىز ٴبىتتى",
+	"math_image_error": "PNG اۋدارىسى ٴساتسىز ٴبىتتى;\nlatex, dvips, gs جانە convert باعدارلامالارىنىڭ دۇرىس ورناتۋىن تەكسەرىپ شىعىڭىز",
+	"math_lexing_error": "ٴسوز كەنىنىڭ قاتەسى",
+	"math_notexvc": "<code>texvc</code> اتقارىلمالىسى تابىلمادى;\nباپتاۋ ٴۇشىن math/README قۇجاتىن قاراڭىز.",
+	"math_sample": "ورنەكتى مىندا ەنگىزىڭىز",
+	"math_syntax_error": "سويلەم جۇيەسىنىڭ قاتەسى",
+	"math_tip": "ماتەماتىيكا ورنەگى (LaTeX)",
+	"math_unknown_error": "بەلگىسىز قاتە",
+	"math_unknown_function": "بەلگىسىز جەتە",
+	"mw_math_mathml": "ەگەر ىقتىيمال بولسا — MathML (سىناقتاما)",
+	"mw_math_png": "ارقاشان PNG پىشىنىمەن كورسەتكىز",
+	"mw_math_source": "بۇنى TeX پىشىمىندە قالدىر (ماتىندىك شولعىشتارعا)",
+	"prefs-math": "ورنەكتەر"
+}
diff --git a/i18n/kk-cyrl.json b/i18n/kk-cyrl.json
new file mode 100644
index 0000000..a6b8d1b
--- /dev/null
+++ b/i18n/kk-cyrl.json
@@ -0,0 +1,31 @@
+{
+	"@metadata": {
+		"authors": [
+			"Arystanbek"
+		]
+	},
+	"math-visualeditor-mwmathdialog-title": "Формула",
+	"math-visualeditor-mwmathdialog-card-formula": "Формула",
+	"math-visualeditor-mwmathdialog-card-options": "Параметрлер",
+	"math-visualeditor-mwmathinspector-display": "Бейнебет",
+	"math-visualeditor-mwmathinspector-display-block": "Бұғаттау",
+	"math-visualeditor-mwmathinspector-display-default": "Әдепкі",
+	"math-visualeditor-mwmathinspector-id": "Сәйкестендіргішті сілтеу (міндетті емес)",
+	"math-visualeditor-mwmathinspector-title": "Формула",
+	"math_bad_output": "math деген беріс қалтасына жазылмады, не қалта құрылмады",
+	"math_bad_tmpdir": "math деген уақытша қалтасына жазылмады, не қалта құрылмады",
+	"math_failure": "Құрылымын талдатуы сәтсіз бітті",
+	"math_image_error": "PNG аударысы сәтсіз бітті;\nlatex, dvips, gs және convert бағдарламаларының дұрыс орнатуын тексеріп шығыңыз",
+	"math_lexing_error": "сөз кенінің қатесі",
+	"math_notexvc": "<code>texvc</code> атқарылмалысы табылмады;\nбаптау үшін math/README құжатын қараңыз.",
+	"math_sample": "Өрнекті мында енгізіңіз",
+	"math_syntax_error": "сөйлем жүйесінің қатесі",
+	"math_tip": "Математика өрнегі (LaTeX)",
+	"math_unknown_error": "белгісіз қате",
+	"math_unknown_function": "белгісіз функция '$1'",
+	"mw_math_mathjax": "MathJax (тәжірибелік)",
+	"mw_math_mathml": "Егер ықтимал болса — MathML (сынақтама)",
+	"mw_math_png": "Әрқашан PNG пішінімен көрсеткіз",
+	"mw_math_source": "Бұны TeX пішімінде қалдыр (мәтіндік шолғыштарға)",
+	"prefs-math": "Математикалық өрнектер"
+}
diff --git a/i18n/kk-latn.json b/i18n/kk-latn.json
new file mode 100644
index 0000000..efd0729
--- /dev/null
+++ b/i18n/kk-latn.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": [],
+	"math_bad_output": "math degen beris qaltasına jazılmadı, ne qalta qurılmadı",
+	"math_bad_tmpdir": "math degen waqıtşa qaltasına jazılmadı, ne qalta qurılmadı",
+	"math_failure": "Qurılımın taldatwı sätsiz bitti",
+	"math_image_error": "PNG awdarısı sätsiz bitti;\nlatex, dvips, gs jäne convert bağdarlamalarınıñ durıs ornatwın tekserip şığıñız",
+	"math_lexing_error": "söz keniniñ qatesi",
+	"math_notexvc": "<code>texvc</code> atqarılmalısı tabılmadı;\nbaptaw üşin math/README qujatın qarañız.",
+	"math_sample": "Örnekti mında engiziñiz",
+	"math_syntax_error": "söýlem jüýesiniñ qatesi",
+	"math_tip": "Matematïka örnegi (LaTeX)",
+	"math_unknown_error": "belgisiz qate",
+	"math_unknown_function": "belgisiz jete",
+	"mw_math_mathml": "Eger ıqtïmal bolsa — MathML (sınaqtama)",
+	"mw_math_png": "Ärqaşan PNG pişinimen körsetkiz",
+	"mw_math_source": "Bunı TeX pişiminde qaldır (mätindik şolğıştarğa)",
+	"prefs-math": "Örnekter"
+}
diff --git a/i18n/km.json b/i18n/km.json
new file mode 100644
index 0000000..71b31f2
--- /dev/null
+++ b/i18n/km.json
@@ -0,0 +1,31 @@
+{
+	"@metadata": {
+		"authors": [
+			"Chhorran",
+			"Lovekhmer",
+			"Thearith",
+			"គីមស៊្រុន",
+			"វ័ណថារិទ្ធ",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display": "បង្ហាញ",
+	"math-visualeditor-mwmathinspector-title": "រូបមន្ត",
+	"math_bad_output": "មិនអាច សរសេរទៅ ឬ បង្កើត ថតឯកសារ គណិត ទិន្នផល",
+	"math_bad_tmpdir": "មិនអាចសរសេរទៅ ឬ បង្កើតថតឯកសារគណិតបណ្តោះអាសន្ន",
+	"math_failure": "បរាជ័យ​ក្នុង​ការ​ញែក​ចេញ​",
+	"math_image_error": "ការបម្លែងជា PNG បានបរាជ័យ។\nសូមពិនិត្យមើលតើ latex និង dvips (ឬ dvips + gs + convert), បានដំឡើងត្រឹមត្រូវឬអត់",
+	"math_lexing_error": "បញ្ហាក្នុងការអានតួអក្សរ",
+	"math_notexvc": "បាត់កម្មវិធី <code>texvc</code>។\n\nសូមមើលក្នុង math/README ដើម្បីធ្វើការកំណត់លំអិត។",
+	"math_sample": "បញ្ចូលរូបមន្ត​នៅទីនេះ",
+	"math_syntax_error": "កំហុសពាក្យសម្ព័ន្ធ",
+	"math_tip": "រូបមន្ត​គណិតវិទ្យា (LaTeX)",
+	"math_unknown_error": "កំហុសមិនស្គាល់",
+	"math_unknown_function": "អនុគមន៍​មិន​ស្គាល់ '$1'",
+	"mw_math_latexml": "LaTeXML (ស្ថិតក្រោមការពិសោធន៍នៅឡើយ។ ប្រើ MathML)",
+	"mw_math_mathml": "MathML បើអាចទៅរួច (ពិសោធ)",
+	"mw_math_png": "រូបភាពPNG",
+	"mw_math_source": "កូដ LaTeX (ចំពោះឧបករណ៍រាវរកអត្ថបទ)",
+	"prefs-math": "គណិត",
+	"mathstatus": "ស្ថានភាពគណិត"
+}
diff --git a/i18n/kn.json b/i18n/kn.json
new file mode 100644
index 0000000..c345b26
--- /dev/null
+++ b/i18n/kn.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Shushruth"
+		]
+	},
+	"math_image_error": "PNGಗೆ ಬದಲಾವಣೆ ವಿಫಲವಾಯಿತು;\nlatex, dvips, gs, ಸರಿಯಾಗಿ ಸ್ಥಾಪಿತವಾಗಿದೆಯೆ ಎಂದು ಖಾತ್ರಿ ಮಾಡಿ ಬದಲಾಯಿಸಿ",
+	"math_sample": "ಇಲ್ಲಿ ಸೂತ್ರವನ್ನು ಅಳವಡಿಸಿ",
+	"math_tip": "ಗಣಿತ ಸೂತ್ರ (LaTeX)",
+	"math_unknown_error": "ತಿಳಿದಿಲ್ಲದ ದೋಷ",
+	"mw_math_png": "ಯಾವಾಗಲೂ PNG ಪ್ರಕಾರ ತೋರಿಸು",
+	"prefs-math": "ಗಣಿತ"
+}
diff --git a/i18n/ko.json b/i18n/ko.json
new file mode 100644
index 0000000..959e472
--- /dev/null
+++ b/i18n/ko.json
@@ -0,0 +1,67 @@
+{
+	"@metadata": {
+		"authors": [
+			"IRTC1015",
+			"Klutzy",
+			"Kwj2772",
+			"Priviet",
+			"PuzzletChung",
+			"아라",
+			"Hym411",
+			"Revi",
+			"Bluemersen",
+			"Hwangjy9",
+			"Macofe"
+		]
+	},
+	"math-desc": "<code><math></code> ... <code></math></code> 태그 사이에 수학 수식을 렌더합니다",
+	"math-visualeditor-mwmathinspector-display": "보기",
+	"math-visualeditor-mwmathinspector-display-block": "블록",
+	"math-visualeditor-mwmathinspector-display-default": "기본값",
+	"math-visualeditor-mwmathinspector-display-inline": "인라인",
+	"math-visualeditor-mwmathinspector-id": "연결 ID (선택 사항)",
+	"math-visualeditor-mwmathinspector-title": "수식",
+	"math-visualeditor-symbol-group-arrows": "화살표",
+	"math-visualeditor-symbol-group-functions": "함수",
+	"math-visualeditor-symbol-group-geometry": "기하",
+	"math-visualeditor-symbol-group-greek": "그리스 문자",
+	"math-visualeditor-symbol-group-hebrew": "히브리 문자",
+	"math-visualeditor-symbol-group-logic": "논리",
+	"math-visualeditor-symbol-group-matrices": "행렬",
+	"math-visualeditor-symbol-group-operators": "연산자",
+	"math-visualeditor-symbol-group-relations": "관계",
+	"math-visualeditor-symbol-group-root": "근호",
+	"math-visualeditor-symbol-group-special": "특수",
+	"math_bad_output": "수식을 출력 디렉터리에 쓰거나 만들 수 없습니다",
+	"math_bad_tmpdir": "수식을 임시 디렉터리에 쓰거나 만들 수 없습니다",
+	"math_failure": "구문 분석 실패",
+	"math_image_error": "PNG 변환 실패; latex 및 dvipng(또는 dvips + gs + convert)가 올바르게 설치되어 있는지 확인해주세요",
+	"math_invalidjson": "$1 서버 응답은 잘못된 JSON입니다.",
+	"math_invalidresponse": "$1: \"$2\" 서버에서 잘못된 응답 ('$3'):",
+	"math_invalidxml": "MathML 또는 SVG는 잘못된 XML입니다.",
+	"math_lexing_error": "어휘 오류",
+	"math_mathoid_error": "변환 오류. 서버 (\"$1\")가 보고했습니다: \"$2\"",
+	"math_notexvc": "실행할 수 있는 <code>texvc</code>이 없습니다. 설정을 위해 math/README를 읽어 주세요.",
+	"math_output_error": "파일 시스템에 수식 그림을 저장할 수 없습니다.",
+	"math_sample": "여기에 수식을 넣으세요",
+	"math-status-introduction": "이 문서는 활성화된 수식 렌더링 모드에 대한 정보를 보여줍니다.\n\n다음과 같은 렌더링 {{PLURAL:$1|모드}}가 활성화되었습니다:",
+	"math_syntax_error": "구문 오류",
+	"math_timeout": "\"$2\"에서의 $1 타임아웃.",
+	"math-test-end": "''$1'' 렌더링 모드의 백엔드 테스트를 완료했습니다.",
+	"math-test-fail": "''$1'' 테스트 <span style=\"color:red\">실패</span>.",
+	"math-test-start": "''$1'' 렌더링 모드의 백엔드 테스트를 실행 중입니다.",
+	"math-test-success": "''$1'' 테스트 <span style=\"color:green\">성공</span>.",
+	"math-test-contains-diff": "반환한 문자열 $1은(는) 예상되는 문자열 $2을(를) 포함하지 않습니다.",
+	"math-test-equals-diff": "반환한 문자열 $1은(는) 예상되는 문자열 $2과(와) 다릅니다.",
+	"math_tip": "수학 수식 (LaTeX)",
+	"math_unknown_error": "알 수 없는 오류",
+	"math_unknown_function": "알 수 없는 함수 \"$1\"",
+	"mw_math_latexml": "LaTeXML (실험 기능; MathML 사용)",
+	"mw_math_latexml_jax": "클라이언트측 MathJax로 된 LaTeXML (실험 기능; MathML 사용)",
+	"mw_math_mathjax": "클라이언트측 MathJax (느림; 일부 브라우저와 접근성 도구에서 렌더링 개선)",
+	"mw_math_mathml": "SVG나 PNG fallback이 있는 MathML (최신 브라우저나 접근성 도구에 권장)",
+	"mw_math_png": "PNG 그림",
+	"mw_math_source": "LaTeX 소스 (텍스트 브라우저용)",
+	"prefs-math": "수식",
+	"mathstatus": "수식 상태"
+}
diff --git a/i18n/koi.json b/i18n/koi.json
new file mode 100644
index 0000000..1beaf18
--- /dev/null
+++ b/i18n/koi.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Yufereff"
+		]
+	},
+	"math_sample": "Пырт татчö формула",
+	"math_tip": "Математикаись формула"
+}
diff --git a/i18n/krc.json b/i18n/krc.json
new file mode 100644
index 0000000..0beca60
--- /dev/null
+++ b/i18n/krc.json
@@ -0,0 +1,25 @@
+{
+	"@metadata": {
+		"authors": [
+			"Iltever",
+			"Къарачайлы",
+			"Ernác"
+		]
+	},
+	"math_bad_output": "Математиканы чыгъыш каталогуна не джазар, неда къурар мадар джокъду",
+	"math_bad_tmpdir": "Математиканы кёзюулю каталогуна не джазаргъа, неда къураргъа мадар джокъду",
+	"math_failure": "Ангылашынамады",
+	"math_image_error": "PNG конвертация джетишимсиз болду; latex бла dvips джарашдырыуларына къарагъыз (неда dvips + gs + convert)",
+	"math_lexing_error": "лексика халат",
+	"math_notexvc": "<code>texvc</code> файл табылмайды; джарашдырыр ючюн math/README-ге къара.",
+	"math_sample": "Формуланы бери салыгъыз",
+	"math_syntax_error": "синтаксис халат",
+	"math_tip": "Математика формула (LaTeX формат)",
+	"math_unknown_error": "билинмеген халат",
+	"math_unknown_function": "билинмеген функция",
+	"mw_math_mathjax": "MathJax (экспериментал опция)",
+	"mw_math_mathml": "Мадар бар эсе \"MathML\" (сынау опция)",
+	"mw_math_png": "PNG сурат форматха кёчюргенлей тур",
+	"mw_math_source": "Тюрлендирмей TeX болуб къой (текст браузерле ючюн)",
+	"prefs-math": "Математика белгиле"
+}
diff --git a/i18n/ksh.json b/i18n/ksh.json
new file mode 100644
index 0000000..c5e5139
--- /dev/null
+++ b/i18n/ksh.json
@@ -0,0 +1,57 @@
+{
+	"@metadata": {
+		"authors": [
+			"Purodha",
+			"Reedy",
+			"Macofe"
+		]
+	},
+	"math-desc": "Zeisch Fomelle us de Mathematik aan, di ennerhallef vun <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\"><math></code> un <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\"></math></code> schtonn.",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Flöck änndere",
+	"math-visualeditor-mwmathdialog-title": "Formel",
+	"math-visualeditor-mwmathdialog-card-formula": "Formel",
+	"math-visualeditor-mwmathdialog-card-options": "Ußwahle",
+	"math-visualeditor-mwmathinspector-display": "Aanzeije",
+	"math-visualeditor-mwmathinspector-display-block": "Schpärre",
+	"math-visualeditor-mwmathinspector-display-default": "Schtandatt",
+	"math-visualeditor-mwmathinspector-display-inline": "Inline",
+	"math-visualeditor-mwmathinspector-id": "Kännong för dä Lengk, kann fott blihve",
+	"math-visualeditor-mwmathinspector-title": "Formel",
+	"math-visualeditor-symbol-group-accents": "Aktzäntzeijsche",
+	"math-visualeditor-symbol-group-functions": "Schtandattfungkßuhne för met Zahle ömzejonn",
+	"math-visualeditor-symbol-group-greek": "Jrehschesch Allfabätt",
+	"math-visualeditor-symbol-group-hebrew": "Hebrähjesch Allfabätt",
+	"math-visualeditor-symbol-group-matrices": "Mattreze",
+	"math-visualeditor-symbol-group-parentheses": "Klammere",
+	"math-visualeditor-symbol-group-spacing": "Zweschereum",
+	"math-visualeditor-symbol-group-symbols": "Sümbohle un Konschtannte",
+	"math_bad_output": "Dat Verzeichnis för de mathematische Formele lööt sich nit aanläje oder mer kann nix eren schrieve. Dat es Dress. Sag et enem Wiki-Köbes oder enem ẞööver-Minsch.",
+	"math_bad_tmpdir": "Dat Zwescheverzeichnis för de mathematische Formele lööt sich nit aanläje oder nix eren schrieve. Dat es Dress. Sag et enem Wiki-Köbes oder enem ẞööver-Minsch.",
+	"math_failure": "Fähler vum Parser",
+	"math_image_error": "Dat Ömwandele noh PNG es donevve jejange. Dun ens noh de richtije Enstallation luure bei <code lang=\"en\">latex</code> un <code lang=\"en\">dvips</code>, udder bei <code lang=\"en\">dvips</code>, un <code lang=\"en\">gs</code>, un <code lang=\"en\">convert</code>.",
+	"math_invalidjson": "De Antwoot vum $1-ẞööver es onjöltesch <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"JavaScript Object Notation\">JSON<i>.",
+	"math_invalidresponse": "$1: Ene onjöltejje Antwoot („$3“) fum ẞööver „$2“:",
+	"math_invalidxml": "Dat <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Mathematical markup language\">MathML</i> udder dat <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i> es kein jöltesch <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>.",
+	"math_lexing_error": "Fähler beim Lexing",
+	"math_mathoid_error": "Ene Fähler es beim Wandelle opjetrodde. Dä ẞööver („$1“) mälldt: „$2“",
+	"math_notexvc": "Dat Projamm <code><code>texvc</code></code> haM_mer nit jefunge.\nSag et enemWiki-Köbes, enem ẞööver-Minsch, oder luur ens en dä\n<code>math/README</code>.",
+	"math_output_error": "Mer kunnte dat Beld met dä mattemahtesche Formel nit als Dattei schpeischere.",
+	"math_sample": "Heh schriev de Formel en „LaTeX“ Forrem eren",
+	"math-status-introduction": "This page displays information about the enabled math rendering modes.\n\nThe following rendering mode is/rendering modes are enabled.\n<!--  https://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Flow-special-enableflow-invalid-title/en\n-->",
+	"math_syntax_error": "Fähler en de Syntax",
+	"math_timeout": "$1 mälld „Zigg“ övvrschredde op „$2“.",
+	"math-test-fail": "De Prövong „$1“ es <span style=\"color:red\">donävve jejange</span>.",
+	"math-test-success": "De Prövong „$1“ es <span style=\"color:green\">johd</span> ußjejange.",
+	"math-test-contains-diff": "Mer han dä Täx „$1“ krähje, un doh es dä Täx „$2“ nit dren änhthallde wi mer et äwahd han.",
+	"math-test-equals-diff": "Mer han dä Täx „$1“ krähje, han ävver dä Täx „$2“ äwahd.",
+	"math_tip": "En mathematisch Formel",
+	"math_unknown_error": "Fähler, dä mer nit kenne",
+	"math_unknown_function": "„$1“ es en Fonxjuhn, di mer nit känne.",
+	"mw_math_latexml": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"TeX and LaTeX to XML translator\">LaTeXML</i> — zom ußprobehre, bruch <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Mathematical markup language\">MathML</i>",
+	"mw_math_latexml_jax": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"TeX and LaTeX to XML translator\">LaTeXML</i> met <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Mathematical notations in web pages\">MathJax</i> em Brauser — zom ußprobehre, bruch <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Mathematical markup language\">MathML</i>",
+	"mw_math_mathjax": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Mathematical notations in web pages\">MathJax</i> em Brauser (es lahm, deiht ävver de Aanzeije en manschem Brauser un Wärkzüsch för der Zohjang verbäßere)",
+	"mw_math_mathml": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Mathematical notations in web pages\">MathJax</i>, wann dat nit jeihd <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Scalable Vector Graphics\">SVG</i> udder söns <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Portable Network Graphics\">PNG</i> (för modärne Brauser un Wärkzüsch för der Zohjang)",
+	"mw_math_png": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Portable Network Graphics\">PNG</i> Bellder",
+	"mw_math_source": "Lohß et als <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„Schpresch: La-täch, wi jrihschesch; τέχ - e Projramm för der Fottosaz, vum Donald E. Knuth met Zohsäz vum Lamport“\">LaTeX</i>-Quälle (jod för de Täx-Brausere)",
+	"prefs-math": "Mathematisch Formele"
+}
diff --git a/i18n/ku-latn.json b/i18n/ku-latn.json
new file mode 100644
index 0000000..9007daa
--- /dev/null
+++ b/i18n/ku-latn.json
@@ -0,0 +1,21 @@
+{
+	"@metadata": {
+		"authors": [
+			"Bangin",
+			"George Animal"
+		]
+	},
+	"math-visualeditor-mwmathdialog-card-formula": "Formûl",
+	"math-visualeditor-mwmathdialog-card-options": "Vebijêrk",
+	"math-visualeditor-mwmathinspector-title": "Formûl",
+	"math-visualeditor-symbol-group-modular": "Arîtmetîka modûlar",
+	"math_image_error": "Wêşandana PNG nemeşî",
+	"math_sample": "Kurteristê matêmatîk li vir binivisîne",
+	"math_tip": "Kurteristê matêmatîk (LaTeX)",
+	"math_unknown_error": "şaşbûnekî nezanîn",
+	"math_unknown_function": "fonksiyona nenas \"$1\"",
+	"mw_math_mathml": "MathML eger bibe (ceribandin)",
+	"mw_math_png": "Wêneyên PNG",
+	"mw_math_source": "Wek TeX bêle (ji browser'ên gotaran ra)",
+	"prefs-math": "TeX"
+}
diff --git a/i18n/kw.json b/i18n/kw.json
new file mode 100644
index 0000000..e3bd43e
--- /dev/null
+++ b/i18n/kw.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Kw-Moon",
+			"Nrowe"
+		]
+	},
+	"math_sample": "Keworrewgh an furvel omma",
+	"math_tip": "Furvel galkoriethek (LaTeX)"
+}
diff --git a/i18n/ky.json b/i18n/ky.json
new file mode 100644
index 0000000..25e7580
--- /dev/null
+++ b/i18n/ky.json
@@ -0,0 +1,4 @@
+{
+	"@metadata": [],
+	"math_unknown_error": "белгисиз ката"
+}
diff --git a/i18n/la.json b/i18n/la.json
new file mode 100644
index 0000000..998360c
--- /dev/null
+++ b/i18n/la.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": {
+		"authors": [
+			"Omnipaedista"
+		]
+	},
+	"math_failure": "Excutare non potest",
+	"math_lexing_error": "erratum lexicale",
+	"math_sample": "Hic inscribe formulam",
+	"math_syntax_error": "erratum syntaxis",
+	"math_tip": "Formula mathematica (LaTeX)",
+	"math_unknown_error": "error ignotus",
+	"math_unknown_function": "functio ignota",
+	"mw_math_mathml": "MathML",
+	"mw_math_png": "Semper vertere PNG",
+	"mw_math_source": "Stet ut TeX (pro navigatri texti)",
+	"prefs-math": "Interpretatio artis mathematicae"
+}
diff --git a/i18n/lad.json b/i18n/lad.json
new file mode 100644
index 0000000..4f2c3e3
--- /dev/null
+++ b/i18n/lad.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Universal Life"
+		]
+	},
+	"math_sample": "Escribe aquí una formula",
+	"math_tip": "Fórmula matemática (LaTeX)",
+	"prefs-math": "Fórmulas"
+}
diff --git a/i18n/lb.json b/i18n/lb.json
new file mode 100644
index 0000000..25ef602
--- /dev/null
+++ b/i18n/lb.json
@@ -0,0 +1,49 @@
+{
+	"@metadata": {
+		"authors": [
+			"Robby",
+			"Soued031"
+		]
+	},
+	"math-visualeditor-mwmathcontextitem-quickedit": "Séier Ännerung",
+	"math-visualeditor-mwmathdialog-title": "Formel",
+	"math-visualeditor-mwmathdialog-card-formula": "Formel",
+	"math-visualeditor-mwmathdialog-card-options": "Optiounen",
+	"math-visualeditor-mwmathinspector-display": "Weisen",
+	"math-visualeditor-mwmathinspector-display-default": "Standard",
+	"math-visualeditor-mwmathinspector-title": "Formel",
+	"math-visualeditor-symbol-group-arrows": "Feiler",
+	"math-visualeditor-symbol-group-functions": "Standard numeresch Funktiounen",
+	"math-visualeditor-symbol-group-geometry": "Geometresch",
+	"math-visualeditor-symbol-group-greek": "Griichescht Alphabet",
+	"math-visualeditor-symbol-group-hebrew": "Hebräescht Alphabet",
+	"math-visualeditor-symbol-group-logic": "Logik",
+	"math-visualeditor-symbol-group-modular": "Modular Arithmetik",
+	"math-visualeditor-symbol-group-operators": "Operateuren",
+	"math-visualeditor-symbol-group-projections": "Projektiounen",
+	"math-visualeditor-symbol-group-parentheses": "Klameren",
+	"math-visualeditor-symbol-group-relations": "Relatiounen",
+	"math-visualeditor-symbol-group-special": "Spezial",
+	"math-visualeditor-symbol-group-unsorted": "Net zortéiert",
+	"math_bad_output": "Den Zilrepertoire fir mathematesch Formele kann net ugeluecht ginn oder et kann näischt do gespäichert ginn.",
+	"math_bad_tmpdir": "Den temporäre Repertire fir mathematesch Formele kann net ugeluecht ginn oder et kann näischt do gespäichert ginn.",
+	"math_failure": "Parser-Feeler",
+	"math_image_error": "D'PNG-Konvertéierung huet net funktionéiert;\niwwerpréift déi korrekt Installatioun vu LaTeX an dvipng (oder dvips + gs + convert)",
+	"math_invalidxml": "MathML oder SVG ass net valabelen XML.",
+	"math_lexing_error": "'Lexing'-Feeler",
+	"math_notexvc": "Den <code>texvc</code> Programm feelt: Liest w.e.g. math/README fir en anzestellen.",
+	"math_sample": "Formel hei asetzen",
+	"math_syntax_error": "Syntaxfeeler",
+	"math_timeout": "$1 timeout vu(n) \"$2\"",
+	"math-test-fail": "Test ''$1'' <span style=\"color:red\">huet net funktionéiert</span>.",
+	"math_tip": "Mathematesch Formel (LaTeX)",
+	"math_unknown_error": "Onbekannte Feeler",
+	"math_unknown_function": "Onbekannte Funktioun '$1'",
+	"mw_math_mathjax": "Client-side MathJax (lues; verbessert d'Duerstellung op verschiddene Browseren an Accessibilitéits-Toolen)",
+	"mw_math_mathml": "MathML mat SVG oder PNG wann et net geet (recommandéiert fir modern Browser an Toole fir en Accès ouni Barrière)",
+	"mw_math_png": "PNG-Biller",
+	"mw_math_source": "LaTeX-Quell (fir Textbrowser)",
+	"prefs-math": "Math/TeX",
+	"datatypes-type-math": "Mathemateschen Ausdrock",
+	"wikibase-listdatatypes-math-head": "Mathemateschen Ausdrock"
+}
diff --git a/i18n/lfn.json b/i18n/lfn.json
new file mode 100644
index 0000000..69a9e60
--- /dev/null
+++ b/i18n/lfn.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Cgboeree"
+		]
+	},
+	"math_sample": "Introdui formula asi",
+	"math_tip": "Formula matematical (LaTeX)",
+	"prefs-math": "Matematica"
+}
diff --git a/i18n/lg.json b/i18n/lg.json
new file mode 100644
index 0000000..15ed93e
--- /dev/null
+++ b/i18n/lg.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Kizito"
+		]
+	},
+	"math_sample": "Wandika wano fomula yo",
+	"math_tip": "Bw'onyiga wano, ofuna w'osobolera okuwandika fomula ey'okubala. Okugiwandika, olina okukozesa empandika ey'enkola ya LaTeX."
+}
diff --git a/i18n/li.json b/i18n/li.json
new file mode 100644
index 0000000..b4834ab
--- /dev/null
+++ b/i18n/li.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ooswesthoesbes",
+			"Pahles"
+		]
+	},
+	"math_bad_output": "Kin neet sjrieve nao de output directory veur mattematik",
+	"math_bad_tmpdir": "De map veur tiedelike bestenj veur wiskóndige formules bestuit neet of kin neet gemaak waere",
+	"math_failure": "Parse misluk",
+	"math_image_error": "PNG-conversie is mislök. Gank nao of LaTeX en dvipng (of dvips + gs + convert) korrek geïnstalleerd zien.",
+	"math_lexing_error": "lexicografische fout",
+	"math_notexvc": "Kin 't programma <code>texvc</code> neet vinje; stel alles in volges de besjrieving in math/README.",
+	"math_sample": "Veur de formule in",
+	"math_syntax_error": "fout vanne syntax",
+	"math_tip": "Wiskóndige formule (LaTeX)",
+	"math_unknown_error": "onbekènde fout",
+	"math_unknown_function": "onbekènde functie",
+	"mw_math_mathml": "MathML woe meugelik (experimenteil)",
+	"mw_math_png": "Ummer PNG rendere",
+	"mw_math_source": "Laot de TeX code sjtaon (vuur tèksbrowsers)",
+	"prefs-math": "Mattemetik rendere"
+}
diff --git a/i18n/lij.json b/i18n/lij.json
new file mode 100644
index 0000000..fd1a422
--- /dev/null
+++ b/i18n/lij.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"ZeneizeForesto"
+		]
+	},
+	"math_sample": "Inserî a formûla chì",
+	"math_tip": "Fórmûla matemattica (LaTeX)"
+}
diff --git a/i18n/liv.json b/i18n/liv.json
new file mode 100644
index 0000000..4c21432
--- /dev/null
+++ b/i18n/liv.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Warbola"
+		]
+	},
+	"math_sample": "Kēratigid formula tǟnõ",
+	"math_tip": "Matemātili formula (LaTeX)"
+}
diff --git a/i18n/lki.json b/i18n/lki.json
new file mode 100644
index 0000000..076d57f
--- /dev/null
+++ b/i18n/lki.json
@@ -0,0 +1,36 @@
+{
+	"@metadata": {
+		"authors": [
+			"Hosseinblue",
+			"Lakzon"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display": "نمایش",
+	"math-visualeditor-mwmathinspector-display-block": "بۀستن",
+	"math-visualeditor-mwmathinspector-display-default": "پیش‌فرض",
+	"math-visualeditor-mwmathinspector-display-inline": "درخط",
+	"math-visualeditor-mwmathinspector-id": "شناسه پیوند (اختیاری)",
+	"math-visualeditor-mwmathinspector-title": "فرمول",
+	"math-visualeditor-symbol-group-special": "ویژە",
+	"math_bad_output": "امکان ایجاد یا نوشتن اطلاعات در پوشه خروجی (output) ریاضی وجود ندارد.",
+	"math_bad_tmpdir": "امکان ایجاد یا نوشتن اطلاعات در پوشه موقت (temp) ریاضی وجود ندارد.",
+	"math_failure": "شکست در تجزیه",
+	"math_image_error": "تبدیل به PNG شکست خورد؛ از نصب درست لاتکس و dvipng (یا dvips و gs و convert) اطمینان حاصل کنید",
+	"math_invalidjson": "پاسخ سرور $1 جی‌سن نامعتبر است.",
+	"math_invalidresponse": "پاسخ نامعتبر $1 (\"$3\") از سرور \"$2\":",
+	"math_invalidxml": "MathML یا SVG اکس‌ام‌ال نامعتبر است.",
+	"math_lexing_error": "خطای lexing",
+	"math_mathoid_error": "خطای تبدیل. سرور («$1») گزارش داد: «$2»",
+	"math_notexvc": "برنامهٔ اجرایی <code>texvc</code> موجود نیست. برای اطلاعات بیشتر به <span dir=ltr>math/README</span> مراجعه کنید.",
+	"math_output_error": "نمی‌تواند عکس ریاضی را در سامانه‌های پرونده ذخیره کند.",
+	"math_sample": "درج فرمول در اینجا",
+	"math_syntax_error": "خطای نحوی",
+	"math_timeout": "$1 زمان از دست رفتن از «$2»",
+	"math_tip": "فرمول ریاضی (LaTeX)",
+	"math_unknown_error": "خطای نادیاری/ناشنا",
+	"math_unknown_function": "تابع ناشناختهٔ '$1'",
+	"mw_math_latexml": "لته ایکس‌ام ال (تجربی؛ از مت‌ ام‌ال استفاده می‌کند)",
+	"mw_math_png": "تصاویر PNG",
+	"prefs-math": "نمایش ریاضیات",
+	"mathstatus": "وضعیت ریاضی"
+}
diff --git a/i18n/lmo.json b/i18n/lmo.json
new file mode 100644
index 0000000..dba2e09
--- /dev/null
+++ b/i18n/lmo.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Insübrich"
+		]
+	},
+	"math_sample": "Met dent una furmula chì",
+	"math_tip": "Furmula matematega (LaTeX)",
+	"mw_math_mathml": "MathML se l è pussíbil (sperimentaal)",
+	"mw_math_png": "Trasfurmá sempər in PNG",
+	"mw_math_source": "Lassá in furmaa TeX (pər i prugráma də navigazziún dumá in furmaa da testu)",
+	"prefs-math": "Matem"
+}
diff --git a/i18n/lo.json b/i18n/lo.json
new file mode 100644
index 0000000..84928dd
--- /dev/null
+++ b/i18n/lo.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Tuinui"
+		]
+	},
+	"math_sample": "ໃສ່ສູດຢູ່ນີ້",
+	"math_syntax_error": "ຜິດຫຼັກໄວຍະກອນ",
+	"math_tip": "ສູດຄະນິດສາດ (LaTeX)",
+	"prefs-math": "ຄະນິດສາດ"
+}
diff --git a/i18n/loz.json b/i18n/loz.json
new file mode 100644
index 0000000..411667c
--- /dev/null
+++ b/i18n/loz.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ooswesthoesbes"
+		]
+	},
+	"math_sample": "Sebu di fomula",
+	"math_tip": "Fomula di mat (LaTeX)",
+	"prefs-math": "Mat"
+}
diff --git a/i18n/lrc.json b/i18n/lrc.json
new file mode 100644
index 0000000..1b556ef
--- /dev/null
+++ b/i18n/lrc.json
@@ -0,0 +1,21 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mogoeilor"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display": "نشون دئن",
+	"math-visualeditor-mwmathinspector-display-block": "نهاگری کردن",
+	"math-visualeditor-mwmathinspector-display-default": "پيش فرض",
+	"math-visualeditor-mwmathinspector-display-inline": "ری خط",
+	"math-visualeditor-mwmathinspector-id": "هوم پیوند نوم دیارکن",
+	"math-visualeditor-mwmathinspector-title": "فرمول",
+	"math_sample": "ایچه فرمول وارد بکیت",
+	"math_syntax_error": "خطا دستوری",
+	"math_tip": "فرمول اشمار دونسمنی(لاتکس)",
+	"math_unknown_error": "خطا ناشناس",
+	"math_unknown_function": "پیوندگر نادیار\"$1\"",
+	"mw_math_latexml": "لته ایکس‌ام ال (ازمایشتی؛ مت‌ ام‌ال نه وه کار میئره)",
+	"mw_math_png": "عسگیا پی ان جی",
+	"prefs-math": "اشمار دونسمنی"
+}
diff --git a/i18n/lt.json b/i18n/lt.json
new file mode 100644
index 0000000..ae18982
--- /dev/null
+++ b/i18n/lt.json
@@ -0,0 +1,79 @@
+{
+	"@metadata": {
+		"authors": [
+			"Perkunas",
+			"Albertas",
+			"Macofe"
+		]
+	},
+	"math-desc": "Atvaizduoti matematines formules tarp <code><math></code> ... <code></math></code> žymių",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Greitas redagavimas",
+	"math-visualeditor-mwmathdialog-title": "Formulė",
+	"math-visualeditor-mwmathdialog-card-formula": "Formulė",
+	"math-visualeditor-mwmathdialog-card-options": "Parinktys",
+	"math-visualeditor-mwmathinspector-display": "Rodyti",
+	"math-visualeditor-mwmathinspector-display-block": "Kaip blokas",
+	"math-visualeditor-mwmathinspector-display-default": "Numatytasis",
+	"math-visualeditor-mwmathinspector-display-inline": "Įterptas į tekstą",
+	"math-visualeditor-mwmathinspector-id": "Nuorodos ID (pasirinktinai)",
+	"math-visualeditor-mwmathinspector-title": "Formulė",
+	"math-visualeditor-symbol-group-accents": "Akcentai ir diakritiniai ženklai",
+	"math-visualeditor-symbol-group-arrows": "Rodyklės",
+	"math-visualeditor-symbol-group-bounds": "Ribos",
+	"math-visualeditor-symbol-group-derivatives": "Diferencialai ir išvestinės",
+	"math-visualeditor-symbol-group-functions": "Standartinės skaitinės funkcijos",
+	"math-visualeditor-symbol-group-geometry": "Geometriniai",
+	"math-visualeditor-symbol-group-greek": "Graikų abėcėlė",
+	"math-visualeditor-symbol-group-hebrew": "Hebrajų abėcėlė",
+	"math-visualeditor-symbol-group-large": "Dideli maketai",
+	"math-visualeditor-symbol-group-logic": "Logika",
+	"math-visualeditor-symbol-group-matrices": "Matricos",
+	"math-visualeditor-symbol-group-modular": "Modulinė aritmetika",
+	"math-visualeditor-symbol-group-operators": "Operatoriai",
+	"math-visualeditor-symbol-group-projections": "Projekcijos",
+	"math-visualeditor-symbol-group-parentheses": "Skliausteliai",
+	"math-visualeditor-symbol-group-relations": "Sąryšiai",
+	"math-visualeditor-symbol-group-root": "Šaknys",
+	"math-visualeditor-symbol-group-sets": "Aibės",
+	"math-visualeditor-symbol-group-spacing": "Tarpai",
+	"math-visualeditor-symbol-group-special": "Specialus",
+	"math-visualeditor-symbol-group-subscripts": "Indeksai viršuje, apačioje ir integralai",
+	"math-visualeditor-symbol-group-symbols": "Simboliai ir konstantos",
+	"math-visualeditor-symbol-group-typefaces": "Šriftai",
+	"math-visualeditor-symbol-group-unsorted": "Nesurūšiuoti",
+	"math_bad_output": "Nepavyksta sukurti arba rašyti į matematikos išvesties aplanką",
+	"math_bad_tmpdir": "Nepavyksta sukurti arba rašyti į matematikos laikinąjį aplanką",
+	"math_failure": "Nepavyko apdoroti",
+	"math_image_error": "PNG konvertavimas nepavyko; patikrinkite, ar teisingai įdiegta latex ir dvipng (arba dvips, gs ir convert)",
+	"math_invalidjson": "$1 serverio atsakas yra netinkamas JSON.",
+	"math_invalidresponse": "$1: Netinkamas atsakas (\"$3\") iš serverio \"$2\":",
+	"math_invalidxml": "MathML ar SVG yra netinkamas XML.",
+	"math_lexing_error": "leksikos klaida",
+	"math_mathoid_error": "Konvertavimo klaida. Serveris (\"$1\") grąžino: \"$2\"",
+	"math_notexvc": "Trūksta <code>texvc</code> vykdomojo failo; pažiūrėkite math/README kaip konfigūruoti.",
+	"math_output_error": "Nepavyko išsaugoti matematinio paveikslėlio failų sistemoje.",
+	"math_sample": "Įveskite formulę",
+	"math-status-introduction": "Šis puslapis rodo informaciją apie įterptų matematinių formulių atvaizdavimo metodus.\n\n{{PLURAL:$1|Šis atvaizdavimo metodas yra aktyvuotas|Šie atvaizdavimo metodai yra aktyvuoti}}:",
+	"math_syntax_error": "sintaksės klaida",
+	"math_timeout": "$1 baigėsi vykdymo laikas \"$2\".",
+	"math-test-end": "Vidinės pusės testai atvaizdavimo metodui \"$1\" baigti.",
+	"math-test-fail": "Testas ''$1''  <span style=\"color:red\">nepavyko</span>.",
+	"math-test-start": "Vykdomi vidinės pusės testai atvaizdavimo metodui ''$1''.",
+	"math-test-success": "Testas ''$1'' <span style=\"color:green\">pavyko</span>.",
+	"math-test-contains-diff": "Grąžintoje eilutėje $1 nėra eilutės $2, kurios buvo tikimasi.",
+	"math-test-equals-diff": "Gražinta eilutė $1 yra kitokia, nei eilutė $2, kurios buvo tikimasi.",
+	"math_tip": "Matematinė formulė (LaTeX formatu)",
+	"math_unknown_error": "nežinoma klaida",
+	"math_unknown_function": "nežinoma funkcija \"$1\"",
+	"mw_math_latexml": "LaTeXML (eksperimentinis; naudoja MathML)",
+	"mw_math_latexml_jax": "LaTeXML su klientinės pusės MathJax (eksperimentinis; naudoja MathML)",
+	"mw_math_mathjax": "Klientinės pusės MathJax (lėtas; pagerina atvaizdavimą kai kuriose naršyklėse ir prieinamumo įrankiuose)",
+	"mw_math_mathml": "MathML su SVG ar PNG surogatu (rekomenduojama modernioms naršyklėms ir pasiekiamumo įrankiams)",
+	"mw_math_png": "PNG paveikslėliai",
+	"mw_math_source": "LaTeX išeities kodas (teksto naršyklėms)",
+	"prefs-math": "Matematika",
+	"mathstatus": "Matematinių formulių statusas",
+	"datatypes-type-math": "Matematinė išraiška",
+	"wikibase-listdatatypes-math-head": "Matematinė išraiška",
+	"wikibase-listdatatypes-math-body": "Žodinis duomenų laukas matematinei išraiškai, formulei, lygybėms ir panašiai, išreikšta LaTeX variantu."
+}
diff --git a/i18n/ltg.json b/i18n/ltg.json
new file mode 100644
index 0000000..0b8f1b4
--- /dev/null
+++ b/i18n/ltg.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Jureits"
+		]
+	},
+	"math_sample": "Formulu īrokst ite",
+	"math_tip": "Matematiska formula (LaTeX)"
+}
diff --git a/i18n/lus.json b/i18n/lus.json
new file mode 100644
index 0000000..5b32993
--- /dev/null
+++ b/i18n/lus.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"RMizo"
+		]
+	},
+	"math-desc": "Chhiarkawp dàn rëng rëng  <code><math></code> ... <code></math></code> te inkara ziah luh tùr.",
+	"math_bad_output": "Chhiarkawpa chhuahna báwmah ziaklûtin a siam thei lo",
+	"math_bad_tmpdir": "Chhiarkawp báwm lailâwk a siamin a ziaklût thei lo",
+	"math_failure": "Chhiarkawp dàn chhut sùal a awm",
+	"math_image_error": "PNG-a chhuah a tlawlh; latex leh dvipng  (a nih loh pawhin dvips+gs+convert) i bun dik nge dik lo finfiah rawh",
+	"math_lexing_error": "chhiarkawp ṭawngkam dik lo",
+	"math_notexvc": "<code>texvc</code> tihnun theih a awm lo; khawngaihin herrem tùrin math/README en rawh.",
+	"math_sample": "Chhiarkawp dàn chu hetah hian chhu rawh",
+	"math_syntax_error": "chhiarkawp ṭawngkauchheh dik lo",
+	"math_tip": "Chhiarkawp dàn (LaTeX)",
+	"math_unknown_error": "dikhlelhna hriat loh",
+	"math_unknown_function": "hnathawh hriat loh",
+	"mw_math_mathjax": "MathJax (aitechhinna)",
+	"mw_math_png": "PNG-a chhuahna",
+	"mw_math_source": "TeX ngäi ngäiin dah rawh (thuziak rangpuifanna tán bîk)",
+	"prefs-math": "Chhiarkawp"
+}
diff --git a/i18n/lv.json b/i18n/lv.json
new file mode 100644
index 0000000..5142164
--- /dev/null
+++ b/i18n/lv.json
@@ -0,0 +1,28 @@
+{
+	"@metadata": {
+		"authors": [
+			"Edgars2007",
+			"Marozols",
+			"Papuass",
+			"Yyy"
+		]
+	},
+	"math-visualeditor-mwmathdialog-title": "Formula",
+	"math-visualeditor-mwmathdialog-card-formula": "Formula",
+	"math-visualeditor-mwmathinspector-title": "Formula",
+	"math-visualeditor-symbol-group-greek": "Grieķu alfabēts",
+	"math-visualeditor-symbol-group-hebrew": "Ebreju alfabēts",
+	"math_failure": "Parsēšanas kļūda",
+	"math_image_error": "Kļūda konvertējot uz PNG formātu;\npārbaudi vai ir korekti uzinstalēti latex, dvips, gs, un convert",
+	"math_lexing_error": "leksikas kļūda",
+	"math_sample": "Šeit ievieto formulu",
+	"math_syntax_error": "sintakses kļūda",
+	"math_tip": "Matemātikas formula (LaTeX)",
+	"math_unknown_error": "nezināma kļūda",
+	"math_unknown_function": "nezināma funkcija '$1'",
+	"mw_math_mathjax": "MathJax (eksperimentāls)",
+	"mw_math_mathml": "MathML ar SVG alternatīvu (eksperimentāla iespēja)",
+	"mw_math_png": "PNG attēli",
+	"mw_math_source": "LaTeX kods (teksta pārlūkiem)",
+	"prefs-math": "Formulas"
+}
diff --git a/i18n/lzh.json b/i18n/lzh.json
new file mode 100644
index 0000000..b90e1bd
--- /dev/null
+++ b/i18n/lzh.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": [],
+	"math_bad_output": "無寫或建數式出目",
+	"math_bad_tmpdir": "無寫或建數式臨目",
+	"math_failure": "譯不成",
+	"math_image_error": "PNG 轉敗之;查已裝 latex, dvipng(或dvips + gs + convert)乎",
+	"math_lexing_error": "律有誤",
+	"math_notexvc": "少「<code>texvc</code>」;參 math/README 置之。",
+	"math_sample": "此書方程式",
+	"math_syntax_error": "語法有誤",
+	"math_tip": "數學方程式(LaTeX)",
+	"math_unknown_error": "未知之誤",
+	"math_unknown_function": "未知函式",
+	"mw_math_mathml": "實驗者,堪為則作MathML。",
+	"mw_math_png": "屢作PNG",
+	"mw_math_source": "TeX依舊,純文覽器適也。",
+	"prefs-math": "數學"
+}
diff --git a/i18n/lzz.json b/i18n/lzz.json
new file mode 100644
index 0000000..77fbe9a
--- /dev/null
+++ b/i18n/lzz.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Bombola"
+		]
+	},
+	"math_sample": "Matematʼikuri-ifade-doçʼarit",
+	"math_tip": "Matʼematʼikuri formuli (LaTeX)"
+}
diff --git a/i18n/mai.json b/i18n/mai.json
new file mode 100644
index 0000000..a68beb9
--- /dev/null
+++ b/i18n/mai.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ggajendra",
+			"Vinitutpal"
+		]
+	},
+	"math_sample": "सूत्र समाहित करू",
+	"math_tip": "गणितीय सूत्र (LaTeX)",
+	"prefs-math": "गणित"
+}
diff --git a/i18n/mdf.json b/i18n/mdf.json
new file mode 100644
index 0000000..17180e0
--- /dev/null
+++ b/i18n/mdf.json
@@ -0,0 +1,24 @@
+{
+	"@metadata": {
+		"authors": [
+			"Jarmanj Turtash",
+			"Kranch",
+			"Numulunj pilgae"
+		]
+	},
+	"math_bad_output": "Аф сёрматфтови нолдамань математик директориес эди директориесь аф тиеви",
+	"math_bad_tmpdir": "Аф сёрматфтови ётконь математик директориес эди директориесь аф тиеви",
+	"math_failure": "Аф морафтови",
+	"math_image_error": "PNG форматс сёрматфтомась изь лисев; ватт лац эли аф арафтовсть latex, dvips, gs эди convert",
+	"math_lexing_error": "лексиконь эльбятькс",
+	"math_notexvc": "Нолдамань файл <code>texvc</code> изь мув; Ванк math/README ладямать колга.",
+	"math_sample": "Сувафтомс тязк формула",
+	"math_syntax_error": "синтаксонь эльбятькс",
+	"math_tip": "Математиконь формула (LaTeX)",
+	"math_unknown_error": "аф содаф эльбятькс",
+	"math_unknown_function": "аф содаф функцие",
+	"mw_math_mathml": "MathML коса ули кода (экспериментокс)",
+	"mw_math_png": "Фалу ладямс PNG",
+	"mw_math_source": "Катк тянь кода TeX (текстонь вальманди)",
+	"prefs-math": "Няфтемс формулат"
+}
diff --git a/i18n/mg.json b/i18n/mg.json
new file mode 100644
index 0000000..9cb1cee
--- /dev/null
+++ b/i18n/mg.json
@@ -0,0 +1,27 @@
+{
+	"@metadata": {
+		"authors": [
+			"Jagwar"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display": "Fiseho",
+	"math-visualeditor-mwmathinspector-display-block": "Bolongana",
+	"math-visualeditor-mwmathinspector-display-default": "Raha tsy mifidy",
+	"math-visualeditor-mwmathinspector-display-inline": "alahatra",
+	"math-visualeditor-mwmathinspector-id": "ID rohy (azo tsy fenoina)",
+	"math_bad_output": "Tsy afaka namorona na nanoratra tao amin'ny répertoire hampiasain'ny asa matematika",
+	"math_bad_tmpdir": "Tsy afaka namorona na nanoratra répertoire vonjimaika ho an'ny matematika",
+	"math_failure": "Tsy nety ny fanodinana ny raikipohy",
+	"math_image_error": "Tsy voavadika ho PNG; hamarino fa mety voapetraka tsara ny rindrankajy latex, dvips, gs ary convert",
+	"math_lexing_error": "fahadisoana ara-teny",
+	"math_notexvc": "Tsy hita ny rindrankajy <code>texvc</code>; azafady jereo math/README hanamboarana azy.",
+	"math_sample": "Atsofohy eto ny raikipohy",
+	"math_syntax_error": "Misy diso ny raikipohy",
+	"math_tip": "Raikipohy matematika (LaTeX)",
+	"math_unknown_error": "tsy fahatomombanana tsy hay antony",
+	"math_unknown_function": "lefa tsy fantatra \"$1\"",
+	"mw_math_mathml": "MathML miaraka amy SVG na PNG fanavotana (andrana)",
+	"mw_math_png": "Anamboary sary PNG foana",
+	"mw_math_source": "\nAvelao ho TeX (ho an'ny navigateurs textes)",
+	"prefs-math": "Math"
+}
diff --git a/i18n/mhr.json b/i18n/mhr.json
new file mode 100644
index 0000000..2df4aa2
--- /dev/null
+++ b/i18n/mhr.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Сай"
+		]
+	},
+	"math_sample": "Формулым тышке шынде",
+	"math_tip": "Математик формул (LaTeX)",
+	"mw_math_mathml": "Лиеш гын - MathML (эксперимент опций)",
+	"mw_math_png": "Эре PNG-ым генерироватлаш",
+	"mw_math_source": "TeX-ым разметкыште кодаш (текст браузер-влаклан)",
+	"prefs-math": "Формуло-влак"
+}
diff --git a/i18n/min.json b/i18n/min.json
new file mode 100644
index 0000000..58f5b66
--- /dev/null
+++ b/i18n/min.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Iwan Novirion",
+			"VoteITP"
+		]
+	},
+	"math_sample": "Masuakkan rumus di siko",
+	"math_tip": "Rumus matematika (LaTeX)",
+	"mw_math_mathjax": "MathJax (uji-cubo)",
+	"mw_math_png": "Taruih jadian PNG",
+	"mw_math_source": "Biakan sabagai TeX (untuak paramban web teks)"
+}
diff --git a/i18n/mk.json b/i18n/mk.json
new file mode 100644
index 0000000..cc27cdf
--- /dev/null
+++ b/i18n/mk.json
@@ -0,0 +1,74 @@
+{
+	"@metadata": {
+		"authors": [
+			"Bjankuloski06",
+			"Macofe"
+		]
+	},
+	"math-desc": "Испис на математички формули помеѓу ознаките <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathdialog-title": "Формула",
+	"math-visualeditor-mwmathdialog-card-formula": "Формула",
+	"math-visualeditor-mwmathdialog-card-options": "Нагодувања",
+	"math-visualeditor-mwmathinspector-display": "Прикажи",
+	"math-visualeditor-mwmathinspector-display-block": "Блокирај",
+	"math-visualeditor-mwmathinspector-display-default": "По основно",
+	"math-visualeditor-mwmathinspector-display-inline": "Во редот",
+	"math-visualeditor-mwmathinspector-id": "Назнака на врската (незадолжително)",
+	"math-visualeditor-mwmathinspector-title": "Формула",
+	"math-visualeditor-symbol-group-accents": "Надредни знаци",
+	"math-visualeditor-symbol-group-arrows": "Стрелки",
+	"math-visualeditor-symbol-group-bounds": "Граничници",
+	"math-visualeditor-symbol-group-derivatives": "Диференцијали и изводи",
+	"math-visualeditor-symbol-group-functions": "Стандардни бројчени функции",
+	"math-visualeditor-symbol-group-geometry": "Геометриски",
+	"math-visualeditor-symbol-group-greek": "Грчка азбука",
+	"math-visualeditor-symbol-group-hebrew": "Хебрејска азбука",
+	"math-visualeditor-symbol-group-large": "Големи распореди",
+	"math-visualeditor-symbol-group-logic": "Логика",
+	"math-visualeditor-symbol-group-matrices": "Матрици",
+	"math-visualeditor-symbol-group-modular": "Модуларна аритметика",
+	"math-visualeditor-symbol-group-operators": "Оператори",
+	"math-visualeditor-symbol-group-projections": "Проекции",
+	"math-visualeditor-symbol-group-parentheses": "Загради",
+	"math-visualeditor-symbol-group-relations": "Релации",
+	"math-visualeditor-symbol-group-root": "Корени",
+	"math-visualeditor-symbol-group-sets": "Множества",
+	"math-visualeditor-symbol-group-spacing": "Празни места",
+	"math-visualeditor-symbol-group-special": "Посебни",
+	"math-visualeditor-symbol-group-subscripts": "Долни, горни индекси и интеграли",
+	"math-visualeditor-symbol-group-symbols": "Симболи и константи",
+	"math-visualeditor-symbol-group-typefaces": "Исписи",
+	"math-visualeditor-symbol-group-unsorted": "Неподредени",
+	"math_bad_output": "Не можев да запишам во или создадам излезен директориум математички операции",
+	"math_bad_tmpdir": "Не можам да запишам во или да создадам привремен директориум за математички операции",
+	"math_failure": "Не можев да расчленам",
+	"math_image_error": "Претворањето во PNG не успеа. Проверете дали правилно ги имате воспоставено LaTeX и dvipng (или dvips + gs + convert)",
+	"math_invalidjson": "$1-опслужувачот за $1 е неважечки JSON.",
+	"math_invalidresponse": "$1: Неважечки одговор („$3“) од опслужувачот „$2“:",
+	"math_invalidxml": "MathML и SVG се неважечки XML.",
+	"math_lexing_error": "лексичка грешка",
+	"math_mathoid_error": "Грешка во претворањето. Опслужувачот („$1“) го пријави следново: „$2“",
+	"math_notexvc": "Недостасува извршната податотека <code>texvc</code>.\nПогледнете ја math/README за нејзино нагодување.",
+	"math_output_error": "Не можам да ја зачувам математичката слика на податочниот систем",
+	"math_sample": "Овде вметнете формула",
+	"math-status-introduction": "На страницава се прикажани информации за вклучените режими на математички испис.\n\n{{PLURAL:$1|Активен е следниов исписен режим|Активни се следниве исписни режими}}:",
+	"math_syntax_error": "синтаксна грешка",
+	"math_timeout": "$1 истече од „$2“",
+	"math-test-end": "Испробувањата на заднината за исписниот режим ''$1'' се завршени.",
+	"math-test-fail": "Пробата ''$1'' <span style=\"color:red\">не успеа</span>.",
+	"math-test-start": "Тековни испробувања на заднината за исписниот режим ''$1''.",
+	"math-test-success": "Пробата ''$1'' <span style=\"color:green\">успеа</span>.",
+	"math-test-contains-diff": "Дадената низа $1 не ја содржи очекуваната низа $2.",
+	"math-test-equals-diff": "Дадената низа $1 е различна од очекуваната низа $2.",
+	"math_tip": "Математичка формула (LaTeX)",
+	"math_unknown_error": "непозната грешка",
+	"math_unknown_function": "непозната функција „$1“",
+	"mw_math_latexml": "LaTeXML (експериментално; користи MathML)",
+	"mw_math_latexml_jax": "LaTeXML со MathJax од клиентска страна (експериментално; користи MathML)",
+	"mw_math_mathjax": "MathJax од клиентска страна (бавно го подобрува исписот во некои прелистувачи и олеснителни алатки)",
+	"mw_math_mathml": "MathML со SVG или PNG за резерва (препорачано за современи прелистувачи и олеснителни алатки)",
+	"mw_math_png": "PNG-слики",
+	"mw_math_source": "LaTeX-извор (за текстуални прелистувачи)",
+	"prefs-math": "Матем. формули",
+	"mathstatus": "Статус на математичкиот испис"
+}
diff --git a/i18n/ml.json b/i18n/ml.json
new file mode 100644
index 0000000..5247d52
--- /dev/null
+++ b/i18n/ml.json
@@ -0,0 +1,47 @@
+{
+	"@metadata": {
+		"authors": [
+			"Praveenp",
+			"Sadik Khalid",
+			"Shijualex",
+			"Macofe"
+		]
+	},
+	"math-desc": "<code><math></code> ... <code></math></code> റ്റാഗുകൾക്കുള്ളിൽ നൽകുന്ന ഗണിതശാസ്ത്ര സൂത്രവാക്യങ്ങൾ പ്രദർശിപ്പിക്കൽ",
+	"math-visualeditor-mwmathinspector-display": "പ്രദർശിപ്പിക്കുക",
+	"math-visualeditor-mwmathinspector-display-block": "തടയുക",
+	"math-visualeditor-mwmathinspector-display-default": "സ്വതേ",
+	"math-visualeditor-mwmathinspector-display-inline": "വരിക്കിടയിൽ",
+	"math-visualeditor-mwmathinspector-id": "കണ്ണിയുടെ ഐ.ഡി. (ഐച്ഛികം)",
+	"math-visualeditor-mwmathinspector-title": "സൂത്രവാക്യം",
+	"math_bad_output": "math output ഡയറക്ടറി ഉണ്ടാക്കാനോ അതിലേക്കു എഴുതാനോ സാധിച്ചില്ല",
+	"math_bad_tmpdir": "math temp ഡയറക്ടറി ഉണ്ടാക്കാനോ അതിലേക്കു എഴുതാനോ സാധിച്ചില്ല",
+	"math_failure": "പാഴ്സ് ചെയ്യൽ പരാജയപ്പെട്ടു",
+	"math_image_error": "PNG രൂപത്തിലേയ്ക്കുള്ള മാറ്റം പരാജയപ്പെട്ടു;\nlatex, dvips,എന്നിവ ശരിയായാണോ ഇൻസ്റ്റോൾ ചെയ്തിരിക്കുന്നതെന്നു പരിശോധിക്കുക (അഥവാ dvips + gs +convert)",
+	"math_invalidjson": "$1 സെർവർ പ്രതികരണം അസാധുവായ ജെസണിൽ (JSON) ആണ്.",
+	"math_invalidresponse": "$1: \"$2\" സെർവറിൽ നിന്നുള്ള അസാധുവായ പ്രതികരണം (\"$3):",
+	"math_invalidxml": "മാത്‌എംഎൽ ( MathML) അല്ലെങ്കിൽ എസ്.വി.ജി. അസാധുവായ എക്സ്.എം.എൽ. ആണ്.",
+	"math_lexing_error": "ലെക്സിങ് പിഴവ്",
+	"math_mathoid_error": "പരിണമിപ്പിക്കുന്നതിൽ പിഴവ്. സെർവർ (\"$1\") അറിയിച്ചത്: \"$2\"",
+	"math_notexvc": "പ്രവർത്തനസജ്ജമായ <code>texvc</code> ലഭ്യമല്ല;\nസജ്ജീകരിച്ചെടുക്കാനുള്ള സഹായത്തിനു ദയവായി math/README കാണുക.",
+	"math_output_error": "മാത് ചിത്രം ഈ ഫയൽസിസ്റ്റത്തിൽ സൂക്ഷിക്കാനാവില്ല.",
+	"math_sample": "ഇവിടെ സൂത്രവാക്യം ചേർക്കുക",
+	"math-status-introduction": "സജ്ജമാക്കിയ മാത് പ്രദർശന രീതികളെക്കുറിച്ചുള്ള വിവരമാണ് ഈ താളിലുള്ളത്.\n\nതാഴെക്കൊടുത്തിരിക്കുന്ന പ്രദർശന {{PLURAL:$1|രീതി|രീതികൾ}} സജ്ജമാക്കിയിരിക്കുന്നു:",
+	"math_syntax_error": "തെറ്റായ പദവിന്യാസം",
+	"math_timeout": "\"$2\"-ൽ നിന്നും $1 കാലഹരണപ്പെട്ടു.",
+	"math-test-end": "''$1'' എന്ന പ്രദർശന രീതിക്കുള്ള പിന്നാമ്പുറ പരിശോധന പൂർത്തിയായി.",
+	"math-test-fail": "പരീക്ഷണം ''$1'' <span style=\"color:red\">പരാജയപ്പെട്ടു</span>.",
+	"math-test-start": "''$1'' എന്ന പ്രദർശന രീതിക്കുള്ള പിന്നാമ്പുറ പരിശോധന നടത്തുന്നു.",
+	"math-test-success": "പരീക്ഷണം ''$1'' <span style=\"color:green\">വിജയിച്ചു</span>.",
+	"math_tip": "ഗണിതസൂത്രവാക്യം (LaTeX)",
+	"math_unknown_error": "അപരിചിതമായ പിഴവ്",
+	"math_unknown_function": "അജ്ഞാതമായ ഫങ്ഷൻ '$1'",
+	"mw_math_latexml": "ലാറ്റെക്സ്എം.എൽ. (LaTeXML, പരീക്ഷണാടിസ്ഥാനത്തിൽ; മാത്എം.എൽ. ഉപയോഗിക്കുന്നു)",
+	"mw_math_latexml_jax": "ക്ലയന്റ് ഭാഗത്ത് മാത്ജാക്സ് ഉൾപ്പെടെയുള്ള LaTeXML (പരീക്ഷണാടിസ്ഥാനം;  MathML ഉപയോഗിക്കുന്നു)",
+	"mw_math_mathjax": "ക്ലയന്റ് ഭാഗത്തെ MathJax (മന്ദപ്രവർത്തനം, ചിലബ്രൗസറുകളിലും അഭിഗമ്യതാ സൗകര്യങ്ങളിലും മികച്ച പ്രവർത്തനം)",
+	"mw_math_mathml": "പരാജയപ്പെട്ടാൽ എസ്.വി.ജി. അല്ലെങ്കിൽ പി.എൻ.ജി ഉപയോഗിക്കാവുന്ന വിധത്തിൽ MathML (നൂതന ബ്രൗസറുകൾക്കും, അഭിഗമ്യതാ ഉപകരണങ്ങൾക്കും അനുയോജ്യം)",
+	"mw_math_png": "പി.എൻ.ജി. ചിത്രങ്ങൾ",
+	"mw_math_source": "LaTeX മൂലരൂപം (ടെക്സ്റ്റ് ബ്രൗസറുകൾക്ക്)",
+	"prefs-math": "സമവാക്യം",
+	"mathstatus": "മാത് തൽസ്ഥിതി"
+}
diff --git a/i18n/mn.json b/i18n/mn.json
new file mode 100644
index 0000000..8832323
--- /dev/null
+++ b/i18n/mn.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Chinneeb"
+		]
+	},
+	"math_bad_output": "Математикийн гадагшлуулах каталогыг үүсгэх, эсвэл түүн руу хуулж чадсангүй",
+	"math_bad_tmpdir": "Математикийн түр зуурын каталогыг үүсгэх, эсвэл түүн руу хуулж чадсангүй",
+	"math_failure": "Задлан ялгал хийж чадсангүй",
+	"math_image_error": "PNG руух хувиргал амжилтгүй боллоо;\nlatex, dvips, gs, convert-г зөв суулгасан эсэхийг шалгана уу",
+	"math_lexing_error": "лекслэхэд алдаа гарлаа",
+	"math_notexvc": "<code>texvc</code> программ олдохгүй байна;\nmath/README-г уншиж тохируулна уу.",
+	"math_sample": "Энд томъёогоо оруулна уу",
+	"math_syntax_error": "синтаксийн алдаа",
+	"math_tip": "Математикийн томъёо (LaTeX)",
+	"math_unknown_error": "үл мэдэгдэх алдаа",
+	"math_unknown_function": "үл мэдэгдэх функц",
+	"mw_math_mathml": "Бололцоотой бол MathML (туршилт)",
+	"mw_math_png": "Байнга PNG болго",
+	"mw_math_source": "TeX хэвээр үлдээх (текстэн броузеруудад)",
+	"prefs-math": "Томъёонууд"
+}
diff --git a/i18n/mo.json b/i18n/mo.json
new file mode 100644
index 0000000..39c3dc6
--- /dev/null
+++ b/i18n/mo.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Node ue"
+		]
+	},
+	"math_sample": "Интроду формула аичь",
+	"math_tip": "Формулэ математикэ (LaTeX)"
+}
diff --git a/i18n/mr.json b/i18n/mr.json
new file mode 100644
index 0000000..3a0a73c
--- /dev/null
+++ b/i18n/mr.json
@@ -0,0 +1,38 @@
+{
+	"@metadata": {
+		"authors": [
+			"Htt",
+			"Kaustubh",
+			"Mahitgar",
+			"V.narsikar",
+			"संतोष दहिवळ",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathcontextitem-quickedit": "त्वरीत संपादन",
+	"math-visualeditor-mwmathdialog-title": "सूत्र",
+	"math-visualeditor-mwmathdialog-card-options": "पर्याय",
+	"math-visualeditor-symbol-group-arrows": "बाण",
+	"math-visualeditor-symbol-group-functions": "दर्जात्मक संख्यात्मक कार्यकलाप",
+	"math-visualeditor-symbol-group-operators": "चालक",
+	"math-visualeditor-symbol-group-relations": "संबंध",
+	"math-visualeditor-symbol-group-sets": "संच",
+	"math-visualeditor-symbol-group-special": "विशेष",
+	"math-visualeditor-symbol-group-unsorted": "पृथक न केलेल्या",
+	"math_bad_output": "गणितीय प्राप्त धारिकेची( math output directory) निर्मीती अथवा त्यात लेखन करू शकत नाही.",
+	"math_bad_tmpdir": "\"गणितीय तूर्त धारिके\"(math temp directory)ची  निर्मीती करू शकत नाही अथवा \"मॅथ तूर्त धारिकेत\" लिहू शकत नाही .",
+	"math_failure": "पृथक्करणात अयशस्वी",
+	"math_image_error": "पीएनजी रुपांतर अयशस्वी; लॅटेक्स, डीव्हीप्स, जीएसची  स्थापना योग्य झाली आहे काय ते तपासा आणि बदल करा",
+	"math_lexing_error": "लेक्झींग(कोशीय?)त्रुटी",
+	"math_notexvc": "<code>texvc</code>करणी(<code>texvc</code> एक्झिक्यूटेबल)चूकमुकली आहे;कृपया,सज्जीत करण्याकरिता math/README पहा.",
+	"math_sample": "इथे सूत्र लिहा",
+	"math_syntax_error": "आज्ञावली-विन्यास त्रुटी",
+	"math_tip": "गणितीय सूत्र (LaTeX)",
+	"math_unknown_error": "अपरिचित त्रुटी",
+	"math_unknown_function": "अज्ञात फंक्शन \"$1\"",
+	"mw_math_mathml": "शक्य असल्यास मॅथ एमएल (MathML) (प्रयोगावस्था)",
+	"mw_math_png": "PNG चित्रे",
+	"mw_math_source": "LaTeX स्रोत(टेक्स्ट न्याहाळकांकरिता)",
+	"prefs-math": "गणित",
+	"mathstatus": "गणितीय स्थिती"
+}
diff --git a/i18n/mrj.json b/i18n/mrj.json
new file mode 100644
index 0000000..c79e1aa
--- /dev/null
+++ b/i18n/mrj.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Amdf"
+		]
+	},
+	"math_sample": "Тишкӹ формулым шӹндӹдӓ",
+	"math_tip": "Математика формула (формат LaTeX)"
+}
diff --git a/i18n/ms.json b/i18n/ms.json
new file mode 100644
index 0000000..bfbf4e3
--- /dev/null
+++ b/i18n/ms.json
@@ -0,0 +1,40 @@
+{
+	"@metadata": {
+		"authors": [
+			"Anakmalaysia",
+			"Aviator",
+			"CoolCityCat",
+			"Kurniasan",
+			"Macofe"
+		]
+	},
+	"math-desc": "Mengolah rumus-rumus matematik antara teg-teg <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathinspector-display": "Paparan",
+	"math-visualeditor-mwmathinspector-display-block": "Blok",
+	"math-visualeditor-mwmathinspector-display-default": "Asali",
+	"math-visualeditor-mwmathinspector-display-inline": "Inline",
+	"math-visualeditor-mwmathinspector-id": "ID pautan (pilihan)",
+	"math-visualeditor-mwmathinspector-title": "Rumus",
+	"math_bad_output": "Direktori output matematik tidak boleh ditulis atau dicipta",
+	"math_bad_tmpdir": "Direktori temp matematik tidak boleh ditulis atau dicipta",
+	"math_failure": "Gagal menghurai",
+	"math_image_error": "Penukaran PNG gagal; periksa sama ada latex dan dvipng (atau dvips + gs + convert) telah dipasang dengan betul",
+	"math_invalidjson": "Respons pelayan $1 adalah JSON yang tidak sah.",
+	"math_invalidresponse": "$1: Respons tidak sah (\"$3\") dari pelayan \"$2\":",
+	"math_invalidxml": "MathML atau SVG adalah XML yang tidak sah.",
+	"math_lexing_error": "ralat ''lexing''",
+	"math_notexvc": "Atur cara <code>texvc</code> hilang; sila lihat fail math/README untuk maklumat konfigurasi.",
+	"math_output_error": "Imej matematik tidak dapat disimpan di dalam sistem fail.",
+	"math_sample": "Masukkan rumus di sini",
+	"math_syntax_error": "ralat sintaks",
+	"math_tip": "Rumus matematik (LaTeX)",
+	"math_unknown_error": "ralat yang tidak dikenali",
+	"math_unknown_function": "fungsi '$1' yang tidak dikenali",
+	"mw_math_latexml": "LaTeXML (percubaan; menggunakan MathML)",
+	"mw_math_mathjax": "MathJax sebelah klien (perlahan, mempertingkat rendering pada sesetengah pelayar dan alat-alat aksesibiliti)",
+	"mw_math_mathml": "MathML dengan sandaran SVG atau PNG (disyorkan untuk pelayar dan alat-alat aksesibiliti moden)",
+	"mw_math_png": "Imej PNG",
+	"mw_math_source": "Sumber LaTeX (untuk pelayar teks)",
+	"prefs-math": "Matematik",
+	"mathstatus": "Status Math"
+}
diff --git a/i18n/mt.json b/i18n/mt.json
new file mode 100644
index 0000000..4a31118
--- /dev/null
+++ b/i18n/mt.json
@@ -0,0 +1,26 @@
+{
+	"@metadata": {
+		"authors": [
+			"Chrisportelli",
+			"Giangian15",
+			"Leli Forte"
+		]
+	},
+	"math_bad_output": "Impossibli tikteb jew toħloq direttorju tal-''output'' tal-''math''",
+	"math_bad_tmpdir": "Impossibli tikteb jew toħloq direttorju temporanju għal ''math''",
+	"math_failure": "Problema fil-''parser''",
+	"math_image_error": "Konverżjoni għal PNG falliet; iċċekkja għall-installazzjoni tajba ta' latex jew dvipng (jew dvips, gs u convert).",
+	"math_invalidxml": "MathML jew SVG hu XML invalidu.",
+	"math_lexing_error": "żball lessikali",
+	"math_mathoid_error": "Żball fil-konverżjoni. Is-server (\"$1\") irrapporta: \"$2\"",
+	"math_notexvc": "Esekuzzjoni ''<code>texvc</code>'' nieqes; jekk jogħġbok konsultà ''math/README'' għal konfigurazzjoni.",
+	"math_sample": "Daħħal formula hawnhekk",
+	"math_syntax_error": "żball fis-sintassi",
+	"math_tip": "Formula matematika (LaTeX)",
+	"math_unknown_error": "Problema mhux magħrufa",
+	"math_unknown_function": "funżjoni mhux magħrufa",
+	"mw_math_mathml": "MathML, altrimenti SVG jew PNG (sperimentali)",
+	"mw_math_png": "Stampi bil-PNG",
+	"mw_math_source": "TeX (għan-navigaturi tat-test biss)",
+	"prefs-math": "Formuli matematiċi"
+}
diff --git a/i18n/mwl.json b/i18n/mwl.json
new file mode 100644
index 0000000..642d9cd
--- /dev/null
+++ b/i18n/mwl.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Cecílio",
+			"MCruz"
+		]
+	},
+	"math_sample": "Poner fórmula eiqui",
+	"math_tip": "Fórmula matemática (LaTeX)",
+	"prefs-math": "Matemática"
+}
diff --git a/i18n/my.json b/i18n/my.json
new file mode 100644
index 0000000..fe5e43f
--- /dev/null
+++ b/i18n/my.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": {
+		"authors": [
+			"Hintha",
+			"Lionslayer",
+			"Ninjastrikers",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathcontextitem-quickedit": "အမြန်တည်းဖြတ်",
+	"math_sample": "ဤနေရာတွင် သင်္ချာပုံသေနည်း သုံးရန်",
+	"math_tip": "သင်္ချာပုံသေနည်း (LaTeX)",
+	"math_unknown_error": "အမည်မသိ အမှား",
+	"math_unknown_function": "အမည်မသိ လုပ်ဆောင်ချက် \"$1\"",
+	"mw_math_png": "PNG ပုံများ",
+	"mw_math_source": "LaTeX ရင်းမြစ် (စာသားသာပြသည့် ဘရောက်ဇာများအတွက်)",
+	"prefs-math": "သင်္ချာ"
+}
diff --git a/i18n/myv.json b/i18n/myv.json
new file mode 100644
index 0000000..5dc859e
--- /dev/null
+++ b/i18n/myv.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": {
+		"authors": [
+			"Amdf",
+			"Botuzhaleny-sodamo"
+		]
+	},
+	"math_failure": "А ловнови",
+	"math_lexing_error": "лексиконь манявкс",
+	"math_sample": "Совавтомс тезэнь хвормула",
+	"math_syntax_error": "синтаксонь ильведевкс",
+	"math_tip": "Математикань хвормула (LaTeX)",
+	"math_unknown_error": "апак содань ильведькс",
+	"math_unknown_function": "апак содань функция «$1»",
+	"mw_math_mathml": "SVG-с печтамо марто MathML (варчамонь)",
+	"mw_math_source": "Кадык TeX хорматсо (текст вальмас)",
+	"prefs-math": "Математика"
+}
diff --git a/i18n/mzn.json b/i18n/mzn.json
new file mode 100644
index 0000000..d4c7bea
--- /dev/null
+++ b/i18n/mzn.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ali1986"
+		]
+	},
+	"math_sample": "فورمـول ره ایجـه دأکـه‌ن",
+	"math_tip": "ریاضی فورمول"
+}
diff --git a/i18n/nah.json b/i18n/nah.json
new file mode 100644
index 0000000..e685a44
--- /dev/null
+++ b/i18n/nah.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Fluence"
+		]
+	},
+	"math_sample": "Xihcuiloa nicān",
+	"math_tip": "Tlapōhualmatiliztlahtōl (LaTeX)",
+	"prefs-math": "Tlapōhualmatiliztli"
+}
diff --git a/i18n/nan.json b/i18n/nan.json
new file mode 100644
index 0000000..3500421
--- /dev/null
+++ b/i18n/nan.json
@@ -0,0 +1,12 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ianbu"
+		]
+	},
+	"math_sample": "Chia siá hong-thêng-sek",
+	"mw_math_mathml": "Chīn-liōng iōng MathML (chhì-giām-sèng--ê)",
+	"mw_math_png": "Tiāⁿ-tio̍h iōng PNG render",
+	"mw_math_source": "Î-chhî TeX ê keh-sek (khah ha̍h bûn-jī-sek ê liû-lám-khì)",
+	"prefs-math": "Sò·-ha̍k ê rendering"
+}
diff --git a/i18n/nap.json b/i18n/nap.json
new file mode 100644
index 0000000..2e55891
--- /dev/null
+++ b/i18n/nap.json
@@ -0,0 +1,77 @@
+{
+	"@metadata": {
+		"authors": [
+			"C.R."
+		]
+	},
+	"math-desc": "Interpreta 'e formule matemateche nfra 'e tag <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Cagnamient' 'e pressa",
+	"math-visualeditor-mwmathdialog-title": "Formula",
+	"math-visualeditor-mwmathdialog-card-formula": "Formula",
+	"math-visualeditor-mwmathdialog-card-options": "Opziune",
+	"math-visualeditor-mwmathinspector-display": "Fà vedè",
+	"math-visualeditor-mwmathinspector-display-block": "Bluccà",
+	"math-visualeditor-mwmathinspector-display-default": "'E bbase",
+	"math-visualeditor-mwmathinspector-display-inline": "'N linea",
+	"math-visualeditor-mwmathinspector-id": "ID d' 'o collegamiento (opzionale)",
+	"math-visualeditor-mwmathinspector-title": "Formula",
+	"math-visualeditor-symbol-group-accents": "Accente e diacritice",
+	"math-visualeditor-symbol-group-arrows": "Frecce",
+	"math-visualeditor-symbol-group-bounds": "Lèmmete",
+	"math-visualeditor-symbol-group-derivatives": "Derivate e différenziale",
+	"math-visualeditor-symbol-group-functions": "Funziune standard nummereche",
+	"math-visualeditor-symbol-group-geometry": "Giumetriche",
+	"math-visualeditor-symbol-group-greek": "Alfabbeto grieco",
+	"math-visualeditor-symbol-group-hebrew": "Alfabbeto abbrejo",
+	"math-visualeditor-symbol-group-large": "Mpustaziune apparicchiate gruosse",
+	"math-visualeditor-symbol-group-logic": "Loggeca",
+	"math-visualeditor-symbol-group-matrices": "Matrice",
+	"math-visualeditor-symbol-group-modular": "Aritmetica modulare",
+	"math-visualeditor-symbol-group-operators": "Operature",
+	"math-visualeditor-symbol-group-projections": "Pruggeziona",
+	"math-visualeditor-symbol-group-parentheses": "Parentese",
+	"math-visualeditor-symbol-group-relations": "Relaziune",
+	"math-visualeditor-symbol-group-root": "Rarecale",
+	"math-visualeditor-symbol-group-sets": "Nzieme",
+	"math-visualeditor-symbol-group-spacing": "Spazie",
+	"math-visualeditor-symbol-group-special": "Speziale",
+	"math-visualeditor-symbol-group-subscripts": "Sottoscritte, superscritte e ntegrale",
+	"math-visualeditor-symbol-group-symbols": "Sìmmule e costante",
+	"math-visualeditor-symbol-group-typefaces": "Typeface",
+	"math-visualeditor-symbol-group-unsorted": "Mmescato",
+	"math_bad_output": "Nun se pò scrivere o crià na cartella 'e destinaziona 'e math",
+	"math_bad_tmpdir": "Nun se pò scrivere o crià na cartella temporanea 'e math",
+	"math_failure": "Errore d' 'o parser",
+	"math_image_error": "'A conversione d' 'u PNG ha fallito;\ncuntrullate si l'installazione 'e latex e dvips (o dvipg + gs + convertitore) sta apposto",
+	"math_invalidjson": "$1 'a risposta d' 'o server è nu JSON invalido.",
+	"math_invalidresponse": "$1: resposta invalida (\"$3\") d' 'o server \"$2\":",
+	"math_invalidxml": "MathML o SVG nun è nu XML valido.",
+	"math_lexing_error": "errore lessicale",
+	"math_mathoid_error": "Errore 'e cunverziona. 'O server (\"$1\") nzignaje: \"$2\"",
+	"math_notexvc": "<code>texvc</code> eseguibbele perduto;\npe' piacere vedite math/README pe' configurà.",
+	"math_output_error": "Nun se pò astipà n'immaggene math dint' 'o sistema 'e file",
+	"math_sample": "Mettite 'a formula ccà",
+	"math-status-introduction": "Sta pàgene facesse abbedè 'e nfurmaziune ncopp' {{PLURAL:$1|'o modo|'e mode}} 'e renderizzaziona abbiàte d' 'o math.\n\n{{PLURAL:$1|'O modo 'e renderizzaziona è|'E mode 'e renderizzaziona songo}} abbiàte.",
+	"math_syntax_error": "errore 'e sintasse",
+	"math_timeout": "$1 fore tiempo 'a \"$2\".",
+	"math-test-end": "Teste arrete cumpretate p' 'o modo 'e render \"$1\".",
+	"math-test-fail": "Test ''$1''  <span style=\"color:red\">fallito</span>.",
+	"math-test-start": "Facenno test d'arreto p' 'o modo 'e renderizzazzione \"$1\".",
+	"math-test-success": "Test ''$1'' <span style=\"color:green\">apposto</span>.",
+	"math-test-contains-diff": "Turnata 'a stringa $1 ca nun ce téne 'a stringhe aspettate $2.",
+	"math-test-equals-diff": "Turnata 'a stringa $1 ca è diverse d' 'a stringa aspettata $2.",
+	"math_tip": "Formula matemateca (LaTeX)",
+	"math_unknown_error": "errore scanusciuto",
+	"math_unknown_function": "funziona scanusciuta \"$1\".",
+	"mw_math_latexml": "LaTeXML (sperimentale; aùsa MathML)",
+	"mw_math_latexml_jax": "LaTeXML cu MathJax lato cliente (sperimentale; ausàte MathML)",
+	"mw_math_mathjax": "MathJax lato cliente (lento; migliorea 'u disegno ncopp'a quacche browser e le strumiente d'accesso)",
+	"mw_math_mathml": "MathML cu SVG o PNG fallback (raccummandate pe' browser muderne e strumiente d'accesso)",
+	"mw_math_png": "Immaggene PNG",
+	"mw_math_source": "Sorgente LaTeX (p' 'e browser 'e testo)",
+	"prefs-math": "Math",
+	"mathstatus": "Stato d' 'o Math",
+	"datatypes-type-math": "Espressione matematica",
+	"wikibase-listdatatypes-math-head": "Espressione matematica",
+	"wikibase-listdatatypes-math-body": "Campo 'e date literale p' 'e espressiune matematiche, formule, equaziune e comm'a chiste, scritte c' 'o lenguaggio 'a varianta 'e LaTeX"
+}
diff --git a/i18n/nb.json b/i18n/nb.json
new file mode 100644
index 0000000..2fc4fd4
--- /dev/null
+++ b/i18n/nb.json
@@ -0,0 +1,81 @@
+{
+	"@metadata": {
+		"authors": [
+			"Event",
+			"Nghtwlkr",
+			"Stigmj",
+			"Danmichaelo",
+			"Macofe"
+		]
+	},
+	"math-desc": "Fremstill matematiske formler inne i taggparet <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Hurtigredigering",
+	"math-visualeditor-mwmathdialog-title": "Formel",
+	"math-visualeditor-mwmathdialog-card-formula": "Formel",
+	"math-visualeditor-mwmathdialog-card-options": "Valg",
+	"math-visualeditor-mwmathinspector-display": "Visning",
+	"math-visualeditor-mwmathinspector-display-block": "Blokk",
+	"math-visualeditor-mwmathinspector-display-default": "Standard",
+	"math-visualeditor-mwmathinspector-display-inline": "I teksten",
+	"math-visualeditor-mwmathinspector-id": "Lenke-ID (valgfritt)",
+	"math-visualeditor-mwmathinspector-title": "Formel",
+	"math-visualeditor-symbol-group-accents": "Aksenter og diakritiske tegn",
+	"math-visualeditor-symbol-group-arrows": "Piler",
+	"math-visualeditor-symbol-group-bounds": "Grenser",
+	"math-visualeditor-symbol-group-derivatives": "Differensialer og derivering",
+	"math-visualeditor-symbol-group-functions": "Vanlige numeriske funksjoner",
+	"math-visualeditor-symbol-group-geometry": "Geometrisk",
+	"math-visualeditor-symbol-group-greek": "Det greske alfabetet",
+	"math-visualeditor-symbol-group-hebrew": "Det hebraiske alfabetet",
+	"math-visualeditor-symbol-group-large": "Store uttrykk",
+	"math-visualeditor-symbol-group-logic": "Logikk",
+	"math-visualeditor-symbol-group-matrices": "Matriser",
+	"math-visualeditor-symbol-group-modular": "Modulær aritmetikk",
+	"math-visualeditor-symbol-group-operators": "Operatorer",
+	"math-visualeditor-symbol-group-projections": "Projeksjon",
+	"math-visualeditor-symbol-group-parentheses": "Parenteser",
+	"math-visualeditor-symbol-group-relations": "Relasjoner",
+	"math-visualeditor-symbol-group-root": "Røtter",
+	"math-visualeditor-symbol-group-sets": "Sett",
+	"math-visualeditor-symbol-group-spacing": "Mellomrom",
+	"math-visualeditor-symbol-group-special": "Spesielt",
+	"math-visualeditor-symbol-group-subscripts": "Hevet og senket skrift, samt integraler",
+	"math-visualeditor-symbol-group-symbols": "Symboler og konstanter",
+	"math-visualeditor-symbol-group-typefaces": "Skrifttyper",
+	"math-visualeditor-symbol-group-unsorted": "Usortert",
+	"math_bad_output": "Kan ikke skrive til eller opprette resultatmappe",
+	"math_bad_tmpdir": "Kan ikke skrive til eller opprette midlertidig mappe",
+	"math_failure": "Feil i matematikken",
+	"math_image_error": "PNG-konversjon mislyktes; sjekk at latex og dvipng (eller dvips + gs + convert) er korrekt installert",
+	"math_invalidjson": "Svaret fra $1-serveren er ugyldig JSON.",
+	"math_invalidresponse": "$1: Ugyldig respons («$3») fra serveren «$2»:",
+	"math_invalidxml": " MathML eller SVG er ugyldig XML.",
+	"math_lexing_error": "lexerfeil",
+	"math_mathoid_error": "Konverteringsfeil. Serveren («$1») rapporterte: «$2»",
+	"math_notexvc": "Mangler kjørbar <code>texvc</code>;\nse math/README for oppsett.",
+	"math_output_error": "Kan ikke lagre formelbildet på filsystemet.",
+	"math_sample": "Sett inn formel her",
+	"math-status-introduction": "Denne siden viser informasjon om {{PLURAL:$1|aktivert modus|aktiverte modi}} for rendering av matematiske uttrykk.\n\nFølgende {{PLURAL:$1|modus|modi}} er aktivert:",
+	"math_syntax_error": "syntaksfeil",
+	"math_timeout": "$1-tidsavbrudd fra «$2»",
+	"math-test-end": "Backend-tester for renderingsmodusen ''$1'' fullført.",
+	"math-test-fail": "Testen ''$1'' <span style=\"color:red\">feilet</span>.",
+	"math-test-start": "Kjører backend-tester for renderingsmodusen ''$1''.",
+	"math-test-success": "Testen ''$1'' <span style=\"color:green\">var vellykket</span>.",
+	"math-test-contains-diff": "Den returnerte stregen $1 inneholder ikke den forventede strengen $2.",
+	"math-test-equals-diff": "Den returnerte strengen $1 er forskjellig fra den forventede strengen $2.",
+	"math_tip": "Matematisk formel (LaTeX)",
+	"math_unknown_error": "ukjent feil",
+	"math_unknown_function": "ukjent funksjon '$1'",
+	"mw_math_latexml": "LaTeXML (på forsøksstadiet; bruker MathML)",
+	"mw_math_latexml_jax": "LaTeXML med MathJax på klientsiden (eksperimentelt; bruker MathML)",
+	"mw_math_mathjax": "Klientsidig MathJax (tregt, men gir forbedret rendering i noen nettlesere og tilgjengelighetsverktøy)",
+	"mw_math_mathml": "MathML med SVG eller PNG-tilbakefall (anbefales for moderne nettlesere og tilgjengelighetsverktøy)",
+	"mw_math_png": "PNG-bilder",
+	"mw_math_source": "LaTeX-kilde (for tekstbaserte nettlesere)",
+	"prefs-math": "Matematiske formler",
+	"mathstatus": "Mattestatus",
+	"datatypes-type-math": "Matematiske uttrykk",
+	"wikibase-listdatatypes-math-head": "Matematisk uttrykk",
+	"wikibase-listdatatypes-math-body": "Literalt datafelt for matematiske uttrykk, formler, ligninger og lignende, uttrykt i en variant av LaTeX."
+}
diff --git a/i18n/nds-nl.json b/i18n/nds-nl.json
new file mode 100644
index 0000000..6375bd5
--- /dev/null
+++ b/i18n/nds-nl.json
@@ -0,0 +1,30 @@
+{
+	"@metadata": {
+		"authors": [
+			"Servien"
+		]
+	},
+	"math-desc": "Wiskundige formules tussen <code><math></code> ... <code></math></code>-etiketten zetten",
+	"math-visualeditor-mwmathinspector-display-default": "Standard",
+	"math_bad_output": "De map veur wiskundebestaanden besteet niet of is niet an te maken.",
+	"math_bad_tmpdir": "De map veur tiedelike bestaanden veur wiskundige formules besteet niet of is kan niet an-emaakt wörden.",
+	"math_failure": "Wiskundige formule niet begriepelik",
+	"math_image_error": "De PNG-umzetting is mislokt. Kiek even nao of LaTeX en dvipng (of dvips + gs + convert) wel goed eïnstalleerd bin.",
+	"math_invalidjson": "$1: t antwoord van de server is ongeldige JSON.",
+	"math_invalidresponse": "$1: ongeldig antwoord (\"$3\") van server \"$2\":",
+	"math_invalidxml": ": MathML is ongeldige XML.",
+	"math_lexing_error": "Lexikografiese fout in formule",
+	"math_notexvc": "Kan t programma <code>texvc</code> niet vienen; configureer volgens de beschrieving in math/README.",
+	"math_output_error": "De formule-aofbeelding kan niet op t bestaandssysteem op-esleugen wörden.",
+	"math_sample": "Voer de formule in",
+	"math_syntax_error": "Syntaktiese fout in formule",
+	"math_tip": "Wiskundige formule (in LaTeX)",
+	"math_unknown_error": "Onbekende fout in formule",
+	"math_unknown_function": "onbekende funksie \"$1\"",
+	"mw_math_latexml": "LaTeXML (experimenteel; gebruukt MathML)",
+	"mw_math_mathjax": "MathJax (experimenteel)",
+	"mw_math_mathml": "MathML",
+	"mw_math_png": "Altied as PNG laoten zien",
+	"mw_math_source": "Laot TeX-bronkode staon (veur tekstwebkiekers)",
+	"prefs-math": "Wiskundige formules"
+}
diff --git a/i18n/nds.json b/i18n/nds.json
new file mode 100644
index 0000000..92916ce
--- /dev/null
+++ b/i18n/nds.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": [],
+	"math_bad_output": "Kann dat Teelverteken för mathematsche Formeln nich anleggen oder beschrieven.",
+	"math_bad_tmpdir": "Kann dat Temporärverteken för mathematsche Formeln nich anleggen oder beschrieven.",
+	"math_failure": "Parser-Fehler",
+	"math_image_error": "dat Konverteren na PNG harr keen Spood.",
+	"math_lexing_error": "'Lexing'-Fehler",
+	"math_notexvc": "Dat <code>texvc</code>-Programm kann nich funnen warrn. Kiek ok math/README.",
+	"math_sample": "Formel hier infögen",
+	"math_syntax_error": "Syntaxfehler",
+	"math_tip": "Mathematsche Formel (LaTeX)",
+	"math_unknown_error": "Unbekannten Fehler",
+	"math_unknown_function": "Unbekannte Funktschoon",
+	"mw_math_mathml": "MathML (experimentell)",
+	"mw_math_png": "Jümmer as PNG dorstellen",
+	"mw_math_source": "As TeX laten (för Textbrowser)",
+	"prefs-math": "TeX"
+}
diff --git a/i18n/ne.json b/i18n/ne.json
new file mode 100644
index 0000000..276042d
--- /dev/null
+++ b/i18n/ne.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Bhawani Gautam",
+			"Bhawani Gautam Rhk",
+			"सरोज कुमार ढकाल",
+			"NehalDaveND"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display": "दृश्य",
+	"math-visualeditor-mwmathinspector-display-block": "रोक्ने",
+	"math-visualeditor-mwmathinspector-display-default": "पूर्वनिर्धारित",
+	"math_failure": "पढ्न सकिएन",
+	"math_lexing_error": "वर्ण(lexing) त्रुटी",
+	"math_sample": "सूत्र यहाँ थप्नुहोस्",
+	"math_syntax_error": "सूत्र (syntax) त्रुटि",
+	"math_tip": "गणितीय सूत्र (LaTeX)",
+	"math_unknown_error": "अज्ञात समस्या",
+	"math_unknown_function": "अज्ञात निर्देशन",
+	"mw_math_png": "जहिले  PNG खोल्ने",
+	"mw_math_source": "यसलाई TeX को रुपमा  छोड्ने(पाठ प्रदर्शको लागि)",
+	"prefs-math": "गणित"
+}
diff --git a/i18n/new.json b/i18n/new.json
new file mode 100644
index 0000000..ca99b9a
--- /dev/null
+++ b/i18n/new.json
@@ -0,0 +1,4 @@
+{
+	"@metadata": [],
+	"prefs-math": "गणित"
+}
diff --git a/i18n/nl.json b/i18n/nl.json
new file mode 100644
index 0000000..35a7887
--- /dev/null
+++ b/i18n/nl.json
@@ -0,0 +1,81 @@
+{
+	"@metadata": {
+		"authors": [
+			"Romaine",
+			"SPQRobin",
+			"Siebrand",
+			"Sjoerddebruin",
+			"Mirolith",
+			"Esketti",
+			"McDutchie",
+			"Macofe"
+		]
+	},
+	"math-desc": "Wiskundige formules tussen <code><math></code> ... <code></math></code>-labels weergeven",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Snelle bewerking",
+	"math-visualeditor-mwmathdialog-title": "Formule",
+	"math-visualeditor-mwmathdialog-card-formula": "Formule",
+	"math-visualeditor-mwmathdialog-card-options": "Opties",
+	"math-visualeditor-mwmathinspector-display": "Weergeven",
+	"math-visualeditor-mwmathinspector-display-block": "Blokkeren",
+	"math-visualeditor-mwmathinspector-display-default": "Standaard",
+	"math-visualeditor-mwmathinspector-display-inline": "In lijn",
+	"math-visualeditor-mwmathinspector-id": "Koppelings-ID (optioneel)",
+	"math-visualeditor-mwmathinspector-title": "Formule",
+	"math-visualeditor-symbol-group-accents": "Accenten en leestekens",
+	"math-visualeditor-symbol-group-arrows": "Pijlen",
+	"math-visualeditor-symbol-group-bounds": "Grenzen",
+	"math-visualeditor-symbol-group-derivatives": "Differentiëlen en derivaten",
+	"math-visualeditor-symbol-group-functions": "Standaard numerieke functies",
+	"math-visualeditor-symbol-group-geometry": "Geometrische objecten",
+	"math-visualeditor-symbol-group-greek": "Griekse alfabet",
+	"math-visualeditor-symbol-group-hebrew": "Hebreeuwse alfabet",
+	"math-visualeditor-symbol-group-large": "Grote lay-outs",
+	"math-visualeditor-symbol-group-logic": "Logica",
+	"math-visualeditor-symbol-group-matrices": "Matrices",
+	"math-visualeditor-symbol-group-modular": "Modulair rekenen",
+	"math-visualeditor-symbol-group-operators": "Operators",
+	"math-visualeditor-symbol-group-projections": "Projecties",
+	"math-visualeditor-symbol-group-parentheses": "Haakjes",
+	"math-visualeditor-symbol-group-relations": "Relaties",
+	"math-visualeditor-symbol-group-root": "Radicalen",
+	"math-visualeditor-symbol-group-sets": "Verzamelingen",
+	"math-visualeditor-symbol-group-spacing": "Afstand",
+	"math-visualeditor-symbol-group-special": "Speciaal",
+	"math-visualeditor-symbol-group-subscripts": "Subscript, superscript en integralen",
+	"math-visualeditor-symbol-group-symbols": "Symbolen en constanten",
+	"math-visualeditor-symbol-group-typefaces": "Lettertypen",
+	"math-visualeditor-symbol-group-unsorted": "Ongesorteerd",
+	"math_bad_output": "De map voor bestanden met wiskundige formules bestaat niet of kan niet gemaakt worden.",
+	"math_bad_tmpdir": "De map voor tijdelijke bestanden voor wiskundige formules bestaat niet of kan niet gemaakt worden",
+	"math_failure": "Parsen mislukt",
+	"math_image_error": "De PNG-omzetting is mislukt. Controleer of LaTeX en dvipng (of dvips + gs + convert) correct zijn geïnstalleerd.",
+	"math_invalidjson": "$1: het antwoord van de server is ongeldige JSON.",
+	"math_invalidresponse": "$1: Ongeldig antwoord (\"$3\") van server \"$2\":",
+	"math_invalidxml": "MathML of SVG is ongeldige XML.",
+	"math_lexing_error": "lexicografische fout",
+	"math_mathoid_error": "Conversiefout. De server (\"$1\") heeft gemeld: \"$2\"",
+	"math_notexvc": "Kan het programma <code>texvc</code> niet vinden; stel alles in volgens de beschrijving in math/README.",
+	"math_output_error": "De Mathafbeelding kan niet op het bestandssysteem worden opgeslagen.",
+	"math_sample": "Voer de formule in",
+	"math-status-introduction": "Deze pagina geeft informatie weer over de ingeschakelde weergave{{PLURAL:$1|modus|modi}} voor wiskundige formules.\n\nDe volgende weergave{{PLURAL:$1|modus is|modi zijn}} ingeschakeld:",
+	"math_syntax_error": "syntactische fout",
+	"math_timeout": "Time-out $1-verwerking op \"$2\".",
+	"math-test-end": "Backendtests voor de weergavemodus ''$1'' uitgevoerd.",
+	"math-test-fail": "Test ''$1''  <span style=\"color:red\">mislukt</span>.",
+	"math-test-start": "Uitvoeren backendtests voor de weergavemodus ''$1''.",
+	"math-test-success": "Test \"$1\" <span style=\"color:green\">is geslaagd</span>.",
+	"math_tip": "Wiskundige formule (in LaTeX)",
+	"math_unknown_error": "onbekende fout",
+	"math_unknown_function": "onbekende functie \"$1\"",
+	"mw_math_latexml": "LaTeXML (experimenteel; gebruikt MathML)",
+	"mw_math_latexml_jax": "LaTeXML met client-side MathJax (experimenteel; maakt gebruik van MathML)",
+	"mw_math_mathjax": "Clientside MathJax (traag; verbetert de weergave op sommige browsers en toegankelijkheidshulpmiddelen)",
+	"mw_math_mathml": "MathML met SVG- of PNG-terugval (aanbevolen voor moderne browsers en toegankelijkheidshulpmiddelen)",
+	"mw_math_png": "PNG-afbeeldingen",
+	"mw_math_source": "LaTeX-bron (voor tekstbrowsers)",
+	"prefs-math": "Formules",
+	"mathstatus": "Status formuleweergave",
+	"datatypes-type-math": "Wiskundige uitdrukking",
+	"wikibase-listdatatypes-math-head": "Wiskundige uitdrukking"
+}
diff --git a/i18n/nn.json b/i18n/nn.json
new file mode 100644
index 0000000..3f792a4
--- /dev/null
+++ b/i18n/nn.json
@@ -0,0 +1,24 @@
+{
+	"@metadata": {
+		"authors": [
+			"Nghtwlkr",
+			"Njardarlogar"
+		]
+	},
+	"math-visualeditor-mwmathinspector-title": "Formel",
+	"math_bad_output": "Kan ikkje skrive til eller laga mattemappe",
+	"math_bad_tmpdir": "Kan ikkje skrive til eller laga mellombels mattemappe",
+	"math_failure": "Klarte ikkje å tolke formelen",
+	"math_image_error": "PNG-konverteringa var mislukka; sjekk at latex og dvipng (eller dvips + gs + convert) er rett installerte",
+	"math_lexing_error": "lexerfeil",
+	"math_notexvc": "Manglar <code>texvc</code>-program; sjå math/README for konfigurasjon.",
+	"math_sample": "Skriv formel her",
+	"math_syntax_error": "syntaksfeil",
+	"math_tip": "Matematisk formel (LaTeX)",
+	"math_unknown_error": "ukjend feil",
+	"math_unknown_function": "ukjend funksjon",
+	"mw_math_mathml": "MathML dersom mogleg (eksperimentell)",
+	"mw_math_png": "Vis alltid som PNG",
+	"mw_math_source": "Behald som TeX (for tekst-nettlesarar)",
+	"prefs-math": "Matematiske formlar"
+}
diff --git a/i18n/nso.json b/i18n/nso.json
new file mode 100644
index 0000000..2b2ca1e
--- /dev/null
+++ b/i18n/nso.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mohau"
+		]
+	},
+	"math_sample": "Lokela ''formula'' mo",
+	"math_syntax_error": "phošo ya popafoko",
+	"math_tip": "Formula ya dipalo (LaTeX)",
+	"math_unknown_error": "Phošo ya gose tsebege"
+}
diff --git a/i18n/oc.json b/i18n/oc.json
new file mode 100644
index 0000000..f019b61
--- /dev/null
+++ b/i18n/oc.json
@@ -0,0 +1,25 @@
+{
+	"@metadata": {
+		"authors": [
+			"Cedric31",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Impossible de crear o d’escriure dins lo repertòri math de sortida",
+	"math_bad_tmpdir": "Impossible de crear o d’escriure dins lo repertòri math temporari",
+	"math_failure": "Error matas",
+	"math_image_error": "La conversion en PNG a pas capitat ; verificatz l’installacion de Latex e dvipng (o dvips + gs + convert)",
+	"math_lexing_error": "error lexicala",
+	"math_notexvc": "L’executable « <code>texvc</code> » es introbable. Legissètz math/README per lo configurar.",
+	"math_sample": "Picatz vòstra formula aicí",
+	"math_syntax_error": "error de sintaxi",
+	"math_tip": "Formula matematica (LaTeX)",
+	"math_unknown_error": "error indeterminada",
+	"math_unknown_function": "foncion desconeguda « $1 »",
+	"mw_math_mathjax": "MathJax (experimental)",
+	"mw_math_mathml": "MathML amb SVG o PNG en secors (experimental)",
+	"mw_math_png": "Imatges PNG",
+	"mw_math_source": "Font LaTeX (pels navigadors en mòde tèxte)",
+	"prefs-math": "Rendut de las matas",
+	"mathstatus": "Estat matematic"
+}
diff --git a/i18n/olo.json b/i18n/olo.json
new file mode 100644
index 0000000..b50632d
--- /dev/null
+++ b/i18n/olo.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mashoi7"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display-block": "Estä",
+	"math_syntax_error": "sintaksine haireh",
+	"math_unknown_error": "tundematoi haireh",
+	"mw_math_png": "PNG-kuvat",
+	"prefs-math": "Matemuatiekku",
+	"mathstatus": "Matemuattine stuatussu"
+}
diff --git a/i18n/om.json b/i18n/om.json
new file mode 100644
index 0000000..86a6175
--- /dev/null
+++ b/i18n/om.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Tumsaa"
+		]
+	},
+	"datatypes-type-math": "Himannoo herregaa",
+	"wikibase-listdatatypes-math-head": "Himannoo herregaa"
+}
diff --git a/i18n/or.json b/i18n/or.json
new file mode 100644
index 0000000..b434c6c
--- /dev/null
+++ b/i18n/or.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Psubhashish"
+		]
+	},
+	"math_sample": "ଏଠି ଫରମୁଲା ପୁରାଅ",
+	"math_tip": "ଗାଣିତିକ ସୁତର (ଲାଟେକ୍ସ)"
+}
diff --git a/i18n/os.json b/i18n/os.json
new file mode 100644
index 0000000..c411ae3
--- /dev/null
+++ b/i18n/os.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Amikeco"
+		]
+	},
+	"math_sample": "Ныффысс формулæ",
+	"math_syntax_error": "синтаксисы рæдыд",
+	"math_tip": "Математикон формулæ (формат LaTeX)",
+	"math_unknown_function": "нæзонгæ функци"
+}
diff --git a/i18n/pa.json b/i18n/pa.json
new file mode 100644
index 0000000..497ad26
--- /dev/null
+++ b/i18n/pa.json
@@ -0,0 +1,17 @@
+{
+	"@metadata": {
+		"authors": [
+			"Babanwalia",
+			"Satdeep gill"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display-block": "ਪਾਬੰਦੀ ਲਾਓ",
+	"math_failure": "ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ",
+	"math_lexing_error": "lexing ਗਲਤੀ",
+	"math_syntax_error": "ਸੰਟੈਕਸ ਗਲਤੀ",
+	"math_tip": "ਗਣਿਤ ਫਾਰਮੂਲਾ (LaTeX)",
+	"math_unknown_error": "ਅਣਜਾਣ ਗਲਤੀ",
+	"math_unknown_function": "ਅਣਜਾਣ ਫੰਕਸ਼ਨ",
+	"mw_math_png": "ਪੀ.ਐੱਨ.ਜੀ. ਤਸਵੀਰਾਂ",
+	"prefs-math": "ਗਣਿਤ"
+}
diff --git a/i18n/pag.json b/i18n/pag.json
new file mode 100644
index 0000000..65b4605
--- /dev/null
+++ b/i18n/pag.json
@@ -0,0 +1,4 @@
+{
+	"@metadata": [],
+	"math_unknown_error": "aga-antan error"
+}
diff --git a/i18n/pam.json b/i18n/pam.json
new file mode 100644
index 0000000..130e467
--- /dev/null
+++ b/i18n/pam.json
@@ -0,0 +1,24 @@
+{
+	"@metadata": {
+		"authors": [
+			"Katimawan2005",
+			"Leeheonjin"
+		]
+	},
+	"math-visualeditor-symbol-group-logic": "Lohiku",
+	"math-visualeditor-symbol-group-special": "Espesyal",
+	"math_bad_output": "E makasulat king o makapaglalang piyakitan (directory) a math output",
+	"math_bad_tmpdir": "E makasulat king o makapaglalang piyakitan (directory) a math temp",
+	"math_failure": "E melaus ing pamag-parse",
+	"math_image_error": "E melaus ing pamanalis king PNG;\nsiguraduan mu ing ustung pamag-install king latex, dvips, gs, at kaibat iyalis (i-convert) me",
+	"math_lexing_error": "pamagkamali king lexing",
+	"math_notexvc": "Mawawala ya ing <code>texvc</code> executable;\npakilawe me ing math/README ba meng i-configure.",
+	"math_sample": "Isingit me ing formula keni",
+	"math_syntax_error": "pamagkamali king pamituki-tuki (syntax error)",
+	"math_tip": "Formulang pang-matematika (LaTeX)",
+	"math_unknown_error": "e makikilalang pamagkamali",
+	"math_unknown_function": "e makikilalang gamit (unknown function)",
+	"mw_math_mathml": "MathML nung maliari (susubukan da pamu [experimental])",
+	"mw_math_png": "Pane yang pakit king ayus/format a PNG",
+	"mw_math_source": "Paburen yang TeX (para kareng text browser)"
+}
diff --git a/i18n/pcd.json b/i18n/pcd.json
new file mode 100644
index 0000000..27d989c
--- /dev/null
+++ b/i18n/pcd.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Geoleplubo"
+		]
+	},
+	"math_sample": "Mètte l'formule ichi",
+	"math_tip": "Formule matématike (LaTeX)"
+}
diff --git a/i18n/pdc.json b/i18n/pdc.json
new file mode 100644
index 0000000..ea383dd
--- /dev/null
+++ b/i18n/pdc.json
@@ -0,0 +1,8 @@
+{
+	"@metadata": {
+		"authors": [
+			"Xqt"
+		]
+	},
+	"math_sample": "Formula hier eigewwe"
+}
diff --git a/i18n/pdt.json b/i18n/pdt.json
new file mode 100644
index 0000000..3d3fd6e
--- /dev/null
+++ b/i18n/pdt.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Wikipeeta"
+		]
+	},
+	"mw_math_mathml": "MathML wan meajlich (experimental)",
+	"mw_math_png": "Emma aus PNG wiese",
+	"mw_math_source": "Aus TeX lote (fe Tatjstbrowser)"
+}
diff --git a/i18n/pfl.json b/i18n/pfl.json
new file mode 100644
index 0000000..8807e38
--- /dev/null
+++ b/i18n/pfl.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Als-Holder"
+		]
+	},
+	"math_sample": "Do Formel aigewwe",
+	"math_tip": "Mathematische Formel (LaTeX)"
+}
diff --git a/i18n/pl.json b/i18n/pl.json
new file mode 100644
index 0000000..b6086eb
--- /dev/null
+++ b/i18n/pl.json
@@ -0,0 +1,79 @@
+{
+	"@metadata": {
+		"authors": [
+			"BeginaFelicysym",
+			"Chrumps",
+			"Sp5uhe",
+			"Woytecr",
+			"Matik7",
+			"Tar Lócesilion",
+			"Devwebtel",
+			"Matma Rex"
+		]
+	},
+	"math-desc": "Renderowanie formuł matematycznych między znacznikami <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Szybka edycja",
+	"math-visualeditor-mwmathdialog-title": "Wzory",
+	"math-visualeditor-mwmathdialog-card-formula": "Wzór",
+	"math-visualeditor-mwmathdialog-card-options": "Opcje",
+	"math-visualeditor-mwmathinspector-display": "Wyświetl",
+	"math-visualeditor-mwmathinspector-display-block": "Ramka",
+	"math-visualeditor-mwmathinspector-display-default": "Domyślnie",
+	"math-visualeditor-mwmathinspector-display-inline": "Równo z tekstem",
+	"math-visualeditor-mwmathinspector-id": "Link ID (opcjonalnie)",
+	"math-visualeditor-mwmathinspector-title": "Wzór",
+	"math-visualeditor-symbol-group-accents": "Akcenty i znaki diakrytyczne",
+	"math-visualeditor-symbol-group-arrows": "Strzałki",
+	"math-visualeditor-symbol-group-bounds": "Granice",
+	"math-visualeditor-symbol-group-derivatives": "Różniczki i pochodne",
+	"math-visualeditor-symbol-group-functions": "Standardowe funkcje numeryczne",
+	"math-visualeditor-symbol-group-geometry": "Geometryczne",
+	"math-visualeditor-symbol-group-greek": "Litery greckie",
+	"math-visualeditor-symbol-group-hebrew": "Litery hebrajskie",
+	"math-visualeditor-symbol-group-large": "Większe konstrukcje",
+	"math-visualeditor-symbol-group-logic": "Logiczne",
+	"math-visualeditor-symbol-group-matrices": "Macierze",
+	"math-visualeditor-symbol-group-modular": "Arytmetyka modularna",
+	"math-visualeditor-symbol-group-operators": "Operatory",
+	"math-visualeditor-symbol-group-projections": "Projekcje",
+	"math-visualeditor-symbol-group-parentheses": "Nawiasy",
+	"math-visualeditor-symbol-group-relations": "Relacje",
+	"math-visualeditor-symbol-group-root": "Pierwiastki",
+	"math-visualeditor-symbol-group-sets": "Zestawy",
+	"math-visualeditor-symbol-group-spacing": "Odstępy",
+	"math-visualeditor-symbol-group-special": "Specjalne",
+	"math-visualeditor-symbol-group-subscripts": "Indeksy dolne i górne oraz całki",
+	"math-visualeditor-symbol-group-symbols": "Symbole i stałe",
+	"math-visualeditor-symbol-group-typefaces": "Kroje czcionek",
+	"math-visualeditor-symbol-group-unsorted": "Nieposortowane",
+	"math_bad_output": "Nie można utworzyć lub zapisywać w wyjściowym katalogu dla wzorów matematycznych",
+	"math_bad_tmpdir": "Nie można utworzyć lub zapisywać w tymczasowym katalogu dla wzorów matematycznych",
+	"math_failure": "Parser nie mógł rozpoznać",
+	"math_image_error": "Konwersja z lub do formatu PNG nie powiodła się. Sprawdź, czy poprawnie zainstalowane są latex i dvipng (lub dvips, gs i convert)",
+	"math_invalidxml": "MathML lub SVG zawiera nieprawidłowy kod XML.",
+	"math_lexing_error": "błędna nazwa",
+	"math_mathoid_error": "Błąd konwersji. Serwer („$1”) zgłosił: „$2”",
+	"math_notexvc": "Brak programu <code>texvc</code>.\nZapoznaj się z math/README w celu konfiguracji.",
+	"math_output_error": "Nie można zapisać obrazu z wzorem w systemie plików.",
+	"math_sample": "Tutaj wprowadź wzór",
+	"math-status-introduction": "Ta strona pokazuje informacje o dostępności rodzajów renderowania wzorów matematycznych.\n\n{{PLURAL:$1|Dostępny jest następujący rodzaj|Dostępne są następujące}} renderowania:",
+	"math_syntax_error": "błąd składni",
+	"math_timeout": "$1 przekroczył czas oczekiwania od „$2”.",
+	"math-test-fail": "Test ''$1'' <span style=\"color:red\">zakończony niepowodzeniem</span>.",
+	"math-test-success": "Test ''$1'' <span style=\"color:green\">zakończony powodzeniem</span>.",
+	"math-test-contains-diff": "Zwracany ciąg znaków $1 nie zawiera oczekiwanego $2.",
+	"math-test-equals-diff": "Zwracany ciąg znaków $1 różni się od oczekiwanego $2",
+	"math_tip": "Wzór matematyczny (LaTeX)",
+	"math_unknown_error": "nieznany błąd",
+	"math_unknown_function": "nieznana funkcja '$1'",
+	"mw_math_latexml": "LaTeXML (eksperymentalne; wykorzystuje MathML)",
+	"mw_math_latexml_jax": "LaTeXML z MathJax po stronie klienta (eksperymentalna opcja wykorzystująca MathML)",
+	"mw_math_mathjax": "MathJax po stronie klienta (powolne; poprawia renderowanie w niektórych przeglądarkach i narzędziach zwiększenia dostępności)",
+	"mw_math_mathml": "MathML z przejściem w SVG lub PNG (zalecane dla nowoczesnych przeglądarek i narzędzi zwiększenia dostępności)",
+	"mw_math_png": "Obrazy PNG",
+	"mw_math_source": "Źródło w LaTeX (dla przeglądarek tekstowych)",
+	"prefs-math": "Wzory",
+	"mathstatus": "Status renderowania formuł matematycznych",
+	"datatypes-type-math": "Wyrażenie matematyczne",
+	"wikibase-listdatatypes-math-head": "Wyrażenie matematyczne"
+}
diff --git a/i18n/pms.json b/i18n/pms.json
new file mode 100644
index 0000000..51fd01f
--- /dev/null
+++ b/i18n/pms.json
@@ -0,0 +1,25 @@
+{
+	"@metadata": {
+		"authors": [
+			"Borichèt",
+			"Dragonòt"
+		]
+	},
+	"math-desc": "Rende le fòrmule matemàtiche antra le tichëtte <code><math></code> ... \n<code></math></code>",
+	"math_bad_output": "Ël sistema a-i la fa pa a creé la diretriss '''math output''', ò pura a-i la fa nen a scriv-je andrinta",
+	"math_bad_tmpdir": "Ël sistema a-i la fa pa a creé la diretriss '''math temp''', ò pura a-i la fa nen a scriv-je andrinta",
+	"math_failure": "Parsificassion falà",
+	"math_image_error": "La conversion an PNG a l'é falìa; che a contròla l'ùltima instalassion ëd latex e dvipng (o dvips + gs + convert)",
+	"math_lexing_error": "eror ëd léssich",
+	"math_notexvc": "Pa gnun <code>texvc</code> executable; për piasì, che a contròla math/README për la configurassion.",
+	"math_sample": "Che a buta la fòrmula ambelessì",
+	"math_syntax_error": "eror ëd sintassi",
+	"math_tip": "Fòrmula matemàtica (LaTeX)",
+	"math_unknown_error": "Eror nen conossù",
+	"math_unknown_function": "funsion che as sa pa lòn che a la sia",
+	"mw_math_mathjax": "MathJax (sperimental)",
+	"mw_math_mathml": "But-lo an MathML se as peul (sperimental)",
+	"mw_math_png": "Most-lo sempe coma PNG",
+	"mw_math_source": "Lass-lo coma TeX (për ij programa ëd navigassion testual)",
+	"prefs-math": "Fòrmule ëd matemàtica"
+}
diff --git a/i18n/pnb.json b/i18n/pnb.json
new file mode 100644
index 0000000..273859f
--- /dev/null
+++ b/i18n/pnb.json
@@ -0,0 +1,12 @@
+{
+	"@metadata": {
+		"authors": [
+			"Khalid Mahmood"
+		]
+	},
+	"math_sample": "ایتھے فارمولا لاؤ",
+	"math_tip": "ریاضی دا فارمولا (LaTeX)",
+	"math_unknown_error": "انجان مسئلہ",
+	"math_unknown_function": "انجان کم",
+	"prefs-math": "حساب کتاب"
+}
diff --git a/i18n/pnt.json b/i18n/pnt.json
new file mode 100644
index 0000000..65d2983
--- /dev/null
+++ b/i18n/pnt.json
@@ -0,0 +1,14 @@
+{
+	"@metadata": {
+		"authors": [
+			"Omnipaedista",
+			"Sinopeus"
+		]
+	},
+	"math_lexing_error": "σφάλμαν λεξικής ανάλυσης",
+	"math_sample": "Αδά εισάγετε την φόρμουλαν",
+	"math_syntax_error": "σφάλμαν σύνταξης",
+	"math_tip": "Μαθεματικόν φόρμουλα (LaTeX)",
+	"math_unknown_function": "άγνωρος συνάρτησην",
+	"prefs-math": "Απόδοσην μαθηματικίων"
+}
diff --git a/i18n/prg.json b/i18n/prg.json
new file mode 100644
index 0000000..1834818
--- /dev/null
+++ b/i18n/prg.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Nertiks"
+		]
+	},
+	"math_bad_output": "Ni mazīngi teīktun anga enpeisātun en izēiseniskasmu matemātiskan fōlderin",
+	"math_bad_tmpdir": "Ni mazīngi teīktun anga enpeisātun en kīsmingiskasmu matemātiskan fōlderin",
+	"math_failure": "Parsers ni mazēi skaitātun",
+	"math_image_error": "Mainasnā en PNG ni izpalla.\nIzbandais, anga latex, dvips, gs be convert ast instalītan tikrōmiskai",
+	"math_lexing_error": "laksisis blānda",
+	"math_notexvc": "Ni ast <code>texvc</code> prōgraman.\nWīdais math/README kāi kōnfigurilai.",
+	"math_sample": "Enpeisāis matemātiskan izbilīsenin stwi",
+	"math_syntax_error": "sīntaksis blānda",
+	"math_tip": "Matemātiskas izbilīsenis (LaTeX)",
+	"math_unknown_error": "niwaistā blānda",
+	"math_unknown_function": "niwaistā funkciōni",
+	"mw_math_mathml": "MathML ik mazīngi (eksperimentālai)",
+	"mw_math_png": "Wisaddan teīkeis PNG grāfikin",
+	"mw_math_source": "Palaīdeis en TeX-as fōrmatu (per tekstas lasātlins)",
+	"prefs-math": "Matemātiki"
+}
diff --git a/i18n/ps.json b/i18n/ps.json
new file mode 100644
index 0000000..c368c8e
--- /dev/null
+++ b/i18n/ps.json
@@ -0,0 +1,33 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ahmed-Najib-Biabani-Ibrahimkhel"
+		]
+	},
+	"math-visualeditor-mwmathdialog-title": "فورمول",
+	"math-visualeditor-mwmathdialog-card-formula": "فورمول",
+	"math-visualeditor-mwmathdialog-card-options": "خوښنې",
+	"math-visualeditor-mwmathinspector-display": "ښکاره کول",
+	"math-visualeditor-mwmathinspector-display-block": "بنديز لگول",
+	"math-visualeditor-mwmathinspector-display-default": "تلواليز",
+	"math-visualeditor-mwmathinspector-display-inline": "پر ليکه",
+	"math-visualeditor-mwmathinspector-title": "فورمول",
+	"math-visualeditor-symbol-group-accents": "گړدودونه او ليکنښې",
+	"math-visualeditor-symbol-group-arrows": "غشي",
+	"math-visualeditor-symbol-group-geometry": "زمکمېچيز",
+	"math-visualeditor-symbol-group-greek": "يوناني ابېڅې",
+	"math-visualeditor-symbol-group-hebrew": "عبري ابېڅې",
+	"math-visualeditor-symbol-group-logic": "منطق",
+	"math-visualeditor-symbol-group-matrices": "مېټرېکسونه",
+	"math-visualeditor-symbol-group-parentheses": "ليندکيان",
+	"math-visualeditor-symbol-group-relations": "اړيکې",
+	"math-visualeditor-symbol-group-special": "ځانگړی",
+	"math_sample": "فورمول دلته ځای کړی",
+	"math_tip": "شمېرپوهنيز فورمول (LaTeX)",
+	"math_unknown_error": "ناجوته ستونزه",
+	"math_unknown_function": "ناجوته کړنه",
+	"mw_math_png": "PNG انځورونه",
+	"prefs-math": "شمېرپوهنه",
+	"mathstatus": "د شمېرپوهنې دريځ",
+	"datatypes-type-math": "شمېرپوهنه (TeX)"
+}
diff --git a/i18n/pt-br.json b/i18n/pt-br.json
new file mode 100644
index 0000000..e863131
--- /dev/null
+++ b/i18n/pt-br.json
@@ -0,0 +1,31 @@
+{
+	"@metadata": {
+		"authors": [
+			"Cainamarques",
+			"Giro720",
+			"Luckas",
+			"555",
+			"Macofe",
+			"Dianakc"
+		]
+	},
+	"math-desc": "Renderiza fórmulas matemáticas entre etiquetas <code><math></code> ... <code></math></code>",
+	"math_bad_output": "Ocorreram problemas na criação ou escrita no diretório de resultados math",
+	"math_bad_tmpdir": "Ocorreram problemas na criação ou escrita no diretório temporário math",
+	"math_failure": "Falhou ao verificar gramática",
+	"math_image_error": "Falha na conversão para PNG; verifique se o latex e o dvipng (ou dvips + gs + convert) estão corretamente instalados",
+	"math_lexing_error": "Erro léxico",
+	"math_notexvc": "O executável <code>texvc</code> não foi encontrado. Consulte math/README para instruções da configuração.",
+	"math_output_error": "Não foi possível armazenar imagem no sistema de arquivos.",
+	"math_sample": "Inserir fórmula aqui",
+	"math_syntax_error": "Erro de sintaxe",
+	"math_tip": "Fórmula matemática (LaTeX)",
+	"math_unknown_error": "Erro desconhecido",
+	"math_unknown_function": "função desconhecida '$1'",
+	"mw_math_latexml": "LaTeXML (experimental; usa MathML)",
+	"mw_math_mathjax": "MathJax (experimental)",
+	"mw_math_mathml": "MathML se possível (experimental)",
+	"mw_math_png": "Imagens PNG",
+	"mw_math_source": "Fonte LaTeX (para navegadores de texto)",
+	"prefs-math": "Matemática"
+}
diff --git a/i18n/pt.json b/i18n/pt.json
new file mode 100644
index 0000000..a6736ce
--- /dev/null
+++ b/i18n/pt.json
@@ -0,0 +1,56 @@
+{
+	"@metadata": {
+		"authors": [
+			"Hamilton Abreu",
+			"Luckas",
+			"Vitorvicentevalente",
+			"Helder.wiki",
+			"Ti4goc",
+			"He7d3r",
+			"Imperadeiro90",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathcontextitem-quickedit": "Edição rápida",
+	"math-visualeditor-mwmathdialog-title": "Fórmula",
+	"math-visualeditor-mwmathdialog-card-formula": "Fórmula",
+	"math-visualeditor-mwmathdialog-card-options": "Opções",
+	"math-visualeditor-mwmathinspector-display": "Mostrar",
+	"math-visualeditor-mwmathinspector-display-block": "Em bloco",
+	"math-visualeditor-mwmathinspector-display-default": "Padrão",
+	"math-visualeditor-mwmathinspector-display-inline": "Em linha",
+	"math-visualeditor-mwmathinspector-title": "Fórmula",
+	"math-visualeditor-symbol-group-bounds": "Limites",
+	"math-visualeditor-symbol-group-greek": "Alfabeto grego",
+	"math-visualeditor-symbol-group-hebrew": "Alfabeto hebraico",
+	"math-visualeditor-symbol-group-matrices": "Matrizes",
+	"math-visualeditor-symbol-group-modular": "Aritmética modular",
+	"math-visualeditor-symbol-group-operators": "Operadores",
+	"math-visualeditor-symbol-group-parentheses": "Parênteses",
+	"math-visualeditor-symbol-group-root": "Raízes",
+	"math-visualeditor-symbol-group-spacing": "Espaçamento",
+	"math-visualeditor-symbol-group-symbols": "Símbolos e constantes",
+	"math_bad_output": "Não foi possível editar ou criar o directório de saída de matemática",
+	"math_bad_tmpdir": "Não foi possível editar ou criar o directório temporário de matemática",
+	"math_failure": "Falhou ao verificar gramática",
+	"math_image_error": "Falha na conversão para PNG;\nverifique se o latex, dvips, gs e convert foram correctamente instalados",
+	"math_lexing_error": "erro léxico",
+	"math_mathoid_error": "Erro de conversão. O servidor (\"$1\") relatou: \"$2\"",
+	"math_notexvc": "O executável <code>texvc</code> não foi encontrado. Consulte math/README para instruções da configuração.",
+	"math_output_error": "Não é possível armazenar imagem matemática no sistema de ficheiros.",
+	"math_sample": "Inserir fórmula aqui",
+	"math_syntax_error": "erro de sintaxe",
+	"math-test-success": "Teste ''$1'' <span style=\"color:green\">bem sucedido</span>.",
+	"math_tip": "Fórmula matemática (LaTeX)",
+	"math_unknown_error": "erro desconhecido",
+	"math_unknown_function": "Função desconhecida: \"$1\"",
+	"mw_math_latexml": "LaTeXML (experimental; usa MathML)",
+	"mw_math_latexml_jax": "LaTeXML com MathJax do lado do cliente (experimental; usa MathML)",
+	"mw_math_mathjax": "MathJax do lado do cliente (lento; melhora a renderização para alguns navegadores e ferramentas de acessibilidade)",
+	"mw_math_mathml": "MathML, alternativamente SVG ou PNG (recomendado para navegadores mais modernos e ferramentas de acessibilidade)",
+	"mw_math_png": "Imagens PNG",
+	"mw_math_source": "Fonte LaTeX (para navegadores de texto)",
+	"prefs-math": "Matemática",
+	"datatypes-type-math": "Expressão matemática",
+	"wikibase-listdatatypes-math-head": "Expressão matemática"
+}
diff --git a/i18n/qqq.json b/i18n/qqq.json
new file mode 100644
index 0000000..919661a
--- /dev/null
+++ b/i18n/qqq.json
@@ -0,0 +1,89 @@
+{
+	"@metadata": {
+		"authors": [
+			"Cainamarques",
+			"Jon Harald Søby",
+			"Kizito",
+			"Physikerwelt",
+			"Raymond",
+			"Shirayuki",
+			"Siebrand",
+			"Mormegil",
+			"Liuxinyu970226",
+			"Umherirrender",
+			"McDutchie",
+			"Amire80",
+			"Robby"
+		]
+	},
+	"math-desc": "{{desc|name=Math|url=https://www.mediawiki.org/wiki/Extension:Math}}",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Label for the quick edit button in the math context item",
+	"math-visualeditor-mwmathdialog-title": "Title for the dialog to edit <nowiki><math></nowiki> formula blocks.\n{{Identical|Formula}}",
+	"math-visualeditor-mwmathdialog-card-formula": "Label for the formula card of the math dialog\n{{Identical|Formula}}",
+	"math-visualeditor-mwmathdialog-card-options": "Label for the options card of the math dialog\n{{Identical|Options}}",
+	"math-visualeditor-mwmathinspector-display": "Label for the display attribute of the math node\n{{Identical|Display}}",
+	"math-visualeditor-mwmathinspector-display-block": "Label for the 'block' value of the display attribute\n{{Identical|Block}}",
+	"math-visualeditor-mwmathinspector-display-default": "Label for the 'default' value of the display attribute\n{{Identical|Default}}",
+	"math-visualeditor-mwmathinspector-display-inline": "Label for the 'inline' value of the display attribute\n{{Identical|Inline}}",
+	"math-visualeditor-mwmathinspector-id": "Label for the link ID attribute of the math node",
+	"math-visualeditor-mwmathinspector-title": "Title for the inspector to edit <nowiki><math></nowiki> formula blocks.\n{{Identical|Formula}}",
+	"math-visualeditor-symbol-group-accents": "Label for the accents group of math symbols",
+	"math-visualeditor-symbol-group-arrows": "Label for the arrows group of math symbols\n{{Identical|Arrow}}",
+	"math-visualeditor-symbol-group-bounds": "Label for the bounds group of math symbols",
+	"math-visualeditor-symbol-group-derivatives": "Label for the derivatives group of math symbols",
+	"math-visualeditor-symbol-group-functions": "Label for the functions group of math symbols",
+	"math-visualeditor-symbol-group-geometry": "Label for the geometry group of math symbols",
+	"math-visualeditor-symbol-group-greek": "Label for the Greek group of math symbols",
+	"math-visualeditor-symbol-group-hebrew": "Label for the Hebrew group of math symbols",
+	"math-visualeditor-symbol-group-large": "Label for the large group of math symbols",
+	"math-visualeditor-symbol-group-logic": "Label for the logic group of math symbols\n{{Identical|Logic}}",
+	"math-visualeditor-symbol-group-matrices": "Label for the matrices group of math symbols",
+	"math-visualeditor-symbol-group-modular": "Label for the modular group of math symbols",
+	"math-visualeditor-symbol-group-operators": "Label for the operators group of math symbols\n{{Identical|Operator}}",
+	"math-visualeditor-symbol-group-projections": "Label for the projections group of math symbols",
+	"math-visualeditor-symbol-group-parentheses": "Label for the parentheses group of math symbols",
+	"math-visualeditor-symbol-group-relations": "Label for the relations group of math symbols\n{{Identical|Relation}}",
+	"math-visualeditor-symbol-group-root": "Label for the root group of math symbols\nIdentifies math radicals.",
+	"math-visualeditor-symbol-group-sets": "Label for the sets group of math symbols",
+	"math-visualeditor-symbol-group-spacing": "Label for the spacing group of math symbols",
+	"math-visualeditor-symbol-group-special": "Label for the special group of math symbols\n{{Identical|Special}}",
+	"math-visualeditor-symbol-group-subscripts": "Label for the subscripts group of math symbols",
+	"math-visualeditor-symbol-group-symbols": "Label for the symbols group of math symbols",
+	"math-visualeditor-symbol-group-typefaces": "Label for the typefaces group of math symbols",
+	"math-visualeditor-symbol-group-unsorted": "Label for the unsorted group of math symbols",
+	"math_bad_output": "Used as error message.\n\nThis message follows the message {{msg-mw|Math failure}}.",
+	"math_bad_tmpdir": "Used as error message.\n\nThis message follows the message {{msg-mw|Math failure}}.",
+	"math_failure": "Used as error message.\n\nThis message is followed by \"(\", Error message(*1), Additional message, \"): \"  and Source code.\n\n(*1) The error message is any one of the following messages:\n* {{msg-mw|Math unknown error}}\n* {{msg-mw|Math unknown function}}\n* {{msg-mw|Math lexing error}}\n* {{msg-mw|Math syntax error}}\n* {{msg-mw|Math image error}}\n* {{msg-mw|Math bad tmpdir}}\n* {{msg-mw|Math bad output}}\n* {{msg-mw|Math notexvc}}\n* {{msg-mw|Math notexvccheck}}\n [...]
+	"math_image_error": "{{doc-important|Do not change <code>latex</code>, <code>dvipng</code>, <code>dvips</code>, <code>gs</code> and <code>convert</code>. These are UNIX commands.}}\n\nUsed as error message.\n\nThis message follows the message {{msg-mw|Math failure}}.",
+	"math_invalidjson": "Used as error message.\n\nParameters:\n* $1 - rendering type (either LaTeXML or Mathoid)\n\nThis message follows the message {{msg-mw|Math failure}}.",
+	"math_invalidresponse": "Used as error message.\n\nFollows the message {{msg-mw|Math failure}}.\n\nParameters:\n* $1 - rendering type (either LaTeXML or Mathoid)\n* $2 - hostname\n* $3 - error message",
+	"math_invalidxml": "Used as error message.\n\nThis message follows the message {{msg-mw|Math failure}}.",
+	"math_lexing_error": "Used as error message for a texvc lexing error.\n\nThis message follows the message {{msg-mw|Math failure}}.",
+	"math_mathoid_error": "Used as error message.\n\nFollows the message {{msg-mw|Math failure}}.\n\nParameters:\n* $1 - hostname\n* $2 - error message retrieved from the server",
+	"math_notexvc": "Used as error message.\n\nThis message follows the message {{msg-mw|Math failure}}.\n\nSee also:\n* {{msg-mw|Math notexvccheck}}",
+	"math_output_error": "Used as error message if the texvc output file could not be stored.\n\nThis message follows the message {{msg-mw|Math failure}}.",
+	"math_sample": "The sample formula text that you get when you press the fourth button from the right on the edit toolbar.",
+	"math-status-introduction": "Used as special-page text.\n\nParameters:\n* $1 mode count",
+	"math_syntax_error": "Used as error message for a texvc syntax error.\n\nThis message follows the message {{msg-mw|Math failure}}.\n{{Identical|Syntax error}}",
+	"math_timeout": "Used as error message.\n\nParameters:\n* $1 - rendering type (either LaTeXML or Mathoid)\n* $2 - hostname or URL",
+	"math-test-end": "Used as special-page text.\n\nParameters:\n* $1 rendering mode",
+	"math-test-fail": "Used as special-page text.\n\nParameters:\n* $1 test name",
+	"math-test-start": "Used as special-page text.\n\nParameters:\n* $1 rendering mode",
+	"math-test-success": "Used as special-page text.\n\nParameters:\n* $1 test name",
+	"math-test-contains-diff": "Used as special-page wikitext.\n\nParameters:\n* $1 syntax highlight element of the returned string \n* $2 syntax highlight element of the expected string",
+	"math-test-equals-diff": "Used as special-page wikitext.\n\nParameters:\n* $1 syntax highlight element of the returned string \n* $2 syntax highlight element of the expected string",
+	"math_tip": "This is the text that appears when you hover the mouse over the fourth button from the right on the edit toolbar.",
+	"math_unknown_error": "Used as error message for unknown texvc error.\n\nThis message follows the message {{msg-mw|Math failure}}.\n{{Identical|Unknown error}}",
+	"math_unknown_function": "Used as error message when texvc encounters an unknown function.\n\nPreceded by the message {{msg-mw|Math failure}}.\n\nParameters:\n* $1 - name of unknown function",
+	"mw_math_latexml": "Used as label for latexml radio button.\n\nSee also:\n* {{msg-mw|Mw math png}}\n* {{msg-mw|Mw math source}}\n* {{msg-mw|Mw math mathjax}}",
+	"mw_math_latexml_jax": "Used as label for latexml (with mathjax enabled) radio button.\n\nSee also:\n* {{msg-mw|Mw math png}}\n* {{msg-mw|Mw math source}}\n* {{msg-mw|Mw math mathjax}}\n* {{msg-mw|Mw math latexml}}",
+	"mw_math_mathjax": "Used as label for mathjax radio button.\n\nSee also:\n* {{msg-mw|Mw math png}}\n* {{msg-mw|Mw math source}}\n* {{msg-mw|Mw math latexml}}",
+	"mw_math_mathml": "Used as label for MathML radio button.\n\nSee also:\n* {{msg-mw|Mw math png}}\n* {{msg-mw|Mw math source}}\n* {{msg-mw|Mw math latexml}}",
+	"mw_math_png": "In user preferences. All mw_math_* messages MUST be different, things will break otherwise!\n\nUsed as label for radio button.\n\nSee also:\n* {{msg-mw|Mw math source}}\n* {{msg-mw|Mw math mathjax}}\n* {{msg-mw|Mw math latexml}}",
+	"mw_math_source": "In user preferences (math). All mw_math_* messages MUST be different, things will break otherwise!\n\nUsed as label for source radio button.\n\nSee also:\n* {{msg-mw|Mw math png}}\n* {{msg-mw|Mw math mathjax}}\n* {{msg-mw|Mw math latexml}}",
+	"prefs-math": "Used in user preferences as a section heading.\n{{Identical|Math}}",
+	"mathstatus": "Title of a special page that displays information about the enabled math rendering modes.",
+	"datatypes-type-math": "The name of a data type.\n{{Identical|Math}}",
+	"wikibase-listdatatypes-math-head": "{{Wikibase-datatype-head|Mathematical expression|math}}\n{{Identical|Math}}",
+	"wikibase-listdatatypes-math-body": "{{Wikibase-datatype-body|Mathematical expression}}"
+}
diff --git a/i18n/qu.json b/i18n/qu.json
new file mode 100644
index 0000000..9709a61
--- /dev/null
+++ b/i18n/qu.json
@@ -0,0 +1,26 @@
+{
+	"@metadata": {
+		"authors": [
+			"AlimanRuna"
+		]
+	},
+	"math-desc": "Huchhawa minuywakunata <code><math></code> ... <code></math></code> unanchachapura qillqamuy",
+	"math-visualeditor-mwmathinspector-title": "Minuywa",
+	"math_bad_output": "Manam atinichu <em>math</em> nisqapaq lluqsichina willañiqi churanata kamayta icha qillqayta",
+	"math_bad_tmpdir": "Manam atinichu <em>math</em> nisqapaq mit'alla willañiqi churanata kamayta icha qillqayta",
+	"math_failure": "Manam hap'inichu",
+	"math_image_error": "Manam atinichu PNG-man t'ikrayta; latex nisqawan dvipng (icha dvips + gs + convert) nisqakunap tiyachisqa kayninta llanchiy",
+	"math_lexing_error": "rima pantasqa",
+	"math_notexvc": "Manam kanchu ruranalla <strong><code>texvc</code></strong>. Ama hina kaspa, <em>math/README</em> nisqata ñawiriy allinkachinaykipaq.",
+	"math_output_error": "Manam atinichu huchhawa rikch'ata willañiqi llikapi qullqachayta.",
+	"math_sample": "Kayman minuywata qillqamuy",
+	"math_syntax_error": "rimay ukhunpuray pantasqa",
+	"math_tip": "Yupana minuywa (LaTeX)",
+	"math_unknown_error": "mana riqsisqa pantasqa",
+	"math_unknown_function": "mana riqsisqa rurana '$1'",
+	"mw_math_mathjax": "MathJax (llanchina)",
+	"mw_math_mathml": "MathML, SVG rantinawan (llanchinalla)",
+	"mw_math_png": "Hayk'appas PNG-ta ruray",
+	"mw_math_source": "TeX hinatam saqiy (qillqa wamp'unapaq)",
+	"prefs-math": "Minuywa"
+}
diff --git a/i18n/rgn.json b/i18n/rgn.json
new file mode 100644
index 0000000..f200927
--- /dev/null
+++ b/i18n/rgn.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Sentruper"
+		]
+	},
+	"math_sample": "Mèt aquè dentar una formula",
+	"math_tip": "Formula metemètica (LaTeX)"
+}
diff --git a/i18n/rif.json b/i18n/rif.json
new file mode 100644
index 0000000..9b85cef
--- /dev/null
+++ b/i18n/rif.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Agzennay"
+		]
+	},
+	"math_sample": "Egg ijj n formula da",
+	"math_tip": "Mathematical formula (LaTeX)"
+}
diff --git a/i18n/rm.json b/i18n/rm.json
new file mode 100644
index 0000000..a4585d7
--- /dev/null
+++ b/i18n/rm.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Gion-andri",
+			"Kazu89"
+		]
+	},
+	"math_bad_output": "Betg pussaivel da scriver u crear l'ordinatur da destinaziun math",
+	"math_bad_tmpdir": "Betg pussaivel da scriver u crear l'ordinatur temporar math",
+	"math_failure": "Errur dal parser",
+	"math_image_error": "La conversiun da PNG n'è betg reussida; \ncontrollescha l'installaziun correcta da latext, dvips, gs e convertescha lura",
+	"math_lexing_error": "Errur lexicala",
+	"math_notexvc": "Il program <code>texvc</code> n'è betg vegnì chattà. Legia math/README per al configurar.",
+	"math_sample": "Scriva qua tia furmla",
+	"math_syntax_error": "Sbagl da la sintaxta",
+	"math_tip": "Furmla matematica (LaTeX)",
+	"math_unknown_error": "errur nunenconuschenta",
+	"math_unknown_function": "funcziun nunenconuschenta",
+	"mw_math_mathml": "MathML sche pussibel (experimental)",
+	"mw_math_png": "Adina mussar sco PNG",
+	"mw_math_source": "Laschar en furma da TeX (per navigaturs da text)",
+	"prefs-math": "TeX"
+}
diff --git a/i18n/rmy.json b/i18n/rmy.json
new file mode 100644
index 0000000..f049cc8
--- /dev/null
+++ b/i18n/rmy.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Desiphral"
+		]
+	},
+	"math_bad_output": "Nashti te kerel pes vai te lekhavel po matematikano direktoro kai del pes avri.",
+	"math_notexvc": "Nai o kerditori (eksekutabilo) <code>texvc</code>; dikh math/README te labyares les.",
+	"math_syntax_error": "sintaksaki dosh",
+	"math_unknown_error": "bijangli dosh",
+	"math_unknown_function": "bijangli funkciya",
+	"prefs-math": "Matematika"
+}
diff --git a/i18n/ro.json b/i18n/ro.json
new file mode 100644
index 0000000..eb9ea32
--- /dev/null
+++ b/i18n/ro.json
@@ -0,0 +1,34 @@
+{
+	"@metadata": {
+		"authors": [
+			"Emily",
+			"Laurap",
+			"Minisarm",
+			"Strainu",
+			"XXN"
+		]
+	},
+	"math-desc": "Randează formulele matematice cuprinse între etichetele <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathinspector-title": "Formulă",
+	"math_bad_output": "Nu se poate crea sau nu se poate scrie în directorul de ieșire pentru formule matematice",
+	"math_bad_tmpdir": "Nu se poate crea sau nu se poate scrie în directorul temporar pentru formule matematice",
+	"math_failure": "Nu s-a putut interpreta",
+	"math_image_error": "Conversie în PNG eșuată; verificați corectitudinea instalării sistemelor LaTex sau dvipng (sau dvips + gs + convert)",
+	"math_invalidjson": "Răspunsul $1 de la server este un JSON incorect.",
+	"math_invalidresponse": "$1: Răspuns incorect („$3”) de la serverul „$2”:",
+	"math_invalidxml": "MathML sau SVG este un XML incorect.",
+	"math_lexing_error": "eroare lexicală",
+	"math_notexvc": "Lipsește executabilul <code>texvc</code>; vedeți math/README pentru configurare.",
+	"math_output_error": "Nu se poate stoca imaginea matematică în sistemul de fișiere.",
+	"math_sample": "Introduceți formula aici",
+	"math_syntax_error": "eroare de sintaxă",
+	"math_tip": "Formulă matematică (LaTeX)",
+	"math_unknown_error": "eroare necunoscută",
+	"math_unknown_function": "funcție „$1” necunoscută",
+	"mw_math_latexml": "LaTeXML (experimental; folosește MathML)",
+	"mw_math_mathjax": "MathJax (experimental)",
+	"mw_math_mathml": "MathML dacă este posibil (experimental)",
+	"mw_math_png": "Întodeauna afișează PNG",
+	"mw_math_source": "Lasă ca TeX (pentru navigatoarele text)",
+	"prefs-math": "Aspect formule"
+}
diff --git a/i18n/roa-tara.json b/i18n/roa-tara.json
new file mode 100644
index 0000000..5dcc706
--- /dev/null
+++ b/i18n/roa-tara.json
@@ -0,0 +1,46 @@
+{
+	"@metadata": {
+		"authors": [
+			"Joetaras"
+		]
+	},
+	"math-desc": "Inderprete le formule matemateche 'mbrà le tag <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathinspector-display": "Fà vedè",
+	"math-visualeditor-mwmathinspector-display-block": "Blocche",
+	"math-visualeditor-mwmathinspector-display-default": "De base",
+	"math-visualeditor-mwmathinspector-display-inline": "In linèe",
+	"math-visualeditor-mwmathinspector-id": "ID d'u collegamende (opzionale)",
+	"math-visualeditor-mwmathinspector-title": "Formule",
+	"math_bad_output": "Non ge puè scrivere o ccrejà 'na cartelle de destinazzione de math",
+	"math_bad_tmpdir": "Non ge puè scrivere o ccrejà 'na cartelle temboranea de math",
+	"math_failure": "Analisi fallite",
+	"math_image_error": "'A conversione d'u PNG ha fallite;\ncondrolle ce l'installazione de latex e dvips (o dvipg + gs + convertitore) jè corrette",
+	"math_invalidjson": "'U server $1 ave resposte cu 'nu JSON invalide.",
+	"math_invalidresponse": "$1: resposte invalide (\"$3\") da 'u server \"$2\":",
+	"math_invalidxml": " MathML o SVG tène 'n'XML invalide.",
+	"math_lexing_error": "errore de lessiche",
+	"math_mathoid_error": "Errore de conversione: 'U server (\"$1\") signalate: \"$2\"",
+	"math_notexvc": "<code>texvc</code> eseguibbele perdute;\npe piacere vide math/README pe configurà.",
+	"math_output_error": "Non ge pozze memorizzà immaggine sus a 'u file system.",
+	"math_sample": "Mitte 'a formule aqquà",
+	"math-status-introduction": "Sta pàgene face vedè le 'mbormaziune sus a le mode de renderizzazzione abbilitate de math.\n\n{{PLURAL:$1|'U mode de renderizzazzione jè|Le mode de renderizzazzione sò}} abbilitate.",
+	"math_syntax_error": "errore de sintassi",
+	"math_timeout": "$1 fore tiembe da \"$2\".",
+	"math-test-end": "Test de rete pu mode de renderizzazzione ''$1'' combletate.",
+	"math-test-fail": "Test ''$1''  <span style=\"color:red\">fallite</span>.",
+	"math-test-start": "Test de rete in esecuzione pu mode de renderizzazzione \"$1\".",
+	"math-test-success": "Test ''$1'' <span style=\"color:green\">apposte</span>.",
+	"math-test-contains-diff": "Turnate 'a stringhe $1 ca non ge téne 'a stringhe aspettate $2.",
+	"math-test-equals-diff": "Turnate 'a stringhe $1 ca jè diverse da 'a stringhe aspettate $2.",
+	"math_tip": "Formula matemateche (LaTeX)",
+	"math_unknown_error": "errore scanusciute",
+	"math_unknown_function": "funziona scanusciute '$1'",
+	"mw_math_latexml": "LaTeXML (sperimendale; ause MathML)",
+	"mw_math_latexml_jax": "LaTeXML cu MathJax late cliende (sperimendale; ause MathML)",
+	"mw_math_mathjax": "MathJax late cliende (lende; migliore 'u disegne sus a quacche browser e le struminde de accesse)",
+	"mw_math_mathml": "MathML cu SVG o PNG fallback (raccomandate pe browser moderne e struminde de accesse)",
+	"mw_math_png": "Immaggine PNG",
+	"mw_math_source": "resorse TeX (pe le browser de teste)",
+	"prefs-math": "Math",
+	"mathstatus": "State de Math"
+}
diff --git a/i18n/ru.json b/i18n/ru.json
new file mode 100644
index 0000000..cabf111
--- /dev/null
+++ b/i18n/ru.json
@@ -0,0 +1,82 @@
+{
+	"@metadata": {
+		"authors": [
+			"Amire80",
+			"KPu3uC B Poccuu",
+			"Kalan",
+			"MaxSem",
+			"Okras",
+			"Iltever",
+			"Kaganer",
+			"Frhdkazan",
+			"Translatobecomer",
+			"Iniquity",
+			"Ядерный Трамвай",
+			"Macofe"
+		]
+	},
+	"math-desc": "Отображает математические формулы в тегах <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Быстрая правка",
+	"math-visualeditor-mwmathdialog-title": "Формула",
+	"math-visualeditor-mwmathdialog-card-formula": "Формула",
+	"math-visualeditor-mwmathdialog-card-options": "Параметры",
+	"math-visualeditor-mwmathinspector-display": "Отображение",
+	"math-visualeditor-mwmathinspector-display-block": "Блок",
+	"math-visualeditor-mwmathinspector-display-default": "По умолчанию",
+	"math-visualeditor-mwmathinspector-display-inline": "Линейное",
+	"math-visualeditor-mwmathinspector-id": "ID ссылки (необязательно)",
+	"math-visualeditor-mwmathinspector-title": "Формула",
+	"math-visualeditor-symbol-group-accents": "Ударения и диакритические знаки",
+	"math-visualeditor-symbol-group-arrows": "Стрелки",
+	"math-visualeditor-symbol-group-bounds": "Границы",
+	"math-visualeditor-symbol-group-derivatives": "Дифференциалы",
+	"math-visualeditor-symbol-group-functions": "Стандартные числовые функции",
+	"math-visualeditor-symbol-group-geometry": "Геометрический",
+	"math-visualeditor-symbol-group-greek": "Греческий алфавит",
+	"math-visualeditor-symbol-group-hebrew": "Еврейский алфавит",
+	"math-visualeditor-symbol-group-large": "Большие макеты",
+	"math-visualeditor-symbol-group-logic": "Логика",
+	"math-visualeditor-symbol-group-matrices": "Матрицы",
+	"math-visualeditor-symbol-group-modular": "Сравнение по модулю",
+	"math-visualeditor-symbol-group-operators": "Операторы",
+	"math-visualeditor-symbol-group-projections": "Проекции",
+	"math-visualeditor-symbol-group-parentheses": "Скобки",
+	"math-visualeditor-symbol-group-relations": "Отношения",
+	"math-visualeditor-symbol-group-root": "Корни",
+	"math-visualeditor-symbol-group-sets": "Наборы",
+	"math-visualeditor-symbol-group-spacing": "Расстояние",
+	"math-visualeditor-symbol-group-special": "Специальные",
+	"math-visualeditor-symbol-group-subscripts": "Подстрочные, надстрочные и интегралы",
+	"math-visualeditor-symbol-group-symbols": "Символы и константы",
+	"math-visualeditor-symbol-group-typefaces": "Типы шрифта",
+	"math-visualeditor-symbol-group-unsorted": "Несортированный",
+	"math_bad_output": "Не удаётся создать или записать в выходной каталог математики",
+	"math_bad_tmpdir": "Не удаётся создать или записать во временный каталог математики",
+	"math_failure": "Невозможно разобрать выражение",
+	"math_image_error": "Преобразование в PNG прошло с ошибкой — проверьте правильность установки latex и dvips (или dvips + gs + convert)",
+	"math_invalidjson": "Серверный ответ $1 — в неверном JSON-формате.",
+	"math_invalidresponse": "$1: Недопустимый ответ («$3») от сервера «$2»:",
+	"math_invalidxml": "MathML или SVG содержат недопустимый XML-код.",
+	"math_lexing_error": "лексическая ошибка",
+	"math_mathoid_error": "Ошибка преобразования. Сервер («$1») сообщил: «$2»",
+	"math_notexvc": "Выполняемый файл <code>texvc</code> не найден; См. math/README — справку по настройке.",
+	"math_output_error": "Не удаётся сохранить математическое изображение в файловой системе.",
+	"math_sample": "Введите сюда формулу",
+	"math-status-introduction": "Эта страница показывает информацию о {{PLURAL:$1|включённом режиме|включённых режимах}} показа математики.\n\n{{PLURAL:$1|Включён следующий режим показа математики|Включены следующие режимы показа математики}}:",
+	"math_syntax_error": "синтаксическая ошибка",
+	"math_timeout": "$1 превысило время ожидания от «$2»",
+	"math-test-fail": "Тестирование ''$1'' <span style=\"color:red\">не прошло</span>.",
+	"math-test-success": "Тестирование «$1» <span style=\"color:green\">прошло успешно</span>.",
+	"math_tip": "Математическая формула (формат LaTeX)",
+	"math_unknown_error": "неизвестная ошибка",
+	"math_unknown_function": "неизвестная функция «$1»",
+	"mw_math_latexml": "LaTeXML (экспериментальный; использует MathML)",
+	"mw_math_latexml_jax": "LaTeXML с MathJax на стороне клиента (экспериментальная опция, использующая MathML)",
+	"mw_math_mathjax": "MathJax на стороне клиента (медленно; исправляет обработку в некоторых браузерах и инструментах повышения доступности)",
+	"mw_math_mathml": "MathML с переходом в SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности)",
+	"mw_math_png": "PNG-изображения",
+	"mw_math_source": "LaTeX-разметка (для текстовых браузеров)",
+	"prefs-math": "Отображение формул",
+	"datatypes-type-math": "Математическое выражение",
+	"wikibase-listdatatypes-math-head": "Математическое выражение"
+}
diff --git a/i18n/rue.json b/i18n/rue.json
new file mode 100644
index 0000000..beecb4a
--- /dev/null
+++ b/i18n/rue.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Gazeb"
+		]
+	},
+	"math_bad_output": "Не дасть ся записати або створити дочасный адресарь про выступ математіку",
+	"math_bad_tmpdir": "Не дасть ся записати або створити дочасный адресарь про математіку",
+	"math_failure": "Не дасть ся розобрати выраз",
+	"math_image_error": "Злигала конверзія до PNG; перевірте правилну іншталацію latex, dvips (або dvips + gs + convert)",
+	"math_lexing_error": "лексічна хыба",
+	"math_notexvc": "Хыбить спустительный <code>texvc</code>; посмотьте ся до math/README на конфіґурацію.",
+	"math_sample": "Вложте ту формулу",
+	"math_syntax_error": "сінтаксічна хыба",
+	"math_tip": "Математічна формула (LaTeX)",
+	"math_unknown_error": "незнама хыба",
+	"math_unknown_function": "незнама функція",
+	"mw_math_mathml": "MathML, кідь є підпороване (експеріменталне)",
+	"mw_math_png": "Все ґенеровати PNG",
+	"mw_math_source": "Зохабити як TeX (про текстовы переглядачі)",
+	"prefs-math": "Математіка"
+}
diff --git a/i18n/ruq-cyrl.json b/i18n/ruq-cyrl.json
new file mode 100644
index 0000000..509da48
--- /dev/null
+++ b/i18n/ruq-cyrl.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Макѕе"
+		]
+	},
+	"math_sample": "Интродуца формула иси",
+	"math_tip": "Формула с-математикс (LaTeX)"
+}
diff --git a/i18n/ruq-latn.json b/i18n/ruq-latn.json
new file mode 100644
index 0000000..dfaee8e
--- /dev/null
+++ b/i18n/ruq-latn.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Макѕе"
+		]
+	},
+	"math_sample": "Introduca formula isi",
+	"math_tip": "Formula s'matematiks (LaTeX)"
+}
diff --git a/i18n/sa.json b/i18n/sa.json
new file mode 100644
index 0000000..56b5a8e
--- /dev/null
+++ b/i18n/sa.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"Naveen Sankar",
+			"NehalDaveND"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display": "प्रदर्श्यताम्",
+	"math-visualeditor-mwmathinspector-display-block": "अवरुद्ध्यताम्",
+	"math-visualeditor-mwmathinspector-display-default": "यदभावे",
+	"math_sample": "सूत्रवाक्यं अत्र निवेशयतु",
+	"math_syntax_error": "समवायदोषः",
+	"math_tip": "गणितीयसूत्रम् (LaTeX)",
+	"math_unknown_error": "अज्ञातदोषः"
+}
diff --git a/i18n/sah.json b/i18n/sah.json
new file mode 100644
index 0000000..fd14e72
--- /dev/null
+++ b/i18n/sah.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Andrijko Z.",
+			"HalanTul"
+		]
+	},
+	"math_bad_output": "Математика таһынааҕы директорията сатаан оҥоһуллубата",
+	"math_bad_tmpdir": "Математика быстах кэмнээҕи директорията сатаан оҥоһуллубута",
+	"math_failure": "Сатаан ааҕыллыбата",
+	"math_image_error": "PNG-га уларытыы сатаммата; latex, dvips, gs, уонна convert туруоруулара сөбүн көр",
+	"math_lexing_error": "лексиката алҕастаах",
+	"math_notexvc": "<code>texvc</code> кыайан толоруллубата; маны math/README көр.",
+	"math_sample": "Формуланы манна киллэр",
+	"math_syntax_error": "синтаксис алҕаһа",
+	"math_tip": "Математика формулата (LaTeX)",
+	"math_unknown_error": "биллибэт алҕас",
+	"math_unknown_function": "биллибэт дьайыы (функция)",
+	"mw_math_mathml": "Сатаннаҕына MathML туһан (experimental)",
+	"mw_math_png": "Куруук PNG таһаарарга (туһанарга)",
+	"mw_math_source": "TeX бэлиэтин (разметкатын) хааллар (тиэкиһинэн эрэ үлэлиир браузерга)",
+	"prefs-math": "Фуормулалар"
+}
diff --git a/i18n/sc.json b/i18n/sc.json
new file mode 100644
index 0000000..3650af1
--- /dev/null
+++ b/i18n/sc.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Andria"
+		]
+	},
+	"math_sample": "Inserta sa fòrmula inoghe",
+	"math_tip": "Fòrmula matemàtica (LaTeX)",
+	"math_unknown_error": "faddina disconnota",
+	"prefs-math": "Fòrmulas matemàticas"
+}
diff --git a/i18n/scn.json b/i18n/scn.json
new file mode 100644
index 0000000..5b459b8
--- /dev/null
+++ b/i18n/scn.json
@@ -0,0 +1,25 @@
+{
+	"@metadata": {
+		"authors": [
+			"Tonyfroio",
+			"Pippinu",
+			"Sarvaturi",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "Mpussìbbili scrìviri o criari la directory di output pi math",
+	"math_bad_tmpdir": "Mpussìbbili scrìviri o criari la directory timpurània pi math",
+	"math_failure": "S'hà virificatu un erruri ntô parsing",
+	"math_image_error": "Cunvirsioni 'n PNG nun arrinisciuta; cuntrullari la curretta nstallazzioni di latex e dvipng (o puru dvips + gs + convert).",
+	"math_lexing_error": "erruri lissicali",
+	"math_notexvc": "Esiquìbbili <code>texvc</code> mancanti; pi favuri cunzurtari math/README pi la cunfigurazzioni.",
+	"math_sample": "Nzirisci ccà na fòrmula",
+	"math_syntax_error": "erruri di sintassi",
+	"math_tip": "Fòrmula matimàtica (LaTeX)",
+	"math_unknown_error": "erruri scanusciutu",
+	"math_unknown_function": "funzioni scanusciuta \"$1\"",
+	"mw_math_mathml": "MathML cu ripiegu supra a SVG o PNG (cunsigghiatu pî browser muderni e pi l'accessu facilitatu)",
+	"mw_math_png": "Mmàggini ntô furmatu PNG",
+	"mw_math_source": "Surgenti LaTeX (pî browser tistuali)",
+	"prefs-math": "Fòrmuli"
+}
diff --git a/i18n/sco.json b/i18n/sco.json
new file mode 100644
index 0000000..69f0ac4
--- /dev/null
+++ b/i18n/sco.json
@@ -0,0 +1,16 @@
+{
+	"@metadata": {
+		"authors": [
+			"John Reid",
+			"OchAyeTheNoo"
+		]
+	},
+	"math-visualeditor-mwmathinspector-title": "Formula",
+	"math_notexvc": "Missin <code>texvc</code> executable. Please see maths/README tae confeegur.",
+	"math_sample": "Pit yer formula here",
+	"math_tip": "Mathematical formula (LaTeX)",
+	"mw_math_mathml": "MathML wi SVG or PNG fawback (experimental)",
+	"mw_math_png": "Aye render PNG",
+	"mw_math_source": "Lea it aes TeX (fer tex brousers)",
+	"prefs-math": "Renderin math"
+}
diff --git a/i18n/sd.json b/i18n/sd.json
new file mode 100644
index 0000000..b79d5d4
--- /dev/null
+++ b/i18n/sd.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Aursani"
+		]
+	},
+	"math_sample": "هتي فارمولو وجھو",
+	"math_tip": "رياضياتي مساوات (LaTeX)"
+}
diff --git a/i18n/sdc.json b/i18n/sdc.json
new file mode 100644
index 0000000..f47cf90
--- /dev/null
+++ b/i18n/sdc.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Felis"
+		]
+	},
+	"math_bad_output": "Impussìbiri ischribì o crià la carthella d'iscidda pa ''math''",
+	"math_bad_tmpdir": "Impussìbiri ischribì o crià la carthella timpurània pa ''math''",
+	"math_failure": "Errori i'l'anàrisi sintàttigga",
+	"math_image_error": "Cunvirthimentu in PNG nò ridisciddu; verifiggà chi siani isthalladdi currentementi i sighenti prugrammi: latex, dvips, gs, e convert.",
+	"math_lexing_error": "errori di lingàggiu",
+	"math_notexvc": "Fattìbiri ''<code>texvc</code>'' mancanti; pa piazeri cunsulthà ''math/README'' pa la cunfigurazioni.",
+	"math_sample": "Insirì la fòimmura inogghi",
+	"math_syntax_error": "errori di sintassi",
+	"math_tip": "Fòimmura matemàtigga (LaTeX)",
+	"math_unknown_error": "errori ischunisciddu",
+	"math_unknown_function": "funzioni ischuniscidda",
+	"mw_math_mathml": "Usa MathML si pussìbiri (ippirimintari)",
+	"mw_math_png": "Musthra sempri in PNG",
+	"mw_math_source": "Lassa in fuimmaddu TeX (pa nabiggadori testhuari)",
+	"prefs-math": "Fòimmuri matemàtigghi"
+}
diff --git a/i18n/se.json b/i18n/se.json
new file mode 100644
index 0000000..4f05304
--- /dev/null
+++ b/i18n/se.json
@@ -0,0 +1,12 @@
+{
+	"@metadata": {
+		"authors": [
+			"Skuolfi"
+		]
+	},
+	"math_sample": "Lasit dasa formula",
+	"math_unknown_error": "Dovdameahtun feaila",
+	"math_unknown_function": "Dovdameahtun funkšuvdna",
+	"mw_math_png": "Čájet álo PNG:n",
+	"prefs-math": "Matematihkká"
+}
diff --git a/i18n/sei.json b/i18n/sei.json
new file mode 100644
index 0000000..67aa7bc
--- /dev/null
+++ b/i18n/sei.json
@@ -0,0 +1,14 @@
+{
+	"@metadata": {
+		"authors": [
+			"SeriCtam"
+		]
+	},
+	"math_lexing_error": "römjde lexám",
+	"math_sample": "Heformula cuerte damir",
+	"math_syntax_error": "römjde syntáx",
+	"math_tip": "Formula mathematatl (LaTeX)",
+	"math_unknown_error": "römj ác",
+	"math_unknown_function": "functión ác",
+	"prefs-math": "HTML-cuat"
+}
diff --git a/i18n/sgs.json b/i18n/sgs.json
new file mode 100644
index 0000000..61521b0
--- /dev/null
+++ b/i18n/sgs.json
@@ -0,0 +1,12 @@
+{
+	"@metadata": [],
+	"math_failure": "Nepavīka apdoruotė",
+	"math_sample": "Iveskėt fuormolė",
+	"math_tip": "Matematinė fuormolė (LaTeX fuormato)",
+	"math_unknown_error": "nežinuoma klaida",
+	"math_unknown_function": "nežinuoma funkcėjė",
+	"mw_math_mathml": "MathML jēgo imanuoma (ekspermentinis)",
+	"mw_math_png": "Vėsumet fuormuotė PNG",
+	"mw_math_source": "Paliktė TeX fuormata (tekstinems naršīklems)",
+	"prefs-math": "Matematėka"
+}
diff --git a/i18n/sh.json b/i18n/sh.json
new file mode 100644
index 0000000..a1102c4
--- /dev/null
+++ b/i18n/sh.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Kolega2357",
+			"OC Ripper"
+		]
+	},
+	"math_bad_output": "Ne može se napisati ili napraviti direktorijum za matematički izvještaj.",
+	"math_bad_tmpdir": "Ne može se napisati ili napraviti privremeni matematički direktorijum",
+	"math_failure": "Neuspjeh pri parsiranju",
+	"math_image_error": "PNG konverzija neuspješna; provjerite tačnu instalaciju latex-a i dvipng-a (ili dvips + gs + convert)",
+	"math_lexing_error": "riječnička greška",
+	"math_notexvc": "Nedostaje izvršno <code>texvc</code>; molimo Vas da pogledate math/README da podesite.",
+	"math_sample": "Unesite formulu ovdje",
+	"math_syntax_error": "greška u sintaksi - грешка у синтакси",
+	"math_tip": "Matematička formula (LaTeX)",
+	"math_unknown_error": "nepoznata greška",
+	"math_unknown_function": "nepoznata funkcija",
+	"mw_math_mathml": "MathML ako je moguće (eksperimentalno)",
+	"mw_math_png": "Uvijek prikaži kao PNG",
+	"mw_math_source": "Ostavi kao TeX (za tekstualne preglednike)",
+	"prefs-math": "Prikazivanje matematike"
+}
diff --git a/i18n/shi.json b/i18n/shi.json
new file mode 100644
index 0000000..3e169d8
--- /dev/null
+++ b/i18n/shi.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Dalinanir",
+			"Zanatos"
+		]
+	},
+	"math_sample": "Skcm talɣat ɣid",
+	"math_tip": "Talɣiwt tusnakt (LaTeX)",
+	"prefs-math": "mat"
+}
diff --git a/i18n/si.json b/i18n/si.json
new file mode 100644
index 0000000..c94d92b
--- /dev/null
+++ b/i18n/si.json
@@ -0,0 +1,29 @@
+{
+	"@metadata": {
+		"authors": [
+			"Singhalawap",
+			"නන්දිමිතුරු",
+			"පසිඳු කාවින්ද",
+			"ශ්වෙත",
+			"Susith Chandira Gts",
+			"Macofe",
+			"SusithCM"
+		]
+	},
+	"math_bad_output": "ගණිත ප්‍රතිදාන ඩිරෙක්ටරිය තැනීමට හෝ එයට ලිවීමට නොහැක",
+	"math_bad_tmpdir": "තාවකාලික ගණිත  ඩිරෙක්ටරිය තැනීමට හෝ එහි ලිවීමට නොහැක",
+	"math_failure": "ව්‍යාකරණ විග්‍රහය අසමත් විය",
+	"math_image_error": "PNG අන්වර්තනය අසාර්ථකවිය;latex, සහ dvipng (හෝ dvips + gs + convert) හී නිදොස්  ස්ථාපනය සිදුවී ඇතිදැයි පිරික්සන්න",
+	"math_lexing_error": "රීතිමය දෝෂයකි",
+	"math_notexvc": "<code>texvc</code> අභිවාහකය දක්නට නොමැත;\nවින්‍යාස කෙරුමට කරුණාකර math/README බලන්න.",
+	"math_sample": "සූත්‍රය මෙහි රුවන්න",
+	"math_syntax_error": "කාරක-රීති දෝෂය",
+	"math_tip": "ගණිත සූත්‍රය (LaTeX)",
+	"math_unknown_error": "හඳුනා නොගත් දෝෂය",
+	"math_unknown_function": "නොදන්නා ශ්‍රිතය '$1'",
+	"mw_math_mathjax": "Client-side MathJax (පරික්ෂණාත්මක)",
+	"mw_math_mathml": "MathML, සමග SVG හෝ PNG (නව බ්‍රවුසරයන් සදහා)",
+	"mw_math_png": "PNG පින්තුර",
+	"mw_math_source": "LaTeX මූලාශ්‍රය (පෙළ බ්‍රවුසරයන් සඳහා)",
+	"prefs-math": "ගණිත"
+}
diff --git a/i18n/sk.json b/i18n/sk.json
new file mode 100644
index 0000000..38ccf35
--- /dev/null
+++ b/i18n/sk.json
@@ -0,0 +1,26 @@
+{
+	"@metadata": {
+		"authors": [
+			"Helix84",
+			"Teslaton"
+		]
+	},
+	"math-desc": "Vykresľovať matematické vzorce medzi značkami <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathinspector-title": "Vzorec",
+	"math_bad_output": "Nemožno zapisovať alebo vytvoriť výstupný matematický adresár",
+	"math_bad_tmpdir": "Nemožno zapisovať alebo vytvoriť dočasný matematický adresár",
+	"math_failure": "Syntaktická analýza (parsing) neúspešná",
+	"math_image_error": "PNG konverzia neúspešná; skontrolujte správnosť inštalácie programov: latex a dvipng (alebo dvips + gs + convert)",
+	"math_lexing_error": "lexikálna chyba",
+	"math_notexvc": "Chýbajúci program <code>texvc</code>; konfigurácia je popísaná v math/README.",
+	"math_sample": "Sem vložte vzorec",
+	"math_syntax_error": "syntaktická chyba",
+	"math_tip": "Matematický vzorec (LaTeX)",
+	"math_unknown_error": "neznáma chyba",
+	"math_unknown_function": "neznáma funkcia",
+	"mw_math_mathjax": "MathJax (experimentálne)",
+	"mw_math_mathml": "MathML (experimentálne)",
+	"mw_math_png": "Vždy vykresľovať PNG",
+	"mw_math_source": "Ponechať TeX (pre textové prehliadače)",
+	"prefs-math": "Vykreslenie matematiky"
+}
diff --git a/i18n/sl.json b/i18n/sl.json
new file mode 100644
index 0000000..4d15dd6
--- /dev/null
+++ b/i18n/sl.json
@@ -0,0 +1,39 @@
+{
+	"@metadata": {
+		"authors": [
+			"Dbc334",
+			"Macofe"
+		]
+	},
+	"math-desc": "Izriši matematične formule med oznakama <code><math></code> in <code></math></code>",
+	"math-visualeditor-mwmathinspector-display": "Prikaz",
+	"math-visualeditor-mwmathinspector-display-block": "Blokiraj",
+	"math-visualeditor-mwmathinspector-display-default": "Privzeto",
+	"math-visualeditor-mwmathinspector-display-inline": "V vrstici",
+	"math-visualeditor-mwmathinspector-id": "ID povezave (neobvezno)",
+	"math-visualeditor-mwmathinspector-title": "Formula",
+	"math_bad_output": "Izhodne mape za math ne morem ustvariti ali pisati vanjo.",
+	"math_bad_tmpdir": "Začasne mape za math ne morem ustvariti ali pisati vanjo.",
+	"math_failure": "Ni mi uspelo razčleniti",
+	"math_image_error": "Pretvarjanje v PNG ni uspelo; preverite, ali sta latex in dvips (ali dvips + gs + convert) pravilno nameščena.",
+	"math_invalidjson": "Odziv strežnika $1 ni veljaven JSON.",
+	"math_invalidresponse": "$1: Neveljavni odziv (»$3«) strežnika »$2«:",
+	"math_invalidxml": "MathML ali SVG ni veljaven XML.",
+	"math_lexing_error": "slovarska napaka",
+	"math_mathoid_error": "Napaka pri pretvorbi. Strežnik (»$1«) je sporočil: »$2«",
+	"math_notexvc": "Manjka izvedbena datoteka <code>texvc</code>;\nza njeno namestitev si poglejte math/README.",
+	"math_output_error": "Ne morem shraniti matematičnih slik na datotečni sistem.",
+	"math_sample": "Tu vnesite enačbo",
+	"math_syntax_error": "skladenjska napaka",
+	"math_timeout": "Potekla časovna omejitev $1 na »$2«",
+	"math_tip": "Matematična enačba (LaTeX)",
+	"math_unknown_error": "neznana napaka",
+	"math_unknown_function": "neznana funkcija '$1'",
+	"mw_math_latexml": "LaTeXML (poskusno; uporablja MathML)",
+	"mw_math_latexml_jax": "LaTeXML z MathJax na strani odjemalca (poskusno; uporablja MathML)",
+	"mw_math_mathjax": "MathJax na strani odjemalca (poskusno, izboljša upodabljanje v nekaterih brskalnikih in pripomočkih za dostopnost)",
+	"mw_math_mathml": "MathML z rezervo SVG ali PNG (priporočeno za sodobne brskalnike in pripomočke za dostopnost)",
+	"mw_math_png": "Slike PNG",
+	"mw_math_source": "Vir LaTeX (za besedilne brskalnike)",
+	"prefs-math": "Prikaz matematičnega besedila"
+}
diff --git a/i18n/sli.json b/i18n/sli.json
new file mode 100644
index 0000000..8df1241
--- /dev/null
+++ b/i18n/sli.json
@@ -0,0 +1,20 @@
+{
+	"@metadata": {
+		"authors": [
+			"Schläsinger",
+			"Teutonius"
+		]
+	},
+	"math_bad_output": "Doas Zielverzeichnis fier mathematische Formeln koan ne oagelegt oder beschrieba waan.",
+	"math_bad_tmpdir": "Doas temporäre Verzeichnis fier mathematische Formeln koan ne oagelagt oder beschrieba waan.",
+	"math_failure": "Parser-Fahler",
+	"math_image_error": "de PNG-Konvertierung schlug fehl",
+	"math_lexing_error": "„Lexing“-Fahler",
+	"math_notexvc": "Doas <code>texvc</code>-Programm wurde ne gefunda. Bitte math/README beachten.",
+	"math_sample": "Formel hier eifiega",
+	"math_syntax_error": "Syntaxfahler",
+	"math_unknown_error": "Unbekennter Fahler",
+	"math_unknown_function": "Unbekennte Funksjonn",
+	"mw_math_png": "Emmer ols PNG darstalla",
+	"mw_math_source": "Ols TeX belassen (fier Textbrowser)"
+}
diff --git a/i18n/sma.json b/i18n/sma.json
new file mode 100644
index 0000000..fbb04a4
--- /dev/null
+++ b/i18n/sma.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Andrijko Z."
+		]
+	},
+	"math_sample": "Bïejedh fårmele daesnie",
+	"math_tip": "Ryökneme fårmele (LaTeX)",
+	"math_unknown_error": "ammes båajhtede"
+}
diff --git a/i18n/so.json b/i18n/so.json
new file mode 100644
index 0000000..9fb184a
--- /dev/null
+++ b/i18n/so.json
@@ -0,0 +1,4 @@
+{
+	"@metadata": [],
+	"prefs-math": "Xisaab"
+}
diff --git a/i18n/sq.json b/i18n/sq.json
new file mode 100644
index 0000000..6a6d185
--- /dev/null
+++ b/i18n/sq.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Mikullovci11",
+			"Ammartivari"
+		]
+	},
+	"math_bad_output": "Nuk munda të shkruaj ose të krijoj prodhimin matematik në dosjen",
+	"math_bad_tmpdir": "Nuk munda të shkruaj ose krijoj dosjen e përkohshme për matematikë",
+	"math_failure": "Nuk e kuptoj",
+	"math_image_error": "Konversioni PNG dështoi; kontrolloni për ndonjë gabim instalimi të latex-it, dvips-it, gs-it, dhe convert-it.",
+	"math_lexing_error": "gabim leximi",
+	"math_notexvc": "Mungon zbatuesi <code>texvc</code>; ju lutem shikoni math/README për konfigurimin.",
+	"math_sample": "Vendos formulen ketu",
+	"math_syntax_error": "Gabim sintakse",
+	"math_tip": "Formulë matematike (LaTeX)",
+	"math_unknown_error": "gabim i panjohur",
+	"math_unknown_function": "funksion i panjohur \"$1\"",
+	"mw_math_mathml": "MathML",
+	"mw_math_png": "Imazhe PNG",
+	"mw_math_source": "Lëre si TeX (për shfletuesit tekst)",
+	"prefs-math": "Formula"
+}
diff --git a/i18n/sr-ec.json b/i18n/sr-ec.json
new file mode 100644
index 0000000..2cbdd04
--- /dev/null
+++ b/i18n/sr-ec.json
@@ -0,0 +1,34 @@
+{
+	"@metadata": {
+		"authors": [
+			"Milicevic01",
+			"Rancher",
+			"Srdjan m",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display-default": "Подразумевано",
+	"math-visualeditor-mwmathinspector-title": "Формула",
+	"math-visualeditor-symbol-group-functions": "Стандардне нумеричке функције",
+	"math-visualeditor-symbol-group-geometry": "Геометрија",
+	"math-visualeditor-symbol-group-logic": "Логика",
+	"math-visualeditor-symbol-group-special": "Посебно",
+	"math_bad_output": "Стварање или писање у одредишној фасцикли за математику није успело",
+	"math_bad_tmpdir": "Стварање или писање у привремену фасциклу за математику није успело",
+	"math_failure": "Рашчлањивање није успело",
+	"math_image_error": "Претварање у формат PNG није успело. Проверите да ли су добро инсталирани latex, dvips, gs и convert",
+	"math_lexing_error": "речничка грешка",
+	"math_notexvc": "Недостаје извршна датотека <code>texvc</code>. Погледајте math/README за подешавање.",
+	"math_sample": "Овде унесите формулу",
+	"math_syntax_error": "грешка у синтакси",
+	"math_tip": "Математичка формула (LaTeX)",
+	"math_unknown_error": "непозната грешка",
+	"math_unknown_function": "непозната функција „$1“",
+	"mw_math_latexml": "LaTeXML (експриментално; користи MathML)",
+	"mw_math_mathjax": "MathJax корисничке стране (споро; побољшава приказ на неким веб-прегледачима и алаткама за приступачност)",
+	"mw_math_mathml": "MathML са ослањањем на SVG или PNG (препоручљиво за најновије веб-прегледаче)",
+	"mw_math_png": "PNG слике",
+	"mw_math_source": "LaTeX (за текстуалне прегледаче)",
+	"prefs-math": "Приказ математичких формула",
+	"mathstatus": "Стање приказа математичких формула"
+}
diff --git a/i18n/sr-el.json b/i18n/sr-el.json
new file mode 100644
index 0000000..750f442
--- /dev/null
+++ b/i18n/sr-el.json
@@ -0,0 +1,32 @@
+{
+	"@metadata": {
+		"authors": [
+			"Milicevic01",
+			"Srdjan m",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display-default": "Podrazumevano",
+	"math-visualeditor-symbol-group-functions": "Standardne numeričke funkcije",
+	"math-visualeditor-symbol-group-geometry": "Geometrija",
+	"math-visualeditor-symbol-group-logic": "Logika",
+	"math-visualeditor-symbol-group-special": "Posebno",
+	"math_bad_output": "Stvaranje ili pisanje u odredišnoj fascikli za matematiku nije uspelo",
+	"math_bad_tmpdir": "Stvaranje ili pisanje u privremenu fasciklu za matematiku nije uspelo",
+	"math_failure": "Raščlanjivanje nije uspelo",
+	"math_image_error": "Pretvaranje u format PNG nije uspelo. Proverite da li su dobro instalirani latex, dvips, gs i convert",
+	"math_lexing_error": "rečnička greška",
+	"math_notexvc": "Nedostaje izvršna datoteka <code>texvc</code>. Pogledajte math/README za podešavanje.",
+	"math_sample": "Ovde unesite formulu",
+	"math_syntax_error": "greška u sintaksi",
+	"math_tip": "Matematička formula (LaTeX)",
+	"math_unknown_error": "nepoznata greška",
+	"math_unknown_function": "nepoznata funkcija „$1“",
+	"mw_math_latexml": "LaTeXML (eksprimentalno; koristi MathML)",
+	"mw_math_mathjax": "MathJax (eksperimentalno)",
+	"mw_math_mathml": "MathML sa oslanjanjem na SVG ili PNG (preporučljivo za najnovije veb-pregledače)",
+	"mw_math_png": "PNG slike",
+	"mw_math_source": "LaTeX (za tekstualne pregledače)",
+	"prefs-math": "Prikaz matematičkih formula",
+	"mathstatus": "Stanje prikaza matematičkih formula"
+}
diff --git a/i18n/srn.json b/i18n/srn.json
new file mode 100644
index 0000000..b76c787
--- /dev/null
+++ b/i18n/srn.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Adfokati",
+			"Stretsh"
+		]
+	},
+	"math_lexing_error": "leksikografi fowtu",
+	"math_sample": "Poti formula dyaso",
+	"math_syntax_error": "sintaki fowtu",
+	"math_tip": "Formula fu teri (LaTeX)",
+	"prefs-math": "Fomula"
+}
diff --git a/i18n/stq.json b/i18n/stq.json
new file mode 100644
index 0000000..932e54d
--- /dev/null
+++ b/i18n/stq.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Maartenvdbent",
+			"Pyt"
+		]
+	},
+	"math_bad_output": "Kon dät Sielferteeknis foar mathematiske Formeln nit anlääse of beskrieuwe.",
+	"math_bad_tmpdir": "Kon dät Temporärferteeknis foar mathematiske Formeln nit anlääse of beskrieuwe.",
+	"math_failure": "Parser-Failer",
+	"math_image_error": "ju PNG-Konvertierenge sluuch fail; korrekte Installation fon LaTeX un dvipng wröigje (of dvips + gs + convert)",
+	"math_lexing_error": "'Lexing'-Failer",
+	"math_notexvc": "Dät <code>texvc</code>-Program kon nit fuunen wäide. Beoachte jädden math/README.",
+	"math_sample": "Formel hier ienföigje",
+	"math_syntax_error": "Syntaxfailer",
+	"math_tip": "Mathematiske Formel (LaTeX)",
+	"math_unknown_error": "Uunbekoande Failer",
+	"math_unknown_function": "Uunbekoande Funktion",
+	"mw_math_mathml": "MathML",
+	"mw_math_png": "Altied as PNG deerstaale",
+	"mw_math_source": "As TeX beläite (foar Textbrowsere)",
+	"prefs-math": "TeX"
+}
diff --git a/i18n/su.json b/i18n/su.json
new file mode 100644
index 0000000..4ea7cf7
--- /dev/null
+++ b/i18n/su.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Irwangatot",
+			"Kandar"
+		]
+	},
+	"math_bad_output": "Henteu bisa nulisikeun atawa nyieun direktori keluaran math",
+	"math_bad_tmpdir": "Henteu bisa nulis atawa nyieun direktori samentara math",
+	"math_failure": "Peta ''parse'' gagal",
+	"math_image_error": "Konversi PNG gagal; pastikeun yén latex, dvips, gs, jeung convert geus bener nginstalna",
+	"math_lexing_error": "kasalahan lexing",
+	"math_sample": "Asupkeun rumus di dieu",
+	"math_syntax_error": "Kasalahan rumpaka",
+	"math_tip": "Rumus matematis (LaTeX)",
+	"math_unknown_error": "Kasalahan teu kanyahoan",
+	"math_unknown_function": "fungsi teu kanyahoan",
+	"mw_math_mathml": "Mun bisa MathML (uji coba)",
+	"mw_math_png": "Jieun wae PNG",
+	"mw_math_source": "Antep salaku TeX (pikeun panyungsi tulisan)",
+	"prefs-math": "Maté"
+}
diff --git a/i18n/sv.json b/i18n/sv.json
new file mode 100644
index 0000000..6ebe797
--- /dev/null
+++ b/i18n/sv.json
@@ -0,0 +1,86 @@
+{
+	"@metadata": {
+		"authors": [
+			"Boivie",
+			"Habj",
+			"Martinwiss",
+			"Nghtwlkr",
+			"Sannab",
+			"WikiPhoenix",
+			"Lokal Profil",
+			"Jopparn",
+			"Fader",
+			"Macofe"
+		]
+	},
+	"math-desc": "Rendera matematiska formler mellan <code><math></code> ... <code></math></code>-taggar",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Snabbredigering",
+	"math-visualeditor-mwmathdialog-title": "Formel",
+	"math-visualeditor-mwmathdialog-card-formula": "Formel",
+	"math-visualeditor-mwmathdialog-card-options": "Alternativ",
+	"math-visualeditor-mwmathinspector-display": "Visa",
+	"math-visualeditor-mwmathinspector-display-block": "Block",
+	"math-visualeditor-mwmathinspector-display-default": "Standard",
+	"math-visualeditor-mwmathinspector-display-inline": "I texten",
+	"math-visualeditor-mwmathinspector-id": "Länk-ID (valfritt)",
+	"math-visualeditor-mwmathinspector-title": "Formel",
+	"math-visualeditor-symbol-group-accents": "Accenter och diakritiska tecken",
+	"math-visualeditor-symbol-group-arrows": "Pilar",
+	"math-visualeditor-symbol-group-bounds": "Gränsvärde",
+	"math-visualeditor-symbol-group-derivatives": "Differentialer och derivator",
+	"math-visualeditor-symbol-group-functions": "Numeriska standardfunktioner",
+	"math-visualeditor-symbol-group-geometry": "Geometri",
+	"math-visualeditor-symbol-group-greek": "Grekiska alfabetet",
+	"math-visualeditor-symbol-group-hebrew": "Hebreiska alfabetet",
+	"math-visualeditor-symbol-group-large": "Stora layouter",
+	"math-visualeditor-symbol-group-logic": "Logik",
+	"math-visualeditor-symbol-group-matrices": "Matriser",
+	"math-visualeditor-symbol-group-modular": "Modulär aritmetik",
+	"math-visualeditor-symbol-group-operators": "Operatorer",
+	"math-visualeditor-symbol-group-projections": "Projektion",
+	"math-visualeditor-symbol-group-parentheses": "Parenteser",
+	"math-visualeditor-symbol-group-relations": "Relationer",
+	"math-visualeditor-symbol-group-root": "Rottecken",
+	"math-visualeditor-symbol-group-sets": "Mängd",
+	"math-visualeditor-symbol-group-spacing": "Avstånd",
+	"math-visualeditor-symbol-group-special": "Speciell",
+	"math-visualeditor-symbol-group-subscripts": "Index, exponenter och integraler",
+	"math-visualeditor-symbol-group-symbols": "Symboler och konstanter",
+	"math-visualeditor-symbol-group-typefaces": "Typsnitt",
+	"math-visualeditor-symbol-group-unsorted": "Osorterade",
+	"math_bad_output": "Kan inte skriva till eller skapa utdata-mapp för matematik",
+	"math_bad_tmpdir": "Kan inte skriva till eller skapa temporär mapp för matematik",
+	"math_failure": "Misslyckades med att tolka",
+	"math_image_error": "PNG-konvertering misslyckades; kontrollera om latex och dvipng (eller dvips + gs + convert) är korrekt installerade",
+	"math_invalidjson": "$1 serversvaret är ogiltig JSON.",
+	"math_invalidresponse": "$1: Ogiltigt svar (\"$3\") från server \"$2\":",
+	"math_invalidxml": "MathML eller SVG är ogiltig XML.",
+	"math_lexing_error": "lexikalfel",
+	"math_mathoid_error": "Konverteringsfel. Servern (\"$1\") rapporterade: \"$2\"",
+	"math_notexvc": "Saknar exekverbar <code>texvc</code>; läs math/README för konfigureringsanvisningar.",
+	"math_output_error": "Kan inte lagra matematikbild på filsystem.",
+	"math_sample": "Skriv formeln här",
+	"math-status-introduction": "Denna sida visar information om {{PLURAL:$1|det aktiverade renderingsläget|de aktiverade renderingslägena}} för matematik.\n\nFöljande {{PLURAL:$1|renderingsläge är aktiverat|renderingslägen är aktiverade}}:",
+	"math_syntax_error": "syntaxfel",
+	"math_timeout": "$1 timeout från \"$2\"",
+	"math-test-end": "Backend-tester för renderingsläge \"$1\" avslutade.",
+	"math-test-fail": "Test ''$1'' <span style=\"color:red\">misslyckades</span>.",
+	"math-test-start": "Kör backend-tester för renderingsläge \"$1\".",
+	"math-test-success": "Test ''$1'' <span style=\"color:green\">lyckades</span>.",
+	"math-test-contains-diff": "Den returnerade strängen $1 innehåller inte den förväntade strängen $2.",
+	"math-test-equals-diff": "Den returnerade strängen $1 är inte den samma som den förväntade strängen $2.",
+	"math_tip": "Matematisk formel (LaTeX)",
+	"math_unknown_error": "okänt fel",
+	"math_unknown_function": "okänd funktion \"$1\"",
+	"mw_math_latexml": "LaTeXML (experimentell; använder MathML)",
+	"mw_math_latexml_jax": "LaTeXML med MathJax på klientsidan (experimentellt; använder MathML)",
+	"mw_math_mathjax": "MathJax på klientsidan (långsam; förbättrar rendering på vissa webbläsare och tillgänglighetsverktyg)",
+	"mw_math_mathml": "MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg)",
+	"mw_math_png": "PNG-bilder",
+	"mw_math_source": "LaTeX-källa (för textbaserade webbläsare)",
+	"prefs-math": "Matematik",
+	"mathstatus": "Math-status",
+	"datatypes-type-math": "Matematiska uttryck",
+	"wikibase-listdatatypes-math-head": "Matematiska uttryck",
+	"wikibase-listdatatypes-math-body": "Literallt datafält för matematiska uttryck, formler, ekvationer och dylikt, uttryckt i en variant av LaTeX."
+}
diff --git a/i18n/sw.json b/i18n/sw.json
new file mode 100644
index 0000000..87959fa
--- /dev/null
+++ b/i18n/sw.json
@@ -0,0 +1,12 @@
+{
+	"@metadata": {
+		"authors": [
+			"Lloffiwr",
+			"Malangali"
+		]
+	},
+	"math_sample": "Ingiza formula hapa",
+	"math_tip": "Formula ya kihesabu (LaTeX)",
+	"math_unknown_error": "hitilafu isiyojulikana",
+	"prefs-math": "Hisabati"
+}
diff --git a/i18n/szl.json b/i18n/szl.json
new file mode 100644
index 0000000..ecbe751
--- /dev/null
+++ b/i18n/szl.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Lajsikonik",
+			"Timpul"
+		]
+	},
+	"math_bad_output": "Ńy idźe utwořić abo naškryflać we wyjśćowym katalůgu do wzorůw matymatyčnych",
+	"math_bad_tmpdir": "Ńy idźe utwořić abo naškryflać w tymčasowym katalůgu do wzorůw matymatyčnych",
+	"math_failure": "Parser ńy můg rozpoznać",
+	"math_image_error": "kůnwersyjo do formatu PNG ńy powjodua śe; uobadej, eli poprawńy zainštalowane sům lotex, dvips, gs i convert",
+	"math_lexing_error": "feler leksera",
+	"math_notexvc": "Ńy ma sam <code>texvc</code>; zapoznej śe z math/README w celu kůnfiguracyje.",
+	"math_sample": "Sam tukej wprowadź wzůr",
+	"math_syntax_error": "felerno skuadńa",
+	"math_tip": "Wzůr matymatyčny (LaTeX)",
+	"math_unknown_error": "ńyznany feler",
+	"math_unknown_function": "ńyznano funkcyjo",
+	"mw_math_mathml": "MathML jak dostympny (eksperymyntalne)",
+	"mw_math_png": "Zawše gyneruj grafika PNG",
+	"mw_math_source": "Uostow w TeXu (dla přyglůndarek tekstowych)",
+	"prefs-math": "Wzory"
+}
diff --git a/i18n/ta.json b/i18n/ta.json
new file mode 100644
index 0000000..b6df1b8
--- /dev/null
+++ b/i18n/ta.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Trengarasu",
+			"செல்வா",
+			"ElangoRamanujam",
+			"Macofe"
+		]
+	},
+	"math_bad_output": "கணித அடைவை உருவாக்க அல்லது அதில் எழுத முடியவில்லை.",
+	"math_bad_tmpdir": "தற்காலிக கணித அடைவை உருவாக்க அல்லது எழுத முடியவில்லை",
+	"math_failure": "பாகுபடுத்தல் தோல்வி",
+	"math_lexing_error": "தொகுத்தல் (லெக்சிங்) தவறு",
+	"math_sample": "இங்கே வாய்பாட்டை இடுக",
+	"math_syntax_error": "தொடரமைப்புத் தவறு",
+	"math_tip": "கணித வாய்பாடு (LaTeX)",
+	"math_unknown_error": "அறியாத ஏதோவொரு பிழை",
+	"math_unknown_function": "அறியப்படாத செயற்பாடு",
+	"mw_math_mathml": "கூடுமாயின் MathML (சோதனை)",
+	"mw_math_png": "PNG படங்கள்",
+	"mw_math_source": "LaTeX மூலம் (உரைசார் உலாவிகளுக்கு)",
+	"prefs-math": "கணிதம்"
+}
diff --git a/i18n/tcy.json b/i18n/tcy.json
new file mode 100644
index 0000000..540b5d5
--- /dev/null
+++ b/i18n/tcy.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"VinodSBangera"
+		]
+	},
+	"math_sample": "ಮುಲ್ಪ ಸೂತ್ರೊನು ಪಾಡ್’ಲೆ",
+	"math_tip": "ಗಣಿತ ಸೂತ್ರ (LaTeX)"
+}
diff --git a/i18n/te.json b/i18n/te.json
new file mode 100644
index 0000000..7e922af
--- /dev/null
+++ b/i18n/te.json
@@ -0,0 +1,27 @@
+{
+	"@metadata": {
+		"authors": [
+			"Chaduvari",
+			"Sunil Mohan",
+			"Veeven"
+		]
+	},
+	"math-visualeditor-mwmathdialog-card-options": "ఎంపికలు",
+	"math-visualeditor-mwmathinspector-display-default": "అప్రమేయం",
+	"math-visualeditor-symbol-group-relations": "సంబంధాలు",
+	"math_bad_output": "math ఔట్‌పుట్ డైరెక్టరీని సృష్టించలేకపోడం కానీ, అందులో రాయలేకపోవడంగానీ జరిగింది",
+	"math_bad_tmpdir": "math తాత్కాలిక డైరెక్టరీని సృష్టించలేకపోడం కానీ, అందులో రాయలేకపోవడంగానీ జరిగింది",
+	"math_failure": "పార్స్ చెయ్యలేకపోయాం",
+	"math_image_error": "PNG మార్పిడి విఫలమైంది; latex మరియు divpng (లేదా dvips + gs + convert) లు స్థాపితమయ్యాయని సరిచూసుకోండి",
+	"math_lexing_error": "లెక్సింగ్ లోపం",
+	"math_notexvc": "<code>texvc</code> ఎక్జిక్యూటబుల్ కనబడడం లేదు; కాన్ఫిగరు చెయ్యడానికి math/README చూడండి.",
+	"math_sample": "సూత్రాన్ని ఇక్కడ ఇవ్వండి",
+	"math_syntax_error": "సింటాక్సు లోపం",
+	"math_tip": "గణిత సూత్రం (LaTeX)",
+	"math_unknown_error": "తెలియని లోపం",
+	"math_unknown_function": "తెలియని ఫంక్షన్ '$1'",
+	"mw_math_mathml": "వీలయితే MathML (ప్రయోగాత్మకం)",
+	"mw_math_png": "ఎల్లప్పుడూ PNGగా చూపించు",
+	"mw_math_source": "టెక్ గానే ఉండనివ్వు (టెక్స్ట్‌ బ్రౌజర్ల కొరకు)",
+	"prefs-math": "గణితం"
+}
diff --git a/i18n/test.json b/i18n/test.json
new file mode 100644
index 0000000..06aab8c
--- /dev/null
+++ b/i18n/test.json
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "math_sample": "x",
+    "math_tip": "x"
+}
\ No newline at end of file
diff --git a/i18n/tg-cyrl.json b/i18n/tg-cyrl.json
new file mode 100644
index 0000000..a7ecf17
--- /dev/null
+++ b/i18n/tg-cyrl.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ibrahim"
+		]
+	},
+	"math_bad_output": "Имкони эҷод ё навистани иттилоот дар пӯшаи хуруҷии риёзӣ (output) вуҷуд надорад",
+	"math_bad_tmpdir": "Имкони эҷод ё навистани иттилоот дар пӯшаи муваққатии риёзӣ (temp) вуҷуд надорад",
+	"math_failure": "Шикаст дар таҷзеҳ",
+	"math_image_error": "Табдил ба PNG шикаст хӯрд; насби дурусти latex ва dvipng (ё dvips + gs + convert) баррасӣ кунед",
+	"math_lexing_error": "хатои lexing",
+	"math_notexvc": "Барномаи ичроии <code>texvc</code> мавҷуд нест; барои иттилооти бештар ба math/README нигаред.",
+	"math_sample": "Илова кардани формула дар инҷо",
+	"math_syntax_error": "хатои наҳвӣ",
+	"math_tip": "Формулаи риёзӣ (LaTeX)",
+	"math_unknown_error": "хатои ношинос",
+	"math_unknown_function": "амали номаълум '$1'",
+	"mw_math_mathml": "Истифода аз MathML дар сурати имкон (озмоишӣ)",
+	"mw_math_png": "Ҳамеша PNG кашида шавад",
+	"mw_math_source": "Ҳамчун TeX боқӣ бимон (барои мурургарҳои матнӣ)",
+	"prefs-math": "Риёзиёт"
+}
diff --git a/i18n/tg-latn.json b/i18n/tg-latn.json
new file mode 100644
index 0000000..9d94b08
--- /dev/null
+++ b/i18n/tg-latn.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Liangent"
+		]
+	},
+	"math_bad_output": "Imkoni eçod jo navistani ittiloot dar pūşai xuruçiji rijozī (output) vuçud nadorad",
+	"math_bad_tmpdir": "Imkoni eçod jo navistani ittiloot dar pūşai muvaqqatiji rijozī (temp) vuçud nadorad",
+	"math_failure": "Şikast dar taçzeh",
+	"math_image_error": "Tabdil ba PNG şikast xūr; nasbi durusti latex, dvips, gs, va tabdilotro barrasī kuned",
+	"math_lexing_error": "xatoi lexing",
+	"math_notexvc": "Barnomai icroiji <code>texvc</code> mavçud nest; baroi ittilooti beştar ba math/README nigared.",
+	"math_sample": "Ilova kardani formula dar inço",
+	"math_syntax_error": "xatoi nahvī",
+	"math_tip": "Formulai rijozī (LaTeX)",
+	"math_unknown_error": "xatoi noşinos",
+	"math_unknown_function": "amali noma'lum",
+	"mw_math_mathml": "Istifoda az MathML dar surati imkon (ozmoişī)",
+	"mw_math_png": "Hameşa PNG kaşida şavad",
+	"mw_math_source": "Hamcun TeX boqī bimon (baroi mururgarhoi matnī)",
+	"prefs-math": "Rijozijot"
+}
diff --git a/i18n/th.json b/i18n/th.json
new file mode 100644
index 0000000..18ace50
--- /dev/null
+++ b/i18n/th.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ans",
+			"Octahedron80"
+		]
+	},
+	"math_bad_output": "ไม่สามารถเขียนค่าหรือสร้าง ลงไดเรกทอรีปลายทางสำหรับเก็บค่าทางคณิตศาสตร์ได้",
+	"math_bad_tmpdir": "ไม่สามารถเขียนค่าหรือสร้าง ลงไดเรกทอรีชั่วคราวสำหรับเก็บค่าทางคณิตศาสตร์ได้",
+	"math_failure": "ส่งผ่านค่าไม่ได้",
+	"math_image_error": "การแปลง PNG ล้มเหลว กรุณาตรวจสอบการติดตั้ง latex และ dvipng (หรือ dvips + gs + convert) ให้ถูกต้อง",
+	"math_lexing_error": "การจำแนกสูตรผิดพลาด",
+	"math_notexvc": "เกิดข้อความผิดพลาด <code>texvc</code> ไม่พบ กรุณาตรวจสอบ math/README เพื่อตั้งค่า",
+	"math_sample": "ใส่สูตรที่นี่",
+	"math_syntax_error": "ไวยากรณ์ผิดพลาด",
+	"math_tip": "ใส่สูตรทางคณิตศาสตร์ (LaTeX)",
+	"math_unknown_error": "ข้อผิดพลาดที่ไม่ทราบ",
+	"math_unknown_function": "คำสั่งที่ไม่ทราบ",
+	"mw_math_mathml": "ถ้าเป็นไปได้ใช้ MathML (ขั้นทดลอง)",
+	"mw_math_png": "เรนเดอร์เป็น PNG เสมอ",
+	"mw_math_source": "ปล่อยข้อมูลเป็น TeX (สำหรับเว็บเบราว์เซอร์แบบข้อความ)",
+	"prefs-math": "คณิตศาสตร์"
+}
diff --git a/i18n/tk.json b/i18n/tk.json
new file mode 100644
index 0000000..758cd0d
--- /dev/null
+++ b/i18n/tk.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Hanberke"
+		]
+	},
+	"math_bad_output": "Matematika çykyş katalogyny ýazyp ýa-da döredip bolanok",
+	"math_bad_tmpdir": "Matematikanyň wagtlaýyn katalogyny ýazyp ýa-da döredip bolanok",
+	"math_failure": "Derňäp bolmady",
+	"math_image_error": "PNG öwürmeklik şowsuz boldy;\nlatex, dvips, gs we convert gurluşlarynyň dogrulygyny barlaň",
+	"math_lexing_error": "leksiki säwlik",
+	"math_notexvc": "<code>texvc</code> ýerine ýetirilýän faýl tapylmady;\nkonfigurirlemek üçin math/README serediň.",
+	"math_sample": "Matematiki formulany şu ýere ýazyň",
+	"math_syntax_error": "sintaktik säwlik",
+	"math_tip": "Matematiki formula (LaTeX formatynda)",
+	"math_unknown_error": "näbelli säwlik",
+	"math_unknown_function": "näbelli funksiýa",
+	"mw_math_mathml": "Mümkin bolsa MathML (eksperimental)",
+	"mw_math_png": "Hemişe PNG öwür",
+	"mw_math_source": "TeX-ligine galdyr (tekst brauzerleri üçin)",
+	"prefs-math": "Matematiki formulalar"
+}
diff --git a/i18n/tl.json b/i18n/tl.json
new file mode 100644
index 0000000..81448a6
--- /dev/null
+++ b/i18n/tl.json
@@ -0,0 +1,38 @@
+{
+	"@metadata": {
+		"authors": [
+			"AnakngAraw",
+			"Leeheonjin"
+		]
+	},
+	"math-desc": "Iharap ang mga pormulang pangmatematika sa pagitan ng mga tatak na <code><math></code> ... <code></math></code>",
+	"math-visualeditor-mwmathdialog-card-formula": "Pormula",
+	"math-visualeditor-symbol-group-arrows": "Tala-palasuan (arrows)",
+	"math-visualeditor-symbol-group-derivatives": "Deribatibo",
+	"math-visualeditor-symbol-group-geometry": "Heometriya",
+	"math-visualeditor-symbol-group-greek": "Alpabetong Griyego",
+	"math-visualeditor-symbol-group-hebrew": "Alpabetong Ebreo",
+	"math-visualeditor-symbol-group-logic": "Lohika",
+	"math-visualeditor-symbol-group-modular": "Modular",
+	"math-visualeditor-symbol-group-operators": "Mga tagapagpaandar:",
+	"math-visualeditor-symbol-group-relations": "Mga kaugnayan",
+	"math-visualeditor-symbol-group-root": "Pinag-uugatan",
+	"math-visualeditor-symbol-group-special": "Natatangi (special)",
+	"math-visualeditor-symbol-group-unsorted": "Hindi naisaayos (unsorted)",
+	"math_bad_output": "Hindi maisulat sa o makalikha ng direktoryo ng produktong pangmatematika",
+	"math_bad_tmpdir": "Hindi maisulat sa o makalikha ng pansamantalang direktoryong pangmatematika",
+	"math_failure": "Nabigo sa pagbanghay",
+	"math_image_error": "Nabigo ang pagpapalit upang maging PNG; suriin kung tama ang pagtatalaga ng latex at dvipng (o dvips + gs + convert)",
+	"math_lexing_error": "kamalian sa pagbabatas",
+	"math_notexvc": "Nawawala ang maisasakatuparang <code>texvc</code>;\npakitingnan ang matematika/BASAHINAKO para maisaayos ang konpigurasyon.",
+	"math_sample": "Isingit ang pormula dito",
+	"math_syntax_error": "kamalian sa palaugnayan",
+	"math_tip": "Pormulang pangmatematika (LaTeX)",
+	"math_unknown_error": "hindi nalalamang kamalian",
+	"math_unknown_function": "hindi nalalamang tungkulin",
+	"mw_math_mathjax": "MathJax (eksperimental)",
+	"mw_math_mathml": "MathML kung maaari (sinusubok pa)",
+	"mw_math_png": "Palaging ilarawan sa anyong PNG",
+	"mw_math_source": "Iwanan bilang TeX (para sa mga panghanap na pangteksto o ''text browser'')",
+	"prefs-math": "Matematika"
+}
diff --git a/i18n/to.json b/i18n/to.json
new file mode 100644
index 0000000..e61ae72
--- /dev/null
+++ b/i18n/to.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"Tauʻolunga"
+		]
+	},
+	"math_bad_output": "ʻOku ʻikai lava ʻo tohi pe fakatupu ʻa e takafi maʻa e fua matematika",
+	"math_tip": "Kupuʻilea fakamatematika ''(LaTex)''",
+	"math_unknown_error": "hala taʻeʻiloa",
+	"math_unknown_function": "lakanga taʻeʻiloa",
+	"mw_math_mathml": "Fai MathML kapau malava (fakatotolo)",
+	"mw_math_png": "Fai PNG taimi kotoa",
+	"mw_math_source": "Fakatoe ʻi he ''TeX'' maʻa e ngaahi palausa tohi pē",
+	"prefs-math": "Matematika"
+}
diff --git a/i18n/tpi.json b/i18n/tpi.json
new file mode 100644
index 0000000..0a4308c
--- /dev/null
+++ b/i18n/tpi.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Iketsi"
+		]
+	},
+	"math_tip": "Matematik formula (LaTeX)",
+	"prefs-math": "Matematiks"
+}
diff --git a/i18n/tr.json b/i18n/tr.json
new file mode 100644
index 0000000..ed6eff6
--- /dev/null
+++ b/i18n/tr.json
@@ -0,0 +1,80 @@
+{
+	"@metadata": {
+		"authors": [
+			"Emperyan",
+			"Erkan Yilmaz",
+			"Hcagri",
+			"Joseph",
+			"Runningfridgesrule",
+			"Srhat",
+			"Uğur Başak",
+			"Rapsar",
+			"Arystanbek",
+			"Meelo",
+			"Watermelon juice",
+			"McAang",
+			"HakanIST",
+			"Sayginer",
+			"Imabadplayer",
+			"Macofe"
+		]
+	},
+	"math-desc": "Render matematiksel formüller arasında <code><math></code> ... <code></math></code> etiketler",
+	"math-visualeditor-mwmathdialog-title": "Formül",
+	"math-visualeditor-mwmathdialog-card-formula": "Formül",
+	"math-visualeditor-mwmathdialog-card-options": "Seçenekler",
+	"math-visualeditor-mwmathinspector-display": "Görüntüle",
+	"math-visualeditor-mwmathinspector-display-block": "Engelle",
+	"math-visualeditor-mwmathinspector-display-default": "Varsayılan",
+	"math-visualeditor-mwmathinspector-display-inline": "Satır içi",
+	"math-visualeditor-mwmathinspector-id": "Bağlantı Kimliği (isteğe bağlı)",
+	"math-visualeditor-mwmathinspector-title": "Formül",
+	"math-visualeditor-symbol-group-arrows": "Oklar",
+	"math-visualeditor-symbol-group-functions": "Standart sayısal fonksiyonlar",
+	"math-visualeditor-symbol-group-geometry": "Geometrik",
+	"math-visualeditor-symbol-group-greek": "Yunan alfabesi",
+	"math-visualeditor-symbol-group-hebrew": "İbrani alfabesi",
+	"math-visualeditor-symbol-group-logic": "Mantık",
+	"math-visualeditor-symbol-group-matrices": "Matrisler",
+	"math-visualeditor-symbol-group-modular": "Modüler aritmetik",
+	"math-visualeditor-symbol-group-operators": "İşlemler",
+	"math-visualeditor-symbol-group-parentheses": "Parantezler",
+	"math-visualeditor-symbol-group-relations": "İlişkiler",
+	"math-visualeditor-symbol-group-sets": "Kümeler",
+	"math-visualeditor-symbol-group-special": "Özel",
+	"math-visualeditor-symbol-group-subscripts": "Alt simge, üst simge ve integraller",
+	"math-visualeditor-symbol-group-symbols": "Semboller ve sabitler",
+	"math-visualeditor-symbol-group-unsorted": "Sınıflandırılmamış",
+	"math_bad_output": "Math çıktı dizinine yazılamıyor ya da oluşturulamıyor",
+	"math_bad_tmpdir": "Math geçici dizinine yazılamıyor ya da oluşturulamıyor",
+	"math_failure": "Ayrıştırılamadı",
+	"math_image_error": "PNG çevirisi başarısız; latex, dvips ve gs programlarının doğru yüklendiğine emin olun ve çeviri işlemini başlatın.",
+	"math_invalidjson": "$1 sunucu yanıtı geçersiz JSON.",
+	"math_invalidresponse": "$1: Geçersiz yanıt (\"$3\") sunucu \"$2\":",
+	"math_invalidxml": "MathML veya SVG geçersiz XML.",
+	"math_lexing_error": "lexing hatası",
+	"math_mathoid_error": "Dönüştürme hatası. Sunucu (\"$1\") bildirdi: \"$2\"",
+	"math_notexvc": "<code>texvc</code> çalıştırılabiliri kayıp;\nayarlamak için math/README'ye bakın.",
+	"math_output_error": "Olamaz dosya sisteminde matematik resim deposu.",
+	"math_sample": "Matematiksel-ifadeyi-girin",
+	"math-status-introduction": "Bu sayfa modu işleme. etkin matematik hakkında bilgi görüntüler\n\nAşağıda işleme {{ÇOĞUL:$1|mode|Kip vardır}} etkin:",
+	"math_syntax_error": "sözdizim hatası",
+	"math_timeout": "$1 zaman aşımı \"$2\".",
+	"math-test-end": "Arka uç testleri için oluşturma modu \"$1\" tamamlandı.",
+	"math-test-fail": "Test \"$1\" <span style=\"color:red\">başarısız oldu</span>.",
+	"math-test-start": "Çalıştıran arka uç testleri için oluşturma modu \"$1\".",
+	"math-test-success": "Test \"$1\" <span style=\"color:green\">başarılı oldu</span>.",
+	"math_tip": "Matematik formülü (LaTeX formatında)",
+	"math_unknown_error": "bilinmeyen hata",
+	"math_unknown_function": "bilinmeyen işlev \"$1\"",
+	"mw_math_latexml": "LaTeXML (deneysel; kullanır MathML)",
+	"mw_math_latexml_jax": "İstemci tarafı ile LaTeXML MathJax (deneysel; kullanır MathML)",
+	"mw_math_mathjax": "İstemci tarafı MathJax (yavaş; bazı tarayıcılar ve erişilebilirlik araçları render geliştirir)",
+	"mw_math_mathml": "MathML, SVG ya da PNG geri dönüş (modern tarayıcılar ve erişilebilirlik araçları için önerilir)",
+	"mw_math_png": "PNG resimleri",
+	"mw_math_source": "LaTeX kaynağı (metin tarayıcıları için)",
+	"prefs-math": "Matematiksel simgeler",
+	"mathstatus": "Matematik durumu",
+	"datatypes-type-math": "Matematiksel ifade",
+	"wikibase-listdatatypes-math-head": "Matematiksel ifade"
+}
diff --git a/i18n/tt-cyrl.json b/i18n/tt-cyrl.json
new file mode 100644
index 0000000..fa5d50b
--- /dev/null
+++ b/i18n/tt-cyrl.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Don Alessandro",
+			"KhayR",
+			"Ерней",
+			"Ильнар",
+			"Рашат Якупов",
+			"Macofe"
+		]
+	},
+	"math_failure": "Укый алмадым",
+	"math_lexing_error": "лексик хата",
+	"math_sample": "Формуланы монда өстәгез",
+	"math_syntax_error": "синтаксик хата",
+	"math_tip": "Математик формула (LaTeX форматы)",
+	"math_unknown_error": "беленмәгән хата",
+	"math_unknown_function": "билгесез функция «$1»",
+	"mw_math_mathml": "SVG яисә PNG форматларыннан күчү өчен MathML куллану (яңа төр браузерга тәкъдим ителә)",
+	"mw_math_png": "PNG рәсемнәр",
+	"mw_math_source": "LaTeX билгеләнеш (текстлы браузерлар өчен)",
+	"prefs-math": "Формулалар"
+}
diff --git a/i18n/tt-latn.json b/i18n/tt-latn.json
new file mode 100644
index 0000000..420ee75
--- /dev/null
+++ b/i18n/tt-latn.json
@@ -0,0 +1,18 @@
+{
+	"@metadata": {
+		"authors": [
+			"Don Alessandro"
+		]
+	},
+	"math_failure": "Uqıy almadım",
+	"math_lexing_error": "leksik xata",
+	"math_sample": "Formulanı monda östägez",
+	"math_syntax_error": "sintaksik xata",
+	"math_tip": "Matematik formula (LaTeX formatı)",
+	"math_unknown_error": "belenmägän xata",
+	"math_unknown_function": "bilgesez funksiä",
+	"mw_math_mathml": "Mömkin bulsa MathML qullanılsın (eksperimental)",
+	"mw_math_png": "Härwaqıt PNG belän bäyläw",
+	"mw_math_source": "TeX bilgeläneşendä qaldırılsın (tekstlı brauzerlar öçen)",
+	"prefs-math": "Formulalar"
+}
diff --git a/i18n/tyv.json b/i18n/tyv.json
new file mode 100644
index 0000000..e5da6af
--- /dev/null
+++ b/i18n/tyv.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Sborsody"
+		]
+	},
+	"math_sample": "Формуланы мынаар киирери",
+	"math_unknown_error": "билбес алдаг"
+}
diff --git a/i18n/ug-arab.json b/i18n/ug-arab.json
new file mode 100644
index 0000000..c49320c
--- /dev/null
+++ b/i18n/ug-arab.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Sahran"
+		]
+	},
+	"math_bad_output": "ماتېماتېكىلىق فورمۇلا چىقىرىدىغان مۇندەرىجىگە يازالمىدى ياكى قۇرالمىدى",
+	"math_bad_tmpdir": "ماتېماتېكىلىق فورمۇلا يازىدىغان ياكى قۇرىدىغان ۋاقىتلىق مۇندەرىجە قۇرالمىدى",
+	"math_failure": "تەھلىل قىلالمىدى",
+	"math_image_error": "PNG ئايلاندۇرۇش مەغلۇپ بولدى؛\nlatex، dvips، gs، ۋە convert توغرا قاچىلانغانلىقىنى تەكشۈرۈڭ",
+	"math_lexing_error": "جۈملە خاتالىقى",
+	"math_notexvc": " <code>texvc</code> ئىجرا قىلالمىدى؛ math/README دىن پايدىلىنىپ سەپلەڭ.",
+	"math_sample": "بۇ جايغا فورمۇلا قىستۇر",
+	"math_syntax_error": "گرامماتىكىلىق خاتالىق",
+	"math_tip": "ماتېماتېكىلىق فورمۇلا (LaTeX)",
+	"math_unknown_error": "نامەلۇم خاتالىق",
+	"math_unknown_function": "نامەلۇم فونكسىيە",
+	"mw_math_mathml": "ئامال بار MathML ئىشلىتىدۇ (سىناق)",
+	"mw_math_png": "ھەمىشە PNG ئىشلەت",
+	"mw_math_source": "TeX كودى كۆرسەت (تېكست توركۆرگۈ ئىشلەتكەندە)",
+	"prefs-math": "ماتېماتېكىلىق فورمۇلا"
+}
diff --git a/i18n/uk.json b/i18n/uk.json
new file mode 100644
index 0000000..30222f4
--- /dev/null
+++ b/i18n/uk.json
@@ -0,0 +1,85 @@
+{
+	"@metadata": {
+		"authors": [
+			"Andriykopanytsia",
+			"Base",
+			"Olvin",
+			"Ата",
+			"Тест",
+			"Olion",
+			"Ypryima",
+			"Piramidion",
+			"Macofe"
+		]
+	},
+	"math-desc": "Відображає математичні формули у тегах <code><math></code> … <code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Швидке редагування",
+	"math-visualeditor-mwmathdialog-title": "Формула",
+	"math-visualeditor-mwmathdialog-card-formula": "Формула",
+	"math-visualeditor-mwmathdialog-card-options": "Параметри",
+	"math-visualeditor-mwmathinspector-display": "Показати",
+	"math-visualeditor-mwmathinspector-display-block": "Блок",
+	"math-visualeditor-mwmathinspector-display-default": "Стандартно",
+	"math-visualeditor-mwmathinspector-display-inline": "Лінійно",
+	"math-visualeditor-mwmathinspector-id": "ID посилання (необов'язково)",
+	"math-visualeditor-mwmathinspector-title": "Формула",
+	"math-visualeditor-symbol-group-accents": "Наголоси та діакритичні знаки",
+	"math-visualeditor-symbol-group-arrows": "Стрілки",
+	"math-visualeditor-symbol-group-bounds": "Межі",
+	"math-visualeditor-symbol-group-derivatives": "Диференціали та похідні",
+	"math-visualeditor-symbol-group-functions": "Стандартні числові функції",
+	"math-visualeditor-symbol-group-geometry": "Геометричні",
+	"math-visualeditor-symbol-group-greek": "Грецький алфавіт",
+	"math-visualeditor-symbol-group-hebrew": "Гебрейський алфавіт",
+	"math-visualeditor-symbol-group-large": "Великі заготовки",
+	"math-visualeditor-symbol-group-logic": "Логіка",
+	"math-visualeditor-symbol-group-matrices": "Матриці",
+	"math-visualeditor-symbol-group-modular": "Модульна арифметика",
+	"math-visualeditor-symbol-group-operators": "Оператори",
+	"math-visualeditor-symbol-group-projections": "Проекції",
+	"math-visualeditor-symbol-group-parentheses": "Дужки",
+	"math-visualeditor-symbol-group-relations": "Відношення",
+	"math-visualeditor-symbol-group-root": "Корені",
+	"math-visualeditor-symbol-group-sets": "Набори",
+	"math-visualeditor-symbol-group-spacing": "Відступи",
+	"math-visualeditor-symbol-group-special": "Спеціальні",
+	"math-visualeditor-symbol-group-subscripts": "Підрядкові, надрядкові та інтеграли",
+	"math-visualeditor-symbol-group-symbols": "Символи та константи",
+	"math-visualeditor-symbol-group-typefaces": "Шрифти",
+	"math-visualeditor-symbol-group-unsorted": "Інше",
+	"math_bad_output": "Не вдається створити чи записати в вихідний каталог математики",
+	"math_bad_tmpdir": "Не вдається створити чи записати в тимчасовий каталог математики",
+	"math_failure": "Неможливо розібрати вираз",
+	"math_image_error": "PNG перетворення не вдалося; перевірте правильність установки latex і dvipng (або dvips + gs + convert)",
+	"math_invalidjson": "$1 відповідь сервера є недійсним JSON.",
+	"math_invalidresponse": "$1: Недійсна відповідь («$3») від сервера «$2»:",
+	"math_invalidxml": "MathML чи SVG є невірним XML.",
+	"math_lexing_error": "лексична помилка",
+	"math_mathoid_error": "Помилка перетворення. Сервер (\"$1\") повідомив: \"$2\"",
+	"math_notexvc": "Не знайдено програму <code>texvc</code>; Див. math/README — довідку про налаштування.",
+	"math_output_error": "Не можна зберегти математичне зображення у файловій системі.",
+	"math_sample": "Вставте сюди формулу",
+	"math-status-introduction": "Ця сторінка показує інформацію про {{PLURAL:$1|увімкнений режим|увімкнені режими}} візуалізації формул.\n\nУвімкнено {{PLURAL:$1|такий режим|такі режими}} візуалізації:",
+	"math_syntax_error": "синтаксична помилка",
+	"math_timeout": "$1 перевищив час очікування від «$2»",
+	"math-test-end": "Бекенд-тести для режиму візуалізації ''$1'' завершено.",
+	"math-test-fail": "Тест ''$1'' <span style=\"color:red\">не вдався</span>.",
+	"math-test-start": "Бекенд-тести для режиму візуалізації ''$1'' у процесі.",
+	"math-test-success": "Тест ''$1'' <span style=\"color:green\">успішний</span>.",
+	"math-test-contains-diff": "Виведений рядок $1 не містить очікуваного рядка $2.",
+	"math-test-equals-diff": "Виведений рядок $1 відрізняється від очікуваного рядка $2.",
+	"math_tip": "Математична формула (LaTeX)",
+	"math_unknown_error": "невідома помилка",
+	"math_unknown_function": "невідома функція '$1'",
+	"mw_math_latexml": "LaTeXML (експериментально; використовує MathML)",
+	"mw_math_latexml_jax": "LaTeXML з MathJax з боку клієнта (експериментально; використовує MathML)",
+	"mw_math_mathjax": "MathJax з боку клієнта (повільно; виправляє візуалізацію у деяких браузерах та інструментах покращення доступу)",
+	"mw_math_mathml": "MathML з переходом на SVG чи PNG (рекомендовано для сучасних браузерів та інструментів покращення доступу)",
+	"mw_math_png": "PNG-зображення",
+	"mw_math_source": "LaTeX-розмітка (для текстових браузерів)",
+	"prefs-math": "Відображення формул",
+	"mathstatus": "Статус Math",
+	"datatypes-type-math": "Математичний вираз",
+	"wikibase-listdatatypes-math-head": "Математичний вираз",
+	"wikibase-listdatatypes-math-body": "Символьне поле даних для математичних виразів, формул, рівнянь та подібного, виражених у варіанті LaTeX."
+}
diff --git a/i18n/ur.json b/i18n/ur.json
new file mode 100644
index 0000000..e6d6efa
--- /dev/null
+++ b/i18n/ur.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"محبوب عالم"
+		]
+	},
+	"math_failure": "تجزیہ میں ناکام",
+	"math_image_error": "PNG; کی تحویل ناکام\nlatex، dvips، gs کی صحیح تنصیب کی جانچ کرنے کے بعد دوبارہ تحویل کی کوشش کیجئے.",
+	"math_sample": "صیغہ یہاں درج کیجئے",
+	"math_syntax_error": "نحوی غلطی",
+	"math_tip": "(ریاضیاتی صیغہ LaTeX)",
+	"math_unknown_error": "نامعلوم غلطی",
+	"math_unknown_function": "نامعلوم فعل",
+	"prefs-math": "ریاضی"
+}
diff --git a/i18n/uz.json b/i18n/uz.json
new file mode 100644
index 0000000..6109ab4
--- /dev/null
+++ b/i18n/uz.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"Abdulla",
+			"CoderSI",
+			"Sociologist"
+		]
+	},
+	"math_sample": "Formula qoʻying",
+	"math_tip": "Matematik formula (LaTeX)",
+	"mw_math_mathjax": "MathJax (tajribaviy moslama)",
+	"mw_math_png": "Har doim PNGga aylantirish",
+	"mw_math_source": "Ishoralarda TeX ni qoldirish (matnli brauzerlar uchun)",
+	"prefs-math": "Formulalar"
+}
diff --git a/i18n/vec.json b/i18n/vec.json
new file mode 100644
index 0000000..c52a345
--- /dev/null
+++ b/i18n/vec.json
@@ -0,0 +1,24 @@
+{
+	"@metadata": {
+		"authors": [
+			"Alunardon90",
+			"Candalua",
+			"Vajotwo"
+		]
+	},
+	"math_bad_output": "Inpossibile scrìvar o crear la directory de output par math",
+	"math_bad_tmpdir": "Inpossibile scrìvar o crear la directory tenporanea par math",
+	"math_failure": "Eror del parser",
+	"math_image_error": "La conversion in PNG no xe riusida; verifegare che i seguenti programi sìe instaładi coretamente: latex e dvipng (o dvips + gs + convert).",
+	"math_lexing_error": "eror lessicale",
+	"math_notexvc": "Eseguibile <code>texvc</code> mancante; par piaser consulta math/README par la configurazion.",
+	"math_sample": "Inserire qua ła formuła",
+	"math_syntax_error": "eror de sintassi",
+	"math_tip": "Formula matematega (LaTeX)",
+	"math_unknown_error": "eror sconossiùo",
+	"math_unknown_function": "funzion sconossiùa",
+	"mw_math_mathml": "Usa MathML se se pol (sperimental)",
+	"mw_math_png": "Mostra senpre in PNG",
+	"mw_math_source": "Lassa in formato TeX (par browser testuali)",
+	"prefs-math": "Formułe matematiche"
+}
diff --git a/i18n/vep.json b/i18n/vep.json
new file mode 100644
index 0000000..f05b22d
--- /dev/null
+++ b/i18n/vep.json
@@ -0,0 +1,23 @@
+{
+	"@metadata": {
+		"authors": [
+			"Игорь Бродский"
+		]
+	},
+	"math-desc": "Ezitada matematižed formulad <code><math></code> ... <code></math></code>-virgoiden keskes",
+	"math_bad_output": "Ei voi säta matematine lähtmižkatalog vai ei voi kirjutada sinnä",
+	"math_bad_tmpdir": "Ei voi säta pordaigaline matematine katalog vai ei voi kirjutada sinnä",
+	"math_failure": "Ei voi palastada",
+	"math_image_error": "PNG-ks kändmižes ozaižihe petuz;\nkodvgat, oiged-ik oma järgetud latex da dvips (vai dvips + gs + convert).",
+	"math_lexing_error": "leksine petuz",
+	"math_notexvc": "En voi löuta <code>texvc</code>-töfailad;\nkc. math/README järgendamižen täht.",
+	"math_sample": "Pangat formul nakhu",
+	"math_syntax_error": "sintaksine petuz",
+	"math_tip": "Matematine formul (LaTeX-formatas)",
+	"math_unknown_error": "tundmatoi petuz",
+	"math_unknown_function": "tundmatoi funkcii",
+	"mw_math_mathml": "MathML, ku sab (eksperimentaližikš)",
+	"mw_math_png": "Kaiken generiruida PNG",
+	"mw_math_source": "Jätkat nece TeX-formas (tekstkaclimiden täht)",
+	"prefs-math": "Matematik"
+}
diff --git a/i18n/vi.json b/i18n/vi.json
new file mode 100644
index 0000000..a8d11c6
--- /dev/null
+++ b/i18n/vi.json
@@ -0,0 +1,82 @@
+{
+	"@metadata": {
+		"authors": [
+			"Minh Nguyen",
+			"Vinhtantran",
+			"Trần Nguyễn Minh Huy",
+			"Max20091",
+			"Dinhxuanduyet",
+			"Macofe"
+		]
+	},
+	"math-desc": "Kết xuất các công thức nằm giữa thẻ <code><math></code> …<code></math></code>",
+	"math-visualeditor-mwmathcontextitem-quickedit": "Sửa đổi nhanh",
+	"math-visualeditor-mwmathdialog-title": "Công thức",
+	"math-visualeditor-mwmathdialog-card-formula": "Công thức",
+	"math-visualeditor-mwmathdialog-card-options": "Tùy chọn",
+	"math-visualeditor-mwmathinspector-display": "Hiển thị",
+	"math-visualeditor-mwmathinspector-display-block": "Khóa",
+	"math-visualeditor-mwmathinspector-display-default": "Mặc định",
+	"math-visualeditor-mwmathinspector-display-inline": "Nội tuyến",
+	"math-visualeditor-mwmathinspector-id": "Liên lết ID (tùy chọn)",
+	"math-visualeditor-mwmathinspector-title": "Công thức toán",
+	"math-visualeditor-symbol-group-accents": "Dấu phụ",
+	"math-visualeditor-symbol-group-arrows": "Mũi tên",
+	"math-visualeditor-symbol-group-bounds": "Dấu cận",
+	"math-visualeditor-symbol-group-derivatives": "Vi phân và đạo hàm",
+	"math-visualeditor-symbol-group-functions": "Hàm số chuẩn",
+	"math-visualeditor-symbol-group-geometry": "Hình học",
+	"math-visualeditor-symbol-group-greek": "Chữ Hy Lạp",
+	"math-visualeditor-symbol-group-hebrew": "Chữ Do Thái",
+	"math-visualeditor-symbol-group-large": "Bố trí lớn",
+	"math-visualeditor-symbol-group-logic": "Lôgic",
+	"math-visualeditor-symbol-group-matrices": "Ma trận",
+	"math-visualeditor-symbol-group-modular": "Số học mô đun",
+	"math-visualeditor-symbol-group-operators": "Toán tử",
+	"math-visualeditor-symbol-group-projections": "Phép chiếu",
+	"math-visualeditor-symbol-group-parentheses": "Dấu ngoặc",
+	"math-visualeditor-symbol-group-relations": "Quan hệ",
+	"math-visualeditor-symbol-group-root": "Dấu căn",
+	"math-visualeditor-symbol-group-sets": "Tập hợp",
+	"math-visualeditor-symbol-group-spacing": "Khoảng cách",
+	"math-visualeditor-symbol-group-special": "Đặc biệt",
+	"math-visualeditor-symbol-group-subscripts": "Chỉ số và tích phân",
+	"math-visualeditor-symbol-group-symbols": "Ký hiệu và hằng số",
+	"math-visualeditor-symbol-group-typefaces": "Kiểu chữ",
+	"math-visualeditor-symbol-group-unsorted": "Không sắp xếp",
+	"math_bad_output": "Không tạo mới hay viết vào thư mục kết quả được",
+	"math_bad_tmpdir": "Không tạo mới hay viết vào thư mục toán tạm thời được",
+	"math_failure": "Không thể phân tích cú pháp",
+	"math_image_error": "Không chuyển sang định dạng PNG được; xin kiểm tra lại cài đặt latex, dvips, gs, và convert (hoặc dvips + gs + convert)",
+	"math_invalidjson": "Phản hồi từ máy chủ $1 là JSON không hợp lệ.",
+	"math_invalidresponse": "$1: Phản hồi không hợp lệ (“$3”) từ máy chủ “$2”:",
+	"math_invalidxml": "MathML hoặc SVG là XML không hợp lệ.",
+	"math_lexing_error": "lỗi chính tả",
+	"math_mathoid_error": "Lỗi chuyển đổi. Máy chủ (“$1”) phản hồi: “$2”",
+	"math_notexvc": "Không thấy hàm thực thi <code>texvc</code>; xin xem math/README để biết cách cấu hình.",
+	"math_output_error": "Không thể lưu hình toán học trên hệ thống tập tin.",
+	"math_sample": "Nhập công thức toán vào đây",
+	"math-status-introduction": "Trang này cho biết thông tin về {{PLURAL:$1|chế độ|các chế độ}} kết xuất toán học được kích hoạt.\n\n{{PLURAL:$1|Chế độ|Các chế độ}} sau được kích hoạt:",
+	"math_syntax_error": "lỗi cú pháp",
+	"math_timeout": "$1 bị hết thời gian từ “$2”",
+	"math-test-end": "Đã hoàn tất các trường hợp kiểm thử phía sau cho chế độ kết xuất ''$1''.",
+	"math-test-fail": "Trường hợp kiểm thử ''$1'' bị <span style=\"color:red\">thất bại</span>.",
+	"math-test-start": "Đang kiểm thử phía sau cho chế độ kết xuất ''$1''.",
+	"math-test-success": "Trường hợp kiểm thử ''$1'' <span style=\"color:green\">thành công</span>.",
+	"math-test-contains-diff": "Chuỗi trả về $1 không chứa chuỗi mong đợi $2.",
+	"math-test-equals-diff": "Chuỗi trả về $1 khác với chuỗi mong đợi $2.",
+	"math_tip": "Công thức toán (LaTeX)",
+	"math_unknown_error": "lỗi không xác định",
+	"math_unknown_function": "hàm không rõ “$1”",
+	"mw_math_latexml": "LaTeXML (thử nghiệm; sử dụng MathML)",
+	"mw_math_latexml_jax": "LaTeXML có MathJax bên trình khách (thử nghiệm; dùng MathML)",
+	"mw_math_mathjax": "MathJax bên trình khách (chậm; cải thiện chất lượng kết họa trong một số trình duyệt và công cụ trợ năng)",
+	"mw_math_mathml": "MathML hoặc SVG/PNG (khuyến khích các trình duyệt và công cụ trợ năng hiện đại)",
+	"mw_math_png": "Hình ảnh PNG",
+	"mw_math_source": "Mã nguồn LaTeX (dành cho trình duyệt văn bản)",
+	"prefs-math": "Toán học",
+	"mathstatus": "Trạng thái toán học",
+	"datatypes-type-math": "Biểu thức toán",
+	"wikibase-listdatatypes-math-head": "Biểu thức toán",
+	"wikibase-listdatatypes-math-body": "Trường dữ liệu thô dành cho các biểu thức, công thức, phương trình toán học ở dạng giống LaTeX."
+}
diff --git a/i18n/vmf.json b/i18n/vmf.json
new file mode 100644
index 0000000..cb47b59
--- /dev/null
+++ b/i18n/vmf.json
@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Altaileopard",
+			"Silvicola"
+		]
+	},
+	"math_sample": "Dô dii fôrml  (in TEX) nâjschrajm",
+	"math_tip": "Mademaadische Fôrml (in LATEX)",
+	"prefs-math": "TeX"
+}
diff --git a/i18n/vo.json b/i18n/vo.json
new file mode 100644
index 0000000..db245ab
--- /dev/null
+++ b/i18n/vo.json
@@ -0,0 +1,22 @@
+{
+	"@metadata": {
+		"authors": [
+			"Smeira"
+		]
+	},
+	"math_bad_output": "No mögos ad penön ini / jafön ragiviär(i) matematik labü seks",
+	"math_bad_tmpdir": "No mögos ad penön ini / jafön ragiviär(i) matematik nelaidüpik.",
+	"math_failure": "Diletam fomüla no eplöpon",
+	"math_image_error": "Feajafam ela PNG no eplöpon;\nvestigolös stitami verätik ela latex, ela dvips, ela gs, e feajafön",
+	"math_lexing_error": "vödidiletam no eplöpon",
+	"math_notexvc": "Program-<code>texvc</code> ledunovik no petuvon;\nlogolös eli math/README ad givulön parametemi.",
+	"math_sample": "Pladolös malatami isio",
+	"math_syntax_error": "süntagapöl",
+	"math_tip": "Malatam matematik (LaTeX)",
+	"math_unknown_error": "pök nesevädik",
+	"math_unknown_function": "dun nesevädik",
+	"mw_math_mathml": "El MathML if mögos (nog sperimänt)",
+	"mw_math_png": "Ai el PNG",
+	"mw_math_source": "Dakipolöd oni as TeX (pro bevüresodatävöms fomätü vödem)",
+	"prefs-math": "Logot formülas"
+}
diff --git a/i18n/vot.json b/i18n/vot.json
new file mode 100644
index 0000000..a2dc652
--- /dev/null
+++ b/i18n/vot.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"2Q"
+		]
+	},
+	"math_sample": "Lissä formula tänne",
+	"math_tip": "Matematillin formula (LaTeX)"
+}
diff --git a/i18n/vro.json b/i18n/vro.json
new file mode 100644
index 0000000..3e1688b
--- /dev/null
+++ b/i18n/vro.json
@@ -0,0 +1,21 @@
+{
+	"@metadata": {
+		"authors": [
+			"Võrok"
+		]
+	},
+	"math_bad_output": "Matõmaatigateksti kirotaminõ välläandmiskausta vai sääntse kausta luuminõ ei lääq kõrda",
+	"math_bad_tmpdir": "Matõmaatigateksti kirotaminõ aotlistõ kausta vai taa kausta luuminõ ei lääq kõrdaq",
+	"math_failure": "Arvosaamalda süntaks",
+	"math_image_error": "PNG-muutus lää-s kõrda; kaeq üle, et latex, dvips, gs ja convert ommaq õigõhe paika säedüq",
+	"math_lexing_error": "Vällälugõmisviga",
+	"math_notexvc": "Olõ-i <code>texvc</code>-tüüriista; loeq tuu paikasäädmise kotsilõ math/README-st.",
+	"math_sample": "Kirodaq vallõm siiäq",
+	"math_syntax_error": "Süntaksiviga",
+	"math_tip": "Matõmaatigatekst (LaTeX)",
+	"math_unknown_error": "Tundmalda viga",
+	"math_unknown_function": "Tundmalda tallitus",
+	"mw_math_png": "Kõgõ PNG",
+	"mw_math_source": "Alalõ hoitaq TeX (tekstikaejin)",
+	"prefs-math": "Valõmidõ näütämine"
+}
diff --git a/i18n/wa.json b/i18n/wa.json
new file mode 100644
index 0000000..53d4d5c
--- /dev/null
+++ b/i18n/wa.json
@@ -0,0 +1,20 @@
+{
+	"@metadata": {
+		"authors": [
+			"Srtxg"
+		]
+	},
+	"math_bad_output": "Dji n' sai nén scrire ou ahiver l' ridant po les fitchîs di rexhowe des formules matematikes",
+	"math_bad_tmpdir": "Dji n' sai nén scrire ou ahiver l' ridant timporaire po les formules matematikes",
+	"math_image_error": "Li cviersaedje e PNG a fwait berwete; verifyîz ki les programes latex et dvipng (ou dvips + gs + convert) ont stî astalés comifåt",
+	"math_notexvc": "I manke li fitchî enondåve <code>texvc</code>; lijhoz math/README po-z apontyî.",
+	"math_sample": "Tapez l' formule matematike chal",
+	"math_syntax_error": "aroke di sintacse",
+	"math_tip": "Formule matematike (LaTeX)",
+	"math_unknown_error": "aroke nén cnoxhowe",
+	"math_unknown_function": "fonccion nén cnoxhowe",
+	"mw_math_mathml": "Eployî MathML si c' est possibe (esperimintå)",
+	"mw_math_png": "Håyner tofer come ene imådje PNG",
+	"mw_math_source": "El leyî e TeX (po les betchteus e môde tecse)",
+	"prefs-math": "Formules matematikes"
+}
diff --git a/i18n/wo.json b/i18n/wo.json
new file mode 100644
index 0000000..45161ea
--- /dev/null
+++ b/i18n/wo.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"Ibou"
+		]
+	},
+	"math_failure": "Njuumte ci xayma",
+	"math_lexing_error": "Njuumteg mbindin",
+	"math_sample": "Duggalal sa mbind fii",
+	"math_syntax_error": "njuumtey mbindin",
+	"math_tip": "Mbindu xayma (LaTeX)",
+	"math_unknown_error": "Njuumte li xamuñ ko",
+	"math_unknown_function": "Solo si xamuñ ko",
+	"prefs-math": "Xayma"
+}
diff --git a/i18n/wuu.json b/i18n/wuu.json
new file mode 100644
index 0000000..068b22b
--- /dev/null
+++ b/i18n/wuu.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Wu-chinese.com"
+		]
+	},
+	"math_sample": "箇搭嵌入数学公式",
+	"math_tip": "插入数学公式 (LaTeX)",
+	"prefs-math": "数学公式"
+}
diff --git a/i18n/xal.json b/i18n/xal.json
new file mode 100644
index 0000000..761b778
--- /dev/null
+++ b/i18n/xal.json
@@ -0,0 +1,10 @@
+{
+	"@metadata": {
+		"authors": [
+			"Huuchin"
+		]
+	},
+	"math_sample": "Энд тегштклиг бичтн",
+	"math_tip": "Тегшткл (LaTeX)",
+	"prefs-math": "Тетшкүлүд"
+}
diff --git a/i18n/xmf.json b/i18n/xmf.json
new file mode 100644
index 0000000..667a7e8
--- /dev/null
+++ b/i18n/xmf.json
@@ -0,0 +1,9 @@
+{
+	"@metadata": {
+		"authors": [
+			"Dawid Deutschland"
+		]
+	},
+	"math_sample": "ქინახუნეთ ფორმულა თაქ",
+	"math_tip": "მათემატიკურ ფორმულა (LaTeX)"
+}
diff --git a/i18n/yi.json b/i18n/yi.json
new file mode 100644
index 0000000..7f41a33
--- /dev/null
+++ b/i18n/yi.json
@@ -0,0 +1,15 @@
+{
+	"@metadata": {
+		"authors": [
+			"פוילישער"
+		]
+	},
+	"math_lexing_error": "לעקסינג טעות",
+	"math_sample": "לייגט אריין פארמל דא",
+	"math_syntax_error": "סינטאקס גרייז",
+	"math_tip": "מאטעמאטישע פארמל (LaTeX)",
+	"math_unknown_error": "אומבאַקאַנטער פֿעלער",
+	"math_unknown_function": "אומבאַקאַנטע פֿונקציע '$1'",
+	"prefs-math": "פאָרמאַל",
+	"datatypes-type-math": "מאטעמאטישער אויסדרוק"
+}
diff --git a/i18n/yo.json b/i18n/yo.json
new file mode 100644
index 0000000..99ff801
--- /dev/null
+++ b/i18n/yo.json
@@ -0,0 +1,13 @@
+{
+	"@metadata": {
+		"authors": [
+			"Demmy"
+		]
+	},
+	"math_lexing_error": "àsiṣe òye ọ̀rọ̀",
+	"math_sample": "Ẹ fi àgbékalẹ̀ s'íhín",
+	"math_tip": "Àgbékalẹ̀ ìsirò (LaTeX)",
+	"math_unknown_error": "àsiṣe àwámárìdí",
+	"math_unknown_function": "ìfiṣe àwámárìdí",
+	"prefs-math": "Ìṣirò"
+}
diff --git a/i18n/yue.json b/i18n/yue.json
new file mode 100644
index 0000000..bf416d8
--- /dev/null
+++ b/i18n/yue.json
@@ -0,0 +1,29 @@
+{
+	"@metadata": {
+		"authors": [
+			"Waihorace",
+			"Ktchankt",
+			"Macofe"
+		]
+	},
+	"math-visualeditor-mwmathinspector-display": "顯示",
+	"math-visualeditor-mwmathinspector-display-block": "封鎖",
+	"math-visualeditor-mwmathinspector-display-default": "預設",
+	"math-visualeditor-mwmathinspector-display-inline": "行內",
+	"math-visualeditor-mwmathinspector-title": "方程式",
+	"math_bad_output": "唔能夠寫入或建立輸出數目錄",
+	"math_bad_tmpdir": "唔能夠寫入或建立臨時數目錄",
+	"math_failure": "語法拼砌失敗",
+	"math_image_error": "PNG 轉換失敗;檢查latex、dvipng(或者dvips+gs+convert)係唔係已經正確咁樣安裝",
+	"math_lexing_error": "lexing錯誤",
+	"math_notexvc": "<code>texvc</code> 執行檔已經遺失;請睇睇 math/README 去較吓。",
+	"math_sample": "喺呢度插入方程式",
+	"math_syntax_error": "語法錯誤",
+	"math_tip": "數學方程(LaTeX)",
+	"math_unknown_error": "唔知錯乜",
+	"math_unknown_function": "唔知乜函數「$1」",
+	"mw_math_mathml": "可以嘅話用MathML(實驗中)",
+	"mw_math_png": "全部用PNG表示",
+	"mw_math_source": "保留返用LaTeX(文字瀏覽器用)",
+	"prefs-math": "數"
+}
diff --git a/i18n/zea.json b/i18n/zea.json
new file mode 100644
index 0000000..caef1c3
--- /dev/null
+++ b/i18n/zea.json
@@ -0,0 +1,19 @@
+{
+	"@metadata": {
+		"authors": [
+			"NJ"
+		]
+	},
+	"math_bad_output": "De map voe bestan'n mie wiskundihe formules besti nie of kan nie emikt worn.",
+	"math_bad_tmpdir": "De map voe tiedelijke bestan'n voe wiskundihe formules besti nie of kan nie emikt worn",
+	"math_failure": "Parsen mislukt",
+	"math_image_error": "PNG-omzettieng is mislukt. Hi nae of an latex, dvips en gs correct heïnstalleerd zien en zet om",
+	"math_lexing_error": "lexicohraofische fout",
+	"math_notexvc": "Kan 't prohramma <code>texvc</code> nie vin'n; stel aolles in volhens de beschrievieng in math/README.",
+	"math_sample": "Voer de formule in",
+	"math_syntax_error": "syntactische fout",
+	"math_tip": "Wiskundihe formule (LaTeX)",
+	"math_unknown_error": "onbekende fout",
+	"math_unknown_function": "onbekende functie",
+	"prefs-math": "Formules"
+}
diff --git a/i18n/zh-hans.json b/i18n/zh-hans.json
new file mode 100644
index 0000000..3652568
--- /dev/null
+++ b/i18n/zh-hans.json
@@ -0,0 +1,84 @@
+{
+	"@metadata": {
+		"authors": [
+			"Hzy980512",
+			"Liuxinyu970226",
+			"Xiaomingyan",
+			"Yfdyh000",
+			"乌拉跨氪",
+			"PhiLiP",
+			"Liangent",
+			"TransTS"
+		]
+	},
+	"math-desc": "在<code><math></code>...<code></math></code>标签间生成数学公式",
+	"math-visualeditor-mwmathcontextitem-quickedit": "快速编辑",
+	"math-visualeditor-mwmathdialog-title": "公式",
+	"math-visualeditor-mwmathdialog-card-formula": "公式",
+	"math-visualeditor-mwmathdialog-card-options": "选项",
+	"math-visualeditor-mwmathinspector-display": "显示",
+	"math-visualeditor-mwmathinspector-display-block": "块",
+	"math-visualeditor-mwmathinspector-display-default": "默认",
+	"math-visualeditor-mwmathinspector-display-inline": "行内",
+	"math-visualeditor-mwmathinspector-id": "链接ID(可选)",
+	"math-visualeditor-mwmathinspector-title": "公式",
+	"math-visualeditor-symbol-group-accents": "重音和变音符号",
+	"math-visualeditor-symbol-group-arrows": "箭头",
+	"math-visualeditor-symbol-group-bounds": "界限",
+	"math-visualeditor-symbol-group-derivatives": "微分和导数",
+	"math-visualeditor-symbol-group-functions": "标准数值函数",
+	"math-visualeditor-symbol-group-geometry": "几何学",
+	"math-visualeditor-symbol-group-greek": "希腊字母",
+	"math-visualeditor-symbol-group-hebrew": "希伯来字母",
+	"math-visualeditor-symbol-group-large": "大布局",
+	"math-visualeditor-symbol-group-logic": "逻辑",
+	"math-visualeditor-symbol-group-matrices": "矩阵",
+	"math-visualeditor-symbol-group-modular": "模运算",
+	"math-visualeditor-symbol-group-operators": "运算符",
+	"math-visualeditor-symbol-group-projections": "投影",
+	"math-visualeditor-symbol-group-parentheses": "括号",
+	"math-visualeditor-symbol-group-relations": "关系式",
+	"math-visualeditor-symbol-group-root": "根式",
+	"math-visualeditor-symbol-group-sets": "集合",
+	"math-visualeditor-symbol-group-spacing": "间距",
+	"math-visualeditor-symbol-group-special": "特殊",
+	"math-visualeditor-symbol-group-subscripts": "下标、上标和积分",
+	"math-visualeditor-symbol-group-symbols": "符号和常量",
+	"math-visualeditor-symbol-group-typefaces": "字体",
+	"math-visualeditor-symbol-group-unsorted": "未分类",
+	"math_bad_output": "无法写入或建立数学公式输出目录",
+	"math_bad_tmpdir": "无法写入或建立数学公式临时目录",
+	"math_failure": "解析失败",
+	"math_image_error": "PNG转换失败;检查latex和dvipng(或dvips + gs + convert)是否正确安装",
+	"math_invalidjson": "$1服务器响应的JSON无效。",
+	"math_invalidresponse": "$1:从服务器“$2”返回无效的响应(“$3”):",
+	"math_invalidxml": "MathML或SVG是无效的XML。",
+	"math_lexing_error": "句法错误",
+	"math_mathoid_error": "转换错误。服务器(“$1”)报告:“$2”",
+	"math_notexvc": "<code>texvc</code>执行文件遗失;请参照math/README进行配置。",
+	"math_output_error": "无法在文件系统上存储数学图像。",
+	"math_sample": "在此插入数学公式",
+	"math-status-introduction": "此页面显示有关已启用的数学渲染{{PLURAL:$1|模式}}的信息。\n\n以下渲染{{PLURAL:$1|模式}}已启用:",
+	"math_syntax_error": "语法错误",
+	"math_timeout": "$1自“$2”起超时。",
+	"math-test-end": "用于渲染模式“$1”的后端测试已完成。",
+	"math-test-fail": "测试“$1”<span style=\"color:red\">失败</span>。",
+	"math-test-start": "用于渲染模式“$1”的后端测试正在运行。",
+	"math-test-success": "测试“$1”<span style=\"color:green\">完成</span>。",
+	"math-test-contains-diff": "返回的字符串$1不包含预期字符串$2。",
+	"math-test-equals-diff": "返回的字符串$1不同于预期字符串$2。",
+	"math_tip": "插入数学公式 (LaTeX)",
+	"math_unknown_error": "未知错误",
+	"math_unknown_function": "未知函数“$1”",
+	"mw_math_latexml": "LaTeXML(试验中,使用MathML)",
+	"mw_math_latexml_jax": "带客户端MathJax的LaTeXML(实验中;使用MathML)",
+	"mw_math_mathjax": "客户端MathJax(慢;改进一些浏览器和辅助工具的渲染)",
+	"mw_math_mathml": "带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具)",
+	"mw_math_png": "PNG图片",
+	"mw_math_source": "LaTeX源(用于文字浏览器)",
+	"prefs-math": "数学公式",
+	"mathstatus": "公式生成器状态",
+	"datatypes-type-math": "数学表达式",
+	"wikibase-listdatatypes-math-head": "数学表达式",
+	"wikibase-listdatatypes-math-body": "用于数学表达式、公式、方程等的文字数据字段,以LaTeX的一种变体表达。"
+}
diff --git a/i18n/zh-hant.json b/i18n/zh-hant.json
new file mode 100644
index 0000000..67f97f9
--- /dev/null
+++ b/i18n/zh-hant.json
@@ -0,0 +1,61 @@
+{
+	"@metadata": {
+		"authors": [
+			"Justincheng12345",
+			"Liangent",
+			"Liuxinyu970226",
+			"Mark85296341",
+			"Simon Shek",
+			"Cwlin0416",
+			"LNDDYL",
+			"PhiLiP",
+			"Bowleerin",
+			"Macofe"
+		]
+	},
+	"math-desc": "在 <code><math></code>...<code></math></code> 標籤顯示數學公式",
+	"math-visualeditor-mwmathcontextitem-quickedit": "快速編輯",
+	"math-visualeditor-mwmathdialog-title": "公式",
+	"math-visualeditor-mwmathdialog-card-formula": "公式",
+	"math-visualeditor-mwmathdialog-card-options": "選項",
+	"math-visualeditor-mwmathinspector-display": "顯示",
+	"math-visualeditor-mwmathinspector-display-block": "區塊",
+	"math-visualeditor-mwmathinspector-display-default": "預設",
+	"math-visualeditor-mwmathinspector-display-inline": "行內",
+	"math-visualeditor-mwmathinspector-id": "連結 ID (選填)",
+	"math-visualeditor-mwmathinspector-title": "公式",
+	"math-visualeditor-symbol-group-functions": "標準數值函數",
+	"math-visualeditor-symbol-group-special": "特殊",
+	"math_bad_output": "無法寫入或建立數學公式輸出目錄",
+	"math_bad_tmpdir": "無法寫入或建立數學公式暫存目錄",
+	"math_failure": "解析失敗",
+	"math_image_error": "PNG 轉換失敗;請檢查是否正確安裝了 latex 與 dvipng (或 dvips + gs + convert)",
+	"math_invalidjson": "$1 伺服器回應無效的 JSON。",
+	"math_invalidresponse": "$1:從伺服器 \"$2\" 收到無效的回應 (\"$3\")。",
+	"math_invalidxml": " MathML 或 SVG 是無效的 XML。",
+	"math_lexing_error": "語句錯誤",
+	"math_mathoid_error": "轉換錯誤。 伺服器 (\"$1\") 己回報:\"$2\"",
+	"math_notexvc": "缺少 \"<code>texvc</code>\" 執行程式;請參考 math/README 進行設定。",
+	"math_output_error": "無法儲存數學公式圖片於檔案系統。",
+	"math_sample": "在此插入數學公式",
+	"math-status-introduction": "此頁面顯示有關已開啟的數學繪圖模式資訊。\n\n下列繪圖{{PLURAL:$1|模式|模式}}已開啟:",
+	"math_syntax_error": "語法錯誤",
+	"math_timeout": "\"$2\" 的 $1 逾時。",
+	"math-test-end": "繪圖模式 ''$1'' 的後端測試已完成。",
+	"math-test-fail": "測試 ''$1''  <span style=\"color:red\">失敗</span>。",
+	"math-test-start": "執行繪圖模式 ''$1'' 的後端測試。",
+	"math-test-success": "測試 ''$1'' <span style=\"color:green\">已成功</span>。",
+	"math-test-contains-diff": "回傳字串 $1 並不包含預期的字串 $2。",
+	"math-test-equals-diff": "回傳字串 $1 不同於預期的字串 $2。",
+	"math_tip": "插入數學公式  (LaTeX)",
+	"math_unknown_error": "不明錯誤",
+	"math_unknown_function": "不明函數 \"$1\"",
+	"mw_math_latexml": "LaTeXML (實驗性;使用 MathML)",
+	"mw_math_latexml_jax": "LaTeXML 使用用戶端 MathJax (實驗中;使用 MathML)",
+	"mw_math_mathjax": "客戶端 MathJax (速度較慢,改進於部份瀏覽器與輔助工具的繪圖效果)",
+	"mw_math_mathml": "MathML 使用 SVG 或 PNG 備用 (建議用於現代瀏覽器與輔助工具)",
+	"mw_math_png": "PNG 圖片",
+	"mw_math_source": "LaTeX 原始碼 (供文字瀏覽器使用)",
+	"prefs-math": "數學公式",
+	"mathstatus": "公式生成器狀態"
+}
diff --git a/i18n/zu.json b/i18n/zu.json
new file mode 100644
index 0000000..a212a5f
--- /dev/null
+++ b/i18n/zu.json
@@ -0,0 +1,5 @@
+{
+	"@metadata": [],
+	"math_sample": "Faka izibalo lapha",
+	"prefs-math": "Izibalo"
+}
diff --git a/images/button_math.png b/images/button_math.png
new file mode 100644
index 0000000..78ea19e
Binary files /dev/null and b/images/button_math.png differ
diff --git a/images/reference-nospeech.svg b/images/reference-nospeech.svg
new file mode 100644
index 0000000..77dba2c
--- /dev/null
+++ b/images/reference-nospeech.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.099ex" height="2.343ex" style="vertical-align: -0.505ex;" viewBox="0 -791.3 2195.4 1008.6" xmlns="http://www.w3.org/2000/svg">
+    <defs>
+        <path stroke-width="10" id="E1-MJMATHI-61" d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 1 [...]
+        <path stroke-width="10" id="E1-MJMAIN-2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path>
+        <path stroke-width="10" id="E1-MJMATHI-62" d="M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 2 [...]
+    </defs>
+    <g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
+        <use xlink:href="#E1-MJMATHI-61" x="0" y="0"></use>
+        <use xlink:href="#E1-MJMAIN-2B" x="756" y="0"></use>
+        <use xlink:href="#E1-MJMATHI-62" x="1761" y="0"></use>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/images/reference.svg b/images/reference.svg
new file mode 100644
index 0000000..2b7291f
--- /dev/null
+++ b/images/reference.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="vertical-align: -0.505ex;" width="5.099ex" height="2.343ex" viewBox="0 -791.3 2195.4 1008.6" xmlns="http://www.w3.org/2000/svg" role="math" aria-labelledby="MathJax-SVG-1-Title MathJax-SVG-1-Desc">
+<title id="MathJax-SVG-1-Title">Equation</title>
+<desc id="MathJax-SVG-1-Desc">a plus b</desc>
+<defs aria-hidden="true">
+<path stroke-width="10" id="E1-MJMATHI-61" d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q1 [...]
+<path stroke-width="10" id="E1-MJMAIN-2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path>
+<path stroke-width="10" id="E1-MJMATHI-62" d="M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58 [...]
+</defs>
+<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
+ <use xlink:href="#E1-MJMATHI-61" x="0" y="0"></use>
+ <use xlink:href="#E1-MJMAIN-2B" x="756" y="0"></use>
+ <use xlink:href="#E1-MJMATHI-62" x="1761" y="0"></use>
+</g>
+</svg>
\ No newline at end of file
diff --git a/maintenance/MathGenerateTests.php b/maintenance/MathGenerateTests.php
new file mode 100644
index 0000000..f46707d
--- /dev/null
+++ b/maintenance/MathGenerateTests.php
@@ -0,0 +1,95 @@
+<?php
+/**
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @ingroup Maintenance
+ */
+
+require_once __DIR__ . '/../../../maintenance/Maintenance.php';
+
+class MathGenerateTests extends Maintenance
+{
+	const REFERENCE_PAGE = 'mediawikiwiki:Extension:Math/CoverageTest';
+
+	public function __construct() {
+		parent::__construct();
+		$this->mDescription = 'Rebuilds the MathCoverage tests';
+		$this->addArg( 'page', "The page used for the testset generation.", false );
+		$this->addOption(
+			'offset', "If set the first n equations on the page are skipped", false, true, "o"
+		);
+		$this->addOption( 'length', "If set the only n equations were processed", false, true, "l" );
+		$this->addOption( 'user', "User with rights to view the page", false, true, "u" );
+
+	}
+
+	private static function getMathTagsFromPage( $titleString ) {
+		global $wgEnableScaryTranscluding;
+		$title = Title::newFromText( $titleString );
+		if ( $title->exists() ) {
+			$article = new Article( $title );
+			$wikiText = $article->getPage()->getContent()->getNativeData();
+		} else {
+			if ( $title == self::REFERENCE_PAGE ) {
+				$wgEnableScaryTranscluding = true;
+				$parser = new Parser();
+				$wikiText = $parser->interwikiTransclude( $title, 'raw' );
+			} else {
+				return 'Page does not exist';
+			}
+		}
+
+		$wikiText = Sanitizer::removeHTMLcomments( $wikiText );
+		$wikiText = preg_replace( '#<nowiki>(.*)</nowiki>#', '', $wikiText );
+		$math = [];
+		Parser::extractTagsAndParams( [ 'math' ], $wikiText, $math );
+		return $math;
+	}
+
+	public function execute() {
+		global $wgUser;
+		$parserTests = [];
+		$page = $this->getArg( 0, self::REFERENCE_PAGE );
+		$offset = $this->getOption( 'offset', 0 );
+		$length = $this->getOption( 'length', PHP_INT_MAX );
+		$userName = $this->getOption( 'user', 'Maintenance script' );
+		$wgUser = User::newFromName( $userName );
+		$allEquations = self::getMathTagsFromPage( $page );
+		if ( !is_array( $allEquations ) ) {
+			echo "Could not get equations from page '$page'\n";
+			echo $allEquations . PHP_EOL;
+			return;
+		} else {
+			echo 'got ' . count( $allEquations ) . " math tags. Start processing.";
+		}
+		$i = 0;
+		foreach ( array_slice( $allEquations, $offset, $length, true ) as $input ) {
+			$output = MathRenderer::renderMath( $input[1], $input[2], 'png' );
+			$output = preg_replace( '#src="(.*?)/(([a-f]|\d)*).png"#', 'src="\2.png"', $output );
+			$parserTests[] = [ (string)$input[1], $output ];
+			$i++;
+			echo '.';
+		}
+		echo "Generated $i tests\n";
+		file_put_contents(
+			__DIR__ . '/../tests/ParserTest.json', json_encode( $parserTests, JSON_PRETTY_PRINT )
+		);
+	}
+}
+
+$maintClass = 'MathGenerateTests';
+require_once RUN_MAINTENANCE_IF_MAIN;
diff --git a/math/.gitignore b/math/.gitignore
new file mode 100644
index 0000000..cac42e2
--- /dev/null
+++ b/math/.gitignore
@@ -0,0 +1,10 @@
+# Compiled source
+*.mli
+*.cmi
+*.cmx
+*.o
+
+# The binaries
+texvc
+texvc_test
+texvc_tex
diff --git a/math/README b/math/README
index d90aeb5..8543f4d 100644
--- a/math/README
+++ b/math/README
@@ -11,7 +11,7 @@ included as part of the MediaWiki package (http://www.mediawiki.org) and is
 under the GPL license.
 
 Please report bugs at: https://bugzilla.wikimedia.org/
-with "MediaWiki extensions" as product and "texvc" as component.
+with "MediaWiki extensions" as product and "Math" as component.
 
 == Setup ==
 
@@ -32,13 +32,17 @@ already contain AMS*. In Debian/Ubuntu you need to install tetex-extra.
 To work properly with rendering non-ASCII Unicode characters, a supplemental TeX
 package is needed (cjk-latex in Debian)
 
+In Ubuntu Precise, all dependencies can be installed using:
+
+  $ sudo apt-get install build-essential dvipng ocaml \
+        texlive-fonts-recommended texlive-lang-greek texlive-latex-recommended
+
 === Installation ===
 
 Run 'make' (or 'gmake' if GNU make is not your default make). This should
 produce the texvc executable.
 
-Then you'll need to set $wgUseTeX to true in your LocalSettings.php. By default,
-MediaWiki will search in this directory for texvc, if you moved it elsewhere,
+By default, MediaWiki will search in this directory for texvc, if you moved it elsewhere,
 you'll have to modify $wgTexvc and set it to the path of the texvc executable.
 
 == Usage ==
@@ -110,7 +114,7 @@ If the first renders, but the second doesn't, you need to install AMS*.
 Before you start hacking on the math package its good to know the workflow,
 which is basically:
 
-1. texvc gets called by Math/Math.body.php (check out the line begining with "$cmd")
+1. texvc gets called by Math/Math.body.php (check out the line beginning with "$cmd")
 2. texvc does its magic, which is basically to check for invalid latex code.
 3. texvc takes the user input if valid and creates a latex file containing it, see
    get_preface in texutil.ml
diff --git a/math/lexer.mll b/math/lexer.mll
index d321f07..fb76718 100644
--- a/math/lexer.mll
+++ b/math/lexer.mll
@@ -18,7 +18,7 @@ let mediawiki_function_names = "arccot" | "arcsec" | "arccsc" | "sgn" | "sen"
 
 rule token = parse
     space +			{ token lexbuf }
-  | "\\text" space * '{' boxchars + '}'
+  | "\\text" space * '{' aboxchars + '}'
 				{ Texutil.tex_use_ams (); let str = Lexing.lexeme lexbuf in
 				  let n = String.index str '{' + 1 in
 				  BOX ("\\text", String.sub str n (String.length str - n - 1)) }
@@ -34,6 +34,11 @@ rule token = parse
 				{ let str = Lexing.lexeme lexbuf in
 				  let n = String.index str '{' + 1 in
 				  BOX ("\\vbox", String.sub str n (String.length str - n - 1)) }
+  | "\\text" space * '{' boxchars + '}'
+				{ Texutil.tex_use_ams (); let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  Texutil.tex_use_nonascii();
+				  BOX ("\\text", String.sub str n (String.length str - n - 1)) }
   | "\\mbox" space * '{' boxchars + '}'
 				{ let str = Lexing.lexeme lexbuf in
 				  let n = String.index str '{' + 1 in
@@ -64,7 +69,7 @@ rule token = parse
   | "\\" (latex_function_names as name) space * "["  { LITERAL (HTMLABLEC(FONT_UFH,"\\" ^ name ^ "[", name ^ "[")) }  
   | "\\" (latex_function_names as name) space * "\\{"  { LITERAL (HTMLABLEC(FONT_UFH,"\\" ^ name ^ "\\{", name ^ "{")) }
   | "\\" (latex_function_names as name) space * { LITERAL (HTMLABLEC(FONT_UFH,"\\" ^ name ^ " ", name ^ " ")) }
-  | "\\" (mediawiki_function_names as name) space * "("    { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "}(", name^ "("))) }  
+  | "\\" (mediawiki_function_names as name) space * "("    { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "}(", name^ "("))) }
   | "\\" (mediawiki_function_names as name) space * "["    { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "}[", name^ "["))) }
   | "\\" (mediawiki_function_names as name) space * "\\{"  { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "}\\{", name^ "{"))) }
   | "\\" (mediawiki_function_names as name) space *        { (Texutil.tex_use_ams(); LITERAL (HTMLABLEC(FONT_UFH,"\\operatorname{" ^ name ^ "} ", name ^ " "))) }
diff --git a/math/parser.mly b/math/parser.mly
index 373d45d..9819ccd 100644
--- a/math/parser.mly
+++ b/math/parser.mly
@@ -45,7 +45,7 @@ litsq_uq:
 litsq_dq:
     litsq_zq SUB lit		{ $1,$3 }
 litsq_zq:
-  | SQ_CLOSE 			{ TEX_LITERAL sq_close_ri }
+    SQ_CLOSE 			{ TEX_LITERAL sq_close_ri }
 expr_nosqc:
     /* */			{ [] }
   | lit_aq expr_nosqc		{ $1 :: $2 }
diff --git a/math/texutil.ml b/math/texutil.ml
index a4c40a5..5d3948a 100644
--- a/math/texutil.ml
+++ b/math/texutil.ml
@@ -248,7 +248,7 @@ let find = function
     | "\\wr"               -> LITERAL (TEX_ONLY "\\wr ")
     | "\\triangleleft"     -> LITERAL (TEX_ONLY "\\triangleleft ")
     | "\\triangleright"    -> LITERAL (TEX_ONLY "\\triangleright ")
-    | "\\textvisiblespace" -> LITERAL (TEX_ONLY "\\textvisiblespace ")
+    | "\\textvisiblespace" -> LITERAL (TEX_ONLY "\\mbox{\\textvisiblespace}")
     | "\\circ"             -> LITERAL (TEX_ONLY "\\circ ")
     | "\\hbar"             -> LITERAL (TEX_ONLY "\\hbar ")
     | "\\imath"            -> LITERAL (TEX_ONLY "\\imath ")
@@ -330,7 +330,7 @@ let find = function
     | "\\pm"               -> LITERAL (HTMLABLEM(FONT_UFH,"\\pm ", "±"))
     | "\\plusmn"           -> LITERAL (HTMLABLEM(FONT_UFH,"\\pm ", "±"))
     | "\\cdot"             -> LITERAL (HTMLABLE (FONT_UFH,"\\cdot ", "⋅"))
-    | "\\AA"               -> LITERAL (HTMLABLE (FONT_UFH,"\\AA ", "Å"))
+    | "\\AA"               -> LITERAL (HTMLABLE (FONT_UFH,"\\mbox{\\AA}", "Å"))
     | "\\cdots"            -> LITERAL (HTMLABLE (FONT_UFH,"\\cdots ", "⋅⋅⋅"))
     | "\\sdot"             -> LITERAL (HTMLABLE (FONT_UFH,"\\cdot ", "⋅"))
     | "\\oplus"            -> LITERAL (HTMLABLE (FONT_UF, "\\oplus ", "⊕"))
@@ -482,15 +482,15 @@ let find = function
     | "\\hat"              -> FUN_AR1 "\\hat "
     | "\\hline"            -> LITERAL (TEX_ONLY "\\hline ")
     | "\\vline"            -> LITERAL (TEX_ONLY "\\vline ")
-    | "\\widetilde"        -> LITERAL (TEX_ONLY "\\widetilde ")
-    | "\\widehat"          -> LITERAL (TEX_ONLY "\\widehat ")
-    | "\\overline"         -> LITERAL (TEX_ONLY "\\overline ")
-    | "\\overbrace"        -> LITERAL (TEX_ONLY "\\overbrace ")
-    | "\\underline"        -> LITERAL (TEX_ONLY "\\underline ")
-    | "\\underbrace"       -> LITERAL (TEX_ONLY "\\underbrace ")
-    | "\\overleftarrow"    -> LITERAL (TEX_ONLY "\\overleftarrow ")
-    | "\\overrightarrow"   -> LITERAL (TEX_ONLY "\\overrightarrow ")
-    | "\\overleftrightarrow"-> (tex_use_ams(); LITERAL (TEX_ONLY "\\overleftrightarrow "))
+    | "\\widetilde"        -> FUN_AR1 "\\widetilde "
+    | "\\widehat"          -> FUN_AR1 "\\widehat "
+    | "\\overline"         -> FUN_AR1 "\\overline "
+    | "\\overbrace"        -> FUN_AR1nb "\\overbrace "
+    | "\\underline"        -> FUN_AR1 "\\underline "
+    | "\\underbrace"       -> FUN_AR1nb "\\underbrace "
+    | "\\overleftarrow"    -> FUN_AR1 "\\overleftarrow "
+    | "\\overrightarrow"   -> FUN_AR1 "\\overrightarrow "
+    | "\\overleftrightarrow"-> (tex_use_ams(); FUN_AR1 "\\overleftrightarrow ")
     | "\\check"            -> FUN_AR1 "\\check "
     | "\\acute"            -> FUN_AR1 "\\acute "
     | "\\grave"            -> FUN_AR1 "\\grave "
diff --git a/math/texvc.ml b/math/texvc.ml
index 33a14b7..517a2bf 100644
--- a/math/texvc.ml
+++ b/math/texvc.ml
@@ -26,11 +26,10 @@ let render tmppath finalpath tree backcolor =
 	Render.render tmppath finalpath outtex md5 backcolor
     end
 
-(* TODO: document
- * Arguments:
- * 1st :  
- * 2nd :
- * 3rd :
+(* Arguments:
+ * 1st : temporary directory to use as scratch space
+ * 2nd : target path
+ * 3rd : LaTeX input
  * 4th : encoding (Default: UTF-8)
  * 5th : color (Default: rgb 1.0 1.0 1.0)
  *
diff --git a/mathParserTests.txt b/mathParserTests.txt
index 51691d4..4db6bf3 100644
--- a/mathParserTests.txt
+++ b/mathParserTests.txt
@@ -1,4 +1,3 @@
-
 !! test
 pre-save transform: comment containing math
 !! options
@@ -8,160 +7,3 @@ pst
 !!result
 <!-- <math>data</math> -->
 !!end
-
-#!! test
-#BUG 1887: A <math> with a thumbnail- we don't render math in the parsertests by default,
-#so math is not stripped and turns up as escaped <math> tags.
-#!! input
-#[[Image:foobar.jpg|thumb|<math>2+2</math>]]
-#!! result
-#<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><math>2+2</math></div></div></div>
-#
-#!! end
-
-!! test
-BUG 1887, part 2: A <math> with a thumbnail- math enabled
-!! options
-math
-!! input
-[[Image:foobar.jpg|thumb|<math>2+2</math>]]
-!! result
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><span class="texhtml" dir="ltr">2 + 2</span></div></div></div>
-
-!! end
-
-#!! test
-#Math section safety when disabled
-#!! input
-#<math><script>alert(document.cookies);</script></math>
-#!! result
-#<p><math><script>alert(document.cookies);</script></math>
-#</p>
-#!! end
-
-!! test
-BUG 26380: Add \widetilde support to match \widehat
-!! input
-<math>\widehat{x}</math>
-<math>\widetilde{x}</math>
-!! result
-<p><img class="tex" alt="\widehat{x}" src="/images/math/9/9/8/998309e831dfb051f233c92b4b8a825b.png" />
-<img class="tex" alt="\widetilde{x}" src="/images/math/e/9/e/e9e91996778a6d6f5cdf4cc951955206.png" />
-</p>
-!! end
-
-!! test
-BUG 27324: Euro symbol for math
-!! input
-<math>\euro 200</math>
-<math>\geneuro</math>
-<math>\geneuronarrow</math>
-<math>\geneurowide</math>
-<math>\officialeuro</math>
-!! result
-<p><span class="texhtml" dir="ltr">€200</span>
-<img class="tex" alt="\geneuro" src="/images/math/9/8/b/98b63c235ee187a38267e0e170b10e9d.png" />
-<img class="tex" alt="\geneuronarrow" src="/images/math/a/a/4/aa4a1ed370f4ee705c6930384bf89502.png" />
-<img class="tex" alt="\geneurowide" src="/images/math/4/4/0/4404468e6187fb04e4f7e1f15e550825.png" />
-<img class="tex" alt="\officialeuro" src="/images/math/d/7/0/d708de0eed23dbd6f02b99ea9073547b.png" />
-</p>
-!! end
-
-!! test
-BUG 27754: Archaic Greek letters for math (may require texlive-lang-greek)
-!! input
-<math>\digamma</math><!-- Lowercase digamma was already available -->
-<math>\Coppa\coppa\varcoppa</math>
-<math>\Digamma</math>
-<math>\Koppa\koppa</math>
-<math>\Sampi\sampi</math>
-<math>\Stigma\stigma\varstigma</math>
-!! result
-<p><img class="tex" alt="\digamma" src="/images/math/2/f/0/2f057b6e514c8ca2d9cf9a3e549f8865.png" />
-<img class="tex" alt="\Coppa\coppa\varcoppa" src="/images/math/8/3/0/8308ee5003aa36112414cad8ef874f85.png" />
-<img class="tex" alt="\Digamma" src="/images/math/5/c/f/5cfd6e5df6c87798542dca2e22c1e7cb.png" />
-<img class="tex" alt="\Koppa\koppa" src="/images/math/5/2/5/52593a0cdac178d165985ac014788b97.png" />
-<img class="tex" alt="\Sampi\sampi" src="/images/math/e/9/d/e9dabb19e4c27bf23d3c2a3629474562.png" />
-<img class="tex" alt="\Stigma\stigma\varstigma" src="/images/math/7/b/9/7b9233276816994a33a5e968202cef6e.png" />
-</p>
-!! end
-
-!! test
-BUG 19547: Apostrophe / single quotes in math \text{...}
-!! input
-<math>\text{next years}</math>
-<math>\text{next year's}</math>
-<math>\text{`next' year}</math>
-!! result
-<p><span class="texhtml" dir="ltr">next years</span>
-<span class="texhtml" dir="ltr">next year's</span>
-<span class="texhtml" dir="ltr">`next' year</span>
-</p>
-!! end
-
-!! test
-BUG 6722: Spacing fix for functions in math HTML output
-!! input
-<math>\sin x</math>
-<math>\sin(x)</math>
-<math>\sin{x}</math>
-
-<math>\sin x \,</math>
-<math>\sin(x) \,</math>
-<math>\sin{x} \,</math>
-!!result
-<p><span class="texhtml" dir="ltr">sin <i>x</i></span>
-<span class="texhtml" dir="ltr">sin(<i>x</i>)</span>
-<span class="texhtml" dir="ltr">sin <i>x</i></span>
-</p><p><img class="tex" alt="\sin x \," src="/images/math/7/6/a/76a8e1a01bd233c1e4e16d63b2bbf939.png" />
-<img class="tex" alt="\sin(x) \," src="/images/math/1/6/c/16c69b0a3658d3b398f72c518d869a03.png" />
-<img class="tex" alt="\sin{x} \," src="/images/math/8/3/9/839639707da39f691e702c2399cbf943.png" />
-</p>
-!! end
-
-!! test
-BUG 18912: Add \sen function for Spanish sin to math
-!! input
-<math>\sen x</math>
-<math>\sen(x)</math>
-<math>\sen{x}</math>
-
-<math>\sen x \,</math>
-<math>\sen(x) \,</math>
-<math>\sen{x} \,</math>
-!! result
-<p><span class="texhtml" dir="ltr">sen <i>x</i></span>
-<span class="texhtml" dir="ltr">sen(<i>x</i>)</span>
-<span class="texhtml" dir="ltr">sen <i>x</i></span>
-</p><p><img class="tex" alt="\sen x \," src="/images/math/0/a/c/0ac592b8f31b4698766c50c532f446a7.png" />
-<img class="tex" alt="\sen(x) \," src="/images/math/b/b/5/bb5469d24fcdd52aa60cb9ee90ba697d.png" />
-<img class="tex" alt="\sen{x} \," src="/images/math/d/4/8/d4882a4bcf5db1da3e30d905da8b394e.png" />
-</p>
-!! end
-
-!! test
-BUG 18912: \operatorname{sen} x gets wrong spacing in math
-!! input
-<math>\operatorname{sen}</math>
-!! result
-<p><img class="tex" alt="\operatorname{sen}" src="/images/math/f/a/9/fa9660c7eb053ca8d3c9a87fa86635d9.png" />
-</p>
-!! end
-
-!! test
-BUG 31442: Multiple math accents without braces fails to parse
-!! input
-<math>\dot \vec B</math>
-!! result
-<p><img class="tex" alt="\dot \vec B" src="/images/math/e/6/4/e64939568ecb506a86a392373cec0458.png" />
-</p>
-!! end
-
-!! test
-BUG 31442: Math accents with math font fail to parse if braces not used
-!! input
-<math>\tilde \mathcal{M}</math>
-!! result
-<p><img class="tex" alt="\tilde \mathcal{M}" src="/images/math/5/5/0/55072ce6ef8c840c4b7687bd8a028bde.png" />
-</p>
-!! end
diff --git a/mathoid/MOVED b/mathoid/MOVED
new file mode 100644
index 0000000..c110e38
--- /dev/null
+++ b/mathoid/MOVED
@@ -0,0 +1,2 @@
+Moved to mediawiki/services/mathoid
+Clone via git clone https://gerrit.wikimedia.org/r/mediawiki/services/mathoid
diff --git a/modules/LatinModern/GUST-FONT-LICENSE.txt b/modules/LatinModern/GUST-FONT-LICENSE.txt
new file mode 100644
index 0000000..60b5500
--- /dev/null
+++ b/modules/LatinModern/GUST-FONT-LICENSE.txt
@@ -0,0 +1,30 @@
+% This is a preliminary version (2006-09-30), barring acceptance from
+% the LaTeX Project Team and other feedback, of the GUST Font License.
+% (GUST is the Polish TeX Users Group, http://www.gust.org.pl)
+%
+% For the most recent version of this license see
+% http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt
+% or
+% http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt
+%
+% This work may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.3c of this
+% license or (at your option) any later version.
+% 
+% Please also observe the following clause:
+% 1) it is requested, but not legally required, that derived works be
+%    distributed only after changing the names of the fonts comprising this
+%    work and given in an accompanying "manifest", and that the
+%    files comprising the Work, as listed in the manifest, also be given
+%    new names. Any exceptions to this request are also given in the
+%    manifest.
+%    
+%    We recommend the manifest be given in a separate file named
+%    MANIFEST-<fontid>.txt, where <fontid> is some unique identification
+%    of the font family. If a separate "readme" file accompanies the Work, 
+%    we recommend a name of the form README-<fontid>.txt.
+%
+% The latest version of the LaTeX Project Public License is in
+% http://www.latex-project.org/lppl.txt and version 1.3c or later
+% is part of all distributions of LaTeX version 2006/05/20 or later.
+
diff --git a/modules/LatinModern/MANIFEST-Latin-Modern-Math.txt b/modules/LatinModern/MANIFEST-Latin-Modern-Math.txt
new file mode 100644
index 0000000..c84e1e5
--- /dev/null
+++ b/modules/LatinModern/MANIFEST-Latin-Modern-Math.txt
@@ -0,0 +1,60 @@
+###########################################################################
+############          The TeX Gyre Collection of Fonts         ############
+###########################################################################
+
+Font: Latin Modern Math
+Authors: Bogus\l{}aw Jackowski, Piotr Strzelczyk and Piotr Pianowski
+Version: 1.959
+Date: 5 IX 2014
+
+Copyright 2012--2014 for TeX Gyre math extensions by B. Jackowski,
+P. Strzelczyk and P. Pianowski (on behalf of TeX Users Groups).
+
+This work can be freely used and distributed under
+the GUST Font License (GFL -- see GUST-FONT-LICENSE.txt)
+which is actually an instance of the LaTeX Project Public License
+(LPPL -- see http://www.latex-project.org/lppl.txt).
+
+This work has the maintenance status "maintained". The Current Maintainer
+of this work is Bogus\l{}aw Jackowski, Piotr Strzelczyk and Piotr Pianowski.
+
+This work consists of the files listed in this file.
+
+Below, in three sections required by the GUST Font License,
+font names and file names specific for the Latin Modern Math
+font are listed.
+
+NOTE: the names of the directories are not subject to the renaming
+restrictions.
+
+1. Fonts whose names should be changed in derived works as requested
+   by clause 1 of GUST-FONT-LICENSE.txt
+
+   1.1 OTF menu names
+       Latin Modern Math
+       LatinModernMath-Regular
+
+2. Files whose names should be changed in derived works as requested
+   by clause 1 of GUST-FONT-LICENSE.txt
+
+   2.1 otf/latinmodern-math.otf
+
+   2.2 doc/MANIFEST-Latin-Modern-Math.txt
+       doc/README-Latin-Modern-Math.txt
+       doc/presentation-lmodern_math.pdf
+       doc/math-test.tex
+       doc/math-test-context.tex
+       doc/test-context-latinmodern_math.pdf
+       doc/test-context-latinmodern_math.tex
+       doc/test-lualatex-latinmodern_math.pdf
+       doc/test-lualatex-latinmodern_math.tex
+       doc/test-xelatex-latinmodern_math.pdf
+       doc/test-xelatex-latinmodern_math.tex
+       doc/test-word-tg_latinmodern_math.docx
+       doc/test-word-tg_latinmodern_math.pdf
+
+3. Files whose names need not be changed in derived works as requested
+   by clause 1 of GUST-FONT-LICENSE.txt
+
+       doc/GUST-FONT-LICENSE.txt
+       doc/INSTALL.txt
diff --git a/modules/LatinModern/latinmodern-math.woff b/modules/LatinModern/latinmodern-math.woff
new file mode 100644
index 0000000..2bf7253
Binary files /dev/null and b/modules/LatinModern/latinmodern-math.woff differ
diff --git a/modules/ext.math.css b/modules/ext.math.css
new file mode 100644
index 0000000..1ac3bdf
--- /dev/null
+++ b/modules/ext.math.css
@@ -0,0 +1,39 @@
+/*
+ * Document   : ext.math
+ * Created on : 23.09.2013, 13:55:00
+ * Author     : Physikerwelt (Moritz Schubotz)
+ * Description: Shows browser-dependent math output.
+ */
+ at namespace m url('http://www.w3.org/1998/Math/MathML');
+
+/* Default style for MathML. */
+.mwe-math-mathml-inline { display: inline !important; }
+.mwe-math-mathml-display { display: block !important; margin-left: auto; margin-right: auto; }
+.mwe-math-mathml-a11y {
+	/* We try to hide the MathML formula in a way that still makes it accessible to accessibility tools. */
+	clip: rect(1px, 1px, 1px, 1px);
+	overflow: hidden;
+	position: absolute;
+	width: 1px;
+	height: 1px;
+	opacity: 0;
+}
+m|math {
+	/* Try some popular OpenType MATH fonts before the WOFF fallback */
+	font-family: Cambria Math, Latin Modern Math, STIX Math, LatinModernMathWOFF, serif;
+}
+
+/* Default style for the image fallback. */
+/* Note: We had to use !important rules because of conflicts with the style
+generated by Mathoid. See https://gerrit.wikimedia.org/r/#/c/166213/ */
+.mwe-math-fallback-image-inline { display: inline-block; vertical-align: middle; }
+.mwe-math-fallback-image-display { display: block; margin-left: auto !important; margin-right: auto !important; }
+
+/* Default style for the source fallback. */
+.mwe-math-fallback-source-inline { display: inline; vertical-align: middle; }
+.mwe-math-fallback-source-display { display: block; margin-left: auto; margin-right: auto; }
+
+/* PNG related styles from core */
+img.tex {
+	vertical-align: middle;
+}
diff --git a/modules/ext.math.desktop.css b/modules/ext.math.desktop.css
new file mode 100644
index 0000000..4d2fab8
--- /dev/null
+++ b/modules/ext.math.desktop.css
@@ -0,0 +1,15 @@
+/*
+ * Document   : ext.math.
+ * Created on : 20.10.2014, 22:00:00
+ * Author     : fredw (Frédéric Wang)
+ * Description:
+ *     Additional style, to load only on desktop.
+ */
+
+ at font-face {
+	/* WOFF version of Latin Modern Math.
+	 * See https://github.com/fred-wang/MathFonts
+	 */
+	font-family: LatinModernMathWOFF;
+	src: url( ./LatinModern/latinmodern-math.woff );
+}
diff --git a/modules/ext.math.editbutton.js b/modules/ext.math.editbutton.js
new file mode 100644
index 0000000..2db5b38
--- /dev/null
+++ b/modules/ext.math.editbutton.js
@@ -0,0 +1,14 @@
+( function ( mw ) {
+	var iconPath;
+	if ( mw.toolbar ) {
+		iconPath = mw.config.get( 'wgExtensionAssetsPath' ) + '/Math/images/';
+		mw.toolbar.addButton( {
+			imageFile: iconPath + 'button_math.png',
+			speedTip: mw.msg( 'math_tip' ),
+			tagOpen: '<math>',
+			tagClose: '</math>',
+			sampleText: mw.msg( 'math_sample' ),
+			imageId: 'mw-editbutton-math'
+		} );
+	}
+}( mediaWiki ) );
diff --git a/modules/ext.math.js b/modules/ext.math.js
new file mode 100644
index 0000000..b3fe744
--- /dev/null
+++ b/modules/ext.math.js
@@ -0,0 +1,38 @@
+( function ( $ ) {
+	'use strict';
+	var img, url;
+
+	function insertImg( png ) {
+		$( '.mwe-math-fallback-image-inline, .mwe-math-fallback-image-display' ).each( function ( ) {
+			// Create a new image to use as the fallback.
+			img = document.createElement( 'img' );
+			url = this.style.backgroundImage.match( /url\(\s*(['"]?)([^\1\)]*)\1\s*\)/ )[ 2 ];
+			if ( png ) {
+				url = url.replace( 'media/math/render/svg/', 'media/math/render/png/' );
+			}
+			img.setAttribute( 'src', url );
+			img.setAttribute( 'class', 'tex mwe-math-fallback-image-' + ( $( this ).hasClass( 'mwe-math-fallback-image-inline' ) ? 'inline' : 'display' ) );
+			img.setAttribute( 'aria-hidden', 'true' );
+			this.parentNode.insertBefore( img, this );
+
+			// Hide the old SVG fallback.
+			$( this ).css( 'display', 'none' );
+		} );
+	}
+
+	// If MathPlayer is installed we show the MathML rendering.
+	if ( navigator.userAgent.indexOf( 'MathPlayer' ) > -1 ) {
+		$( '.mwe-math-mathml-a11y' ).removeClass( 'mwe-math-mathml-a11y' );
+		$( '.mwe-math-fallback-image-inline, .mwe-math-fallback-image-display' ).css( 'display', 'none' );
+		return;
+	}
+
+	// We verify whether SVG as <img> is supported and otherwise use the
+	// PNG fallback. See https://github.com/Modernizr/Modernizr/blob/master/feature-detects/svg/asimg.js
+	if ( !document.implementation.hasFeature( 'http://www.w3.org/TR/SVG11/feature#Image', '1.1' ) ) {
+		insertImg( true );
+	} else if ( $.client.profile().name.match( /msie|edge/ ) ) {
+		// For all IE versions the meta tags are rendered blurry, while img tags are rendered fine.
+		insertImg( false );
+	}
+}( jQuery ) );
diff --git a/modules/ve-math/math-display-block.svg b/modules/ve-math/math-display-block.svg
new file mode 100644
index 0000000..4dc4c4c
--- /dev/null
+++ b/modules/ve-math/math-display-block.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="math-display-default">
+        <path id="sigma" d="M 12.609,11.391 10.275186,16.004 15,16 l 0,-1 1,0 0,3 L 7.2711863,18 11,12 7.2711863,7 16,7 l 0,3 -1,0 0,-2 -4.728814,0" />
+        <path id="text" d="m 3.5,19 17,0 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 l -17,0 C 3.223,20 3,19.777 3,19.5 3,19.223 3.223,19 3.5,19 z m 0,-14 17,0 C 20.777,5 21,5.223 21,5.5 21,5.777 20.777,6 20.5,6 L 3.5,6 C 3.223,6 3,5.777 3,5.5 3,5.223 3.223,5 3.5,5 z" />
+    </g>
+</svg>
diff --git a/modules/ve-math/math-display-default.svg b/modules/ve-math/math-display-default.svg
new file mode 100644
index 0000000..fb2f8ef
--- /dev/null
+++ b/modules/ve-math/math-display-default.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="math-display-default">
+        <path id="sigma" d="M 12.609,11.391 10.275186,16.004 15,16 l 0,-1 1,0 0,3 L 7.2711866,18 11,12 7.2711866,7 16,7 l 0,3 -1,0 0,-2 -4.728814,0" />
+        <path id="sum-to" d="m 13,20 c 0,0.552285 -0.447715,1 -1,1 -0.552285,0 -1,-0.447715 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z" />
+        <path id="sum-from" d="m 13,5 c 0,0.5522847 -0.447715,1 -1,1 -0.552285,0 -1,-0.4477153 -1,-1 0,-0.5522847 0.447715,-1 1,-1 0.552285,0 1,0.4477153 1,1 z" />
+        <path id="text-before" d="M 3,11.5 C 3,11.223 3.223,11 3.5,11 l 3,0 C 6.777,11 7,11.223 7,11.5 l 0,2 C 7,13.777 6.777,14 6.5,14 l -3,0 C 3.223,14 3,13.777 3,13.5 z" />
+        <path id="text-after" d="M 17,11.5 C 17,11.223 17.223,11 17.5,11 l 3,0 c 0.277,0 0.5,0.223 0.5,0.5 l 0,2 c 0,0.277 -0.223,0.5 -0.5,0.5 l -3,0 C 17.223,14 17,13.777 17,13.5 z" />
+    </g>
+</svg>
diff --git a/modules/ve-math/math-display-inline.svg b/modules/ve-math/math-display-inline.svg
new file mode 100644
index 0000000..5610abf
--- /dev/null
+++ b/modules/ve-math/math-display-inline.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="math-display-inline">
+        <path id="sigma" d="M 11.609,11.391 9.8551551,15.004 13,15 l 0,-1 1,0 0,3 L 7.2710001,17 10,12 7.2710001,8 14,8 l 0,3 -1,0 0,-2 -3.1488449,0" />
+        <path id="sum-to" d="m 17,16 c 0,0.552285 -0.447715,1 -1,1 -0.552285,0 -1,-0.447715 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z" />
+        <path id="sum-from" d="m 17,9 c 0,0.5522847 -0.447715,1 -1,1 -0.552285,0 -1,-0.4477153 -1,-1 0,-0.5522847 0.447715,-1 1,-1 0.552285,0 1,0.4477153 1,1 z" />
+        <path id="text-before" d="M 3,11.5 C 3,11.223 3.223,11 3.5,11 l 3,0 c 0.277,0 0.5,0.223 0.5,0.5 l 0,2 C 7,13.777 6.777,14 6.5,14 l -3,0 C 3.223,14 3,13.777 3,13.5 z" />
+        <path id="text-after" d="M 17,11.5 C 17,11.223 17.223,11 17.5,11 l 3,0 c 0.277,0 0.5,0.223 0.5,0.5 l 0,2 c 0,0.277 -0.223,0.5 -0.5,0.5 l -3,0 C 17.223,14 17,13.777 17,13.5 z" />
+    </g>
+</svg>
diff --git a/modules/ve-math/math.svg b/modules/ve-math/math.svg
new file mode 100644
index 0000000..6001ca9
--- /dev/null
+++ b/modules/ve-math/math.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="math">
+        <path id="sigma" d="M 13.609,11.391 10.004,16.004 16,16 l 0,-1 1,0 0,3 -10,0 5,-6 -5,-6 10,0 0,3 -1,0 0,-2 -6,0 3.609,4.391" />
+    </g>
+</svg>
diff --git a/modules/ve-math/symbols.json b/modules/ve-math/symbols.json
new file mode 100644
index 0000000..9e68644
--- /dev/null
+++ b/modules/ve-math/symbols.json
@@ -0,0 +1,3217 @@
+{
+    "math-visualeditor-symbol-group-accents": [
+        {
+            "tex": "\\dot{a}",
+            "encapsulate": {
+                "pre": "\\dot{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\ddot{a}",
+            "encapsulate": {
+                "pre": "\\ddot{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\acute{a}",
+            "encapsulate": {
+                "pre": "\\acute{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\grave{a}",
+            "encapsulate": {
+                "pre": "\\grave{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\check{a}",
+            "encapsulate": {
+                "pre": "\\check{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\breve{a}",
+            "encapsulate": {
+                "pre": "\\breve{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\tilde{a}",
+            "encapsulate": {
+                "pre": "\\tilde{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\bar{a}",
+            "encapsulate": {
+                "pre": "\\bar{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\hat{a}",
+            "encapsulate": {
+                "pre": "\\hat{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\widehat{a}",
+            "encapsulate": {
+                "pre": "\\widehat{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\vec{a}",
+            "encapsulate": {
+                "pre": "\\vec{",
+                "placeholder": "a",
+                "post": "}"
+            },
+            "alignBaseline": true
+        }
+    ],
+    "math-visualeditor-symbol-group-functions": [
+        {
+            "insert": "\\exp",
+            "tex": "\\exp",
+            "alignBaseline": true
+        },
+        {
+            "wide": true,
+            "tex": "\\exp_a",
+            "encapsulate": {
+                "pre": "\\exp_",
+                "placeholder": "a",
+                "post": ""
+            },
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\ln",
+            "tex": "\\ln",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\lg",
+            "tex": "\\lg",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\log",
+            "tex": "\\log",
+            "alignBaseline": true
+        },
+        {
+            "wide": true,
+            "tex": "\\log_{10}",
+            "encapsulate": {
+                "pre": "\\log_{",
+                "placeholder": "10",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\sin",
+            "tex": "\\sin",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\cos",
+            "tex": "\\cos",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\tan",
+            "tex": "\\tan",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\cot",
+            "tex": "\\cot",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\sec",
+            "tex": "\\sec",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\csc",
+            "tex": "\\csc",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\arcsin",
+            "wide": true,
+            "tex": "\\arcsin",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\arccos",
+            "wide": true,
+            "tex": "\\arccos",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\arctan",
+            "wide": true,
+            "tex": "\\arctan",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\arccot",
+            "wide": true,
+            "tex": "\\arccot",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\arcsec",
+            "wide": true,
+            "tex": "\\arcsec",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\arccsc",
+            "wide": true,
+            "tex": "\\arccsc",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\sinh",
+            "tex": "\\sinh",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\cosh",
+            "tex": "\\cosh",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\tanh",
+            "tex": "\\tanh",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\coth",
+            "tex": "\\coth",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\operatorname{sh}",
+            "tex": "\\operatorname{sh}",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\operatorname{ch}",
+            "tex": "\\operatorname{ch}",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\operatorname{th}",
+            "tex": "\\operatorname{th}",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\operatorname{coth}",
+            "tex": "\\operatorname{coth}",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\operatorname{argsh}",
+            "wide": true,
+            "tex": "\\operatorname{argsh}",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\operatorname{argch}",
+            "wide": true,
+            "tex": "\\operatorname{argch}",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\operatorname{argth}",
+            "wide": true,
+            "tex": "\\operatorname{argth}",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\sgn",
+            "tex": "\\sgn",
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\left\\vert s \\right\\vert",
+            "encapsulate": {
+                "pre": "\\left\\vert ",
+                "placeholder": "s",
+                "post": " \\right\\vert"
+            },
+            "alignBaseline": true
+        },
+        {
+            "wide": true,
+            "tex": "\\min(x,y)",
+            "encapsulate": {
+                "pre": "\\min(",
+                "placeholder": "x",
+                "post": ",y)"
+            },
+            "alignBaseline": true
+        },
+        {
+            "wide": true,
+            "tex": "\\max(x,y)",
+            "encapsulate": {
+                "pre": "\\max(",
+                "placeholder": "x",
+                "post": ",y)"
+            },
+            "alignBaseline": true
+        }
+    ],
+    "math-visualeditor-symbol-group-bounds": [
+        {
+            "insert": "\\min",
+            "tex": "\\min",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\max",
+            "tex": "\\max",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\inf",
+            "tex": "\\inf",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\sup",
+            "tex": "\\sup",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\lim",
+            "tex": "\\lim",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\liminf",
+            "wide": true,
+            "tex": "\\liminf",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\limsup",
+            "wide": true,
+            "tex": "\\limsup",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\dim",
+            "tex": "\\dim",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\deg",
+            "tex": "\\deg",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\det",
+            "tex": "\\det",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\ker",
+            "tex": "\\ker",
+            "alignBaseline": true
+        }
+    ],
+    "math-visualeditor-symbol-group-projections": [
+        {
+            "insert": "\\Pr",
+            "tex": "\\Pr",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\hom",
+            "tex": "\\hom",
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\lVert z \\rVert",
+            "encapsulate": {
+                "pre": "\\lVert ",
+                "placeholder": "z",
+                "post": " \\rVert"
+            },
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\arg",
+            "tex": "\\arg",
+            "alignBaseline": true
+        }
+    ],
+    "math-visualeditor-symbol-group-derivatives": [
+        {
+            "insert": "dt",
+            "tex": "dt"
+        },
+        {
+            "insert": "\\operatorname{d}\\!t",
+            "tex": "\\operatorname{d}\\!t"
+        },
+        {
+            "insert": "\\partial t",
+            "tex": "\\partial t"
+        },
+        {
+            "insert": "\\nabla\\psi",
+            "tex": "\\nabla\\psi"
+        },
+        {
+            "insert": "dy/dx",
+            "wide": true,
+            "tex": "dy/dx"
+        },
+        {
+            "insert": "\\operatorname{d}\\!y/\\operatorname{d}\\!x",
+            "wide": true,
+            "tex": "\\operatorname{d}\\!y/\\operatorname{d}\\!x"
+        },
+        {
+            "insert": "{dy \\over dx}",
+            "contain": true,
+            "tex": "{dy \\over dx}"
+        },
+        {
+            "insert": "{\\operatorname{d}\\!y\\over\\operatorname{d}\\!x}",
+            "contain": true,
+            "tex": "{\\operatorname{d}\\!y\\over\\operatorname{d}\\!x}"
+        },
+        {
+            "insert": "{\\partial^2\\over\\partial x_1\\partial x_2}y",
+            "contain": true,
+            "wide": true,
+            "tex": "{\\partial^2\\over\\partial x_1\\partial x_2}y"
+        },
+        {
+            "insert": "\\prime",
+            "tex": "\\prime"
+        },
+        {
+            "insert": "\\backprime",
+            "tex": "\\backprime"
+        },
+        {
+            "insert": "f'",
+            "tex": "f'",
+            "alignBaseline": true
+        },
+        {
+            "insert": "f''",
+            "tex": "f''",
+            "alignBaseline": true
+        },
+        {
+            "tex": "f^{(3)}",
+            "encapsulate": {
+                "pre": "f^{(",
+                "placeholder": "3",
+                "post": ")}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\dot y",
+            "tex": "\\dot y"
+        },
+        {
+            "insert": "\\ddot y",
+            "tex": "\\ddot y"
+        }
+    ],
+    "math-visualeditor-symbol-group-symbols": [
+        {
+            "insert": "\\infty",
+            "tex": "\\infty"
+        },
+        {
+            "insert": "\\aleph",
+            "tex": "\\aleph"
+        },
+        {
+            "insert": "\\complement",
+            "tex": "\\complement"
+        },
+        {
+            "insert": "\\backepsilon",
+            "tex": "\\backepsilon"
+        },
+        {
+            "insert": "\\eth",
+            "tex": "\\eth"
+        },
+        {
+            "insert": "\\Finv",
+            "tex": "\\Finv"
+        },
+        {
+            "insert": "\\hbar",
+            "tex": "\\hbar"
+        },
+        {
+            "insert": "\\Im",
+            "tex": "\\Im"
+        },
+        {
+            "insert": "\\imath",
+            "tex": "\\imath"
+        },
+        {
+            "insert": "\\jmath",
+            "tex": "\\jmath"
+        },
+        {
+            "insert": "\\Bbbk",
+            "tex": "\\Bbbk"
+        },
+        {
+            "insert": "\\ell",
+            "tex": "\\ell"
+        },
+        {
+            "insert": "\\mho",
+            "tex": "\\mho"
+        },
+        {
+            "insert": "\\wp",
+            "tex": "\\wp"
+        },
+        {
+            "insert": "\\Re",
+            "tex": "\\Re"
+        },
+        {
+            "insert": "\\circledS",
+            "tex": "\\circledS"
+        }
+    ],
+    "math-visualeditor-symbol-group-modular": [
+        {
+            "wide": true,
+            "tex": "\\pmod{m}",
+            "encapsulate": {
+                "pre": "\\pmod{",
+                "placeholder": "m",
+                "post": "}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "wide": true,
+            "tex": "a\\bmod b",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": "\\bmod b"
+            },
+            "alignBaseline": true
+        },
+        {
+            "wide": true,
+            "tex": "\\gcd(m, n)",
+            "encapsulate": {
+                "pre": "\\gcd(",
+                "placeholder": "m",
+                "post": ", n)"
+            },
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\operatorname{lcm}(m, n)",
+            "wide": true,
+            "tex": "\\operatorname{lcm}(m, n)",
+            "encapsulate": {
+                "pre": "\\operatorname{lcm}(",
+                "placeholder": "m",
+                "post": ", n)"
+            },
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\mid",
+            "tex": "\\mid"
+        },
+        {
+            "insert": "\\nmid",
+            "tex": "\\nmid"
+        },
+        {
+            "insert": "\\shortmid",
+            "tex": "\\shortmid"
+        },
+        {
+            "insert": "\\nshortmid",
+            "tex": "\\nshortmid"
+        }
+    ],
+    "math-visualeditor-symbol-group-root": [
+        {
+            "insert": "\\surd",
+            "tex": "\\surd"
+        },
+        {
+            "tex": "\\sqrt{2}",
+            "encapsulate": {
+                "pre": "\\sqrt{",
+                "placeholder": "2",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\sqrt[n]{2}",
+            "encapsulate": {
+                "pre": "\\sqrt[",
+                "placeholder": "n",
+                "post": "]{2}"
+            }
+        }
+    ],
+    "math-visualeditor-symbol-group-operators": [
+        {
+            "insert": "+",
+            "tex": "+"
+        },
+        {
+            "insert": "-",
+            "tex": "-"
+        },
+        {
+            "insert": "\\pm",
+            "tex": "\\pm"
+        },
+        {
+            "insert": "\\mp",
+            "tex": "\\mp"
+        },
+        {
+            "insert": "\\dotplus",
+            "tex": "\\dotplus"
+        },
+        {
+            "insert": "\\times",
+            "tex": "\\times"
+        },
+        {
+            "insert": "\\div",
+            "tex": "\\div"
+        },
+        {
+            "insert": "\\divideontimes",
+            "tex": "\\divideontimes"
+        },
+        {
+            "insert": "/",
+            "tex": "/"
+        },
+        {
+            "insert": "\\backslash",
+            "tex": "\\backslash"
+        },
+        {
+            "insert": "\\cdot",
+            "tex": "\\cdot"
+        },
+        {
+            "insert": "*",
+            "tex": "*"
+        },
+        {
+            "insert": "\\ast",
+            "tex": "\\ast",
+            "duplicate": "*"
+        },
+        {
+            "insert": "\\star",
+            "tex": "\\star"
+        },
+        {
+            "insert": "\\circ",
+            "tex": "\\circ"
+        },
+        {
+            "insert": "\\bullet",
+            "tex": "\\bullet"
+        },
+        {
+            "insert": "\\boxplus",
+            "tex": "\\boxplus"
+        },
+        {
+            "insert": "\\boxminus",
+            "tex": "\\boxminus"
+        },
+        {
+            "insert": "\\boxtimes",
+            "tex": "\\boxtimes"
+        },
+        {
+            "insert": "\\boxdot",
+            "tex": "\\boxdot"
+        },
+        {
+            "insert": "\\oplus",
+            "tex": "\\oplus"
+        },
+        {
+            "insert": "\\ominus",
+            "tex": "\\ominus"
+        },
+        {
+            "insert": "\\otimes",
+            "tex": "\\otimes"
+        },
+        {
+            "insert": "\\oslash",
+            "tex": "\\oslash"
+        },
+        {
+            "insert": "\\odot",
+            "tex": "\\odot"
+        },
+        {
+            "insert": "\\circleddash",
+            "tex": "\\circleddash"
+        },
+        {
+            "insert": "\\circledcirc",
+            "tex": "\\circledcirc"
+        },
+        {
+            "insert": "\\circledast",
+            "tex": "\\circledast"
+        },
+        {
+            "insert": "\\bigoplus",
+            "tex": "\\bigoplus"
+        },
+        {
+            "insert": "\\bigotimes",
+            "tex": "\\bigotimes"
+        },
+        {
+            "insert": "\\bigodot",
+            "tex": "\\bigodot"
+        }
+    ],
+    "math-visualeditor-symbol-group-sets": [
+        {
+            "insert": "\\{",
+            "tex": "\\{"
+        },
+        {
+            "insert": "\\}",
+            "tex": "\\}"
+        },
+        {
+            "insert": "\\O",
+            "duplicate": "\\emptyset",
+            "tex": "\\O"
+        },
+        {
+            "insert": "\\empty",
+            "duplicate": "\\emptyset",
+            "tex": "\\empty"
+        },
+        {
+            "insert": "\\emptyset",
+            "tex": "\\emptyset"
+        },
+        {
+            "insert": "\\varnothing",
+            "tex": "\\varnothing"
+        },
+        {
+            "insert": "\\in",
+            "tex": "\\in"
+        },
+        {
+            "insert": "\\notin",
+            "duplicate": "\\not\\in",
+            "tex": "\\notin"
+        },
+        {
+            "insert": "\\not\\in",
+            "tex": "\\not\\in"
+        },
+        {
+            "insert": "\\ni",
+            "tex": "\\ni"
+        },
+        {
+            "insert": "\\not\\ni",
+            "tex": "\\not\\ni"
+        },
+        {
+            "insert": "\\cap",
+            "tex": "\\cap"
+        },
+        {
+            "insert": "\\Cap",
+            "tex": "\\Cap"
+        },
+        {
+            "insert": "\\sqcap",
+            "tex": "\\sqcap"
+        },
+        {
+            "insert": "\\bigcap",
+            "tex": "\\bigcap"
+        },
+        {
+            "insert": "\\cup",
+            "tex": "\\cup"
+        },
+        {
+            "insert": "\\Cup",
+            "tex": "\\Cup"
+        },
+        {
+            "insert": "\\sqcup",
+            "tex": "\\sqcup"
+        },
+        {
+            "insert": "\\bigcup",
+            "tex": "\\bigcup"
+        },
+        {
+            "insert": "\\bigsqcup",
+            "tex": "\\bigsqcup"
+        },
+        {
+            "insert": "\\uplus",
+            "tex": "\\uplus"
+        },
+        {
+            "insert": "\\biguplus",
+            "tex": "\\biguplus"
+        },
+        {
+            "insert": "\\setminus",
+            "tex": "\\setminus"
+        },
+        {
+            "insert": "\\smallsetminus",
+            "tex": "\\smallsetminus"
+        },
+        {
+            "insert": "\\times",
+            "tex": "\\times"
+        },
+        {
+            "insert": "\\subset",
+            "tex": "\\subset"
+        },
+        {
+            "insert": "\\Subset",
+            "tex": "\\Subset"
+        },
+        {
+            "insert": "\\sqsubset",
+            "tex": "\\sqsubset"
+        },
+        {
+            "insert": "\\supset",
+            "tex": "\\supset"
+        },
+        {
+            "insert": "\\Supset",
+            "tex": "\\Supset"
+        },
+        {
+            "insert": "\\sqsupset",
+            "tex": "\\sqsupset"
+        },
+        {
+            "insert": "\\subseteq",
+            "tex": "\\subseteq"
+        },
+        {
+            "insert": "\\nsubseteq",
+            "tex": "\\nsubseteq"
+        },
+        {
+            "insert": "\\subsetneq",
+            "tex": "\\subsetneq"
+        },
+        {
+            "insert": "\\varsubsetneq",
+            "tex": "\\varsubsetneq"
+        },
+        {
+            "insert": "\\sqsubseteq",
+            "tex": "\\sqsubseteq"
+        },
+        {
+            "insert": "\\supseteq",
+            "tex": "\\supseteq"
+        },
+        {
+            "insert": "\\nsupseteq",
+            "tex": "\\nsupseteq"
+        },
+        {
+            "insert": "\\supsetneq",
+            "tex": "\\supsetneq"
+        },
+        {
+            "insert": "\\varsupsetneq",
+            "tex": "\\varsupsetneq"
+        },
+        {
+            "insert": "\\sqsupseteq",
+            "tex": "\\sqsupseteq"
+        },
+        {
+            "insert": "\\subseteqq",
+            "tex": "\\subseteqq"
+        },
+        {
+            "insert": "\\nsubseteqq",
+            "tex": "\\nsubseteqq"
+        },
+        {
+            "insert": "\\subsetneqq",
+            "tex": "\\subsetneqq"
+        },
+        {
+            "insert": "\\varsubsetneqq",
+            "tex": "\\varsubsetneqq"
+        },
+        {
+            "insert": "\\supseteqq",
+            "tex": "\\supseteqq"
+        },
+        {
+            "insert": "\\nsupseteqq",
+            "tex": "\\nsupseteqq"
+        },
+        {
+            "insert": "\\supsetneqq",
+            "tex": "\\supsetneqq"
+        },
+        {
+            "insert": "\\varsupsetneqq",
+            "tex": "\\varsupsetneqq"
+        }
+    ],
+    "math-visualeditor-symbol-group-relations": [
+        {
+            "insert": "=",
+            "tex": "="
+        },
+        {
+            "insert": "\\ne",
+            "duplicate": "\\neq",
+            "tex": "\\ne"
+        },
+        {
+            "insert": "\\neq",
+            "tex": "\\neq"
+        },
+        {
+            "insert": "\\equiv",
+            "tex": "\\equiv"
+        },
+        {
+            "insert": "\\not\\equiv",
+            "tex": "\\not\\equiv"
+        },
+        {
+            "insert": "\\doteq",
+            "tex": "\\doteq"
+        },
+        {
+            "insert": "\\doteqdot",
+            "tex": "\\doteqdot"
+        },
+        {
+            "insert": "\\overset{\\underset{\\mathrm{def}}{}}{=}",
+            "tex": "\\overset{\\underset{\\mathrm{def}}{}}{=}"
+        },
+        {
+            "insert": ":=",
+            "tex": ":="
+        },
+        {
+            "insert": "\\sim",
+            "tex": "\\sim"
+        },
+        {
+            "insert": "\\nsim",
+            "tex": "\\nsim"
+        },
+        {
+            "insert": "\\backsim",
+            "tex": "\\backsim"
+        },
+        {
+            "insert": "\\thicksim",
+            "tex": "\\thicksim"
+        },
+        {
+            "insert": "\\simeq",
+            "tex": "\\simeq"
+        },
+        {
+            "insert": "\\backsimeq",
+            "tex": "\\backsimeq"
+        },
+        {
+            "insert": "\\eqsim",
+            "tex": "\\eqsim"
+        },
+        {
+            "insert": "\\cong",
+            "tex": "\\cong"
+        },
+        {
+            "insert": "\\ncong",
+            "tex": "\\ncong"
+        },
+        {
+            "insert": "\\approx",
+            "tex": "\\approx"
+        },
+        {
+            "insert": "\\thickapprox",
+            "tex": "\\thickapprox"
+        },
+        {
+            "insert": "\\approxeq",
+            "tex": "\\approxeq"
+        },
+        {
+            "insert": "\\asymp",
+            "tex": "\\asymp"
+        },
+        {
+            "insert": "\\propto",
+            "tex": "\\propto"
+        },
+        {
+            "insert": "\\varpropto",
+            "tex": "\\varpropto"
+        },
+        {
+            "insert": "<",
+            "tex": "<"
+        },
+        {
+            "insert": "\\nless",
+            "tex": "\\nless"
+        },
+        {
+            "insert": "\\ll",
+            "tex": "\\ll"
+        },
+        {
+            "insert": "\\not\\ll",
+            "tex": "\\not\\ll"
+        },
+        {
+            "insert": "\\lll",
+            "tex": "\\lll"
+        },
+        {
+            "insert": "\\not\\lll",
+            "tex": "\\not\\lll"
+        },
+        {
+            "insert": "\\lessdot",
+            "tex": "\\lessdot"
+        },
+        {
+            "insert": ">",
+            "tex": ">"
+        },
+        {
+            "insert": "\\ngtr",
+            "tex": "\\ngtr"
+        },
+        {
+            "insert": "\\gg",
+            "tex": "\\gg"
+        },
+        {
+            "insert": "\\not\\gg",
+            "tex": "\\not\\gg"
+        },
+        {
+            "insert": "\\ggg",
+            "tex": "\\ggg"
+        },
+        {
+            "insert": "\\not\\ggg",
+            "tex": "\\not\\ggg"
+        },
+        {
+            "insert": "\\gtrdot",
+            "tex": "\\gtrdot"
+        },
+        {
+            "insert": "\\le",
+            "duplicate": "\\leq",
+            "tex": "\\le"
+        },
+        {
+            "insert": "\\leq",
+            "tex": "\\leq"
+        },
+        {
+            "insert": "\\lneq",
+            "tex": "\\lneq"
+        },
+        {
+            "insert": "\\leqq",
+            "tex": "\\leqq"
+        },
+        {
+            "insert": "\\nleq",
+            "tex": "\\nleq"
+        },
+        {
+            "insert": "\\nleqq",
+            "tex": "\\nleqq"
+        },
+        {
+            "insert": "\\lneqq",
+            "tex": "\\lneqq"
+        },
+        {
+            "insert": "\\lvertneqq",
+            "tex": "\\lvertneqq"
+        },
+        {
+            "insert": "\\ge",
+            "duplicate": "\\geq",
+            "tex": "\\ge"
+        },
+        {
+            "insert": "\\geq",
+            "tex": "\\geq"
+        },
+        {
+            "insert": "\\gneq",
+            "tex": "\\gneq"
+        },
+        {
+            "insert": "\\geqq",
+            "tex": "\\geqq"
+        },
+        {
+            "insert": "\\ngeq",
+            "tex": "\\ngeq"
+        },
+        {
+            "insert": "\\ngeqq",
+            "tex": "\\ngeqq"
+        },
+        {
+            "insert": "\\gneqq",
+            "tex": "\\gneqq"
+        },
+        {
+            "insert": "\\gvertneqq",
+            "tex": "\\gvertneqq"
+        },
+        {
+            "insert": "\\lessgtr",
+            "tex": "\\lessgtr"
+        },
+        {
+            "insert": "\\lesseqgtr",
+            "tex": "\\lesseqgtr"
+        },
+        {
+            "insert": "\\lesseqqgtr",
+            "tex": "\\lesseqqgtr"
+        },
+        {
+            "insert": "\\gtrless",
+            "tex": "\\gtrless"
+        },
+        {
+            "insert": "\\gtreqless",
+            "tex": "\\gtreqless"
+        },
+        {
+            "insert": "\\gtreqqless",
+            "tex": "\\gtreqqless"
+        },
+        {
+            "insert": "\\leqslant",
+            "tex": "\\leqslant"
+        },
+        {
+            "insert": "\\nleqslant",
+            "tex": "\\nleqslant"
+        },
+        {
+            "insert": "\\eqslantless",
+            "tex": "\\eqslantless"
+        },
+        {
+            "insert": "\\geqslant",
+            "tex": "\\geqslant"
+        },
+        {
+            "insert": "\\ngeqslant",
+            "tex": "\\ngeqslant"
+        },
+        {
+            "insert": "\\eqslantgtr",
+            "tex": "\\eqslantgtr"
+        },
+        {
+            "insert": "\\lesssim",
+            "tex": "\\lesssim"
+        },
+        {
+            "insert": "\\lnsim",
+            "tex": "\\lnsim"
+        },
+        {
+            "insert": "\\lessapprox",
+            "tex": "\\lessapprox"
+        },
+        {
+            "insert": "\\lnapprox",
+            "tex": "\\lnapprox"
+        },
+        {
+            "insert": "\\gtrsim",
+            "tex": "\\gtrsim"
+        },
+        {
+            "insert": "\\gnsim",
+            "tex": "\\gnsim"
+        },
+        {
+            "insert": "\\gtrapprox",
+            "tex": "\\gtrapprox"
+        },
+        {
+            "insert": "\\gnapprox",
+            "tex": "\\gnapprox"
+        },
+        {
+            "insert": "\\prec",
+            "tex": "\\prec"
+        },
+        {
+            "insert": "\\nprec",
+            "tex": "\\nprec"
+        },
+        {
+            "insert": "\\preceq",
+            "tex": "\\preceq"
+        },
+        {
+            "insert": "\\npreceq",
+            "tex": "\\npreceq"
+        },
+        {
+            "insert": "\\precneqq",
+            "tex": "\\precneqq"
+        },
+        {
+            "insert": "\\succ",
+            "tex": "\\succ"
+        },
+        {
+            "insert": "\\nsucc",
+            "tex": "\\nsucc"
+        },
+        {
+            "insert": "\\succeq",
+            "tex": "\\succeq"
+        },
+        {
+            "insert": "\\nsucceq",
+            "tex": "\\nsucceq"
+        },
+        {
+            "insert": "\\succneqq",
+            "tex": "\\succneqq"
+        },
+        {
+            "insert": "\\preccurlyeq",
+            "tex": "\\preccurlyeq"
+        },
+        {
+            "insert": "\\curlyeqprec",
+            "tex": "\\curlyeqprec"
+        },
+        {
+            "insert": "\\succcurlyeq",
+            "tex": "\\succcurlyeq"
+        },
+        {
+            "insert": "\\curlyeqsucc",
+            "tex": "\\curlyeqsucc"
+        },
+        {
+            "insert": "\\precsim",
+            "tex": "\\precsim"
+        },
+        {
+            "insert": "\\precnsim",
+            "tex": "\\precnsim"
+        },
+        {
+            "insert": "\\precapprox",
+            "tex": "\\precapprox"
+        },
+        {
+            "insert": "\\precnapprox",
+            "tex": "\\precnapprox"
+        },
+        {
+            "insert": "\\succsim",
+            "tex": "\\succsim"
+        },
+        {
+            "insert": "\\succnsim",
+            "tex": "\\succnsim"
+        },
+        {
+            "insert": "\\succapprox",
+            "tex": "\\succapprox"
+        },
+        {
+            "insert": "\\succnapprox",
+            "tex": "\\succnapprox"
+        }
+    ],
+    "math-visualeditor-symbol-group-geometry": [
+        {
+            "insert": "\\parallel",
+            "tex": "\\parallel"
+        },
+        {
+            "insert": "\\nparallel",
+            "tex": "\\nparallel"
+        },
+        {
+            "insert": "\\shortparallel",
+            "tex": "\\shortparallel"
+        },
+        {
+            "insert": "\\nshortparallel",
+            "tex": "\\nshortparallel"
+        },
+        {
+            "insert": "\\perp",
+            "tex": "\\perp"
+        },
+        {
+            "insert": "\\angle",
+            "tex": "\\angle"
+        },
+        {
+            "insert": "\\sphericalangle",
+            "tex": "\\sphericalangle"
+        },
+        {
+            "insert": "\\measuredangle",
+            "tex": "\\measuredangle"
+        },
+        {
+            "insert": "45^\\circ",
+            "tex": "45^\\circ"
+        },
+        {
+            "insert": "\\Box",
+            "tex": "\\Box"
+        },
+        {
+            "insert": "\\blacksquare",
+            "tex": "\\blacksquare"
+        },
+        {
+            "insert": "\\diamond",
+            "tex": "\\diamond"
+        },
+        {
+            "insert": "\\Diamond",
+            "duplicate": "\\lozenge",
+            "tex": "\\Diamond"
+        },
+        {
+            "insert": "\\lozenge",
+            "tex": "\\lozenge"
+        },
+        {
+            "insert": "\\blacklozenge",
+            "tex": "\\blacklozenge"
+        },
+        {
+            "insert": "\\bigstar",
+            "tex": "\\bigstar"
+        },
+        {
+            "insert": "\\bigcirc",
+            "tex": "\\bigcirc"
+        },
+        {
+            "insert": "\\triangle",
+            "duplicate": "\\bigtriangleup",
+            "tex": "\\triangle"
+        },
+        {
+            "insert": "\\bigtriangleup",
+            "tex": "\\bigtriangleup"
+        },
+        {
+            "insert": "\\bigtriangledown",
+            "tex": "\\bigtriangledown"
+        },
+        {
+            "insert": "\\vartriangle",
+            "tex": "\\vartriangle"
+        },
+        {
+            "insert": "\\triangledown",
+            "tex": "\\triangledown"
+        },
+        {
+            "insert": "\\blacktriangle",
+            "tex": "\\blacktriangle"
+        },
+        {
+            "insert": "\\blacktriangledown",
+            "tex": "\\blacktriangledown"
+        },
+        {
+            "insert": "\\blacktriangleleft",
+            "tex": "\\blacktriangleleft"
+        },
+        {
+            "insert": "\\blacktriangleright",
+            "tex": "\\blacktriangleright"
+        }
+    ],
+    "math-visualeditor-symbol-group-logic": [
+        {
+            "insert": "\\forall",
+            "tex": "\\forall"
+        },
+        {
+            "insert": "\\exists",
+            "tex": "\\exists"
+        },
+        {
+            "insert": "\\nexists",
+            "tex": "\\nexists"
+        },
+        {
+            "insert": "\\therefore",
+            "tex": "\\therefore"
+        },
+        {
+            "insert": "\\because",
+            "tex": "\\because"
+        },
+        {
+            "insert": "\\And",
+            "tex": "\\And"
+        },
+        {
+            "insert": "\\or",
+            "tex": "\\or"
+        },
+        {
+            "insert": "\\lor",
+            "duplicate": "\\or",
+            "tex": "\\lor"
+        },
+        {
+            "insert": "\\vee",
+            "duplicate": "\\or",
+            "tex": "\\vee"
+        },
+        {
+            "insert": "\\curlyvee",
+            "tex": "\\curlyvee"
+        },
+        {
+            "insert": "\\bigvee",
+            "tex": "\\bigvee"
+        },
+        {
+            "insert": "\\and",
+            "tex": "\\and"
+        },
+        {
+            "insert": "\\land",
+            "duplicate": "\\and",
+            "tex": "\\land"
+        },
+        {
+            "insert": "\\wedge",
+            "duplicate": "\\and",
+            "tex": "\\wedge"
+        },
+        {
+            "insert": "\\curlywedge",
+            "tex": "\\curlywedge"
+        },
+        {
+            "insert": "\\bigwedge",
+            "tex": "\\bigwedge"
+        },
+        {
+            "insert": "\\vdash",
+            "tex": "\\vdash"
+        },
+        {
+            "insert": "\\dashv",
+            "tex": "\\dashv"
+        },
+        {
+            "insert": "\\vDash",
+            "tex": "\\vDash"
+        },
+        {
+            "insert": "\\Vdash",
+            "tex": "\\Vdash"
+        },
+        {
+            "insert": "\\models",
+            "tex": "\\models"
+        },
+        {
+            "insert": "\\Vvdash",
+            "tex": "\\Vvdash"
+        },
+        {
+            "insert": "\\nvdash",
+            "tex": "\\nvdash"
+        },
+        {
+            "insert": "\\nVdash",
+            "tex": "\\nVdash"
+        },
+        {
+            "insert": "\\nvDash",
+            "tex": "\\nvDash"
+        },
+        {
+            "insert": "\\nVDash",
+            "tex": "\\nVDash"
+        },
+        {
+            "insert": "\\ulcorner",
+            "tex": "\\ulcorner"
+        },
+        {
+            "insert": "\\urcorner",
+            "tex": "\\urcorner"
+        },
+        {
+            "insert": "\\llcorner",
+            "tex": "\\llcorner"
+        },
+        {
+            "insert": "\\lrcorner",
+            "tex": "\\lrcorner"
+        }
+    ],
+    "math-visualeditor-symbol-group-arrows": [
+        {
+            "insert": "\\Rrightarrow",
+            "tex": "\\Rrightarrow"
+        },
+        {
+            "insert": "\\Lleftarrow",
+            "tex": "\\Lleftarrow"
+        },
+        {
+            "insert": "\\Rightarrow",
+            "tex": "\\Rightarrow"
+        },
+        {
+            "insert": "\\nRightarrow",
+            "tex": "\\nRightarrow"
+        },
+        {
+            "insert": "\\Longrightarrow",
+            "tex": "\\Longrightarrow"
+        },
+        {
+            "insert": "\\implies",
+            "duplicate": "\\Longrightarrow",
+            "tex": "\\implies"
+        },
+        {
+            "insert": "\\Leftarrow",
+            "tex": "\\Leftarrow"
+        },
+        {
+            "insert": "\\nLeftarrow",
+            "tex": "\\nLeftarrow"
+        },
+        {
+            "insert": "\\Longleftarrow",
+            "tex": "\\Longleftarrow"
+        },
+        {
+            "insert": "\\Leftrightarrow",
+            "tex": "\\Leftrightarrow"
+        },
+        {
+            "insert": "\\nLeftrightarrow",
+            "tex": "\\nLeftrightarrow"
+        },
+        {
+            "insert": "\\Longleftrightarrow",
+            "tex": "\\Longleftrightarrow"
+        },
+        {
+            "insert": "\\iff",
+            "duplicate": "\\Longleftrightarrow",
+            "tex": "\\iff"
+        },
+        {
+            "insert": "\\Uparrow",
+            "tex": "\\Uparrow"
+        },
+        {
+            "insert": "\\Downarrow",
+            "tex": "\\Downarrow"
+        },
+        {
+            "insert": "\\Updownarrow",
+            "tex": "\\Updownarrow"
+        },
+        {
+            "insert": "\\rightarrow",
+            "tex": "\\rightarrow"
+        },
+        {
+            "insert": "\\to",
+            "duplicate": "\\rightarrow",
+            "tex": "\\to"
+        },
+        {
+            "insert": "\\nrightarrow",
+            "tex": "\\nrightarrow"
+        },
+        {
+            "insert": "\\longrightarrow",
+            "tex": "\\longrightarrow"
+        },
+        {
+            "insert": "\\leftarrow",
+            "tex": "\\leftarrow"
+        },
+        {
+            "insert": "\\gets",
+            "duplicate": "\\leftarrow",
+            "tex": "\\gets"
+        },
+        {
+            "insert": "\\nleftarrow",
+            "tex": "\\nleftarrow"
+        },
+        {
+            "insert": "\\longleftarrow",
+            "tex": "\\longleftarrow"
+        },
+        {
+            "insert": "\\leftrightarrow",
+            "tex": "\\leftrightarrow"
+        },
+        {
+            "insert": "\\nleftrightarrow",
+            "tex": "\\nleftrightarrow"
+        },
+        {
+            "insert": "\\longleftrightarrow",
+            "tex": "\\longleftrightarrow"
+        },
+        {
+            "insert": "\\uparrow",
+            "tex": "\\uparrow"
+        },
+        {
+            "insert": "\\downarrow",
+            "tex": "\\downarrow"
+        },
+        {
+            "insert": "\\updownarrow",
+            "tex": "\\updownarrow"
+        },
+        {
+            "insert": "\\nearrow",
+            "tex": "\\nearrow"
+        },
+        {
+            "insert": "\\swarrow",
+            "tex": "\\swarrow"
+        },
+        {
+            "insert": "\\nwarrow",
+            "tex": "\\nwarrow"
+        },
+        {
+            "insert": "\\searrow",
+            "tex": "\\searrow"
+        },
+        {
+            "insert": "\\mapsto",
+            "tex": "\\mapsto"
+        },
+        {
+            "insert": "\\longmapsto",
+            "tex": "\\longmapsto"
+        },
+        {
+            "insert": "\\rightharpoonup",
+            "tex": "\\rightharpoonup"
+        },
+        {
+            "insert": "\\rightharpoondown",
+            "tex": "\\rightharpoondown"
+        },
+        {
+            "insert": "\\leftharpoonup",
+            "tex": "\\leftharpoonup"
+        },
+        {
+            "insert": "\\leftharpoondown",
+            "tex": "\\leftharpoondown"
+        },
+        {
+            "insert": "\\upharpoonleft",
+            "tex": "\\upharpoonleft"
+        },
+        {
+            "insert": "\\upharpoonright",
+            "tex": "\\upharpoonright"
+        },
+        {
+            "insert": "\\downharpoonleft",
+            "tex": "\\downharpoonleft"
+        },
+        {
+            "insert": "\\downharpoonright",
+            "tex": "\\downharpoonright"
+        },
+        {
+            "insert": "\\rightleftharpoons",
+            "tex": "\\rightleftharpoons"
+        },
+        {
+            "insert": "\\leftrightharpoons",
+            "tex": "\\leftrightharpoons"
+        },
+        {
+            "insert": "\\curvearrowleft",
+            "tex": "\\curvearrowleft"
+        },
+        {
+            "insert": "\\circlearrowleft",
+            "tex": "\\circlearrowleft"
+        },
+        {
+            "insert": "\\Lsh",
+            "tex": "\\Lsh"
+        },
+        {
+            "insert": "\\upuparrows",
+            "tex": "\\upuparrows"
+        },
+        {
+            "insert": "\\rightrightarrows",
+            "tex": "\\rightrightarrows"
+        },
+        {
+            "insert": "\\rightleftarrows",
+            "tex": "\\rightleftarrows"
+        },
+        {
+            "insert": "\\rightarrowtail",
+            "tex": "\\rightarrowtail"
+        },
+        {
+            "insert": "\\looparrowright",
+            "tex": "\\looparrowright"
+        },
+        {
+            "insert": "\\curvearrowright",
+            "tex": "\\curvearrowright"
+        },
+        {
+            "insert": "\\circlearrowright",
+            "tex": "\\circlearrowright"
+        },
+        {
+            "insert": "\\Rsh",
+            "tex": "\\Rsh"
+        },
+        {
+            "insert": "\\downdownarrows",
+            "tex": "\\downdownarrows"
+        },
+        {
+            "insert": "\\leftleftarrows",
+            "tex": "\\leftleftarrows"
+        },
+        {
+            "insert": "\\leftrightarrows",
+            "tex": "\\leftrightarrows"
+        },
+        {
+            "insert": "\\leftarrowtail",
+            "tex": "\\leftarrowtail"
+        },
+        {
+            "insert": "\\looparrowleft",
+            "tex": "\\looparrowleft"
+        },
+        {
+            "insert": "\\hookrightarrow",
+            "tex": "\\hookrightarrow"
+        },
+        {
+            "insert": "\\hookleftarrow",
+            "tex": "\\hookleftarrow"
+        },
+        {
+            "insert": "\\multimap",
+            "tex": "\\multimap"
+        },
+        {
+            "insert": "\\leftrightsquigarrow",
+            "tex": "\\leftrightsquigarrow"
+        },
+        {
+            "insert": "\\rightsquigarrow",
+            "tex": "\\rightsquigarrow"
+        },
+        {
+            "insert": "\\twoheadrightarrow",
+            "tex": "\\twoheadrightarrow"
+        },
+        {
+            "insert": "\\twoheadleftarrow",
+            "tex": "\\twoheadleftarrow"
+        }
+    ],
+    "math-visualeditor-symbol-group-special": [
+        {
+            "insert": "\\amalg",
+            "tex": "\\amalg"
+        },
+        {
+            "insert": "\\P",
+            "tex": "\\P"
+        },
+        {
+            "insert": "\\S",
+            "tex": "\\S"
+        },
+        {
+            "insert": "\\%",
+            "tex": "\\%"
+        },
+        {
+            "insert": "\\dagger",
+            "tex": "\\dagger"
+        },
+        {
+            "insert": "\\ddagger",
+            "tex": "\\ddagger"
+        },
+        {
+            "insert": "\\ldots",
+            "tex": "\\ldots",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\cdots",
+            "tex": "\\cdots"
+        },
+        {
+            "insert": "\\smile",
+            "tex": "\\smile"
+        },
+        {
+            "insert": "\\frown",
+            "tex": "\\frown"
+        },
+        {
+            "insert": "\\wr",
+            "tex": "\\wr"
+        },
+        {
+            "insert": "\\triangleleft",
+            "tex": "\\triangleleft"
+        },
+        {
+            "insert": "\\triangleright",
+            "tex": "\\triangleright"
+        },
+        {
+            "insert": "\\diamondsuit",
+            "tex": "\\diamondsuit"
+        },
+        {
+            "insert": "\\heartsuit",
+            "tex": "\\heartsuit"
+        },
+        {
+            "insert": "\\clubsuit",
+            "tex": "\\clubsuit"
+        },
+        {
+            "insert": "\\spadesuit",
+            "tex": "\\spadesuit"
+        },
+        {
+            "insert": "\\Game",
+            "tex": "\\Game"
+        },
+        {
+            "insert": "\\flat",
+            "tex": "\\flat"
+        },
+        {
+            "insert": "\\natural",
+            "tex": "\\natural"
+        },
+        {
+            "insert": "\\sharp",
+            "tex": "\\sharp"
+        }
+    ],
+    "math-visualeditor-symbol-group-unsorted": [
+        {
+            "insert": "\\diagup",
+            "tex": "\\diagup"
+        },
+        {
+            "insert": "\\diagdown",
+            "tex": "\\diagdown"
+        },
+        {
+            "insert": "\\centerdot",
+            "tex": "\\centerdot"
+        },
+        {
+            "insert": "\\ltimes",
+            "tex": "\\ltimes"
+        },
+        {
+            "insert": "\\rtimes",
+            "tex": "\\rtimes"
+        },
+        {
+            "insert": "\\leftthreetimes",
+            "tex": "\\leftthreetimes"
+        },
+        {
+            "insert": "\\rightthreetimes",
+            "tex": "\\rightthreetimes"
+        },
+        {
+            "insert": "\\eqcirc",
+            "tex": "\\eqcirc"
+        },
+        {
+            "insert": "\\circeq",
+            "tex": "\\circeq"
+        },
+        {
+            "insert": "\\triangleq",
+            "tex": "\\triangleq"
+        },
+        {
+            "insert": "\\bumpeq",
+            "tex": "\\bumpeq"
+        },
+        {
+            "insert": "\\Bumpeq",
+            "tex": "\\Bumpeq"
+        },
+        {
+            "insert": "\\doteqdot",
+            "tex": "\\doteqdot"
+        },
+        {
+            "insert": "\\risingdotseq",
+            "tex": "\\risingdotseq"
+        },
+        {
+            "insert": "\\fallingdotseq",
+            "tex": "\\fallingdotseq"
+        },
+        {
+            "insert": "\\intercal",
+            "tex": "\\intercal"
+        },
+        {
+            "insert": "\\barwedge",
+            "tex": "\\barwedge"
+        },
+        {
+            "insert": "\\veebar",
+            "tex": "\\veebar"
+        },
+        {
+            "insert": "\\doublebarwedge",
+            "tex": "\\doublebarwedge"
+        },
+        {
+            "insert": "\\between",
+            "tex": "\\between"
+        },
+        {
+            "insert": "\\pitchfork",
+            "tex": "\\pitchfork"
+        },
+        {
+            "insert": "\\vartriangleleft",
+            "tex": "\\vartriangleleft"
+        },
+        {
+            "insert": "\\ntriangleleft",
+            "tex": "\\ntriangleleft"
+        },
+        {
+            "insert": "\\vartriangleright",
+            "tex": "\\vartriangleright"
+        },
+        {
+            "insert": "\\ntriangleright",
+            "tex": "\\ntriangleright"
+        },
+        {
+            "insert": "\\trianglelefteq",
+            "tex": "\\trianglelefteq"
+        },
+        {
+            "insert": "\\ntrianglelefteq",
+            "tex": "\\ntrianglelefteq"
+        },
+        {
+            "insert": "\\trianglerighteq",
+            "tex": "\\trianglerighteq"
+        },
+        {
+            "insert": "\\ntrianglerighteq",
+            "tex": "\\ntrianglerighteq"
+        }
+    ],
+    "math-visualeditor-symbol-group-greek": [
+        {
+            "insert": "\\alpha",
+            "tex": "\\alpha",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\beta",
+            "tex": "\\beta",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\gamma",
+            "tex": "\\gamma",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\delta",
+            "tex": "\\delta",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\epsilon",
+            "tex": "\\epsilon",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\zeta",
+            "tex": "\\zeta",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\eta",
+            "tex": "\\eta",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\theta",
+            "tex": "\\theta",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\iota",
+            "tex": "\\iota",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\kappa",
+            "tex": "\\kappa",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\lambda",
+            "tex": "\\lambda",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\mu",
+            "tex": "\\mu",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\nu",
+            "tex": "\\nu",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\xi",
+            "tex": "\\xi",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\pi",
+            "tex": "\\pi",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\rho",
+            "tex": "\\rho",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\sigma",
+            "tex": "\\sigma",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\tau",
+            "tex": "\\tau",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\upsilon",
+            "tex": "\\upsilon",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\phi",
+            "tex": "\\phi",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\chi",
+            "tex": "\\chi",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\psi",
+            "tex": "\\psi",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\omega",
+            "tex": "\\omega",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\Alpha",
+            "tex": "\\Alpha"
+        },
+        {
+            "insert": "\\Beta",
+            "tex": "\\Beta"
+        },
+        {
+            "insert": "\\Gamma",
+            "tex": "\\Gamma"
+        },
+        {
+            "insert": "\\Delta",
+            "tex": "\\Delta"
+        },
+        {
+            "insert": "\\Epsilon",
+            "tex": "\\Epsilon"
+        },
+        {
+            "insert": "\\Zeta",
+            "tex": "\\Zeta"
+        },
+        {
+            "insert": "\\Eta",
+            "tex": "\\Eta"
+        },
+        {
+            "insert": "\\Theta",
+            "tex": "\\Theta"
+        },
+        {
+            "insert": "\\Iota",
+            "tex": "\\Iota"
+        },
+        {
+            "insert": "\\Kappa",
+            "tex": "\\Kappa"
+        },
+        {
+            "insert": "\\Lambda",
+            "tex": "\\Lambda"
+        },
+        {
+            "insert": "\\Mu",
+            "tex": "\\Mu"
+        },
+        {
+            "insert": "\\Nu",
+            "tex": "\\Nu"
+        },
+        {
+            "insert": "\\Xi",
+            "tex": "\\Xi"
+        },
+        {
+            "insert": "\\Pi",
+            "tex": "\\Pi"
+        },
+        {
+            "insert": "\\Rho",
+            "tex": "\\Rho"
+        },
+        {
+            "insert": "\\Sigma",
+            "tex": "\\Sigma"
+        },
+        {
+            "insert": "\\Tau",
+            "tex": "\\Tau"
+        },
+        {
+            "insert": "\\Upsilon",
+            "tex": "\\Upsilon"
+        },
+        {
+            "insert": "\\Phi",
+            "tex": "\\Phi"
+        },
+        {
+            "insert": "\\Chi",
+            "tex": "\\Chi"
+        },
+        {
+            "insert": "\\Psi",
+            "tex": "\\Psi"
+        },
+        {
+            "insert": "\\Omega",
+            "tex": "\\Omega"
+        },
+        {
+            "insert": "\\varepsilon",
+            "tex": "\\varepsilon",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\digamma",
+            "tex": "\\digamma",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\varkappa",
+            "tex": "\\varkappa",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\varpi",
+            "tex": "\\varpi",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\varrho",
+            "tex": "\\varrho",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\varsigma",
+            "tex": "\\varsigma",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\vartheta",
+            "tex": "\\vartheta",
+            "alignBaseline": true
+        },
+        {
+            "insert": "\\varphi",
+            "tex": "\\varphi",
+            "alignBaseline": true
+        }
+    ],
+    "math-visualeditor-symbol-group-hebrew": [
+        {
+            "insert": "\\aleph",
+            "tex": "\\aleph"
+        },
+        {
+            "insert": "\\beth",
+            "tex": "\\beth"
+        },
+        {
+            "insert": "\\gimel",
+            "tex": "\\gimel"
+        },
+        {
+            "insert": "\\daleth",
+            "tex": "\\daleth"
+        }
+    ],
+    "math-visualeditor-symbol-group-typefaces": [
+        {
+            "tex": "\\mathit{1}",
+            "encapsulate": {
+                "pre": "\\mathit{",
+                "placeholder": "1",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\mathcal{A}",
+            "encapsulate": {
+                "pre": "\\mathcal{",
+                "placeholder": "A",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\mathsf{A}",
+            "encapsulate": {
+                "pre": "\\mathsf{",
+                "placeholder": "A",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\mathbb{A}",
+            "encapsulate": {
+                "pre": "\\mathbb{",
+                "placeholder": "A",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "{\\scriptstyle\\text{a}}",
+            "encapsulate": {
+                "pre": "{\\scriptstyle\\text{",
+                "placeholder": "a",
+                "post": "}}"
+            }
+        },
+        {
+            "tex": "\\text{x}",
+            "encapsulate": {
+                "pre": "\\text{",
+                "placeholder": "x",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\boldsymbol{\\alpha}",
+            "encapsulate": {
+                "pre": "\\boldsymbol{",
+                "placeholder": "\\alpha",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\mathfrak{A}",
+            "encapsulate": {
+                "pre": "\\mathfrak{",
+                "placeholder": "A",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\mathrm{A}",
+            "encapsulate": {
+                "pre": "\\mathrm{",
+                "placeholder": "A",
+                "post": "}"
+            }
+        }
+    ],
+    "math-visualeditor-symbol-group-spacing": [
+        {
+            "wide": true,
+            "tex": "a \\qquad b",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": " \\qquad b"
+            }
+        },
+        {
+            "wide": true,
+            "tex": "a \\quad b",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": " \\quad b"
+            }
+        },
+        {
+            "tex": "a\\ b",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": "\\ b"
+            }
+        },
+        {
+            "tex": "a\\, b",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": "\\, b"
+            }
+        },
+        {
+            "tex": "a\\! b",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": "\\! b"
+            }
+        }
+    ],
+    "math-visualeditor-symbol-group-parentheses": [
+        {
+            "contain": true,
+            "tex": "\\left ( \\frac{1}{2} \\right )",
+            "encapsulate": {
+                "pre": "\\left ( \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right )"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left [ \\frac{1}{2} \\right ]",
+            "encapsulate": {
+                "pre": "\\left [ \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right ]"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\{ \\frac{1}{2} \\right \\}",
+            "encapsulate": {
+                "pre": "\\left \\{ \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\}"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\langle \\frac{1}{2} \\right \\rangle",
+            "encapsulate": {
+                "pre": "\\left \\langle \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\rangle"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\vert \\frac{1}{2} \\right \\vert",
+            "encapsulate": {
+                "pre": "\\left \\vert \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\vert"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\Vert \\frac{1}{2} \\right \\Vert",
+            "encapsulate": {
+                "pre": "\\left \\Vert \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\Vert"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\lfloor \\frac{1}{2} \\right \\rfloor",
+            "encapsulate": {
+                "pre": "\\left \\lfloor \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\rfloor"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\lceil \\frac{1}{2} \\right \\rceil",
+            "encapsulate": {
+                "pre": "\\left \\lceil \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\rceil"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left / \\frac{1}{2} \\right \\backslash",
+            "encapsulate": {
+                "pre": "\\left / \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\backslash"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\uparrow \\frac{1}{2} \\right \\downarrow",
+            "encapsulate": {
+                "pre": "\\left \\uparrow \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\downarrow"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\Uparrow \\frac{1}{2} \\right \\Downarrow",
+            "encapsulate": {
+                "pre": "\\left \\Uparrow \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\Downarrow"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\left \\updownarrow \\frac{1}{2} \\right \\Updownarrow",
+            "encapsulate": {
+                "pre": "\\left \\updownarrow \\frac{",
+                "placeholder": "1",
+                "post": "}{2} \\right \\Updownarrow"
+            }
+        },
+        {
+            "insert": "\\bigl(",
+            "tex": "\\bigl("
+        },
+        {
+            "insert": "\\bigr)",
+            "tex": "\\bigr)"
+        },
+        {
+            "insert": "\\Bigl(",
+            "contain": true,
+            "tex": "\\Bigl("
+        },
+        {
+            "insert": "\\Bigr)",
+            "contain": true,
+            "tex": "\\Bigr)"
+        },
+        {
+            "insert": "\\biggl(",
+            "contain": true,
+            "tex": "\\biggl("
+        },
+        {
+            "insert": "\\biggr)",
+            "contain": true,
+            "tex": "\\biggr)"
+        },
+        {
+            "insert": "\\Biggl(",
+            "contain": true,
+            "tex": "\\Biggl("
+        },
+        {
+            "insert": "\\Biggr)",
+            "contain": true,
+            "tex": "\\Biggr)"
+        },
+        {
+            "insert": "(",
+            "tex": "("
+        },
+        {
+            "insert": ")",
+            "tex": ")"
+        },
+        {
+            "insert": "[",
+            "tex": "["
+        },
+        {
+            "insert": "]",
+            "tex": "]"
+        },
+        {
+            "insert": "\\{",
+            "tex": "\\{"
+        },
+        {
+            "insert": "\\}",
+            "tex": "\\}"
+        },
+        {
+            "insert": "\\langle",
+            "tex": "\\langle"
+        },
+        {
+            "insert": "\\rangle",
+            "tex": "\\rangle"
+        },
+        {
+            "insert": "\\|",
+            "tex": "\\|"
+        },
+        {
+            "insert": "|",
+            "tex": "|"
+        },
+        {
+            "insert": "\\lfloor",
+            "tex": "\\lfloor"
+        },
+        {
+            "insert": "\\rfloor",
+            "tex": "\\rfloor"
+        },
+        {
+            "insert": "\\lceil",
+            "tex": "\\lceil"
+        },
+        {
+            "insert": "\\rceil",
+            "tex": "\\rceil"
+        }
+    ],
+    "math-visualeditor-symbol-group-matrices": [
+        {
+            "contain": true,
+            "tex": "\\frac{2}{4}",
+            "encapsulate": {
+                "pre": "\\frac{",
+                "placeholder": "2",
+                "post": "}{4}"
+            }
+        },
+        {
+            "tex": "\\tfrac{2}{4}",
+            "encapsulate": {
+                "pre": "\\tfrac{",
+                "placeholder": "2",
+                "post": "}{4}"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\binom{n}{k}",
+            "encapsulate": {
+                "pre": "\\binom{",
+                "placeholder": "n",
+                "post": "}{k}"
+            }
+        },
+        {
+            "tex": "\\tbinom{n}{k}",
+            "encapsulate": {
+                "pre": "\\tbinom{",
+                "placeholder": "n",
+                "post": "}{k}"
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\begin{matrix} x & y \\\\ z & v \\end{matrix}",
+            "encapsulate": {
+                "pre": "\\begin{matrix} ",
+                "placeholder": "x",
+                "post": " & y \\\\ z & v \\end{matrix}"
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\begin{vmatrix} x & y \\\\ z & v \\end{vmatrix}",
+            "encapsulate": {
+                "pre": "\\begin{vmatrix} ",
+                "placeholder": "x",
+                "post": " & y \\\\ z & v \\end{vmatrix}"
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\begin{Vmatrix} x & y \\\\ z & v \\end{Vmatrix}",
+            "encapsulate": {
+                "pre": "\\begin{Vmatrix} ",
+                "placeholder": "x",
+                "post": " & y \\\\ z & v \\end{Vmatrix}"
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\begin{bmatrix} x & y \\\\ z & v \\end{bmatrix}",
+            "encapsulate": {
+                "pre": "\\begin{bmatrix} ",
+                "placeholder": "x",
+                "post": " & y \\\\ z & v \\end{bmatrix}"
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\begin{Bmatrix} x & y \\\\ z & v \\end{Bmatrix}",
+            "encapsulate": {
+                "pre": "\\begin{Bmatrix} ",
+                "placeholder": "x",
+                "post": " & y \\\\ z & v \\end{Bmatrix}"
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\begin{pmatrix} x & y \\\\ z & v \\end{pmatrix}",
+            "encapsulate": {
+                "pre": "\\begin{pmatrix} ",
+                "placeholder": "x",
+                "post": " & y \\\\ z & v \\end{pmatrix}"
+            }
+        },
+        {
+            "wide": true,
+            "tex": "\\bigl( \\begin{smallmatrix} x & y \\\\ z & v \\end{smallmatrix} \\bigr)",
+            "encapsulate": {
+                "pre": "\\bigl( \\begin{smallmatrix} ",
+                "placeholder": "x",
+                "post": " & y \\\\ z & v \\end{smallmatrix} \\bigr)"
+            }
+        }
+    ],
+    "math-visualeditor-symbol-group-subscripts": [
+        {
+            "tex": "a^2",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": "^2"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "a_2",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": "_2"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "10^{30}",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "10",
+                "post": "^{30}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "a^{2+2}",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": "^{2+2}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "a_{i,j}",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "a",
+                "post": "_{i,j}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "b_{f'}",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "b",
+                "post": "_{f'}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "x_2^3",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "x",
+                "post": "_2^3"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "{x_2}^3",
+            "encapsulate": {
+                "pre": "{",
+                "placeholder": "x",
+                "post": "_2}^3"
+            },
+            "alignBaseline": true
+        },
+        {
+            "wide": true,
+            "tex": "10^{10^{8}}",
+            "encapsulate": {
+                "pre": "",
+                "placeholder": "10",
+                "post": "^{10^{8}}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\sideset{_1^2}{_3^4}\\prod_a^b",
+            "encapsulate": {
+                "pre": "\\sideset{_",
+                "placeholder": "1",
+                "post": "^2}{_3^4}\\prod_a^b"
+            }
+        },
+        {
+            "insert": "{}_1^2\\!\\Omega_3^4",
+            "tex": "{}_1^2\\!\\Omega_3^4"
+        },
+        {
+            "tex": "\\overset{\\alpha}{\\omega}",
+            "encapsulate": {
+                "pre": "\\overset{",
+                "placeholder": "\\alpha",
+                "post": "}{\\omega}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\underset{\\alpha}{\\omega}",
+            "encapsulate": {
+                "pre": "\\underset{",
+                "placeholder": "\\alpha",
+                "post": "}{\\omega}"
+            },
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\overset{\\alpha}{\\underset{\\gamma}{\\omega}}",
+            "encapsulate": {
+                "pre": "\\overset{",
+                "placeholder": "\\alpha",
+                "post": "}{\\underset{\\gamma}{\\omega}}"
+            }
+        },
+        {
+            "tex": "\\stackrel{\\alpha}{\\omega}",
+            "encapsulate": {
+                "pre": "\\stackrel{",
+                "placeholder": "\\alpha",
+                "post": "}{\\omega}"
+            },
+            "duplicate": true
+        },
+        {
+            "insert": "x'",
+            "tex": "x'",
+            "alignBaseline": true
+        },
+        {
+            "insert": "y''",
+            "tex": "y''",
+            "alignBaseline": true
+        },
+        {
+            "insert": "f'",
+            "tex": "f'",
+            "alignBaseline": true
+        },
+        {
+            "insert": "f''",
+            "tex": "f''",
+            "alignBaseline": true
+        },
+        {
+            "tex": "\\overrightarrow{a b}",
+            "encapsulate": {
+                "pre": "\\overrightarrow{",
+                "placeholder": "a b",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\overleftarrow{c d}",
+            "encapsulate": {
+                "pre": "\\overleftarrow{",
+                "placeholder": "c d",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\widehat{d e f}",
+            "encapsulate": {
+                "pre": "\\widehat{",
+                "placeholder": "d e f",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\overline{g h i}",
+            "encapsulate": {
+                "pre": "\\overline{",
+                "placeholder": "g h i",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\underline{j k l}",
+            "encapsulate": {
+                "pre": "\\underline{",
+                "placeholder": "j k l",
+                "post": "}"
+            }
+        },
+        {
+            "tex": "\\overset{\\frown}{AB}",
+            "encapsulate": {
+                "pre": "\\overset{\\frown}{",
+                "placeholder": "AB",
+                "post": "}"
+            }
+        },
+        {
+            "insert": "\\sum",
+            "tex": "\\sum"
+        },
+        {
+            "contain": true,
+            "tex": "\\sum_{k=1}^N",
+            "encapsulate": {
+                "pre": "\\sum_{",
+                "placeholder": "k=1",
+                "post": "}^N"
+            }
+        },
+        {
+            "wide": true,
+            "tex": "\\textstyle \\sum_{k=1}^N",
+            "encapsulate": {
+                "pre": "\\textstyle \\sum_{",
+                "placeholder": "k=1",
+                "post": "}^N \\displaystyle"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\sum\\limits^{^N}_{k=1}",
+            "duplicate": "\\sum_{k=1}^N",
+            "encapsulate": {
+                "pre": "\\sum\\limits^{^",
+                "placeholder": "N",
+                "post": "}_{k=1}"
+            }
+        },
+        {
+            "insert": "\\prod",
+            "tex": "\\prod"
+        },
+        {
+            "contain": true,
+            "tex": "\\prod_{i=1}^N",
+            "encapsulate": {
+                "pre": "\\prod_{",
+                "placeholder": "i=1",
+                "post": "}^N"
+            }
+        },
+        {
+            "wide": true,
+            "tex": "\\textstyle \\prod_{i=1}^N",
+            "encapsulate": {
+                "pre": "\\textstyle \\prod_{",
+                "placeholder": "i=1",
+                "post": "}^N \\displaystyle"
+            }
+        },
+        {
+            "insert": "\\coprod",
+            "tex": "\\coprod"
+        },
+        {
+            "contain": true,
+            "tex": "\\coprod_{i=1}^N",
+            "encapsulate": {
+                "pre": "\\coprod_{",
+                "placeholder": "i=1",
+                "post": "}^N"
+            }
+        },
+        {
+            "wide": true,
+            "tex": "\\textstyle \\coprod_{i=1}^N",
+            "encapsulate": {
+                "pre": "\\textstyle \\coprod_{",
+                "placeholder": "i=1",
+                "post": "}^N \\displaystyle"
+            }
+        },
+        {
+            "tex": "\\lim_{n \\to \\infty}",
+            "encapsulate": {
+                "pre": "\\lim_{",
+                "placeholder": "n",
+                "post": " \\to \\infty}"
+            }
+        },
+        {
+            "wide": true,
+            "tex": "\\textstyle \\lim_{n \\to \\infty}",
+            "encapsulate": {
+                "pre": "\\textstyle \\lim_{",
+                "placeholder": "n",
+                "post": " \\to \\infty} \\displaystyle"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\int x",
+            "encapsulate": {
+                "pre": "\\int ",
+                "placeholder": "x",
+                "post": ""
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\int\\limits_{1}^{3} x",
+            "encapsulate": {
+                "pre": "\\int\\limits_{",
+                "placeholder": "1",
+                "post": "}^{3} x"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\int_{1}^{3} x",
+            "encapsulate": {
+                "pre": "\\int_{",
+                "placeholder": "1",
+                "post": "}^{3} x"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\textstyle \\int\\limits_{-N}^{N} x",
+            "encapsulate": {
+                "pre": "\\textstyle \\int\\limits_{",
+                "placeholder": "-N",
+                "post": "}^{N} \\displaystyle x"
+            }
+        },
+        {
+            "wide": true,
+            "tex": "\\textstyle \\int_{-N}^{N} x",
+            "encapsulate": {
+                "pre": "\\textstyle \\int_{",
+                "placeholder": "-N",
+                "post": "}^{N} \\displaystyle x"
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\iint xy",
+            "encapsulate": {
+                "pre": "\\iint ",
+                "placeholder": "xy",
+                "post": ""
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\iint\\limits_D xy",
+            "encapsulate": {
+                "pre": "\\iint\\limits_",
+                "placeholder": "D",
+                "post": " xy"
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\iiint xyz",
+            "encapsulate": {
+                "pre": "\\iiint ",
+                "placeholder": "xyz",
+                "post": ""
+            }
+        },
+        {
+            "contain": true,
+            "wide": true,
+            "tex": "\\iiiint xyzt",
+            "encapsulate": {
+                "pre": "\\iiiint ",
+                "placeholder": "xyzt",
+                "post": ""
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\oint x",
+            "encapsulate": {
+                "pre": "\\oint ",
+                "placeholder": "x",
+                "post": ""
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\bigcap_{i=1}^n",
+            "encapsulate": {
+                "pre": "\\bigcap_{",
+                "placeholder": "i=1",
+                "post": "}^n"
+            }
+        },
+        {
+            "contain": true,
+            "tex": "\\bigcup_{i=1}^n",
+            "encapsulate": {
+                "pre": "\\bigcup_{",
+                "placeholder": "i=1",
+                "post": "}^n"
+            }
+        }
+    ],
+    "math-visualeditor-symbol-group-large": [
+        {
+            "insert": "f(n) = \\begin{cases} n/2, & \\text{if }n\\text{ is even} \\\\ 3n+1, & \\text{if }n\\text{ is odd} \\end{cases}",
+            "largeLayout": true,
+            "contain": true,
+            "wide": true,
+            "tex": "f(n) = \\begin{cases} n/2, & \\text{if }n\\text{ is even} \\\\ 3n+1, & \\text{if }n\\text{ is odd} \\end{cases}"
+        },
+        {
+            "insert": "\\begin{align} f(x) & = (a+b)^2 \\\\ & = a^2+2ab+b^2 \\\\ \\end{align}",
+            "largeLayout": true,
+            "wide": true,
+            "tex": "\\begin{align} f(x) & = (a+b)^2 \\\\ & = a^2+2ab+b^2 \\\\ \\end{align}"
+        },
+        {
+            "insert": "\\begin{alignat}{2} f(x) & = (a+b)^2 \\\\ & = a^2+2ab+b^2 \\\\ \\end{alignat}",
+            "largeLayout": true,
+            "wide": true,
+            "tex": "\\begin{alignat}{2} f(x) & = (a+b)^2 \\\\ & = a^2+2ab+b^2 \\\\ \\end{alignat}"
+        },
+        {
+            "insert": "\\begin{array}{lcl} z & = & a \\\\ f(x,y,z) & = & x + y + z \\end{array}",
+            "largeLayout": true,
+            "contain": true,
+            "wide": true,
+            "tex": "\\begin{array}{lcl} z & = & a \\\\ f(x,y,z) & = & x + y + z \\end{array}"
+        },
+        {
+            "insert": "\\begin{array}{lcr} z & = & a \\\\ f(x,y,z) & = & x + y + z \\end{array}",
+            "largeLayout": true,
+            "contain": true,
+            "wide": true,
+            "tex": "\\begin{array}{lcr} z & = & a \\\\ f(x,y,z) & = & x + y + z \\end{array}"
+        },
+        {
+            "insert": "\\begin{cases} 3x + 5y + z \\\\ 7x - 2y + 4z \\\\ -6x + 3y + 2z \\end{cases}",
+            "largeLayout": true,
+            "wide": true,
+            "tex": "\\begin{cases} 3x + 5y + z \\\\ 7x - 2y + 4z \\\\ -6x + 3y + 2z \\end{cases}"
+        },
+        {
+            "insert": "\\begin{array}{|c|c|c|} a & b & S \\\\ \\hline 0&0&1\\\\ 0&1&1\\\\ 1&0&1\\\\ 1&1&0\\\\ \\end{array}",
+            "largeLayout": true,
+            "contain": true,
+            "tex": "\\begin{array}{|c|c|c|} a & b & S \\\\ \\hline 0&0&1\\\\ 0&1&1\\\\ 1&0&1\\\\ 1&1&0\\\\ \\end{array}"
+        },
+        {
+            "insert": "A \\xleftarrow{n+\\mu-1} B \\xrightarrow[T]{n\\pm i-1} C",
+            "largeLayout": true,
+            "wide": true,
+            "tex": "A \\xleftarrow{n+\\mu-1} B \\xrightarrow[T]{n\\pm i-1} C"
+        },
+        {
+            "insert": "\\overbrace{ 1+2+\\cdots+100 }^{5050}",
+            "largeLayout": true,
+            "wide": true,
+            "tex": "\\overbrace{ 1+2+\\cdots+100 }^{5050}"
+        },
+        {
+            "insert": "\\underbrace{ a+b+\\cdots+z }_{26}",
+            "largeLayout": true,
+            "wide": true,
+            "tex": "\\underbrace{ a+b+\\cdots+z }_{26}"
+        }
+    ]
+}
diff --git a/modules/ve-math/tools/makeSvgsAndCss.js b/modules/ve-math/tools/makeSvgsAndCss.js
new file mode 100755
index 0000000..ba4ff5f
--- /dev/null
+++ b/modules/ve-math/tools/makeSvgsAndCss.js
@@ -0,0 +1,208 @@
+#!/usr/bin/env node
+
+/* jshint node: true */
+
+( function () {
+	var i, count, currentClassName, group, symbol, symbols, symbolObject,
+		symbolsData, cssData, cssLines, alignBaseline,
+		unmodifiedClasses = {},
+		cssRules = [], // Whole CSS rules
+		cssClasses = {}, // Unique part of class name and whether baseline is shifted
+		currentRule = [],
+		symbolList = [], // Symbols whose CSS rules need to be added or adjusted
+		symbolsFile = '../symbols.json',
+		cssFile = '../ve.ui.MWMathSymbols.css',
+		cssPrefix = '.ve-ui-mwMathSymbol-',
+		fs = require( 'fs' ),
+		http = require( 'http' ),
+		querystring = require( 'querystring' ),
+		mathoidMaxConnections = 20,
+		// If symbol.alignBaseline is true, a background-position property will be added to the
+		// CSS rule to shift the baseline of the SVG to be a certain proportion of the way up the
+		// button.
+		singleButtonHeight = 1.8, // Height of the single-height math dialog buttons in em
+		baseline = 0.65; // Proportion of the way down the button the baseline should be
+
+	symbolsData = fs.readFileSync( symbolsFile ).toString();
+	try {
+		cssData = fs.readFileSync( cssFile ).toString();
+	} catch ( e ) {}
+
+	function encodeURIComponentForCSS( str ) {
+		return encodeURIComponent( str )
+			.replace( /[!'\(\)\*]/g, function ( chr ) {
+				return '%' + chr.charCodeAt( 0 ).toString( 16 );
+			} );
+	}
+
+	/**
+	 * Make the className, replacing any non-alphanumerics with their character code
+	 *
+	 * The reverse of function would look like this, although we have no use for it yet:
+	 *
+	 *  return className.replace( /_([0-9]+)_/g, function () {
+	 *  	return String.fromCharCode( +arguments[ 1 ] );
+	 *  } );
+	 */
+	function texToClass( tex ) {
+		return tex.replace( /[^\w]/g, function ( c ) {
+			return '_' + c.charCodeAt( 0 ) + '_';
+		} );
+	}
+
+	function makeRequest( symbol ) {
+		var request,
+			data = querystring.stringify( {
+				q: symbol.tex
+			} ),
+			// API call to mathoid
+			options = {
+				host: 'mathoid.testme.wmflabs.org',
+				port: '80',
+				path: '/',
+				method: 'POST',
+				headers: {
+					'Content-Type': 'application/x-www-form-urlencoded',
+					'Content-Length': Buffer.byteLength( data )
+				}
+			};
+		// Populate and make the API call
+		request = http.request( options, function ( res ) {
+			var body = '';
+			res.setEncoding( 'utf8' );
+
+			res.on( 'data', function ( data ) {
+				body += data;
+			} );
+
+			res.on( 'end', function () {
+				var cssRule, buttonHeight, height, verticalAlign, heightDifference, offset,
+					className = texToClass( symbol.tex ),
+					data = JSON.parse( body ),
+					svg = data.svg;
+
+				if ( !svg ) {
+					console.log( symbol.tex + ' FAILED: ' + body );
+					onEnd();
+					return;
+				}
+
+				cssRule = cssPrefix + className + ' {\n' +
+					'\tbackground-image: url(data:image/svg+xml,' + encodeURIComponentForCSS( svg ) + ');\n';
+
+				if ( symbol.alignBaseline ) {
+					// Convert buttonHeight from em to ex, because SVG height is given in ex. (This is an
+					// approximation, since the em:ex ratio differs from font to font.)
+					buttonHeight = symbol.largeLayout ? singleButtonHeight * 4 : singleButtonHeight * 1.9931;
+					// height and verticalAlign rely on the format of the SVG parameters
+					// HACK: Adjust these by a factor of 0.8 to match VE's default font size of 0.8em
+					height = parseFloat( data.mathoidStyle.match( /height\:\s*(.*)ex/ )[ 1 ] ) * 0.8;
+					verticalAlign = -parseFloat( data.mathoidStyle.match( /vertical-align\:\s*(.*)ex/ )[ 1 ] ) * 0.8;
+					// CSS percentage positioning is based on the difference between the image and container sizes
+					heightDifference = buttonHeight - height;
+					offset = 100 * ( verticalAlign - height + ( baseline * buttonHeight ) ) / heightDifference;
+
+					cssRule += '\tbackground-position: 50% ' + offset + '%;\n' +
+						'}';
+					cssRules.push( cssRule );
+					console.log( symbol.tex + ' -> ' + className );
+				} else {
+					cssRule += '}';
+					cssRules.push( cssRule );
+					console.log( symbol.tex + ' -> ' + className );
+				}
+				onEnd();
+
+			} );
+		} );
+		request.setTimeout( 10000 );
+		request.write( data );
+		request.end();
+		runNext();
+	}
+
+	function onEnd() {
+		count--;
+		runNext();
+	}
+
+	function runNext() {
+		if ( count < mathoidMaxConnections && symbolList.length ) {
+			count++;
+			makeRequest( symbolList.shift() );
+		}
+		if ( !symbolList.length && !count ) {
+			cssRules.sort();
+			fs.writeFileSync(
+				cssFile,
+				'/*!\n' +
+				' * This file is GENERATED by tools/makeSvgsAndCss.js\n' +
+				' * DO NOT EDIT\n' +
+				' */\n' +
+				'\n' +
+				cssRules.join( '\n\n' ) +
+				'\n'
+			);
+		}
+	}
+
+	if ( cssData ) {
+		cssLines = cssData.split( '\n' );
+		for ( i = 0; i < cssLines.length; i++ ) {
+			if ( cssLines[ i ].indexOf( cssPrefix ) === 0 ) {
+				currentClassName = cssLines[ i ].slice( cssPrefix.length, -2 );
+				currentRule.push( cssLines[ i ] );
+				cssClasses[ currentClassName ] = false; // Default to false
+			} else if ( currentRule.length ) {
+				currentRule.push( cssLines[ i ] );
+				if ( cssLines[ i ].indexOf( '\tbackground-position' ) === 0 ) {
+					cssClasses[ currentClassName ] = true;
+				}
+				if ( cssLines[ i ].indexOf( '}' ) === 0 ) {
+					cssRules.push( currentRule.join( '\n' ) );
+					currentRule.splice( 0, currentRule.length );
+				}
+			}
+		}
+	}
+
+	symbolObject = JSON.parse( symbolsData );
+	for ( group in symbolObject ) {
+		symbols = symbolObject[ group ];
+		for ( i = 0; i < symbols.length; i++ ) {
+			symbol = symbols[ i ];
+			if ( symbol.duplicate || symbol.notWorking ) {
+				continue;
+			}
+			currentClassName = texToClass( symbol.tex );
+			alignBaseline = !symbol.alignBaseline;
+			// If symbol is not in the old CSS file, or its alignBaseline status has changed,
+			// add it to symbolList. Check to make sure it hasn't already been added.
+			if ( cssClasses[ currentClassName ] === undefined ||
+				( unmodifiedClasses[ currentClassName ] !== true &&
+					cssClasses[ currentClassName ] === alignBaseline ) ) {
+				symbolList.push( symbol );
+			} else {
+				// At the end of this loop, any CSS class names that aren't in unmodifiedClasses
+				// will be deleted from cssRules. cssRules will then only contain rules that will
+				// stay unmodified.
+				unmodifiedClasses[ currentClassName ] = true;
+			}
+		}
+	}
+
+	// Keep only classes that will stay the same. Remove classes that are being adjusted and
+	// classes of symbols that have been deleted from the JSON.
+	cssRules = cssRules.filter( function ( rule ) {
+		currentClassName = rule.split( '\n' )[ 0 ].slice( cssPrefix.length, -2 );
+		if ( unmodifiedClasses[ currentClassName ] ) {
+			return true;
+		}
+		console.log( 'Removing or adjusting: ' + currentClassName );
+		return false;
+	} );
+
+	count = 0;
+	runNext();
+
+} )();
diff --git a/modules/ve-math/tools/package.json b/modules/ve-math/tools/package.json
new file mode 100644
index 0000000..70d37b7
--- /dev/null
+++ b/modules/ve-math/tools/package.json
@@ -0,0 +1,3 @@
+{
+  "name": "math-icons-generator"
+}
diff --git a/modules/ve-math/ve.ce.MWMathNode.css b/modules/ve-math/ve.ce.MWMathNode.css
new file mode 100644
index 0000000..2f05e9c
--- /dev/null
+++ b/modules/ve-math/ve.ce.MWMathNode.css
@@ -0,0 +1,10 @@
+/**
+ * Hide math tag completely to avoid extra bounding boxes for Chrome, Safari, Android...
+ * Browser-specific hacks are bad but let's use that for now...
+ * See http://browserhacks.com
+ */
+ at media screen and (-webkit-min-device-pixel-ratio: 0) {
+	.ve-ce-mwMathNode .mwe-math-mathml-a11y {
+		display: none !important;
+	}
+}
diff --git a/modules/ve-math/ve.ce.MWMathNode.js b/modules/ve-math/ve.ce.MWMathNode.js
new file mode 100644
index 0000000..7031d4f
--- /dev/null
+++ b/modules/ve-math/ve.ce.MWMathNode.js
@@ -0,0 +1,57 @@
+/*!
+ * VisualEditor ContentEditable MWMathNode class.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/*global ve, OO */
+
+/**
+ * ContentEditable MediaWiki math node.
+ *
+ * @class
+ * @extends ve.ce.MWInlineExtensionNode
+ *
+ * @constructor
+ * @param {ve.dm.MWMathNode} model Model to observe
+ * @param {Object} [config] Configuration options
+ */
+ve.ce.MWMathNode = function VeCeMWMathNode() {
+	// Parent constructor
+	ve.ce.MWMathNode.super.apply( this, arguments );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ce.MWMathNode, ve.ce.MWInlineExtensionNode );
+
+/* Static Properties */
+
+ve.ce.MWMathNode.static.name = 'mwMath';
+
+ve.ce.MWMathNode.static.primaryCommandName = 'math';
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ce.MWMathNode.prototype.onSetup = function () {
+	// Parent method
+	ve.ce.MWMathNode.super.prototype.onSetup.call( this );
+
+	// DOM changes
+	this.$element.addClass( 've-ce-mwMathNode' );
+};
+
+/**
+ * @inheritdoc ve.ce.GeneratedContentNode
+ */
+ve.ce.MWMathNode.prototype.validateGeneratedContents = function ( $element ) {
+	return !( $element.find( '.error' ).addBack( '.error' ).length );
+};
+
+/* Registration */
+
+ve.ce.nodeFactory.register( ve.ce.MWMathNode );
diff --git a/modules/ve-math/ve.dm.MWMathNode.js b/modules/ve-math/ve.dm.MWMathNode.js
new file mode 100644
index 0000000..72a1b01
--- /dev/null
+++ b/modules/ve-math/ve.dm.MWMathNode.js
@@ -0,0 +1,54 @@
+/*!
+ * VisualEditor DataModel MWMathNode class.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/*global ve, OO */
+
+/**
+ * DataModel MediaWiki math node.
+ *
+ * @class
+ * @extends ve.dm.MWInlineExtensionNode
+ *
+ * @constructor
+ * @param {Object} [element]
+ */
+ve.dm.MWMathNode = function VeDmMWMathNode() {
+	// Parent constructor
+	ve.dm.MWMathNode.super.apply( this, arguments );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.dm.MWMathNode, ve.dm.MWInlineExtensionNode );
+
+/* Static members */
+
+ve.dm.MWMathNode.static.name = 'mwMath';
+
+ve.dm.MWMathNode.static.tagName = 'img';
+
+ve.dm.MWMathNode.static.extensionName = 'math';
+
+/* Static Methods */
+
+/**
+ * @inheritdoc ve.dm.GeneratedContentNode
+ */
+ve.dm.MWMathNode.static.getHashObjectForRendering = function ( dataElement ) {
+	// Parent method
+	var hashObject = ve.dm.MWMathNode.super.static.getHashObjectForRendering.call( this, dataElement );
+
+	// The id does not affect the rendering.
+	if ( hashObject.mw.attrs ) {
+		delete hashObject.mw.attrs.id;
+	}
+	return hashObject;
+};
+
+/* Registration */
+
+ve.dm.modelRegistry.register( ve.dm.MWMathNode );
diff --git a/modules/ve-math/ve.ui.MWMathContextItem.js b/modules/ve-math/ve.ui.MWMathContextItem.js
new file mode 100644
index 0000000..a247672
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathContextItem.js
@@ -0,0 +1,63 @@
+/*!
+ * VisualEditor MWMathContextItem class.
+ *
+ * @copyright 2015 VisualEditor Team and others; see http://ve.mit-license.org
+ */
+
+/**
+ * Context item for a math node.
+ *
+ * @class
+ * @extends ve.ui.LinearContextItem
+ *
+ * @param {ve.ui.Context} context Context item is in
+ * @param {ve.dm.Model} model Model item is related to
+ * @param {Object} config Configuration options
+ */
+ve.ui.MWMathContextItem = function VeUiMWMathContextItem() {
+	// Parent constructor
+	ve.ui.MWMathContextItem.super.apply( this, arguments );
+
+	this.quickEditButton = new OO.ui.ButtonWidget( {
+		label: ve.msg( 'math-visualeditor-mwmathcontextitem-quickedit' ),
+		flags: [ 'progressive' ]
+	} );
+
+	this.actionButtons.addItems( [ this.quickEditButton ], 0 );
+
+	this.quickEditButton.connect( this, { click: 'onInlineEditButtonClick' } );
+
+	// Initialization
+	this.$element.addClass( 've-ui-mwMathContextItem' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWMathContextItem, ve.ui.LinearContextItem );
+
+/* Static Properties */
+
+ve.ui.MWMathContextItem.static.name = 'math';
+
+ve.ui.MWMathContextItem.static.icon = 'math';
+
+ve.ui.MWMathContextItem.static.label = OO.ui.deferMsg( 'math-visualeditor-mwmathinspector-title' );
+
+ve.ui.MWMathContextItem.static.modelClasses = [ ve.dm.MWMathNode ];
+
+ve.ui.MWMathContextItem.static.embeddable = false;
+
+ve.ui.MWMathContextItem.static.commandName = 'mathDialog';
+
+/* Methods */
+
+/**
+ * Handle inline edit button click events.
+ */
+ve.ui.MWMathContextItem.prototype.onInlineEditButtonClick = function () {
+	this.context.getSurface().executeCommand( 'mathInspector' );
+};
+
+/* Registration */
+
+ve.ui.contextItemFactory.register( ve.ui.MWMathContextItem );
diff --git a/modules/ve-math/ve.ui.MWMathDialog.css b/modules/ve-math/ve.ui.MWMathDialog.css
new file mode 100644
index 0000000..8cb23b4
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathDialog.css
@@ -0,0 +1,95 @@
+/*!
+ * VisualEditor UserInterface MWMathDialog styles.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+.ve-ui-mwMathDialog-content .oo-ui-bookletLayout-stackLayout {
+	padding: 0.5em;
+}
+
+.ve-ui-mwMathDialog-content .oo-ui-bookletLayout-stackLayout h3 {
+	margin: 0 0 0.5em 0;
+	color: #888;
+	font-weight: normal;
+	font-size: 1em;
+}
+
+.ve-ui-mwMathDialog-content .oo-ui-textInputWidget {
+	max-width: none;
+}
+
+.ve-ui-mwMathDialog-menuLayout > .oo-ui-menuLayout-content {
+	border-bottom: 1px solid #e6e6e6;
+	box-shadow: 0 1px 0 0 rgba( 0, 0, 0, 0.05 );
+	overflow: auto;
+}
+
+.ve-ui-mwMathDialog-menuLayout-short .oo-ui-menuLayout-menu {
+	height: 10em;
+}
+
+.ve-ui-mwMathDialog-menuLayout-short .oo-ui-menuLayout-content {
+	bottom: 10em;
+}
+
+.ve-ui-mwMathPage-symbol {
+	background-position: center;
+	background-repeat: no-repeat;
+	cursor: pointer;
+	font-size: 1.5em;
+	width: 1.8em;
+	height: 1.8em;
+	display: inline-block;
+	vertical-align: middle;
+	margin: 0 0.1em 0.1em 0;
+	box-sizing: border-box;
+	border: 1px solid #e6e6e6;
+	-webkit-transition: border-color 200ms;
+	-moz-transition: border-color 200ms;
+	-o-transition: border-color 200ms;
+	transition: border-color 200ms;
+}
+
+.ve-ui-mwMathPage-symbol-wide {
+	width: 4.65em;
+}
+
+.ve-ui-mwMathPage-symbol-contain {
+	background-size: contain;
+}
+
+.ve-ui-mwMathPage-symbol-largeLayout {
+	height: 3.7em;
+	width: 4.65em;
+}
+
+.ve-ui-mwMathPage-symbol-largeLayout.ve-ui-mwMathPage-symbol-wide {
+	width: 9.4em;
+}
+
+.ve.ui.mwMathPage-symbol:hover {
+	border-color: #ccc;
+}
+
+.ve-ui-mwMathDialog-preview {
+	text-align: center;
+	line-height: 10em;
+	height: 10em;
+}
+
+.ve-ui-mwMathDialog-menuLayout-short .ve-ui-mwMathDialog-preview {
+	line-height: 6em;
+	height: 6em;
+}
+
+/* Ensures the preview image is vertically centred */
+.ve-ui-mwMathDialog-preview .mwe-math-fallback-image-display {
+	display: inline-block;
+}
+
+.ve-ui-mwMathPage-outline {
+	padding: 0.5em;
+	color: #555;
+}
diff --git a/modules/ve-math/ve.ui.MWMathDialog.js b/modules/ve-math/ve.ui.MWMathDialog.js
new file mode 100644
index 0000000..a2fc701
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathDialog.js
@@ -0,0 +1,326 @@
+/*!
+ * VisualEditor user interface MWMathDialog class.
+ *
+ * @copyright 2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * Dialog for inserting and editing formulas.
+ *
+ * @class
+ * @extends ve.ui.MWExtensionPreviewDialog
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+
+ve.ui.MWMathDialog = function VeUiMWMathDialog( config ) {
+	// Parent constructor
+	ve.ui.MWMathDialog.super.call( this, config );
+
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWMathDialog, ve.ui.MWExtensionPreviewDialog );
+
+/* Static properties */
+
+ve.ui.MWMathDialog.static.name = 'mathDialog';
+
+ve.ui.MWMathDialog.static.title = OO.ui.deferMsg( 'math-visualeditor-mwmathdialog-title' );
+
+ve.ui.MWMathDialog.static.size = 'larger';
+
+ve.ui.MWMathDialog.static.modelClasses = [ ve.dm.MWMathNode ];
+
+ve.ui.MWMathDialog.static.dir = 'ltr';
+
+ve.ui.MWMathDialog.static.symbols = null;
+
+/* static methods */
+
+/**
+ * Set the symbols property
+ *
+ * @param {Object} symbols The math symbols and their group names
+ */
+ve.ui.MWMathDialog.static.setSymbols = function ( symbols ) {
+	this.symbols = symbols;
+};
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathDialog.prototype.initialize = function () {
+	var formulaPanel, inputField, displayField, idField, category,
+		formulaCard, optionsCard,
+		dialog = this;
+
+	// Parent method
+	ve.ui.MWMathDialog.super.prototype.initialize.call( this );
+
+	// Layout for the formula inserter (formula card) and options form (options card)
+	this.indexLayout = new OO.ui.IndexLayout( {
+		scrollable: false,
+		expanded: true
+	} );
+
+	formulaCard = new OO.ui.CardLayout( 'formula', {
+		label: ve.msg( 'math-visualeditor-mwmathdialog-card-formula' ),
+		expandable: false,
+		scrollable: false,
+		padded: true
+	} );
+	optionsCard = new OO.ui.CardLayout( 'options', {
+		label: ve.msg( 'math-visualeditor-mwmathdialog-card-options' ),
+		expandable: false,
+		scrollable: false,
+		padded: true
+	} );
+
+	this.indexLayout.addCards( [
+		formulaCard,
+		optionsCard
+	] );
+
+	// Layout for symbol picker (menu) and input and preview (content)
+	this.menuLayout = new OO.ui.MenuLayout( {
+		menuPosition: 'bottom',
+		classes: [ 've-ui-mwMathDialog-menuLayout' ]
+	} );
+
+	this.previewElement.$element.addClass(
+		've-ui-mwMathDialog-preview'
+	);
+
+	this.input = new ve.ui.MWAceEditorWidget( {
+		multiline: true,
+		rows: 1, // This will be recalculated later in onWindowManagerResize
+		autocomplete: 'live'
+	} ).setLanguage( 'latex' );
+
+	this.input.togglePrintMargin( false );
+
+	this.displaySelect = new OO.ui.ButtonSelectWidget( {
+		items: [
+			new OO.ui.ButtonOptionWidget( {
+				data: 'default',
+				icon: 'math-display-default',
+				label: ve.msg( 'math-visualeditor-mwmathinspector-display-default' )
+			} ),
+			new OO.ui.ButtonOptionWidget( {
+				data: 'inline',
+				icon: 'math-display-inline',
+				label: ve.msg( 'math-visualeditor-mwmathinspector-display-inline' )
+			} ),
+			new OO.ui.ButtonOptionWidget( {
+				data: 'block',
+				icon: 'math-display-block',
+				label: ve.msg( 'math-visualeditor-mwmathinspector-display-block' )
+			} )
+		]
+	} );
+
+	this.idInput = new OO.ui.TextInputWidget();
+
+	inputField = new OO.ui.FieldLayout( this.input, {
+		align: 'top',
+		label: ve.msg( 'math-visualeditor-mwmathinspector-title' )
+	} );
+	displayField = new OO.ui.FieldLayout( this.displaySelect, {
+		align: 'top',
+		label: ve.msg( 'math-visualeditor-mwmathinspector-display' )
+	} );
+	idField = new OO.ui.FieldLayout( this.idInput, {
+		align: 'top',
+		label: ve.msg( 'math-visualeditor-mwmathinspector-id' )
+	} );
+
+	formulaPanel = new OO.ui.PanelLayout( {
+		padded: true
+	} );
+
+	// Layout for the symbol picker
+	this.bookletLayout = new OO.ui.BookletLayout( {
+		menuPosition: 'before',
+		outlined: true,
+		continuous: true
+	} );
+	this.pages = [];
+	this.symbolsPromise = mw.loader.using( 'ext.math.visualEditor.symbols' ).done( function () {
+		var symbols = dialog.constructor.static.symbols;
+		for ( category in symbols ) {
+			dialog.pages.push(
+				new ve.ui.MWMathPage( ve.msg( category ), {
+					label: ve.msg( category ),
+					symbols: symbols[ category ]
+				} )
+			);
+		}
+		dialog.bookletLayout.addPages( dialog.pages );
+		dialog.bookletLayout.$element.on(
+			'click',
+			'.ve-ui-mwMathPage-symbol',
+			dialog.onListClick.bind( dialog )
+		);
+
+		// Append everything
+		dialog.menuLayout.$menu.append(
+			dialog.bookletLayout.$element
+		);
+
+		dialog.menuLayout.$content.append(
+			formulaPanel.$element.append(
+				dialog.previewElement.$element,
+				inputField.$element
+			)
+		);
+
+		formulaCard.$element.append(
+			dialog.menuLayout.$element
+		);
+		optionsCard.$element.append(
+			displayField.$element,
+			idField.$element
+		);
+
+		dialog.$body
+			.addClass( 've-ui-mwMathDialog-content' )
+			.append( dialog.indexLayout.$element );
+	} );
+
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathDialog.prototype.getSetupProcess = function ( data ) {
+	return ve.ui.MWMathDialog.super.prototype.getSetupProcess.call( this, data )
+		.next( function () {
+			var attributes = this.selectedNode && this.selectedNode.getAttribute( 'mw' ).attrs,
+				display = attributes && attributes.display || 'default',
+				id = attributes && attributes.id || '';
+
+			// Populate form
+			this.displaySelect.selectItemByData( display );
+			this.idInput.setValue( id );
+
+			// Add event handlers
+			this.input.on( 'change', this.onChangeHandler );
+			this.displaySelect.on( 'choose', this.onChangeHandler );
+			this.idInput.on( 'change', this.onChangeHandler );
+		}, this );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathDialog.prototype.getReadyProcess = function ( data ) {
+	return ve.ui.MWMathDialog.super.prototype.getReadyProcess.call( this, data )
+		.next( function () {
+			return this.symbolsPromise;
+		}, this )
+		.next( function () {
+			// Resize the input once the dialog has been appended
+			this.input.adjustSize( true ).focus().moveCursorToEnd();
+			this.getManager().connect( this, { resize: 'onWindowManagerResize' } );
+			this.onWindowManagerResize();
+		}, this );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathDialog.prototype.getTeardownProcess = function ( data ) {
+	return ve.ui.MWMathDialog.super.prototype.getTeardownProcess.call( this, data )
+		.first( function () {
+			this.input.off( 'change', this.onChangeHandler );
+			this.displaySelect.off( 'choose', this.onChangeHandler );
+			this.idInput.off( 'change', this.onChangeHandler );
+			this.getManager().disconnect( this );
+		}, this );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathDialog.prototype.updateMwData = function ( mwData ) {
+	var display, id;
+
+	// Parent method
+	ve.ui.MWMathDialog.super.prototype.updateMwData.call( this, mwData );
+
+	// Get data from dialog
+	display = this.displaySelect.getSelectedItem().getData();
+	id = this.idInput.getValue();
+
+	// Update attributes
+	mwData.attrs.display = display !== 'default' ? display : undefined;
+	mwData.attrs.id = id || undefined;
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathDialog.prototype.getBodyHeight = function () {
+	return 600;
+};
+
+/**
+ * Handle the window resize event
+ */
+ve.ui.MWMathDialog.prototype.onWindowManagerResize = function () {
+	var dialog = this;
+	this.input.loadingPromise.done( function () {
+		var availableSpace, maxInputHeight, singleLineHeight, minRows,
+			border = 1,
+			padding = 3,
+			borderAndPadding = 2 * ( border + padding );
+
+		// Toggle short mode as necessary
+		// NB a change of mode triggers a transition...
+		dialog.menuLayout.$element.toggleClass(
+			've-ui-mwMathDialog-menuLayout-short', dialog.menuLayout.$element.height() < 450
+		);
+
+		// ...So wait for the possible menuLayout transition to finish
+		setTimeout( function () {
+			// Give the input the right number of rows to fit the space
+			availableSpace = dialog.menuLayout.$content.height() - dialog.input.$element.position().top;
+			singleLineHeight = 19;
+			maxInputHeight = availableSpace - borderAndPadding;
+			minRows = Math.floor( maxInputHeight / singleLineHeight );
+			dialog.input.setMinRows( minRows );
+		}, 250 );
+	} );
+};
+
+/**
+ * Handle the click event on the list
+ *
+ * @param {jQuery.Event} e Mouse click event
+ */
+ve.ui.MWMathDialog.prototype.onListClick = function ( e ) {
+	var symbol = $( e.target ).data( 'symbol' ),
+		encapsulate = symbol.encapsulate,
+		insert = symbol.insert,
+		range = this.input.getRange();
+
+	if ( encapsulate ) {
+		if ( range.from === range.to ) {
+			this.input.insertContent( encapsulate.placeholder );
+			this.input.selectRange( range.from, range.from + encapsulate.placeholder.length );
+		}
+		this.input.encapsulateContent( encapsulate.pre, encapsulate.post );
+	} else {
+		this.input.insertContent( insert );
+	}
+};
+
+/* Registration */
+
+ve.ui.windowFactory.register( ve.ui.MWMathDialog );
diff --git a/modules/ve-math/ve.ui.MWMathDialogTool.js b/modules/ve-math/ve.ui.MWMathDialogTool.js
new file mode 100644
index 0000000..e0223c0
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathDialogTool.js
@@ -0,0 +1,53 @@
+/*!
+ * VisualEditor UserInterface MWMathDialogTool class.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/*global ve, OO */
+
+/**
+ * MediaWiki UserInterface math tool.
+ *
+ * @class
+ * @extends ve.ui.FragmentWindowTool
+ * @constructor
+ * @param {OO.ui.ToolGroup} toolGroup
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWMathDialogTool = function VeUiMWMathDialogTool( toolGroup, config ) {
+	ve.ui.MWMathDialogTool.super.call( this, toolGroup, config );
+};
+OO.inheritClass( ve.ui.MWMathDialogTool, ve.ui.FragmentWindowTool );
+ve.ui.MWMathDialogTool.static.name = 'math';
+ve.ui.MWMathDialogTool.static.group = 'object';
+ve.ui.MWMathDialogTool.static.icon = 'math';
+ve.ui.MWMathDialogTool.static.title = OO.ui.deferMsg(
+	'math-visualeditor-mwmathinspector-title' );
+ve.ui.MWMathDialogTool.static.modelClasses = [ ve.dm.MWMathNode ];
+ve.ui.MWMathDialogTool.static.commandName = 'mathDialog';
+ve.ui.toolFactory.register( ve.ui.MWMathDialogTool );
+
+ve.ui.commandRegistry.register(
+	new ve.ui.Command(
+		'mathDialog', 'window', 'open',
+		{ args: [ 'mathDialog' ], supportedSelections: [ 'linear' ] }
+	)
+);
+
+ve.ui.commandRegistry.register(
+	new ve.ui.Command(
+		'mathInspector', 'window', 'open',
+		{ args: [ 'mathInspector' ], supportedSelections: [ 'linear' ] }
+	)
+);
+
+ve.ui.sequenceRegistry.register(
+	new ve.ui.Sequence( 'wikitextMath', 'mathDialog', '<math', 5 )
+);
+
+ve.ui.commandHelpRegistry.register( 'insert', 'mathDialog', {
+	sequences: [ 'wikitextMath' ],
+	label: OO.ui.deferMsg( 'math-visualeditor-mwmathinspector-title' )
+} );
diff --git a/modules/ve-math/ve.ui.MWMathIcons.css b/modules/ve-math/ve.ui.MWMathIcons.css
new file mode 100644
index 0000000..205cea0
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathIcons.css
@@ -0,0 +1,26 @@
+/*!
+ * VisualEditor UserInterface Math icon styles.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+.oo-ui-icon-math {
+	/* @embed */
+	background-image: url( math.svg );
+}
+
+.oo-ui-icon-math-display-block {
+	/* @embed */
+	background-image: url( math-display-block.svg );
+}
+
+.oo-ui-icon-math-display-default {
+	/* @embed */
+	background-image: url( math-display-default.svg );
+}
+
+.oo-ui-icon-math-display-inline {
+	/* @embed */
+	background-image: url( math-display-inline.svg );
+}
diff --git a/modules/ve-math/ve.ui.MWMathInspector.css b/modules/ve-math/ve.ui.MWMathInspector.css
new file mode 100644
index 0000000..387b3b9
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathInspector.css
@@ -0,0 +1,10 @@
+/*!
+ * VisualEditor UserInterface MWMathInspector styles.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+.ve-ui-mwMathInspector-content .ve-ui-mwExtensionWindow-input textarea {
+	font-family: monospace, Courier;
+}
diff --git a/modules/ve-math/ve.ui.MWMathInspector.js b/modules/ve-math/ve.ui.MWMathInspector.js
new file mode 100644
index 0000000..b880fdf
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathInspector.js
@@ -0,0 +1,141 @@
+/*!
+ * VisualEditor UserInterface MWMathInspector class.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/*global ve, OO */
+
+/**
+ * MediaWiki math inspector.
+ *
+ * @class
+ * @extends ve.ui.MWLiveExtensionInspector
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWMathInspector = function VeUiMWMathInspector( config ) {
+	// Parent constructor
+	ve.ui.MWMathInspector.super.call( this, config );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWMathInspector, ve.ui.MWLiveExtensionInspector );
+
+/* Static properties */
+
+ve.ui.MWMathInspector.static.name = 'mathInspector';
+
+ve.ui.MWMathInspector.static.title = OO.ui.deferMsg( 'math-visualeditor-mwmathinspector-title' );
+
+ve.ui.MWMathInspector.static.modelClasses = [ ve.dm.MWMathNode ];
+
+ve.ui.MWMathInspector.static.dir = 'ltr';
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathInspector.prototype.initialize = function () {
+	var inputField, displayField, idField;
+
+	// Parent method
+	ve.ui.MWMathInspector.super.prototype.initialize.call( this );
+
+	this.displaySelect = new OO.ui.ButtonSelectWidget( {
+		items: [
+			new OO.ui.ButtonOptionWidget( {
+				data: 'default',
+				icon: 'math-display-default',
+				label: ve.msg( 'math-visualeditor-mwmathinspector-display-default' )
+			} ),
+			new OO.ui.ButtonOptionWidget( {
+				data: 'inline',
+				icon: 'math-display-inline',
+				label: ve.msg( 'math-visualeditor-mwmathinspector-display-inline' )
+			} ),
+			new OO.ui.ButtonOptionWidget( {
+				data: 'block',
+				icon: 'math-display-block',
+				label: ve.msg( 'math-visualeditor-mwmathinspector-display-block' )
+			} )
+		]
+	} );
+
+	this.idInput = new OO.ui.TextInputWidget();
+
+	inputField = new OO.ui.FieldLayout( this.input, {
+		align: 'top',
+		label: ve.msg( 'math-visualeditor-mwmathinspector-title' )
+	} );
+	displayField = new OO.ui.FieldLayout( this.displaySelect, {
+		align: 'top',
+		label: ve.msg( 'math-visualeditor-mwmathinspector-display' )
+	} );
+	idField = new OO.ui.FieldLayout( this.idInput, {
+		align: 'top',
+		label: ve.msg( 'math-visualeditor-mwmathinspector-id' )
+	} );
+
+	// Initialization
+	this.$content.addClass( 've-ui-mwMathInspector-content' );
+	this.form.$element.append(
+		inputField.$element,
+		this.generatedContentsError.$element,
+		displayField.$element,
+		idField.$element
+	);
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathInspector.prototype.getSetupProcess = function ( data ) {
+	return ve.ui.MWMathInspector.super.prototype.getSetupProcess.call( this, data )
+		.next( function () {
+			var display = this.selectedNode.getAttribute( 'mw' ).attrs.display || 'default';
+			this.displaySelect.selectItemByData( display );
+			this.displaySelect.on( 'choose', this.onChangeHandler );
+		}, this );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathInspector.prototype.getTeardownProcess = function ( data ) {
+	return ve.ui.MWMathInspector.super.prototype.getTeardownProcess.call( this, data )
+		.first( function () {
+			this.displaySelect.off( 'choose', this.onChangeHandler );
+		}, this );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathInspector.prototype.updateMwData = function ( mwData ) {
+	var display, id;
+
+	// Parent method
+	ve.ui.MWMathInspector.super.prototype.updateMwData.call( this, mwData );
+
+	display = this.displaySelect.getSelectedItem().getData();
+	id = this.idInput.getValue();
+
+	mwData.attrs.display = display !== 'default' ? display : undefined;
+	mwData.attrs.id = id || undefined;
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathInspector.prototype.formatGeneratedContentsError = function ( $element ) {
+	return $element.text().trim();
+};
+
+/* Registration */
+
+ve.ui.windowFactory.register( ve.ui.MWMathInspector );
diff --git a/modules/ve-math/ve.ui.MWMathPage.js b/modules/ve-math/ve.ui.MWMathPage.js
new file mode 100644
index 0000000..cdb4065
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathPage.js
@@ -0,0 +1,79 @@
+/*!
+ * VisualEditor user interface MWMathPage class.
+ *
+ * @copyright 2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * Math dialog symbols page
+ *
+ * @class
+ * @extends OO.ui.PageLayout
+ *
+ * @constructor
+ * @param {string} name Unique symbolic name of page
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWMathPage = function VeUiMWMathPage( name, config ) {
+	var i, ilen, j, jlen, insert, symbol, symbols, $symbols,
+		symbolNode, symbolsNode, tex, classes;
+
+	// Parent constructor
+	ve.ui.MWMathPage.super.call( this, name, config );
+
+	this.label = config.label;
+
+	symbols = config.symbols;
+	$symbols = $( '<div>' ).addClass( 've-ui-specialCharacterPage-characters' );
+	symbolsNode = $symbols[ 0 ];
+
+	// Avoiding jQuery wrappers as advised in ve.ui.SpecialCharacterPage
+	for ( i = 0, ilen = symbols.length; i < ilen; i++ ) {
+		symbol = symbols[ i ];
+		if ( !symbol.notWorking && !symbol.duplicate ) {
+			tex = symbol.tex;
+			insert = symbol.insert;
+			classes = [ 've-ui-mwMathPage-symbol' ];
+			classes.push(
+				've-ui-mwMathSymbol-' + tex.replace( /[^\w]/g, function ( c ) {
+					return '_' + c.charCodeAt( 0 ) + '_';
+				} )
+			);
+			if ( symbol.wide ) {
+				classes.push( 've-ui-mwMathPage-symbol-wide' );
+			}
+			if ( symbol.contain ) {
+				classes.push( 've-ui-mwMathPage-symbol-contain' );
+			}
+			if ( symbol.largeLayout ) {
+				classes.push( 've-ui-mwMathPage-symbol-largeLayout' );
+			}
+			symbolNode = document.createElement( 'div' );
+			for ( j = 0, jlen = classes.length; j < jlen; j++ ) {
+				symbolNode.classList.add( classes[ j ] );
+			}
+			$.data( symbolNode, 'symbol', symbol );
+			symbolsNode.appendChild( symbolNode );
+		}
+	}
+
+	this.$element
+		.addClass( 've-ui-mwMathPage' )
+		.append( $( '<h3>' ).text( name ), $symbols );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWMathPage, OO.ui.PageLayout );
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWMathPage.prototype.setupOutlineItem = function ( outlineItem ) {
+	ve.ui.MWMathPage.super.prototype.setupOutlineItem.call( this, outlineItem );
+	this.outlineItem.setLabel( this.label );
+	this.outlineItem.$element.addClass( 've-ui-mwMathPage-outline' );
+};
diff --git a/modules/ve-math/ve.ui.MWMathSymbols.css b/modules/ve-math/ve.ui.MWMathSymbols.css
new file mode 100644
index 0000000..b6c1246
--- /dev/null
+++ b/modules/ve-math/ve.ui.MWMathSymbols.css
@@ -0,0 +1,2557 @@
+/*!
+ * This file is GENERATED by tools/makeSvgsAndCss.js
+ * DO NOT EDIT
+ */
+
+.ve-ui-mwMathSymbol-10_94__123_10_94__123_8_125__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%225.074ex%22%20height%3D%223.009ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-1150.1%202184.8%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M213%20578l-13-5q-14-5-40-10t-58-7H83v46h19q47%202%2087%2015t56%2024%2028%2022q2%203%2012%203%209%200%2017-6V361l1-300q [...]
+	background-position: 50% 16.53086294244228%;
+}
+
+.ve-ui-mwMathSymbol-10_94__123_30_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.237ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-1006.6%201824.2%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M213%20578l-13-5q-14-5-40-10t-58-7H83v46h19q47%202%2087%2015t56%2024%2028%2022q2%203%2012%203%209%200%2017-6V361l1-300q [...]
+	background-position: 50% 31.900288917458088%;
+}
+
+.ve-ui-mwMathSymbol-45_94__92_circ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%223.407ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%201467.1%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3E45%20Superscript%20ring%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M462%200q-18%203-129%203-116%200-134-3h-9 [...]
+}
+
+.ve-ui-mwMathSymbol-A_32__92_xleftarrow_123_n_43__92_mu_45_1_125__32_B_32__92_xrightarrow_91_T_93__123_n_92_pm_32_i_45_1_125__32_C {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.813ex%22%20width%3D%2218.272ex%22%20height%3D%225.843ex%22%20viewBox%3D%220%20-1508.9%207866.9%202515.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eupper%20A%20left-arrow%20Overscript%20n%20plus%20mu%20minus%201%20Endscripts%20upper%20B%20right-arrow%20Underscript%20upper%20T%20Overscript% [...]
+}
+
+.ve-ui-mwMathSymbol-_123__125__1_94_2_92__33__92_Omega_3_94_4 {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%223.425ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%201474.5%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3ESubscript%201%20Superscript%202%20Baseline%20normal%20upper%20Omega%203%20Superscript%204%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_123__92_operatorname_123_d_125__92__33_y_92_over_92_operatorname_123_d_125__92__33_x_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.005ex%22%20width%3D%223.479ex%22%20height%3D%225.676ex%22%20viewBox%3D%220%20-1580.7%201498%202443.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartFraction%20normal%20d%20y%20Over%20normal%20d%20x%20EndFraction%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3 [...]
+}
+
+.ve-ui-mwMathSymbol-_123__92_partial_94_2_92_over_92_partial_32_x_1_92_partial_32_x_2_125_y {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.338ex%22%20width%3D%229.463ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1652.5%204074.2%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartFraction%20normal%20partial-differential%20squared%20Over%20normal%20partial-differential%20x%201%20normal%20partial-differential%20x%202% [...]
+}
+
+.ve-ui-mwMathSymbol-_123__92_scriptstyle_92_text_123_a_125__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.829ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-432.6%20357.1%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ea%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_123_dy_32__92_over_32_dx_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.005ex%22%20width%3D%223.403ex%22%20height%3D%225.676ex%22%20viewBox%3D%220%20-1580.7%201465%202443.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartFraction%20d%20y%20Over%20d%20x%20EndFraction%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M366%20683q1%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_123_x_2_125__94_3 {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.463ex%22%20height%3D%223.009ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-1006.6%201491.2%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M52%20289q7%2042%2054%2097t116%2056q35%200%2064-18t43-45q42%2063%20101%2063%2037%200%2064-22t28-59q0-29-14-47t-27-22-23 [...]
+	background-position: 50% 39.099866144800835%;
+}
+
+.ve-ui-mwMathSymbol-_124_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.657ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20283%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Evertical-bar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M139-249h-2q-12%200-18%2014v486l1%20486q10%2013%2019%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_40_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.915ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20394%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M94%20250q0%2069%2010%20131t23%20107%2037%2088%2038% [...]
+}
+
+.ve-ui-mwMathSymbol-_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.915ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20394%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M60%20749l4%201h22l28-24q94-85%20137-212t43-264q0-6 [...]
+}
+
+.ve-ui-mwMathSymbol-_42_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.058ex%22%20width%3D%221.173ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20505%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Easterisk%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M229%20286q-13%20134-13%20150%200%2018%2024%2028h5q4%200%206% [...]
+}
+
+.ve-ui-mwMathSymbol-_43_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eplus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20237v13l14%2020h299v150l1%20150q10%2013%2019%2013%2013%200% [...]
+}
+
+.ve-ui-mwMathSymbol-_45_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.511ex%22%20width%3D%221.819ex%22%20height%3D%221.009ex%22%20viewBox%3D%220%20-360.8%20783%20434.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eminus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20237v13l14%2020h581q15-8%2015-20t-15-20H98q-14%207-14%2020z [...]
+}
+
+.ve-ui-mwMathSymbol-_47_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eslash%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M423%20750q9%200%2015-6t6-14q0-5-173-482T92-240q-7-10-17-10-7% [...]
+}
+
+.ve-ui-mwMathSymbol-_58__61_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.476ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%201066%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecolon%20equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M78%20370q0%2024%2017%2042t43%2018q24%200%2042-16t19- [...]
+}
+
+.ve-ui-mwMathSymbol-_60_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M694-11v-8l-6-14-10-7q-7%200-154%2069T234%20166L90%20235q-7 [...]
+}
+
+.ve-ui-mwMathSymbol-_61_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.819ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%20783%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eequals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20347q0%2013%2014%2020h637q15-8%2015-20%200-11-14-19l-318-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_62_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20520q0%208%204%2013t8%206l3%201q7%200%20154-69t291- [...]
+}
+
+.ve-ui-mwMathSymbol-_91_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.657ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20283%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-bracket%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M118-250V750h137v-40h-97v-920h97v-40H118z%22%2F%3E%3C%2F [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Alpha {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.754ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20755%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20A%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M255%200q-15%203-115%203Q48%203%2039%200h-7v46h15 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_And {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20783%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eampersand%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M156%20540q0%2080%2045%20128t101%2048q52%200%2075-45t24-93 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Bbbk {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.303ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20561%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-struck%20k%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M519%20443q0-17-22-17-39-4-136-91-33-27-46-40-8-6-5 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Beta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.656ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20713%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20B%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M131%20622q-7%207-11%209t-16%203-43%203H28v46h318q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Biggl_40_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.171ex%22%20width%3D%221.851ex%22%20height%3D%227.509ex%22%20viewBox%3D%220%20-1867.7%20797%203233.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M758-1237v-3l-6-9h-16q-18%200-19%201-6%203-45%204 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Biggr_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.171ex%22%20width%3D%221.851ex%22%20height%3D%227.509ex%22%20viewBox%3D%220%20-1867.7%20797%203233.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%201741q0%209%2018%209h14q8%200%2016-7t38-43q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Bigl_40_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.838ex%22%20width%3D%221.398ex%22%20height%3D%224.843ex%22%20viewBox%3D%220%20-1293.7%20602%202085%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M180%2096v154l25%20291%2061%20229%2087%20174%2091%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Bigr_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.838ex%22%20width%3D%221.398ex%22%20height%3D%224.843ex%22%20viewBox%3D%220%20-1293.7%20602%202085%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M35%201138q0%2012%2016%2012h18q44-37%2084-81t90-12 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Box {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ewhite%20medium%20square%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M71%200Q59%204%2055%2016v330l1%20330q8%2010%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Bumpeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20783%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egeometrically-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M245%20367q6%2048%2043%2086t104%2039q53%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Cap {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-intersection%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M88-21H75L55-7v287q1%20134%205%20148%201%202%201% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Chi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.754ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20755%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20X%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M270%200q-18%203-129%203Q46%203%2031%200h-8v46h17q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Cup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-union%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M591%20598h1q12%200%2019-15V376v-80q-1-134-5-148-1-2-1-3 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Delta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.946ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20838%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Delta%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M51%200q-5%204-5%207%200%202%20169%20350t173% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Downarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.431ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20616%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edown%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M401%20694q11%200%2021-13V375l1-305%2012%2011q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Epsilon {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.593ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20686%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20E%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M128%20619q-7%207-11%209t-16%203-43%203H25v46h572v [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Eta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.754ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20755%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20H%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M128%20622q-7%207-11%209t-16%203-43%203H25v46h11q2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Finv {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.303ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20561%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eturned%20upper%20F%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M457%20681q14%2014%2020%2014%208%200%2020-14V12L48 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Game {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.496ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20644%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eturned%20sans%20serif%20upper%20G%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M239%20665q-45%200-85-12t-64-24-24- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Gamma {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.463ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20630%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Gamma%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M128%20619q-7%207-11%209t-16%203-43%203H25v46h [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Im {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.298ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20559%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20black%20letter%20upper%20I%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M190%20601q-29%200-53-14t-40-34-2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Iota {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.85ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20366%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20I%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M328%200q-21%203-148%203T32%200H21v46h22q49%200%2063 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Kappa {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20K%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M128%20622q-7%207-11%209t-16%203-43%203H25v46h11q2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Lambda {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.623ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20699%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Lamda%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M320%20708q6%208%2020%208h15q12%200%2017-8%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Leftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M944%20153q0-13-15-20H318l10-10q51-54%2086-123 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Leftrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20right%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M308%20524q10%202%2015%202%2017%200%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Lleftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%222.334ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%201005%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20triple%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M944%2054q-2-10-15-18H372q0-2%205-10t18-30%202 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Longleftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%223.749ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201614%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elong%20left%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M274%20173h1265q1-1%203-2t3-2%202-2%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Longleftrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%224.327ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201863%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elong%20left%20right%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M1438%20514q0%2011%2016%2011h13 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Longrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%223.816ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201643%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elong%20right%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M1218%20514q0%2011%2016%2011h13q2%200% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Lsh {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.173ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20505%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup-arrow%20with%20tip%20left%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20555q18%2012%2023%2015t28%2022%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Mu {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.141ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20922%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20M%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M132%20622q-7%207-11%209t-16%203-43%203H29v46h106q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Nu {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.754ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20755%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20N%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046q32%202%2052%2010t24%2013%2010%2017v548h-4 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Omega {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20727%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Omega%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20454q0%2049%2020%2092t52%2071%2070%2048%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_P {
+	background-image: url(data:image/svg+xml,%3Csvg%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.417ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-934.9%20610%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eparagraph-sign%3C%2Fdesc%3E%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22matrix%281%200%200%20-1%200%200%29%20scale%2871.759%29%20matrix%281%200%200%20-1%200%200%29%22%20fill%3D [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Phi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20727%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Phi%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M312%20622q-2%201-5%203t-4%204-6%202-11%203-16%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Pi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.754ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20755%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Pi%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M128%20619q-7%207-11%209t-16%203-43%203H25v46h699 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Pr {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.515ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201083%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M130%20622q-7%207-11%209t-16%203-43%203H27v46h249q39%200%2055%201%2088%200%20140-13t96-55q57-53%2057-127%200-68-51-117t-122 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_Psi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Psi%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M340%20622q-2%201-5%203t-4%204-6%202-11%203-16%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Re {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.935ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20833%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20black%20letter%20upper%20R%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M27%20496q4%2073%2075%20131t132%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Rho {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.593ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20686%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20P%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M130%20622q-7%207-11%209t-16%203-43%203H27v46h249q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Rightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M580%20514q0%2011%2016%2011h13q2%200%204-1t2- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Rrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%222.334ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%201005%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20triple%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q0%2010%2012%2020h740l-9%207q-79%206 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Rsh {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.173ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20505%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup-arrow%20with%20tip%20right%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M301%20722q38-104%20142-167l-6-4-15-10 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_S {
+	background-image: url(data:image/svg+xml,%3Csvg%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.417ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-934.9%20610%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esection-sign%3C%2Fdesc%3E%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22matrix%281%200%200%20-1%200%200%29%20scale%2871.759%29%20matrix%281%200%200%20-1%200%200%29%22%20fill%3D%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Sigma {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20727%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Sigma%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M666%20247q-2-3-14-121T638%204V0H95Q59%200%205 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Subset {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-subset%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20250q0%20122%2082%20200t194%2089h35q16%200%2035%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Supset {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-superset%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20520q0%2012%2015%2020h199q30%200%2046%201%2084%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Tau {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20727%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20T%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M36%20443q1%205%2010%20115t9%20113v6h611v-6q1-5%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Theta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Theta%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20340q0%2083%2030%20154t78%20116%20106%207 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Uparrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.431ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20616%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M228-179q-1-1-2-3t-3-4-2-3-3-3-4-1-6-1q-12%200-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Updownarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.431ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20616%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20down%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M290%20755q8%2017%2015%2017t13-15%2025-51 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Upsilon {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Upsilon%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20551q0%2053%2036%20103t103%2051q46%200% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Vdash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20727%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eforces%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20678q0%201%201%203t2%203%203%204%204%203%205%202%207%201q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Vvdash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.076ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20894%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etriple-vertical-bar-right-turnstile%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20678q0%201%201%203t2%203%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Xi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20672%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Xi%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M47%20509l8%20167q0%201%20278%201t278-1l8-167q0-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_Zeta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.431ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20616%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20Z%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M69%20443q0%209%205%20111t6%20129h469q6-6%206-19%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92__123_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-brace%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M434-231q0-13-6-19h-18q-129%200-180%2066-5%207-8%2012t-5% [...]
+}
+
+.ve-ui-mwMathSymbol-_92__123_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-brace%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M434-231q0-13-6-19h-18q-129%200-180%2066-5%207-8%2012t-5% [...]
+}
+
+.ve-ui-mwMathSymbol-_92__124_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eparallel-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M133%20736q5%2014%2020%2014%2011%200%2017-11%202-4%202-4 [...]
+}
+
+.ve-ui-mwMathSymbol-_92__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-brace%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M65%20731q0%2014%203%2016t20%203q83%200%20128-25t63-55q9 [...]
+}
+
+.ve-ui-mwMathSymbol-_92__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-brace%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M65%20731q0%2014%203%2016t20%203q83%200%20128-25t63-55q9 [...]
+}
+
+.ve-ui-mwMathSymbol-_92__37_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.946ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20838%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Epercent-sign%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M465%20605q-37%200-71%209t-54%2018-21%209q13-33%2013-93 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_acute_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.343ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-863.1%20534%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207 [...]
+	background-position: 50% 42.48981426353332%;
+}
+
+.ve-ui-mwMathSymbol-_92_aleph {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.431ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20616%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20alef%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20613q0%2030%206%2050t13%2025%2011%206q9%200%209-13 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_aleph {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.431ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20616%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20alef%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20613q0%2030%206%2050t13%2025%2011%206q9%200%209-13 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_alpha {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.498ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20645%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M34%20156q0%20114%2086%20200t189%2086q70%200%20112-40t57-98q6-29%207-67v-29q49%2074%2075%20166%204%2014%206%2016t16%203q21%2 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_amalg {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.754ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20755%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eamalgamation-or-coproduct%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M28%20660q0%2016%203%2019t15%204h4q37-2%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_and {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elogical-and%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M318%20591q7%207%2015%207%2011%200%2015-7%201-1%2066-146t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_angle {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20727%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20angle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M71%200l-3%202q-3%201-5%203t-5%206-3%209q0%202%202%208 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_approx {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.105ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ealmost-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20319q0%2041%2017%2074t42%2051%2049%2028%2042%2010h8 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_approxeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20783%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ealmost-equal-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M220%20523q-57%200-96-37t-40-74q-3-29-15-29- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_arccos {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%226.28ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%202704%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15%2 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_arccot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%226.269ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-719.6%202699%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15% [...]
+	background-position: 50% 50.24929558973531%;
+}
+
+.ve-ui-mwMathSymbol-_92_arccsc {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%226.15ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%202648%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15%2 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_arcsec {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%226.15ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%202648%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15%2 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_arcsin {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%226.025ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%202594%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15% [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_arctan {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%226.529ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-719.6%202811%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15% [...]
+	background-position: 50% 50.24929558973531%;
+}
+
+.ve-ui-mwMathSymbol-_92_arg {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.268ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-576.1%201407%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15% [...]
+	background-position: 50% 68.30954417959909%;
+}
+
+.ve-ui-mwMathSymbol-_92_asymp {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.014ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eequivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20464q0%207%205%2013t14%207q6%200%2034-20t64-44%2096 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_backepsilon {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.071ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20461%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esmall-contains-as-member%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M154-1q-32%200-42%204t-10%2023q0%2037%2056%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_backprime {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.077ex%22%20width%3D%22.65ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-647.8%20280%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ereversed-prime%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M12%20501q0%2026%2019%2041t32%2016q10%202%2014%202%2037%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_backsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.819ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%20783%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ereversed-tilde%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M222%20133q-75%200-120%2064T56%20335q0%2027%2010%2030%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_backsimeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.06ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ereversed-tilde-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20433q0%2031%2015%2031%203%200%206-3%205-7%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_backslash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eset-minus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20731q0%209%206%2014t13%205q10%200%2017-10%204-7%20178 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bar_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-719.6%20534%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207- [...]
+	background-position: 50% 50.24929558973531%;
+}
+
+.ve-ui-mwMathSymbol-_92_barwedge {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.431ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20616%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enand%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20698q1%2010%2015%2018h470q14-8%2015-18%200-4-1-7t-2-5-3-4- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_because {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.561ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-576.1%20672%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebecause%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M23%20411q0%2026%2018%2043t43%2017q24%200%2041-17t18-43-17-43 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_Bmatrix_125__32_x_32__38__32_y_32__92__92__32_z_32__38__32_v_32__92_end_123_Bmatrix_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%229.087ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%203912.5%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStart%202%20By%202%20Matrix%201st%20Row%201st%20Column%20x%202nd%20Column%20y%202nd%20Row%201st%20Column%20z%202nd%20Column%20v%20EndMatrix%3C% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_Vmatrix_125__32_x_32__38__32_y_32__92__92__32_z_32__38__32_v_32__92_end_123_Vmatrix_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%227.926ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%203412.5%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eparallel-to%20StartLayout%201st%20Row%201st%20Column%20x%202nd%20Column%20y%202nd%20Row%201st%20Column%20z%202nd%20Column%20v%20EndLayout%20par [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_align_125__32_f_40_x_41__32__38__32__61__32__40_a_43_b_41__94_2_32__92__92__32__38__32__61__32_a_94_2_43_2ab_43_b_94_2_32__92__92__32__92_end_123_align_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.671ex%22%20width%3D%2221.814ex%22%20height%3D%226.509ex%22%20viewBox%3D%220%20-1652.5%209392.2%202802.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartLayout%201st%20Row%201st%20Column%20f%20left-parenthesis%20x%20right-parenthesis%202nd%20Column%20equals%20left-parenthesis%20a%20plus%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_alignat_125__123_2_125__32_f_40_x_41__32__38__32__61__32__40_a_43_b_41__94_2_32__92__92__32__38__32__61__32_a_94_2_43_2ab_43_b_94_2_32__92__92__32__92_end_123_alignat_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.838ex%22%20width%3D%2221.169ex%22%20height%3D%226.843ex%22%20viewBox%3D%220%20-1724.2%209114.4%202946.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartLayout%201st%20Row%201st%20Column%20f%20left-parenthesis%20x%20right-parenthesis%202nd%20Column%20equals%20left-parenthesis%20a%20plus%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_array_125__123__124_c_124_c_124_c_124__125__32_a_32__38__32_b_32__38__32_S_32__92__92__32__92_hline_32_0_38_0_38_1_92__92__32_0_38_1_38_1_92__92__32_1_38_0_38_1_92__92__32_1_38_1_38_0_92__92__32__92_end_123_array_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-8.005ex%22%20width%3D%2210.75ex%22%20height%3D%2217.176ex%22%20viewBox%3D%220%20-3948.7%204628.5%207395.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartEnclose%20left%20right%20StartLayout%201st%20Row%201st%20Column%20a%202nd%20Column%20b%203rd%20Column%20upper%20S%202nd%20Row%201st%20Col [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_array_125__123_lcl_125__32_z_32__38__32__61__32__38__32_a_32__92__92__32_f_40_x_44_y_44_z_41__32__38__32__61__32__38__32_x_32__43__32_y_32__43__32_z_32__92_end_123_array_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%2225.334ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%2010907.8%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartLayout%201st%20Row%201st%20Column%20z%202nd%20Column%20equals%203rd%20Column%20a%202nd%20Row%201st%20Column%20f%20left-parenthesis%20x%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_array_125__123_lcr_125__32_z_32__38__32__61__32__38__32_a_32__92__92__32_f_40_x_44_y_44_z_41__32__38__32__61__32__38__32_x_32__43__32_y_32__43__32_z_32__92_end_123_array_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%2225.334ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%2010907.8%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartLayout%201st%20Row%201st%20Column%20z%202nd%20Column%20equals%203rd%20Column%20a%202nd%20Row%201st%20Column%20f%20left-parenthesis%20x%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_bmatrix_125__32_x_32__38__32_y_32__92__92__32_z_32__38__32_v_32__92_end_123_bmatrix_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%228.056ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%203468.5%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStart%202%20By%202%20Matrix%201st%20Row%201st%20Column%20x%202nd%20Column%20y%202nd%20Row%201st%20Column%20z%202nd%20Column%20v%20EndMatrix%3C% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_cases_125__32_3x_32__43__32_5y_32__43__32_z_32__92__92__32_7x_32__45__32_2y_32__43__32_4z_32__92__92__32__45_6x_32__43__32_3y_32__43__32_2z_32__92_end_123_cases_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.671ex%22%20width%3D%2217.472ex%22%20height%3D%228.509ex%22%20viewBox%3D%220%20-2083%207522.4%203663.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartLayout%20Enlarged%20left-brace%201st%20Row%203%20x%20plus%205%20y%20plus%20z%202nd%20Row%207%20x%20minus%202%20y%20plus%204%20z%203rd%20Row [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_matrix_125__32_x_32__38__32_y_32__92__92__32_z_32__38__32_v_32__92_end_123_matrix_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%225.58ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%202402.5%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartLayout%201st%20Row%201st%20Column%20x%202nd%20Column%20y%202nd%20Row%201st%20Column%20z%202nd%20Column%20v%20EndLayout%3C%2Fdesc%3E%3Cdefs% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_pmatrix_125__32_x_32__38__32_y_32__92__92__32_z_32__38__32_v_32__92_end_123_pmatrix_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%229.022ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%203884.5%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStart%202%20By%202%20Matrix%201st%20Row%201st%20Column%20x%202nd%20Column%20y%202nd%20Row%201st%20Column%20z%202nd%20Column%20v%20EndMatrix%3C% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_begin_123_vmatrix_125__32_x_32__38__32_y_32__92__92__32_z_32__38__32_v_32__92_end_123_vmatrix_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%226.895ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%202968.5%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStart%202%20By%202%20Determinant%201st%20Row%20x%20y%202nd%20Row%20z%20v%20EndDeterminant%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_beta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.342ex%22%20height%3D%222.509ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-791.3%20578%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M29-194q-6%206-6%208%200%203%2079%20320t84%20331q22%2068%2057%20119t66%2074q56%2047%20120%2047h2q62%200%20102-38t40-97q0-10 [...]
+	background-position: 50% 54.513914375023724%;
+}
+
+.ve-ui-mwMathSymbol-_92_beth {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.647ex%22%20height%3D%222.343ex%22%20viewBox%3D%22-17%20-863.1%20709%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20bet%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20706v20q0%2037%2020%2037%207%200%2011-4t11-18q10 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_between {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebetween%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M104%20730q0%2019%2019%2019%207%200%2015-4%2048-28%2099-74l1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigcap {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%222.592ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201116%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintersection%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M57%20516q11%2086%2047%20159t86%20122%20111%2085%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigcap__123_i_61_1_125__94_n {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.005ex%22%20width%3D%222.69ex%22%20height%3D%227.009ex%22%20viewBox%3D%220%20-1724.2%201158.2%203017.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintersection%20Underscript%20i%20equals%201%20Overscript%20n%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigcirc {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%222.334ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%201005%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elarge%20circle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q0%20103%2039%20192t101%20147%20139%2092%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigcup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%222.592ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201116%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eunion%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20911q2%2015%2015%2027t32%2012q17%200%2031-11t18-28q1-4 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigcup__123_i_61_1_125__94_n {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.005ex%22%20width%3D%222.69ex%22%20height%3D%227.009ex%22%20viewBox%3D%220%20-1724.2%201158.2%203017.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eunion%20Underscript%20i%20equals%201%20Overscript%20n%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D [...]
+}
+
+.ve-ui-mwMathSymbol-_92_biggl_40_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%221.721ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%20741%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M701-940q0-3-6-9h-31q-2%202-28%2027t-45%2043-54%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_biggr_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%221.721ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%20741%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M34%201438q0%208%203%2010t13%202h21q2-2%2028-27t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigl_40_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.075ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-934.9%20463%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M152%20251q0%20395%20236%20599h28q6-6%206-9%200-4- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigl_40__32__92_begin_123_smallmatrix_125__32_x_32__38__32_y_32__92__92__32_z_32__38__32_v_32__92_end_123_smallmatrix_125__32__92_bigr_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%225.448ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-934.9%202345.5%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStart%202%20By%202%20Matrix%201st%20Row%201st%20Column%20x%202nd%20Column%20y%202nd%20Row%201st%20Column%20z%202nd%20Column%20v%20EndMatrix%3C%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigodot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%223.521ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201516%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-dot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M668%20944q29%205%2076%205%2059%200%2070-1%20102-11%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigoplus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%223.521ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201516%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-plus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M668%20944q29%205%2076%205%2059%200%2070-1%20102-11% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigotimes {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%223.521ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201516%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-times%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M668%20944q29%205%2076%205%2059%200%2070-1%20102-11 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigr_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.075ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-934.9%20463%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M305%20251q0-396-236-600H56q-13%200-17%202t-4%209 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigsqcup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%222.592ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201116%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquare-union%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20911q4%2016%2016%2027t31%2012q17%200%2031-11t18 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigstar {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%222.204ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-791.3%20949%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eblack%20star%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M367%20395q7%2021%2031%2097t44%20135%2021%2061q0%204%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigtriangledown {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%222.076ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-647.8%20894%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ewhite%20down%20pointing%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M59%20480q0%205%202%209t5%206%206 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigtriangleup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.076ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20894%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ewhite%20up%20pointing%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M75%200l-3%202q-3%201-5%203t-5%206- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_biguplus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%222.592ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201116%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eunion-with-plus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20911q2%2015%2015%2027t32%2012q17%200%2031-11 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigvee {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%222.592ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201116%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elogical-or%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20900q0%2019%2014%2034t34%2016q31%200%2044-26%205- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bigwedge {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%222.592ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201116%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elogical-and%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M1055-401q0-18-13-33t-35-16q-30%200-44%2027-4%206-206 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_binom_123_n_125__123_k_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%224.847ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%202087%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartBinomialOrMatrix%20n%20Choose%20k%20EndBinomialOrMatrix%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M701 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_blacklozenge {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.561ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-863.1%20672%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eblack-lozenge%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M318%20709q7%207%2014%207%208%200%2012-3t130-202q137-2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_blacksquare {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eblack%20medium%20square%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M71%200Q59%204%2055%2016v330l1%20330q8%2010%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_blacktriangle {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20727%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eblack%20up%20pointing%20small%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M99-20Q84-11%2084%200q0%205% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_blacktriangledown {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20727%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eblack%20down%20pointing%20small%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20556q0%2011%2015%2020 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_blacktriangleleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eblack%20left%20pointing%20small%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M694-26q-8-14-18-15h-6L382 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_blacktriangleright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eblack%20right%20pointing%20small%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20523q0%201%202%204t7 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_boldsymbol_123__92_alpha_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.779ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20766%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebold-italic%20alpha%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M39%20166q0%2047%2020%2095t58%2092%20102%2071%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_boxdot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquared-dot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M71%200Q59%204%2055%2016v330l1%20330q8%2010%2014%2013h639 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_boxminus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquared-minus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M71%200Q59%204%2055%2016v330l1%20330q8%2010%2014%2013h6 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_boxplus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquared-plus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M71%200Q59%204%2055%2016v330l1%20330q8%2010%2014%2013h63 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_boxtimes {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquared-times%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M71%200Q59%204%2055%2016v330l1%20330q8%2010%2014%2013h6 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_breve_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.343ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-863.1%20534%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207 [...]
+	background-position: 50% 42.48981426353332%;
+}
+
+.ve-ui-mwMathSymbol-_92_bullet {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.105ex%22%20width%3D%221.173ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20505%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebullet%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20251q0%2077%2057%20135t137%2058%20137-56%2058-139q0-78-56- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_bumpeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edifference-between%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M245%20367q6%2048%2043%2086t104%2039q53%200%2093-36 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_cap {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintersection%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M88-21H75L55-7v287q1%20134%205%20148%201%202%201%203%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_cdot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.418ex%22%20width%3D%22.657ex%22%20height%3D%221.176ex%22%20viewBox%3D%220%20-432.6%20283%20506.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M78%20250q0%2024%2017%2042t43%2018q24%200%2042-16t19-43q0-25-17-43t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_cdots {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.418ex%22%20width%3D%222.734ex%22%20height%3D%221.176ex%22%20viewBox%3D%220%20-432.6%201177%20506.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emidline-horizontal-ellipsis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M78%20250q0%2024%2017%2042t43%2018q24%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_centerdot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.418ex%22%20width%3D%22.657ex%22%20height%3D%221.176ex%22%20viewBox%3D%220%20-432.6%20283%20506.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M78%20250q0%2024%2017%2042t43%2018q24%200%2042-16t19-43q0-25-17-43t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_check_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20534%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207- [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_chi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.466ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-576.1%20631%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M576-125q0-22-29-50t-60-29h-11q-82%200-113%2047-29%2043-70%20183l-9%2033q-1-1-36-40t-78-85-78-85-39-40q-4-3-10-3-7%200-12%20 [...]
+	background-position: 50% 63.70125935426535%;
+}
+
+.ve-ui-mwMathSymbol-_92_circ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.105ex%22%20width%3D%221.173ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20505%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ering%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20251q0%2077%2057%20135t137%2058%20137-56%2058-139q0-78-56-13 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_circeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-863.1%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ering-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M279%20612q0%2044%2031%2076t78%2033q45%200%2077-32t33-77q0 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_circlearrowleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-791.3%20783%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eanticlockwise%20open%20circle%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M369%20543v20l28%2020q11%200%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_circlearrowright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-791.3%20783%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eclockwise%20open%20circle%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M170%20637l43%2013q57-53%20100-69l [...]
+}
+
+.ve-ui-mwMathSymbol-_92_circledS {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%222.107ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-863.1%20907%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20circled%20upper%20S%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M451-175q-123%200-225%2060T66%2047%208% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_circledast {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-asterisk%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M57%20250q0%2077%2030%20142t79%20105%20104%2063%2011 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_circledcirc {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-ring%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M57%20250q0%2077%2030%20142t79%20105%20104%2063%20112%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_circleddash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-dash%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M57%20250q0%2077%2030%20142t79%20105%20104%2063%20112%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_clubsuit {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-863.1%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20%E2%99%A3%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M213%20532q0%2083%2052%20138t124%2056q72%200%2012 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_complement {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.173ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-934.9%20505%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecomplement%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M404%20269q8%200%2014-2t10-6%207-8%206-8l3-5v-68q0-69-1-7 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_cong {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.028ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-719.6%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eapproximately-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20388q0%2075%2046%20138t121%2063q38%200%2074- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_coprod {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%222.98ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201283%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecoproduct%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M220%20812q0%201-2%207t-4%2010-6%2011-9%2013-14%2013-19% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_coprod__123_i_61_1_125__94_N {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.005ex%22%20width%3D%222.98ex%22%20height%3D%227.343ex%22%20viewBox%3D%220%20-1867.7%201283%203161.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecoproduct%20Underscript%20i%20equals%201%20Overscript%20upper%20N%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a [...]
+}
+
+.ve-ui-mwMathSymbol-_92_cos {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.142ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%201353%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M370%20305h-21l-36%2015-16%2038q0%2023%2015%2038%205%205%205%206t-10%202q-26%204-49%204-49%200-80-32-47-47-47-157%200-82%20 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_cosh {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.445ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201914%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M370%20305h-21l-36%2015-16%2038q0%2023%2015%2038%205%205%205%206t-10%202q-26%204-49%204-49%200-80-32-47-47-47-157%200-82%20 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_cot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.131ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-719.6%201348%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M370%20305h-21l-36%2015-16%2038q0%2023%2015%2038%205%205%205%206t-10%202q-26%204-49%204-49%200-80-32-47-47-47-157%200-82%20 [...]
+	background-position: 50% 50.24929558973531%;
+}
+
+.ve-ui-mwMathSymbol-_92_coth {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.434ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201909%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M370%20305h-21l-36%2015-16%2038q0%2023%2015%2038%205%205%205%206t-10%202q-26%204-49%204-49%200-80-32-47-47-47-157%200-82%20 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_csc {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.012ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%201297%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M370%20305h-21l-36%2015-16%2038q0%2023%2015%2038%205%205%205%206t-10%202q-26%204-49%204-49%200-80-32-47-47-47-157%200-82%20 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_cup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eunion%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M591%20598h1q12%200%2019-15V376v-80q-1-134-5-148-1-2-1-3-19-77- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_curlyeqprec {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20783%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eequals-or-precedes%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M113%20424q-30%200-30%2020%200%209%2013%2020h25q6 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_curlyeqsucc {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20783%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eequals-or-succeeds%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M195%20713q0%2012%206%2016t13%205q13%200%2017-12t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_curlyvee {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.777ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20765%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecurly-logical-or%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20558q0%208%206%2014t15%206q4%200%2012-1t30-7%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_curlywedge {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.777ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20765%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecurly-logical-and%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M104-22q-9%200-15%206T83-2q0%2013%2015%2018t37%207% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_curvearrowleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%201005%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eanticlockwise%20top%20semicircle%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M361%20210q12%200%2012-28v- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_curvearrowright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%201005%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eclockwise%20top%20semicircle%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M972%20209q8%200%209-5t1-25q0-2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_dagger {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.043ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%20449%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edagger%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M182%20675q13%2030%2040%2030%2012%200%2021-5t10-9%2010-16l-1- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_daleth {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20672%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20dalet%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M62%20757q7%207%2013%207%2012%200%2022-23%205-10%208- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_dashv {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.431ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20616%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-tack%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M515%20678q0%201%201%203t2%203%203%204%204%203%205%202%207% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ddagger {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.043ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20449%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-dagger%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M181%20658q0%2047%2041%2047t41-47q0-25-11-86t-12-75q0- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ddot_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20534%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207- [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_ddot_32_y {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.313ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20565.2%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingAbove%20y%20With%20two-dots%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M21%20287q0%2014%2015%2048t48 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_deg {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.519ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-791.3%201515%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M376%20495v40q0%2024%201%2033%200%2045-10%2056t-51%2013h-18v23q0%2023%202%2023l10%201q10%201%2029%202t37%202%2037%202%2030 [...]
+	background-position: 50% 59.54789256141223%;
+}
+
+.ve-ui-mwMathSymbol-_92_delta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.059ex%22%20height%3D%222.343ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-863.1%20456%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M195%20609q0%2047%2032%2077t75%2031q17-1%2049-8t56-12%2026-7q18-8%2018-28%200-18-13-34t-35-16q-21%200-55%2029t-60%2030-39-1 [...]
+	background-position: 50% 42.48981426353332%;
+}
+
+.ve-ui-mwMathSymbol-_92_det {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.261ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201404%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M376%20495v40q0%2024%201%2033%200%2045-10%2056t-51%2013h-18v23q0%2023%202%2023l10%201q10%201%2029%202t37%202%2037%202%2030% [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_diagdown {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%222.076ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20894%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebox%20drawings%20light%20diagonal%20upper%20left%20to%20lower%20right%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_diagup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%222.076ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20894%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebox%20drawings%20light%20diagonal%20upper%20right%20to%20lower%20left%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_diamond {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.005ex%22%20width%3D%221.173ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20505%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ediamond%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M242%20486q3%202%208%202%206%200%208-2%204-2%20115-113t113-115 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_diamondsuit {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-863.1%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20%E2%99%A2%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M370%20714q0%203%205%208t13%205q10%200%2015-6t14- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_digamma {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.505ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M477%20261q0-4-4-5t-18-3-38-2-69-1H235L155-77l-9-5q-9-3-37-3-54%200-54%208l84%20338q85%20335%2087%20337%203%205%2013%205h51q [...]
+	background-position: 50% 53.88443669522087%;
+}
+
+.ve-ui-mwMathSymbol-_92_dim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.907ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201682%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M376%20495v40q0%2024%201%2033%200%2045-10%2056t-51%2013h-18v23q0%2023%202%2023l10%201q10%201%2029%202t37%202%2037%202%2030% [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_div {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edivision-sign%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M318%20466q0%2034%2021%2052t47%2019q32%200%2052-20t20-5 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_divideontimes {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edivision-times%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M366%20543q8%202%2016%202%2023%200%2037-7%2010-4%2024- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_dot_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20534%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207- [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_dot_32_y {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.313ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20565.2%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingAbove%20y%20With%20dot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M21%20287q0%2014%2015%2048t48%2071 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_doteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.819ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-791.3%20783%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eapproaches-the-limit%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20347q0%2013%2014%2020h637q15-8%2015-20%200-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_doteqdot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egeometrically-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M421%20474h-32l-50%2019-18%2048q0%2025%2016%2046 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_doteqdot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egeometrically-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M421%20474h-32l-50%2019-18%2048q0%2025%2016%2046 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_dotplus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-863.1%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edot-plus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M339%20717q0%2022%2015%2035t34%2014q22%200%2036-15t15-35-15 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_doublebarwedge {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.431ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-934.9%20616%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elogical-and-with-double-overbar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20795q1%2011%2015%2018h470q14-7% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_downarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.173ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20505%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edown-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M473%2086q10%200%2010-19v-6-5q0-3-2-3t-1-3-2-2-4-1-4-1-6- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_downdownarrows {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.946ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20838%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edown%20paired%20arrows%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M230%20681q10%2013%2021%2013%209-1%2019-14V-9 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_downharpoonleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%22.98ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20422%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edown%20harpoon%20with%20barb%20left%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M188%20295v278q0%2084%201%2099t11% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_downharpoonright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%22.98ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20422%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edown%20harpoon%20with%20barb%20right%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M190%20682q5%2012%2018%2012t18-11 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ell {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.98ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20422%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Escript%20l%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M345%20104h4l12-9%208-15-17-21q-84-79-146-79-36%200-60%2023t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_emptyset {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.173ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-863.1%20505%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20empty-set%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M331%20696q4%2012%208%2026t6%2022%205%2015%207%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_epsilon {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22.955ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20411%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M227-11q-78%200-132%2052T40%20174q0%2088%2047%20148%2034%2045%2086%2074t114%2034q2%201%2042%201h38q15-5%2015-20%200-26-41-26h [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_eqcirc {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.819ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%20783%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ering-in-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20347q0%2013%2014%2020h637q15-8%2015-20%200-13-11-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_eqsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.056ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eminus-tilde%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20439v4l1%206%206%207%206%207h638q14-14%2014-20t-14-20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_eqslantgtr {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eslanted-equals-or-greater-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20616q0%208%206%2014t10%206q8%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_eqslantless {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eslanted-equals-or-less-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M674%20636q8%200%2014-5t6-15q0-11-7-15-2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_equiv {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.06ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eidentical-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20444q0%2013%2014%2020h637q15-8%2015-20%200-14-16-20H7 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_eta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.18ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-576.1%20508%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M21%20287q1%203%202%208t5%2022%2010%2031%2015%2033%2020%2030%2026%2022%2033%209q24%200%2043-7t30-18%2016-22%208-19l2-7q0-2%20 [...]
+	background-position: 50% 68.30954417959909%;
+}
+
+.ve-ui-mwMathSymbol-_92_eth {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.303ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20561%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20%C3%B0%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M75%20566v38q0%2020%204%2025t23%206q22%200%2025-6t4- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_exists {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.303ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20561%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ethere-exists%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20661v13l14%2020h417q10-8%2013-15V15q-3-5-13-14L279% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_exp {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.584ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-576.1%201543%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M28%20218q0%2055%2020%20100t50%2073%2065%2042%2066%2015q53%200%2091-18t58-50%2028-64%209-71q0-7-7-14H126v-15q0-148%20100-18 [...]
+	background-position: 50% 63.70125935426535%;
+}
+
+.ve-ui-mwMathSymbol-_92_exp_a {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.693ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-576.1%202020.6%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M28%20218q0%2055%2020%20100t50%2073%2065%2042%2066%2015q53%200%2091-18t58-50%2028-64%209-71q0-7-7-14H126v-15q0-148%20100- [...]
+	background-position: 50% 68.30954417959909%;
+}
+
+.ve-ui-mwMathSymbol-_92_fallingdotseq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eapproximately-equals-or-the-image-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M15%20541q0%2028%2018%2044t42%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_flat {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.915ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20394%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20%E2%99%AD%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M200%20467q54%200%2093-39t39-107q0-174-228-332L88- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_forall {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.303ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20561%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Efor-all%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M0%20673q0%2011%207%2016t13%205q12%200%2018-14t44-113l44-116h [...]
+}
+
+.ve-ui-mwMathSymbol-_92_frac_123_2_125__123_4_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.838ex%22%20width%3D%222.009ex%22%20height%3D%225.176ex%22%20viewBox%3D%220%20-1437.2%20865%202228.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etwo-fourths%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M109%20429q-27%200-43%2018t-16%2044q0%2071%2053%20123t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_frown {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.26ex%22%20width%3D%222.334ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201005%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3E%E2%8C%A2%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20141q0%208%2017%2033t53%2060%2084%2069%20120%2057%20149 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gamma {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.273ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-576.1%20548%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M31%20249q-20%200-20%209%200%2017%2015%2046t40%2061%2063%2053%2077%2023q27%200%2033-1%2048-11%2079-54t53-131q14-60%2014-85%2 [...]
+	background-position: 50% 68.30954417959909%;
+}
+
+.ve-ui-mwMathSymbol-_92_gcd_40_m_44__32_n_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%229.849ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-863.1%204240.7%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M329%20409q44%2044%20100%2044%2030%200%2043-19t13-38q0-14-9-25t-27-11q-33%200-37%2030-2%2014%203%2021%200%201%201%203v1q [...]
+	background-position: 50% 55.43238550693736%;
+}
+
+.ve-ui-mwMathSymbol-_92_geq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20616q0%208%206%2014t10%206q8%200%20154 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_geqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-863.1%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-over-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20733q0%208%206%2014t10%206q8%200%20154 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_geqslant {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-or-slanted-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20616q0%208%206%2014t10%206q8%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gg {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%222.334ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%201005%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emuch-greater-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20539v8l5%2014%2014%206q7%200%20133-69%2090-49 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ggg {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%223.108ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%201338%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Every-much-greater-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M75-67q-10%200-15%206t-5%2013q0%208%206%2014% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gimel {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.082ex%22%20height%3D%222.343ex%22%20viewBox%3D%22-17%20-863.1%20466%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20gimel%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20750q12%2014%2020%2014%2012%200%2021-21t28-26q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gnapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-863.1%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-and-not-approximate%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M86%20730q-5%204-5%2010%200%207%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gneq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-719.6%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-and-single-line-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20614q0%206%204%2011t8%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-but-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M89%20745q6%207%2011%207%206%200%20294- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gnsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-863.1%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-but-not-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M88%20723q7%207%2011%207%207%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_grave_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.343ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-863.1%20534%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207 [...]
+	background-position: 50% 42.48981426353332%;
+}
+
+.ve-ui-mwMathSymbol-_92_gtrapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-or-approximate%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M90%20727q-7%207-7%2016%200%208%206%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gtrdot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-dot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20521q0%208%207%2014t11%206q7%200%20295-137t294- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gtreqless {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.509ex%22%20viewBox%3D%220%20-1006.6%20783%201510.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-equals-or-less-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M111%20425h-9l-14%206-5%2014v1q0% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gtreqqless {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%221.819ex%22%20height%3D%224.009ex%22%20viewBox%3D%220%20-1150.1%20783%201726.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-above-double-line-equal-above-less-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M104%20541q-6 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gtrless {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-or-less-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20661q0%207%205%2013t16%207q7-2%20292- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gtrsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-or-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M90%20697q-7%207-7%2015t5%2014%2011%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_gvertneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-but-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M89%20745q6%207%2011%207%206%200%20294- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_hat_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.343ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-863.1%20534%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207 [...]
+	background-position: 50% 42.48981426353332%;
+}
+
+.ve-ui-mwMathSymbol-_92_hbar {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.317ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20567%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eitalic%20h%20over%20two%20pi%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M182%20599q0%2012-8%2016t-41%204q-15%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_heartsuit {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20783%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20%E2%99%A1%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20490q0%2067%2016%20114t43%2070%2053%2032%205 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_hom {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.422ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201904%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M41%2046h14q39%200%2047%2014v107q0%2024%201%2050t0%2055%200%2057v153q0%2034-1%2060t0%2044%200%2017q-3%2019-14%2025t-45%209H [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_hookleftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.627ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201131%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-arrow%20with%20hook%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M903%20424v20l26%2020q47%200%2094-30t47-87q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_hookrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.627ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201131%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-arrow%20with%20hook%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20347q0%2033%2017%2057t41%2037%2046%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_iiiint_32_xyzt {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.338ex%22%20width%3D%2210.802ex%22%20height%3D%225.843ex%22%20viewBox%3D%220%20-1508.9%204650.7%202515.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Equadruple-integral%20x%20y%20z%20t%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M114-798q18-26%2051-26h2q28 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_iiint_32_xyz {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.338ex%22%20width%3D%228.602ex%22%20height%3D%225.843ex%22%20viewBox%3D%220%20-1508.9%203703.7%202515.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etriple-integral%20x%20y%20z%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M114-798q18-26%2051-26h2q28%200%205 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_iint_32_xy {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.338ex%22%20width%3D%226.324ex%22%20height%3D%225.843ex%22%20viewBox%3D%220%20-1508.9%202722.7%202515.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-integral%20x%20y%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M114-798q18-26%2051-26h2q28%200%2056%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_iint_92_limits_D_32_xy {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-4.005ex%22%20width%3D%226.324ex%22%20height%3D%227.509ex%22%20viewBox%3D%220%20-1508.9%202722.7%203233.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-integral%20Underscript%20upper%20D%20Endscripts%20x%20y%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_imath {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.804ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20346%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emodifying%20above%20d%20with%20tless%20i%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M75%20287q0%205%207%2026t21%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_in {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20672%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eelement-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20250q0%20122%2082%20200t194%2089h17q16%200%2042%201t5 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_inf {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.836ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201221%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M69%20609q0%2028%2018%2044t44%2016q23-2%2040-17t17-43q0-30-17-45t-42-15q-25%200-42%2015t-18%2045zM247%200q-15%203-104%203h- [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_infty {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%201005%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20infinity%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20217q0%2088%2056%20156t143%2069q88%200%20165- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_int_32_x {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.338ex%22%20width%3D%223.931ex%22%20height%3D%225.843ex%22%20viewBox%3D%220%20-1508.9%201692.7%202515.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintegral%20x%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M114-798q18-26%2051-26h2q28%200%2056%2060t52%20164 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_int_92_limits__123_1_125__94__123_3_125__32_x {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-4.005ex%22%20width%3D%223.931ex%22%20height%3D%229.176ex%22%20viewBox%3D%220%20-2226.5%201692.7%203950.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintegral%20Subscript%201%20Superscript%203%20Baseline%20x%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M114- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_int__123_1_125__94__123_3_125__32_x {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.338ex%22%20width%3D%225.263ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1652.5%202266.2%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintegral%20Subscript%201%20Superscript%203%20Baseline%20x%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M114- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_intercal {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.303ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-576.1%20561%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintercalate%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M318-182q-16-30-38-30h-5q-26%200-36%2030l-1%20266v267h-76 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_iota {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22.834ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20359%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M139-10q-28%200-47%2010T64%2025%2052%2052t-4%2022q0%2015%207%2035t30%2090%2050%20176l2%209q2%2010%203%2013t5%2012%206%2013%20 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_jmath {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%22.845ex%22%20height%3D%222.009ex%22%20viewBox%3D%22-27%20-576.1%20364%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emodifying%20above%20d%20with%20tless%20j%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M75%20284v3l6%2018%2020%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_kappa {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.349ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20581%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83-11q-13%200-21%207T51%208t-2%209q0%2013%2047%20200t51%20197q13%2028%2046%2028%2012-1%2020-7t10-13%202-10q0-11-17-75l-16-6 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_ker {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.203ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201379%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M36%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%209H2 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_lVert_32_z_32__92_rVert {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.444ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-863.1%201483%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M133%20736q5%2014%2020%2014%2011%200%2017-11%202-4%202-489t-2-489q-6-11-18-11-8%200-14%206l-1%201q-4%202-4%2064t-1%20429q0 [...]
+	background-position: 50% 55.43238550693736%;
+}
+
+.ve-ui-mwMathSymbol-_92_lambda {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.366ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20588%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M166%20673q0%2012%2017%2021h19q90-3%20114-50%206-15%2057-158t101-279%2050-140q7-20%2013-33t9-19%205-9%204-4%201-4-6-9h-68q-2 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_langle {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.915ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20394%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emathematical%20left-angle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M333-232q-1-7-6-12t-14-6q-10%200-17%2010-3% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lceil {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.043ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20449%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20ceiling%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M174%20734q4%2012%2016%2016h179q31%200%2042-3t11-17-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ldots {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.734ex%22%20height%3D%22.843ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-217.3%201177%20362.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M78%2060q0%2024%2017%2042t43%2018q24%200%2042-16t19-43q0-25-17-43T139%200%2096%2017%2078%2060zm447%200q0%2024%2017%2042t43%2 [...]
+	background-position: 50% 66.17946711154134%;
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__40__32__92_frac_123_1_125__123_2_125__32__92_right_32__41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%225.451ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%202347%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-parenthesis%20one-half%20right-parenthesis%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%22M213%20578l-13-5q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__47__32__92_frac_123_1_125__123_2_125__32__92_right_32__92_backslash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.171ex%22%20width%3D%226.882ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1724.2%202963%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eslash%20one-half%20reverse-solidus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%22M213%20578l-13-5q-14-5-40-10t- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__91__32__92_frac_123_1_125__123_2_125__32__92_right_32__93_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%224.485ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%201931%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-bracket%20one-half%20right-bracket%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%22M213%20578l-13-5q-14-5-40 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92_Uparrow_32__92_frac_123_1_125__123_2_125__32__92_right_32__92_Downarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.838ex%22%20width%3D%225.646ex%22%20height%3D%225.176ex%22%20viewBox%3D%220%20-1437.2%202431%202228.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20double%20arrow%20one-half%20down%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22c%22%20d%3D%22M213%20578 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92_Vert_32__92_frac_123_1_125__123_2_125__32__92_right_32__92_Vert {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.171ex%22%20width%3D%224.355ex%22%20height%3D%225.509ex%22%20viewBox%3D%220%20-1437.2%201875%202372%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eparallel-to%20one-half%20parallel-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M133%20736q5%2014%2020%2014%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92__123__32__92_frac_123_1_125__123_2_125__32__92_right_32__92__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%225.516ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%202375%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartSet%20one-half%20EndSet%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%22M213%20578l-13-5q-14-5-40-10t-58-7H8 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92_langle_32__92_frac_123_1_125__123_2_125__32__92_right_32__92_rangle {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%225.516ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%202375%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emathematical%20left-angle%20one-half%20mathematical%20right-angle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92_lceil_32__92_frac_123_1_125__123_2_125__32__92_right_32__92_rceil {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%224.74ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%202041%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20ceiling%20one-half%20right%20ceiling%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%22M213%20578l-13-5q-14-5 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92_lfloor_32__92_frac_123_1_125__123_2_125__32__92_right_32__92_rfloor {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%224.74ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%202041%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20floor%20one-half%20right%20floor%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%22M213%20578l-13-5q-14-5-40- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92_uparrow_32__92_frac_123_1_125__123_2_125__32__92_right_32__92_downarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.838ex%22%20width%3D%225.131ex%22%20height%3D%225.176ex%22%20viewBox%3D%220%20-1437.2%202209%202228.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup-arrow%20one-half%20down-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22c%22%20d%3D%22M213%20578l-13-5q-14-5-40-10t-58 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92_updownarrow_32__92_frac_123_1_125__123_2_125__32__92_right_32__92_Updownarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.838ex%22%20width%3D%225.388ex%22%20height%3D%225.176ex%22%20viewBox%3D%220%20-1437.2%202320%202228.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20down-arrow%20one-half%20up%20down%20double%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22d%22%20d%3D%22M213%2057 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_32__92_vert_32__92_frac_123_1_125__123_2_125__32__92_right_32__92_vert {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.171ex%22%20width%3D%223.324ex%22%20height%3D%225.509ex%22%20viewBox%3D%220%20-1437.2%201431%202372%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartAbsoluteValue%20one-half%20EndAbsoluteValue%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%22M213%20578l-13-5q- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_left_92_vert_32_s_32__92_right_92_vert {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.415ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-863.1%201040%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M139-249h-2q-12%200-18%2014v486l1%20486q10%2013%2019%2013%2013%200%2020-15v-970q-8-14-18-14h-2z%22%2F%3E%3Cpath%20stroke-w [...]
+	background-position: 50% 55.43238550693736%;
+}
+
+.ve-ui-mwMathSymbol-_92_leftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M944%20261v-11l-15-20H165q2-2%2017-14t29-27%2033-37%2033- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftarrowtail {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.17ex%22%20width%3D%222.592ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201116%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-arrow%20with%20tail%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q47%2027%2086%2072t57%2095h22q23%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftharpoondown {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.176ex%22%20viewBox%3D%220%20-360.8%201005%20506.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20harpoon%20with%20barb%20down%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20256q1%208%207%2014h867q15- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftharpoonup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.511ex%22%20width%3D%222.334ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-647.8%201005%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20harpoon%20with%20barb%20up%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M62%20230q-6%206-7%2014%200%208%202 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftleftarrows {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%222.334ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%201005%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20paired%20arrows%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M930%20437q14-11%2014-21t-10-17q-4-2-394-2H15 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-right-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M263%20479q4%2022%208%2027t17%205q20%200%2020-11%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftrightarrows {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%201005%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-arrow%20over%20right-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20500q47%2027%2086%2072t57%2095h [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftrightharpoons {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20harpoon%20over%20right%20harpoon%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M195%20504l3%2010h23q23%200% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftrightsquigarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.17ex%22%20width%3D%223.238ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201394%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20right%20wave%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M57%20250q102%2061%20143%20167h46l-4-10q-2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leftthreetimes {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-semidirect-product%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20674q0%208%207%2014t14%206h1q6%200%2023- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M674%20636q8%200%2014-6t6-15-7-14q-1-1-270-129 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-863.1%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-over-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M674%20753q8%200%2014-6t6-15-7-14q-1-1-270-129 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_leqslant {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-or-slanted-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M674%20636q8%200%2014-6t6-15-7-14q-1-1-2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lessapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-or-approximate%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M667%20761q2%201%206%201%209%200%2015-6t6- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lessdot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-dot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M86%20261q6%206%20295%20143t292%20137q7%200%2013-6t7-14 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lesseqgtr {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.509ex%22%20viewBox%3D%220%20-1006.6%20783%201510.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-equals-or-greater-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M674%20445q0-7-5-13t-14-7-286%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lesseqqgtr {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%221.819ex%22%20height%3D%224.009ex%22%20viewBox%3D%220%20-1150.1%20783%201726.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-above-double-line-equal-above-greater-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M674%201003q7 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lessgtr {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-or-greater-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M734%20181q0-8-6-14t-14-6q-3%200-328%20119 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lesssim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-or-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M674%20732q8%200%2014-6t6-15-7-14q-1-1-27 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lfloor {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.043ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20449%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20floor%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M174%20734q0%201%201%203t2%203%203%204%204%203%205%202% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lg {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.83ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-791.3%20788%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%209H26 [...]
+	background-position: 50% 59.54789256141223%;
+}
+
+.ve-ui-mwMathSymbol-_92_lim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.261ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201404%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%209H2 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_lim__123_n_32__92_to_32__92_infty_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.005ex%22%20width%3D%224.295ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-791.3%201849.1%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elimit%20Underscript%20n%20right-arrow%20normal%20infinity%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_liminf {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%226.485ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%202792%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%209H2 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_limsup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%227.181ex%22%20height%3D%222.509ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-791.3%203092%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%209H [...]
+	background-position: 50% 54.513914375023724%;
+}
+
+.ve-ui-mwMathSymbol-_92_ll {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%222.334ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%201005%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emuch-less-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M639-48q0-6-5-12t-15-7h-1q-6%200-82%2041Q430%2033%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_llcorner {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.173ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-504.3%20505%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebottom%20left%20corner%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20172v115q0%2054%203%2066t18%2013q12%200%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lll {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%223.108ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%201338%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Every-much-less-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M639-48q0-6-5-12t-15-7h-1q-6%200-82%2041Q430%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ln {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.96ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20844%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%209H26v [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_lnapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-863.1%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-and-not-approximate%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M86%20512q7%206%20295%20127t292%20122 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lneq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-and-single-line-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M380%20497q65%2031%20142%2067t1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-but-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M86%20472q7%205%20295%20142t292%20138q7%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lnsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-863.1%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-but-not-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M86%20450q7%205%20294%20142t293%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_log {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.003ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-791.3%201293%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%209H [...]
+	background-position: 50% 59.54789256141223%;
+}
+
+.ve-ui-mwMathSymbol-_92_log__123_10_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.894ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-791.3%202107.2%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%20 [...]
+	background-position: 50% 59.54789256141223%;
+}
+
+.ve-ui-mwMathSymbol-_92_longleftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%223.749ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201614%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elong%20left-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M165%20270h1345q15-8%2015-20t-15-20H165q2-2%2017-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_longleftrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%224.329ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201864%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elong%20left-right-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M165%20270h1529q-116%2087-143%20223v3q0%202- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_longmapsto {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%223.816ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201643%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elong%20right-arrow%20from%20bar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M95%20155v-46q0-26-3-36T75%2063q-14% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_longrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%223.816ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201643%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elong%20right-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20237v13l14%2020h1346q-116%2087-143%20223v3q0 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_looparrowleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%201005%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-arrow%20with%20loop%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q47%2027%2086%2072t57%2095h22q23%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_looparrowright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%201005%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-arrow%20with%20loop%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M35%20405q0%2049%2013%2084t38%2053%2051%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lozenge {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.561ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-863.1%20672%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elozenge%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M318%20709q7%207%2014%207%208%200%2012-3t130-202q137-213%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lrcorner {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.173ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-504.3%20505%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebottom%20right%20corner%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M404%20351q6%2015%2020%2015%2013%200%2016-13t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ltimes {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20783%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-normal-factor-semidirect-product%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M146%20479q13%2013%2020%2013%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_lvertneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-but-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M86%20472q7%205%20295%20142t292%20138q7%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mapsto {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-arrow%20from%20bar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M95%20155v-46q0-26-3-36T75%2063q-14%200-17% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mathbb_123_A_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20727%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edouble-struck%20upper%20A%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M130-1H63Q34-1%2026%202t-9%2015q0%207%205%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mathcal_123_A_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.914ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20824%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Escript%20upper%20A%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M576%20668q0%2020%2030%2040t54%2020q16%200%2015-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mathfrak_123_A_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.679ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20723%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EGerman%20upper%20A%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M22%20505q0%2058%2072%20119t177%2061h9q136%200%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mathit_123_1_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.198ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20516%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eitalic%201%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M248%20491q-20%200-20%2011%200%2014%208%2030%201%204%2010% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mathrm_123_A_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.754ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20755%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20upper%20A%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M255%200q-15%203-115%203Q48%203%2039%200h-7v46h15 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mathsf_123_A_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20672%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esans-serif%20upper%20A%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M183%20181q0-2-31-90T118%200H28l126%20346%2012 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_max {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.357ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%201876%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M41%2046h14q39%200%2047%2014v62q0%2017%201%2039t0%2042v66q0%2035-1%2059v23q-3%2019-14%2025t-45%209H25v23q0%2023%202%2023l10 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_max_40_x_44_y_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%229.738ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-863.1%204192.7%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M41%2046h14q39%200%2047%2014v62q0%2017%201%2039t0%2042v66q0%2035-1%2059v23q-3%2019-14%2025t-45%209H25v23q0%2023%202%2023 [...]
+	background-position: 50% 55.43238550693736%;
+}
+
+.ve-ui-mwMathSymbol-_92_measuredangle {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20727%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emeasured-angle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M71%200l-3%202q-3%201-5%203t-5%206-3%209q0%202%202%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mho {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20727%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Einverted%20ohm%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M126%20584q-7%200-16-45t-13-46q-2-3-24-3-29%200-29%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mid {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.657ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20283%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M139-249h-2q-12%200-18%2014v486l1%20486q10%2013%2019%2013%2013%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_min {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.907ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201682%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M41%2046h14q39%200%2047%2014v62q0%2017%201%2039t0%2042v66q0%2035-1%2059v23q-3%2019-14%2025t-45%209H25v23q0%2023%202%2023l10 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_min_40_x_44_y_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%229.287ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-863.1%203998.7%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M41%2046h14q39%200%2047%2014v62q0%2017%201%2039t0%2042v66q0%2035-1%2059v23q-3%2019-14%2025t-45%209H25v23q0%2023%202%2023 [...]
+	background-position: 50% 55.43238550693736%;
+}
+
+.ve-ui-mwMathSymbol-_92_models {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%222.025ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20872%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etrue%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M139-249h-2q-12%200-18%2014v486l1%20486q10%2013%2019%2013%2013% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mp {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-647.8%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eminus-or-plus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20467v13l14%2020h637q15-8%2015-20t-15-20H409V187h29 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_mu {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.412ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-576.1%20608%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M58-216q-14%200-24%208t-11%2022q0%2010%2073%20302t77%20298q13%2028%2046%2028%2012-1%2020-7t10-12%202-10q0-12-31-134t-33-137q [...]
+	background-position: 50% 68.30954417959909%;
+}
+
+.ve-ui-mwMathSymbol-_92_multimap {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.19ex%22%20width%3D%222.592ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201116%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emultimap%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M1055%20250q0-60-43-109T896%2092q-38%200-68%2014t-47%2034-26% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nLeftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20double%20arrow%20with%20stroke%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M397%20525q13%200%2017-1t4-8q0 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nLeftrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft%20right%20double%20arrow%20with%20stroke%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M395-24v5l22%2076%2023 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nRightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20double%20arrow%20with%20stroke%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M346%20174q2%202%2032%2075t33 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nVDash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.805ex%22%20height%3D%222.176ex%22%20viewBox%3D%22-50%20-791.3%20777%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enegated-double-vertical-bar-double-right-turnstile%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20681q14%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nVdash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.805ex%22%20height%3D%222.176ex%22%20viewBox%3D%22-50%20-791.3%20777%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-force%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20681q14%2014%2021%2014t19-12V428l2-253%20154%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nabla_92_psi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%223.47ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%201494%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20nabla%20psi%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M46%20676q0%203%205%207h730q5-4%205-7%200-2-169 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_natural {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.915ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20394%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20%E2%99%AE%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M65%20721q13%2013%2029%2013%206%200%2010-7V444l12% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ncong {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eapproximately-but-not-actually-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20417q0%2062%2046%20111t12 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nearrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%222.334ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-863.1%201005%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20right-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M582%20697q0%204%209%2013t14%2010q2%200%2025-14t67 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_neq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M166-215h-7l-12%203-6%208-2%207q0%207%205%2014l162%20316H [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nexists {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.484ex%22%20height%3D%222.843ex%22%20viewBox%3D%22-73%20-863.1%20639%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ethere-does-not-exist%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20661v13l14%2020h417q10-8%2013-15V15q-3-5 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ngeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eneither-greater-than-nor-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M97%2054q-15%200-15%2018%200%207% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ngeqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%221.819ex%22%20height%3D%223.676ex%22%20viewBox%3D%220%20-1006.6%20783%201582.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eneither-greater-than-nor-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M97%20172q-15%200-15%2018%200%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ngeqslant {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Egreater-than-and-single-line-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M97%2054q-15%200-15%2018%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ngtr {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-greater-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20514v6l7%2013%2011%208q6%200%20171-78%20163-77 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ni {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20672%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Econtains-as-member%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20520q0%2012%2015%2020h122q18%200%2029%201%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nleftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.116ex%22%20width%3D%222.334ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%201005%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-arrow%20with%20stroke%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M942%20250q0-6-14-20H511l-54-82q-17-24-37- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nleftrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.116ex%22%20width%3D%222.334ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%201005%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eleft-right-arrow%20with%20stroke%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M491%20272q0%203%2051%2080t55%2080q5 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nleq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eneither-less-than-nor-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82-124q0%204%201%207t6%207%206%207h [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nleqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%221.819ex%22%20height%3D%223.676ex%22%20viewBox%3D%220%20-1006.6%20783%201582.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eneither-less-than-nor-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%2034q0%2010%2011%2021h105l102%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nleqslant {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eless-than-and-single-line-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M102%20168q1%200%2049-22t96-44 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nless {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-less-than%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M693-14v-6l-6-13-12-8q-8%200-169%2078l-162%2075q-2%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nmid {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.734ex%22%20height%3D%222.843ex%22%20viewBox%3D%22-15%20-863.1%20316%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-divide%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M118%20737q13%2013%2020%2013l13-4%207-7V579l2-158%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_not_92_equiv {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.83ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20788%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-identical-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20444q0%2013%2014%2020h637q15-8%2015-20%200-14-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_not_92_gg {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%222.346ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%201010%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emuch-greater-than%20%CC%B8%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20539v8l5%2014%2014%206q7%200%20133- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_not_92_ggg {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%223.119ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%201343%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Every-much-greater-than%20%CC%B8%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M75-67q-10%200-15%206t-5%2013q0%208 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_not_92_in {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.561ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20672%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-an-element-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M196%2025Q84%20109%2084%20250q0%20122%2082%20200t1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_not_92_ll {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%222.346ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%201010%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emuch-less-than%20%CC%B8%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M639-48q0-6-5-12t-15-7h-1q-6%200-82%2041Q43 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_not_92_lll {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%223.119ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%201343%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Every-much-less-than%20%CC%B8%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M639-48q0-6-5-12t-15-7h-1q-6%200-82%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_not_92_ni {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.572ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20677%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-contain-as-member%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20520q0%2012%2015%2020h122q18%200%202 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nparallel {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.25ex%22%20height%3D%222.843ex%22%20viewBox%3D%22-15%20-863.1%20538%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-parallel-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M131%20737q3%202%207%206t6%205%207%202%2020-13V199l [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nprec {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-precede%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M386%20292q2%200%2053%20101t104%20205%2055%20105q1% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_npreceq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-precede-or-equal%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20344q0%205%2013%2020h29q142%200%2027 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.116ex%22%20width%3D%222.334ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%201005%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-arrow%20with%20stroke%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M54%20250q0%208%2012%2020h211l211%202%205 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nshortmid {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.604ex%22%20height%3D%221.676ex%22%20viewBox%3D%22-15%20-576.1%20260%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-divide%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M91%20417q13%2013%2020%2013t20-13V301l40%2040q30%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nshortparallel {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.992ex%22%20height%3D%221.676ex%22%20viewBox%3D%22-15%20-576.1%20427%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-parallel-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20417q12%2014%2020%2014l13-5%207-7V317l2-102%209 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.051ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-tilde%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M220%20366q38%200%2077-19t64-39%2030-20q3%200%2073%2082%2030 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nsubseteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eneither-a-subset-of-nor-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M146-283q0%201%2028%2070t28%2070h- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nsubseteqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eneither-a-subset-of-nor-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82-6q0%207%2013%2020h167l33%2080q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nsucc {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-succeed%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M103-43q-7%200-14%204t-7%2013l2%2016q21%20151%20191 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nsucceq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-succeed-or-equal%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M146-283q0%201%2028%2070t28%2070H95q-13%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nsupseteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eneither-a-superset-of-nor-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20606v7l13%2022h253q60%200%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nsupseteqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eneither-a-superset-of-nor-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20732q0%207%2013%2020h253q72 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ntriangleleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-normal-subgroup-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M693-30q-7-11-20-11-12%200-167%2075l-160%2076 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ntrianglelefteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-normal-subgroup-of-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82-123q0%209%2011%2020h73l72%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ntriangleright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%20783%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-contain-as-normal-subgroup%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20525q14%2014%2020%2014%201% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ntrianglerighteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-934.9%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-contain-as-normal-subgroup-or-equal%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20621q14%2014%2020 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nu {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.243ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20535%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M74%20431q1%200%2072%205t73%206q12%200%2012-8%200-6-46-193L137%2051h3l10%204q11%204%2027%2012t37%2019%2047%2033%2051%2046q98 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_nvDash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.547ex%22%20height%3D%222.176ex%22%20viewBox%3D%22-50%20-791.3%20666%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enot-true%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20681q14%2014%2020%2014t20-14V466h231l98%20113q97%2011 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nvdash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.547ex%22%20height%3D%222.176ex%22%20viewBox%3D%22-50%20-791.3%20666%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edoes-not-prove%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20681q14%2014%2020%2014t20-14V368h147l138%20162q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_nwarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%222.334ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-863.1%201005%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20left-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M204%20662q53%200%2097%2014t68%2029%2025%2015q4%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_odot {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-dot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q0%20144%20100%20238t228%2095q146%200%20242-98t9 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_oint_32_x {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.338ex%22%20width%3D%223.931ex%22%20height%3D%225.843ex%22%20viewBox%3D%220%20-1508.9%201692.7%202515.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Econtour-integral%20x%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M114-798q18-26%2051-26h2q28%200%2056%2060t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_omega {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.456ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20627%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M495%20384q0%2022%2019%2040t41%2019q19%200%2034-18t15-61q0-30-12-86t-37-123-72-117-106-49q-80%200-110%2077-1%202-7-5-59-72-1 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_ominus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-minus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q0%20144%20100%20238t228%2095q146%200%20242-98 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_argch_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%225.614ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-791.3%202417%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15 [...]
+	background-position: 50% 59.54789256141223%;
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_argsh_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%225.498ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-791.3%202367%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15 [...]
+	background-position: 50% 59.54789256141223%;
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_argth_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%225.486ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-791.3%202362%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M137%20305h-22l-37%2015-15%2039q0%2035%2034%2062t121%2027q73%200%20118-32t60-76q5-14%205-31t1-115v-70q0-48%205-66t21-18q15 [...]
+	background-position: 50% 59.54789256141223%;
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_ch_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.346ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201010%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M370%20305h-21l-36%2015-16%2038q0%2023%2015%2038%205%205%205%206t-10%202q-26%204-49%204-49%200-80-32-47-47-47-157%200-82%20 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_coth_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.434ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201909%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M370%20305h-21l-36%2015-16%2038q0%2023%2015%2038%205%205%205%206t-10%202q-26%204-49%204-49%200-80-32-47-47-47-157%200-82%20 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_d_125__92__33_t {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.153ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20927%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20d%20t%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M376%20495v40q0%2024%201%2033%200%2045-10%2056t-51%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_d_125__92__33_y_47__92_operatorname_123_d_125__92__33_x {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%226.672ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%202872.7%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20d%20y%20slash%20normal%20d%20x%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M376%20495v40q0%2024%201% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_lcm_125__40_m_44__32_n_41_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%229.977ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-863.1%204295.7%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M42%2046h14q39%200%2047%2014v64q0%2019%201%2043t0%2050%200%2055%200%2057v213q0%2026-1%2044t0%2017q-3%2019-14%2025t-45%20 [...]
+	background-position: 50% 55.43238550693736%;
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_sh_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.23ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20960%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M295%20316q0%2040-27%2069t-78%2029q-36%200-62-13-30-19-30-52-1-5%200-13t16-24%2043-25q18-5%2044-9t44-9%2032-13q17-8%2033-20t3 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_operatorname_123_th_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.218ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20955%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M27%20422q53%204%2082%2056t32%20122v15h40V431h135v-46H181V241q1-125%201-141t7-32q14-39%2049-39%2044%200%2054%2071%201%208%20 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_oplus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-plus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q0%20144%20100%20238t228%2095q146%200%20242-98t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_or {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elogical-or%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20580q1%207%206%2012t14%206q11%200%2021-18L333%2048l23 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_oslash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-division-slash%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q0%20144%20100%20238t228%2095q146%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_otimes {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecircled-times%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q0%20144%20100%20238t228%2095q146%200%20242-98 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_overbrace_123__32_1_43_2_43__92_cdots_43_100_32__125__94__123_5050_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%2217.17ex%22%20height%3D%225.509ex%22%20viewBox%3D%220%20-2154.8%207392.8%202372%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingAbove%201%20plus%202%20plus%20midline-horizontal-ellipsis%20plus%20100%20With%20top-brace%20Overscript%205050%20Endscripts%3C%2Fdesc%3E%3 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_overleftarrow_123_c_32_d_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.386ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1508.9%201027.4%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingAbove%20c%20d%20With%20left-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M34%20159q0%20109%208 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_overline_123_g_32_h_32_i_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%223.404ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-1150.1%201465.5%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingAbove%20g%20h%20i%20With%20bar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M311%2043q-15-13-44-28T2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_overrightarrow_123_a_32_b_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.34ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1508.9%201007.6%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingAbove%20a%20b%20With%20right-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%207 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_overset_123__92_alpha_125__123__92_omega_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.456ex%22%20height%3D%223.009ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-1150.1%20627%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M495%20384q0%2022%2019%2040t41%2019q19%200%2034-18t15-61q0-30-12-86t-37-123-72-117-106-49q-80%200-110%2077-1%202-7-5-59-72 [...]
+	background-position: 50% 16.53086294244228%;
+}
+
+.ve-ui-mwMathSymbol-_92_overset_123__92_alpha_125__123__92_underset_123__92_gamma_125__123__92_omega_125__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.456ex%22%20height%3D%225.009ex%22%20style%3D%22vertical-align%3A-2.338ex%22%20viewBox%3D%220%20-1150.1%20627%202156.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M495%20384q0%2022%2019%2040t41%2019q19%200%2034-18t15-61q0-30-12-86t-37-123-72-117-106-49q-80%200-110%2077-1%202-7-5-59-7 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_overset_123__92_frown_125__123_AB_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%223.528ex%22%20height%3D%223.509ex%22%20viewBox%3D%220%20-1365.4%201519%201510.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingAbove%20upper%20A%20upper%20B%20With%20%E2%8C%A2%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M208%207 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_overset_123__92_underset_123__92_mathrm_123_def_125__125__123__125__125__123__61__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.849ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-1293.7%20796.2%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eequals%20Overscript%20Underscript%20normal%20d%20normal%20e%20normal%20f%20Endscripts%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D [...]
+}
+
+.ve-ui-mwMathSymbol-_92_parallel {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eparallel-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M133%20736q5%2014%2020%2014%2011%200%2017-11%202-4%202-4 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_partial_32_t {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.179ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20938%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20partial-differential%20t%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M202%20508q-23%200-33%2012t-11%202 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_perp {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup-tack%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M369%20652q0%201%201%203t2%203%203%204%204%203%205%202%207%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_phi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.396ex%22%20height%3D%222.509ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-791.3%20601%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M409%20688q4%206%2012%206h21q6-6%206-8%200-7-30-123-7-28-14-59t-12-46l-4-16q0-1%209-1t32-6%2048-17q44-21%2073-61t29-97-31-1 [...]
+	background-position: 50% 54.513914375023724%;
+}
+
+.ve-ui-mwMathSymbol-_92_pi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.342ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20578%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M132-11q-34%200-34%2033v11l13%2028q75%20158%20109%20273l8%2024h-32q-38%200-54-3t-39-19q-11-7-22-18t-19-21-9-12q-2-1-15-1-19% [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_pitchfork {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20672%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Epitchfork%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M76-22Q64-22%2056-7v183l1%20184%202%2010q7%2031%2024%2056t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_pm {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eplus-or-minus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20320v13l14%2020h299v149q0%20149%202%20153%205%2011 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_pmod_123_m_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2211.787ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-863.1%205075%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M94%20250q0%2069%2010%20131t23%20107%2037%2088%2038%2067%2042%2052%2033%2034%2025%2021h17q14%200%2014-9%200-3-17-21t-41-5 [...]
+	background-position: 50% 55.43238550693736%;
+}
+
+.ve-ui-mwMathSymbol-_92_prec {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprecedes%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20249q0%2013%207%2017t26%204h9q6%200%2011-1%20251%204%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_precapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprecedes-above-almost-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20494v7l13%2020h76q234%206%20340%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_preccurlyeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-719.6%20783%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprecedes-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M112%20270q-29%200-29%2020%200%2011%2011%2017%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_preceq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprecedes-above-single-line-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20346q0%2013%207%2017t26%204h9 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_precnapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprecedes-above-not-almost-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20494v7l13%2020h76q85%202%2014 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_precneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprecedes-above-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M653%20734q0%204%207%2011t13%207%2013-7%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_precnsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-863.1%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprecedes-but-not-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M95%20419q-14%2014-14%2020t14%2020h2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_precsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprecedes-or-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20442q0%2013%207%2017t26%204h9q6%200%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_prime {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.077ex%22%20width%3D%22.65ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-647.8%20280%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eprime%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M79%2043q-6%200-27%206T30%2061q0%207%2055%20232t61%20235q15%2032%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_prod {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%222.98ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201283%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eproduct%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M220%20812q0%201-2%207t-4%2010-6%2011-9%2013-14%2013-19%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_prod__123_i_61_1_125__94_N {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.005ex%22%20width%3D%222.98ex%22%20height%3D%227.343ex%22%20viewBox%3D%220%20-1867.7%201283%203161.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eproduct%20Underscript%20i%20equals%201%20Overscript%20upper%20N%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_propto {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20783%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eproportional-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20124v92l51%20159%20131%2067q22%200%2042-4t39-13% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_psi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.524ex%22%20height%3D%222.509ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-791.3%20656%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M161%20441q41%200%2065-24t24-59q0-20-32-106t-31-125q3-42%2027-66%2021-18%2043-24%2018-8%2031-8h1l82%20331q84%20331%2085%203 [...]
+	background-position: 50% 54.513914375023724%;
+}
+
+.ve-ui-mwMathSymbol-_92_rangle {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.915ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20394%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emathematical%20right-angle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20732q1%207%206%2012t14%206q10%200%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rceil {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.043ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20449%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20ceiling%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M21%20717v13l11%2016%2043%204h181q10-8%2013-15v-970q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rfloor {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.043ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20449%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20floor%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M229%20734q0%201%201%203t2%203%203%204%204%203%205%202 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rho {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.212ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-576.1%20522%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M58-216q-33%200-35%2030%200%2010%2050%20212t54%20208q16%2055%2055%20107%2070%2086%20159%20100h8q6%200%2010%201%2073%200%2011 [...]
+	background-position: 50% 68.30954417959909%;
+}
+
+.ve-ui-mwMathSymbol-_92_rightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20237v13l14%2020h765q-116%2087-143%20223v3q0%202-1%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rightarrowtail {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.17ex%22%20width%3D%222.592ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201116%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-arrow%20with%20tail%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M1054%20250q-48-29-87-73t-55-94h-23q-23%200- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rightharpoondown {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.176ex%22%20viewBox%3D%220%20-360.8%201005%20506.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20harpoon%20with%20barb%20down%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20237v13l14%2020h867q7-7%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rightharpoonup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.511ex%22%20width%3D%222.334ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-647.8%201005%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20harpoon%20with%20barb%20up%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M691%20500q0%2011%2020%2011%209%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rightleftarrows {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%201005%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-arrow%20over%20left-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M943%20500q-48-29-87-73t-55-94h-23q- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rightleftharpoons {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.334ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%201005%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20harpoon%20over%20left%20harpoon%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M755%20512q0%202%2023%202h23 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rightrightarrows {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%222.334ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%201005%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20paired%20arrows%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20416q0%2011%2015%2021h778q-29%2029-52%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rightsquigarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.17ex%22%20width%3D%222.334ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201005%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright%20squiggle%20arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M76%20230q-8%200-14%207t-6%2013q0%207%207%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rightthreetimes {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-semidirect-product%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84-22h-8l-14%206-7%2014q0%206%2023%2032t171 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_risingdotseq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20783%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eimage-of-or-approximately-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M642%20541q0%2028%2018%2044t42%2016% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_rtimes {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20783%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-normal-factor-semidirect-product%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M146%20472q0%207%206%2013t14%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_searrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%222.334ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%201005%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edown%20right-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20675q0%208%205%2014t15%206q2%200%208-2%204- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sec {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.012ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%201297%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M295%20316q0%2040-27%2069t-78%2029q-36%200-62-13-30-19-30-52-1-5%200-13t16-24%2043-25q18-5%2044-9t44-9%2032-13q17-8%2033-20 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_setminus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eset-minus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20731q0%209%206%2014t13%205q10%200%2017-10%204-7%20178 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sgn {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.403ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-576.1%201465%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M295%20316q0%2040-27%2069t-78%2029q-36%200-62-13-30-19-30-52-1-5%200-13t16-24%2043-25q18-5%2044-9t44-9%2032-13q17-8%2033-20 [...]
+	background-position: 50% 68.30954417959909%;
+}
+
+.ve-ui-mwMathSymbol-_92_sharp {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.915ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20394%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20%E2%99%AF%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M101-223q-7%200-8%206t-2%2029v37q0%2063-1%2063-3%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_shortmid {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.527ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20227%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ebar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M91%20417q13%2013%2020%2013t20-13V-10q-15-13-20-13T91-10v427z%22%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_shortparallel {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%22.915ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20394%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eparallel-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20417q14%2014%2021%2014t19-12V-12Q84-23%2076-23q-4%200 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sideset_123__1_94_2_125__123__3_94_4_125__92_prod_a_94_b {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.171ex%22%20width%3D%225.103ex%22%20height%3D%228.009ex%22%20viewBox%3D%220%20-2083%202197.2%203448.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3ESubscript%201%20Superscript%202%20Baseline%20product%20Underscript%203%20Overscript%204%20Endscripts%20Underscript%20a%20Overscript%20b%20Endscri [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sigma {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.34ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20577%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M184-11q-68%200-110%2045T31%20147q0%20100%2073%20186t170%2097q1%201%20140%201h138q1-1%203-2t4-2%203-2%203-3%202-2%202-4%201-4 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_sim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.819ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%20783%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etilde%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20166q0%2075%2046%20138t121%2063q38%200%2074-18t66-45%2059-5 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_simeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.06ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Easymptotically-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20283q0%2073%2048%20126t114%2054q45%200%2080- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sin {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.887ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201243%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M295%20316q0%2040-27%2069t-78%2029q-36%200-62-13-30-19-30-52-1-5%200-13t16-24%2043-25q18-5%2044-9t44-9%2032-13q17-8%2033-20 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_sinh {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.19ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%201804%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M295%20316q0%2040-27%2069t-78%2029q-36%200-62-13-30-19-30-52-1-5%200-13t16-24%2043-25q18-5%2044-9t44-9%2032-13q17-8%2033-20t [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_smallsetminus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20783%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eset-minus%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M91%20404v6l6%2013%2014%207q6%200%20284-206Q676%2013%20678% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_smile {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.288ex%22%20width%3D%222.334ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201005%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3E%E2%8C%A3%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M923%20378q21%200%2021-20%200-13-32-47t-53-52Q710%20134%205 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_spadesuit {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-863.1%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20%E2%99%A0%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M181-21q-47%200-85%2048T55%20193q0%2031%203%2054t [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sphericalangle {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20727%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Espherical-angle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M666-32q0-19-20-19-7%200-281%20136L75%20228q-20%2010- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sqcap {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquare-cap%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%200q-4%200-7%201t-5%202-4%203-2%203-2%204-2%203v285l1% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sqcup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquare-cup%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M77%200Q65%204%2061%2016v285l1%20284q10%2013%2019%2013%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sqrt_123_2_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%223.119ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-1006.6%201343%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartRoot%202%20EndRoot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22b%22%20d%3D%22M109%20429q-27%200-43%2018t-16%2044q0%2071 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sqrt_91_n_93__123_2_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%223.119ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-1006.6%201343%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3ERootIndex%20n%20StartRoot%202%20EndRoot%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22c%22%20d%3D%22M109%20429q-27%200-43%2018 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sqsubset {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquare-image-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20523q4%2012%2016%2016h580q15-8%2015-20%200-13-15 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sqsubseteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquare-image-of-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M94%20620q4%2012%2016%2016h589q15-8%2015 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sqsupset {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquare-original-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M64%20506v13l14%2020h621q7-3%2015-13V-28q-8-10-15- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sqsupseteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquare-original-of-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M64%20603v13l14%2020h590q7-3%2015-13V [...]
+}
+
+.ve-ui-mwMathSymbol-_92_star {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.014ex%22%20width%3D%221.173ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20505%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Estar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M210%20282q0%202%2015%2099t16%2099q0%204%204%204%204%202%206%202% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_subset {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esubset-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20250q0%20122%2082%20200t194%2089h35q16%200%2035%201t45 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_subseteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esubset-of-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20346q0%20122%2082%20200t194%2089h35q16%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_subseteqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esubset-of-above-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20463q0%20122%2082%20200t194%2089h70q19%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_subsetneq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-719.6%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esubset-of-or-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M693%2072q0-4-1-6t-6-7-6-7H524q-126%200-157% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_subsetneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-934.9%20783%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esubset-of-above-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M693%20221q0-7-13-20H524q-126%200-157%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_succ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esucceeds%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20517q0%2022%2018%2022%2013%200%2017-10t6-26%2012-44%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_succapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esucceeds-above-almost-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M693%20501q0-8-14-20h-75q-235-7-340-49 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_succcurlyeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-719.6%20783%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esucceeds-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M668%20310q26%200%2026-20%200-5-3-11-7-8-27-9-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_succeq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esucceeds-above-single-line-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20614q0%2022%2018%2022%2013%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_succnapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esucceeds-above-not-almost-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M693%20501q0-8-14-20h-75q-56-2-95- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_succneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esucceeds-above-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M693%20466v-6l-13-19h-56q-16-2-47-3t-39-2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_succnsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.176ex%22%20viewBox%3D%220%20-863.1%20783%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esucceeds-but-not-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M679%20459q14-14%2014-20%200-9-14-20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_succsim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esucceeds-or-equivalent-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20710q0%2022%2018%2022%2013%200%2017-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sum {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%223.365ex%22%20height%3D%223.843ex%22%20viewBox%3D%220%20-1078.4%201449%201654.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esigma-summation%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M60%20948q3%202%20605%202h602l58-135q59-138%2063- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sum__123_k_61_1_125__94_N {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-3.171ex%22%20width%3D%223.365ex%22%20height%3D%227.509ex%22%20viewBox%3D%220%20-1867.7%201449%203233.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esigma-summation%20Underscript%20k%20equals%201%20Overscript%20upper%20N%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id [...]
+}
+
+.ve-ui-mwMathSymbol-_92_sup {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.533ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-576.1%201521%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M295%20316q0%2040-27%2069t-78%2029q-36%200-62-13-30-19-30-52-1-5%200-13t16-24%2043-25q18-5%2044-9t44-9%2032-13q17-8%2033-20 [...]
+	background-position: 50% 63.70125935426535%;
+}
+
+.ve-ui-mwMathSymbol-_92_supset {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esuperset-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20520q0%2012%2015%2020h199q30%200%2046%201%2084%200%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_supseteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esuperset-of-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20616q0%2012%2015%2020h199q30%200%2046%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_supseteqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20783%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esuperset-of-above-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20733q0%2013%2015%2020h199q30%200%2046% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_supsetneq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-719.6%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esuperset-of-or-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20615q0%205%2013%2020h156q127%200%2015 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_supsetneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%221.819ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-934.9%20783%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esuperset-of-above-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20759v4l1%206%206%207%206%207h156q [...]
+}
+
+.ve-ui-mwMathSymbol-_92_surd {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.993ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-934.9%20858%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esquare-root%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M95%20178q-6%200-14%208t-9%2014%2031%2030%2066%2050%2038 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_swarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%222.334ex%22%20height%3D%222.676ex%22%20viewBox%3D%220%20-791.3%201005%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edown%20left-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M126-41q0-51-5-56%200-1%2018%2017t61%2060%2081%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_tan {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.391ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-719.6%201460%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M27%20422q53%204%2082%2056t32%20122v15h40V431h135v-46H181V241q1-125%201-141t7-32q14-39%2049-39%2044%200%2054%2071%201%208%2 [...]
+	background-position: 50% 50.24929558973531%;
+}
+
+.ve-ui-mwMathSymbol-_92_tanh {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.694ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%202021%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M27%20422q53%204%2082%2056t32%20122v15h40V431h135v-46H181V241q1-125%201-141t7-32q14-39%2049-39%2044%200%2054%2071%201%208%2 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_tau {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.212ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20522%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M39%20284q-21%200-21%2010%200%207%2027%2044t54%2060q35%2027%2065%2031%206%202%20168%202%20160%200%20165-2%2020-5%2020-27%200 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_tbinom_123_n_125__123_k_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.171ex%22%20width%3D%223.144ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-934.9%201353.8%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EStartBinomialOrMatrix%20n%20Choose%20k%20EndBinomialOrMatrix%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M15 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_text_123_x_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.238ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20533%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ex%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M201%200q-12%203-99%203-76%200-85-3h-6v46h14q23%201%2042%206t29%209 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_textstyle_32__92_coprod__123_i_61_1_125__94_N {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%225.127ex%22%20height%3D%223.509ex%22%20viewBox%3D%220%20-1078.4%202207.2%201510.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ecoproduct%20Underscript%20i%20equals%201%20Overscript%20upper%20N%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_textstyle_32__92_int_92_limits__123__45_N_125__94__123_N_125__32_x {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.838ex%22%20width%3D%224.334ex%22%20height%3D%226.843ex%22%20viewBox%3D%22-26.8%20-1724.2%201865.8%202946.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintegral%20Subscript%20negative%20upper%20N%20Superscript%20upper%20N%20Baseline%20x%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_textstyle_32__92_int__123__45_N_125__94__123_N_125__32_x {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%225.82ex%22%20height%3D%223.676ex%22%20viewBox%3D%220%20-1150.1%202505.8%201582.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eintegral%20Subscript%20negative%20upper%20N%20Superscript%20upper%20N%20Baseline%20x%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20i [...]
+}
+
+.ve-ui-mwMathSymbol-_92_textstyle_32__92_lim__123_n_32__92_to_32__92_infty_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%227.788ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%203353.1%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Elimit%20Underscript%20n%20right-arrow%20normal%20infinity%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d [...]
+}
+
+.ve-ui-mwMathSymbol-_92_textstyle_32__92_prod__123_i_61_1_125__94_N {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%225.127ex%22%20height%3D%223.509ex%22%20viewBox%3D%220%20-1078.4%202207.2%201510.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eproduct%20Underscript%20i%20equals%201%20Overscript%20upper%20N%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_textstyle_32__92_sum__123_k_61_1_125__94_N {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%225.676ex%22%20height%3D%223.509ex%22%20viewBox%3D%220%20-1078.4%202443.7%201510.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esigma-summation%20Underscript%20k%20equals%201%20Overscript%20upper%20N%20Endscripts%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_tfrac_123_2_125__123_4_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.338ex%22%20width%3D%221.666ex%22%20height%3D%223.676ex%22%20viewBox%3D%220%20-1006.6%20717.1%201582.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etwo-fourths%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M109%20429q-27%200-43%2018t-16%2044q0%2071%2053%2012 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_therefore {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%221.561ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-576.1%20672%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etherefore%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M273%20411q0%2026%2018%2043t43%2017q24%200%2041-17t18-43-17 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_theta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.101ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20474%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M35%20200q0%20102%2039%20215t106%20195%20139%2094h8q7%200%2012%201%2054-4%2084-49%2039-60%2039-161%200-115-45-234T302%2066%2 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_thickapprox {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.091ex%22%20width%3D%221.819ex%22%20height%3D%221.509ex%22%20viewBox%3D%220%20-576.1%20783%20649.8%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ealmost-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20326q0%2068%2046%20111t125%2044q42-2%2087-21t79-41% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_thicksim {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.283ex%22%20width%3D%221.819ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%20783%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etilde%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M73%20132q-18%200-18%2040%200%2048%2024%20100%2016%2029%2032%204 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_tilde_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20534%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207- [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_times {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20783%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etimes%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M630%2029q0-20-21-20-5%200-22%2016t-94%2093L389%20222%20284%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_times {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20783%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etimes%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M630%2029q0-20-21-20-5%200-22%2016t-94%2093L389%20222%20284%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_triangledown {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20727%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ewhite%20down%20pointing%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M84%20556q0%2011%2015%2020h523q15- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_triangleleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.173ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20505%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ewhite%20left%20pointing%20small%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M473%2010q-7-15-19-15-3%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_trianglelefteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal-subgroup-of-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M694%2071q-8-13-18-15h-6L382%20192Q92 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_triangleq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.286ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-1006.6%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Edelta-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M192%20482h-2q-3%201-5%202t-4%204-4%205-2%208q0%205%203 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_triangleright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.173ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20505%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ewhite%20right%20pointing%20small%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M26%20489q7%2016%2017%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_trianglerighteq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Econtains-as-normal-subgroup-or-equal-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20620q0%201%202%204t7%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_twoheadleftarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.17ex%22%20width%3D%222.334ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201005%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etwo%20headed%20left-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20250q47%2027%2086%2072t57%2095h22q23%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_twoheadrightarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.17ex%22%20width%3D%222.334ex%22%20height%3D%221.343ex%22%20viewBox%3D%220%20-504.3%201005%20578.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etwo%20headed%20right-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M943%20250q-48-29-87-73t-55-94h-23q-23%200- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_ulcorner {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.687ex%22%20width%3D%221.173ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-791.3%20505%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etop%20left%20corner%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M76%20306q-14%200-17%2013t-4%2067v210q0%2068%202%2 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_underbrace_123__32_a_43_b_43__92_cdots_43_z_32__125___123_26_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-4.005ex%22%20width%3D%2214.656ex%22%20height%3D%225.843ex%22%20viewBox%3D%220%20-791.3%206310.4%202515.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingBelow%20a%20plus%20b%20plus%20midline-horizontal-ellipsis%20plus%20z%20With%20bottom-brace%20Underscript%2026%20Endscripts%3C%2Fdesc%3 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_underline_123_j_32_k_32_l_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.054ex%22%20width%3D%223.089ex%22%20height%3D%223.676ex%22%20viewBox%3D%220%20-791.3%201330%201582.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingBelow%20j%20k%20l%20With%20bar%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M297%20596q0%2031%2021%204 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_underset_123__92_alpha_125__123__92_omega_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.456ex%22%20height%3D%223.343ex%22%20style%3D%22vertical-align%3A-2.005ex%22%20viewBox%3D%220%20-576.1%20627%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M495%20384q0%2022%2019%2040t41%2019q19%200%2034-18t15-61q0-30-12-86t-37-123-72-117-106-49q-80%200-110%2077-1%202-7-5-59-72 [...]
+	background-position: 50% 138.14658665323375%;
+}
+
+.ve-ui-mwMathSymbol-_92_uparrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.173ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20505%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M27%20414q-10%200-10%2019v11q0%203%202%203t1%203%202%202%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_updownarrow {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.173ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20505%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20down-arrow%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M27%20492q-10%200-10%2019v11q0%203%202%203t1%203%202 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_upharpoonleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%22.98ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20422%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20harpoon%20with%20barb%20left%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M41%20551q35%208%2082%2041t78%2090l7 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_upharpoonright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%22.98ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20422%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20harpoon%20with%20barb%20right%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M188%20258v436h20l7-12q31-54%2078-8 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_uplus {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.561ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20672%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Emultiset-union%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M591%20598h1q12%200%2019-15V376v-80q-1-134-5-148-1-2-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_upsilon {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.266ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20545%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M413%20384q0%2022%2019%2040t41%2019q19%200%2034-18t16-58q0-33-15-97t-40-117q-44-90-95-126t-91-37h-14q-48%200-82%2012t-51%203 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_upuparrows {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%221.946ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-791.3%20838%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eup%20paired%20arrows%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20551q107%2039%20167%20143%201-5%2013-23t44 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_urcorner {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A.687ex%22%20width%3D%221.173ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-791.3%20505%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etop%20right%20corner%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M424%20306q-6%200-11%204t-7%208l-2%203v333H238q-1 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_vDash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%222.025ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20872%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Etrue%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M139-249h-2q-12%200-18%2014v486l1%20486q10%2013%2019%2013%2013% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_varepsilon {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.094ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20471%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M190-22q-66%200-114%2033t-49%2096q0%2067%2070%20125l10%207-8%209q-23%2025-23%2056%200%2060%2068%20104t146%2044h12q58%200%201 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_varkappa {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.716ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20739%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M228%20325q-58-3-72-9t-29-7q-19%200-23%205-5%205-5%208t9%2019q17%2035%2063%2059t97%2025h3q31%200%2048-29%209-19%209-38%200-2 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_varnothing {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20783%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eempty-set%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M624%20470q0-2%2015-24t29-64%2015-91q0-110-71-192T437-1q-12 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_varphi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.531ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.838ex%22%20viewBox%3D%220%20-576.1%20659%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M92%20210q0-34%2014-61t36-41%2043-23%2035-13l15-2%202%201%2013%2041q18%2058%2033%2099t39%2088%2048%2076%2059%2048%2073%2019q [...]
+	background-position: 50% 68.30954417959909%;
+}
+
+.ve-ui-mwMathSymbol-_92_varpi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.935ex%22%20height%3D%221.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-576.1%20833%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M206-10q-48%200-70%2034t-22%2086q0%20123%2085%20239l6%209h-21q-40%200-63-11-13-7-26-17t-20-18-14-17-8-10q-2-1-15-1-19%200-19 [...]
+	background-position: 50% 56.14822100962267%;
+}
+
+.ve-ui-mwMathSymbol-_92_varpropto {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.676ex%22%20viewBox%3D%220%20-576.1%20783%20721.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eproportional-to%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20124v92l51%20159%20131%2067q22%200%2042-4t39-13% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_varrho {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.212ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-576.1%20522%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M205-174q-69%200-103%2021T67-76q0%2051%2024%20161t36%20149q16%2055%2055%20107%2070%2086%20159%20100h8q6%200%2010%201%2073%20 [...]
+	background-position: 50% 63.70125935426535%;
+}
+
+.ve-ui-mwMathSymbol-_92_varsigma {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22.952ex%22%20height%3D%221.843ex%22%20style%3D%22vertical-align%3A-.505ex%22%20viewBox%3D%220%20-576.1%20410%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M31%20207q0%2099%2084%20167t187%2068q39%200%2071-12t32-30q0-8-6-17t-20-9q-6%201-31%2016t-52%2015q-74%200-136-48T98%20249q0-17 [...]
+	background-position: 50% 59.69803802799572%;
+}
+
+.ve-ui-mwMathSymbol-_92_varsubsetneq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-719.6%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esubset-of-or-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M693-115v-7l-13-22H315l-46-55q-48-56-56-56h- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_varsubsetneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esubset-of-above-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82-14v7l13%2022h336l98%20155h-94q-94%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_varsupsetneq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.819ex%22%20height%3D%222.509ex%22%20viewBox%3D%220%20-719.6%20783%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esuperset-of-or-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20610v4l1%206%206%207%206%207h156q127% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_varsupsetneqq {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-1.005ex%22%20width%3D%221.819ex%22%20height%3D%223.009ex%22%20viewBox%3D%220%20-863.1%20783%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Esuperset-of-above-not-equals%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M82%20732q0%207%2013%2020h156q164%200% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_vartheta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.384ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%20596%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M537%20500q0-26-4-61t-9-56l-3-21q37-7%2040-11%202-2%202-6%200-24-11-27-10%200-31%205l-11%203q-14-65-51-139T362%2051%20241-11 [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-_92_vartriangle {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.689ex%22%20height%3D%222.009ex%22%20viewBox%3D%220%20-719.6%20727%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ewhite%20up%20pointing%20triangle%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M99-20Q84-11%2084%200q0%205%2064%201 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_vartriangleleft {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal-subgroup-of%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M694-26q-8-14-18-15h-6L382%2095Q92%20232%2090%2023 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_vartriangleright {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.819ex%22%20height%3D%221.843ex%22%20viewBox%3D%220%20-647.8%20783%20793.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Econtains-as-normal-subgroup%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M83%20523q0%201%202%204t7%208%2011%204q4% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_vdash {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.431ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20616%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-tack%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20678q0%201%201%203t2%203%203%204%204%203%205%202%207% [...]
+}
+
+.ve-ui-mwMathSymbol-_92_vec_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.343ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-863.1%20534%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207 [...]
+	background-position: 50% 42.48981426353332%;
+}
+
+.ve-ui-mwMathSymbol-_92_veebar {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.431ex%22%20height%3D%222.343ex%22%20viewBox%3D%220%20-863.1%20616%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Exor%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M56%20697q0%209%206%2014t13%205q11%200%2015-7%201-1%2014-29t43-8 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_widehat_123_a_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.24ex%22%20height%3D%222.343ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-863.1%20534%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%207 [...]
+	background-position: 50% 42.48981426353332%;
+}
+
+.ve-ui-mwMathSymbol-_92_widehat_123_d_32_e_32_f_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.671ex%22%20width%3D%223.609ex%22%20height%3D%223.343ex%22%20viewBox%3D%220%20-1150.1%201554%201439.2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3EModifyingAbove%20d%20e%20f%20With%20caret%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M366%20683q1%200%2072%20 [...]
+}
+
+.ve-ui-mwMathSymbol-_92_wp {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%221.489ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-576.1%20641%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Enormal%20script%20upper%20P%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M300%2074q0%2059%2038%2059%2012%200%2018- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_wr {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.505ex%22%20width%3D%22.657ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-719.6%20283%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ewreath-product%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M55%20569q0%2014%2028%2014%2039%200%2068-18t43-46%2021- [...]
+}
+
+.ve-ui-mwMathSymbol-_92_xi {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.041ex%22%20height%3D%222.509ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-791.3%20448%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M268%20632q0%2072%2028%2072%2018%200%2018-17%200-5-3-23t-3-29%201-15v-4h6q27%203%2045%203%2083%200%2083-33-4-38-85-40h-14q- [...]
+	background-position: 50% 54.513914375023724%;
+}
+
+.ve-ui-mwMathSymbol-_92_zeta {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%221.106ex%22%20height%3D%222.509ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-791.3%20476%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M296%20643q2%2061%2028%2061%2018%200%2018-17%200-5-3-23t-3-31q0-10%201-15t1-7q1%201%203%201%202%202%2013%204t20%202l10%201h [...]
+	background-position: 50% 54.513914375023724%;
+}
+
+.ve-ui-mwMathSymbol-_93_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%22.657ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%20283%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Eright-bracket%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M22%20710v40h137V-250H22v40h97v920H22z%22%2F%3E%3C%2Fde [...]
+}
+
+.ve-ui-mwMathSymbol-a_2 {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.302ex%22%20height%3D%222.009ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-576.1%20991.1%20865.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25%2 [...]
+	background-position: 50% 63.70125935426535%;
+}
+
+.ve-ui-mwMathSymbol-a_32__92_qquad_32_b {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%226.893ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%202968%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ea%20b%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030 [...]
+}
+
+.ve-ui-mwMathSymbol-a_32__92_quad_32_b {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%224.571ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%201968%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ea%20b%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030 [...]
+}
+
+.ve-ui-mwMathSymbol-a_92__32_b {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.829ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%201218%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ea%20b%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030 [...]
+}
+
+.ve-ui-mwMathSymbol-a_92__33__32_b {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%221.861ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20801.3%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ea%20b%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%203 [...]
+}
+
+.ve-ui-mwMathSymbol-a_92__44__32_b {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.635ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%201134.7%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ea%20b%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%20 [...]
+}
+
+.ve-ui-mwMathSymbol-a_92_bmod_32_b {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%227.961ex%22%20height%3D%222.176ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-791.3%203427.6%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25% [...]
+	background-position: 50% 46.650223632484646%;
+}
+
+.ve-ui-mwMathSymbol-a_94_2 {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.302ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-1006.6%20991.1%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-25 [...]
+	background-position: 50% 31.900288917458088%;
+}
+
+.ve-ui-mwMathSymbol-a_94__123_2_43_2_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%224.417ex%22%20height%3D%222.676ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-1006.6%201901.8%201152.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-2 [...]
+	background-position: 50% 31.900288917458088%;
+}
+
+.ve-ui-mwMathSymbol-a__123_i_44_j_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.197ex%22%20height%3D%222.343ex%22%20style%3D%22vertical-align%3A-1.005ex%22%20viewBox%3D%220%20-576.1%201376.5%201008.6%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M33%20157q0%20101%2076%20192t171%2092q51%200%2090-49%2016%2030%2046%2030%2013%200%2023-8t10-20q0-13-37-160T374%2068q0-2 [...]
+	background-position: 50% 73.63657058802927%;
+}
+
+.ve-ui-mwMathSymbol-b__123_f_39__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.719ex%22%20height%3D%223.009ex%22%20style%3D%22vertical-align%3A-1.171ex%22%20viewBox%3D%220%20-791.3%201170.7%201295.7%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M73%20647q0%2010%204%2023t12%2013q1%200%2072%205t73%206q12%200%2012-9t-34-143q-8-34-17-70t-15-54l-4-19q0-3%206%203%2049 [...]
+	background-position: 50% 72.98725834053441%;
+}
+
+.ve-ui-mwMathSymbol-dt {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.338ex%22%20width%3D%222.076ex%22%20height%3D%222.176ex%22%20viewBox%3D%220%20-791.3%20894%20936.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ed%20t%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M366%20683q1%200%2072%205t73%206q12%200%2012-8%200-7-73-302T375 [...]
+}
+
+.ve-ui-mwMathSymbol-dy_47_dx {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-.838ex%22%20width%3D%226.132ex%22%20height%3D%222.843ex%22%20viewBox%3D%220%20-863.1%202640%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ed%20y%20slash%20d%20x%3C%2Fdesc%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M366%20683q1%200%2072%205t73%206q12%200%2012- [...]
+}
+
+.ve-ui-mwMathSymbol-f_39_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.023ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-934.9%20871%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M118-162q2%200%206-2t11-3%2012-1q13%200%2024%2013t16%2029q10%2027%2034%20153t46%20240%2022%20115v3h-47q-47%200-50%202-4%203 [...]
+	background-position: 50% 45.25860887311717%;
+}
+
+.ve-ui-mwMathSymbol-f_39_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.023ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-934.9%20871%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M118-162q2%200%206-2t11-3%2012-1q13%200%2024%2013t16%2029q10%2027%2034%20153t46%20240%2022%20115v3h-47q-47%200-50%202-4%203 [...]
+	background-position: 50% 45.25860887311717%;
+}
+
+.ve-ui-mwMathSymbol-f_39__39_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.483ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-934.9%201069%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M118-162q2%200%206-2t11-3%2012-1q13%200%2024%2013t16%2029q10%2027%2034%20153t46%20240%2022%20115v3h-47q-47%200-50%202-4%20 [...]
+	background-position: 50% 45.25860887311717%;
+}
+
+.ve-ui-mwMathSymbol-f_39__39_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.483ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-934.9%201069%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M118-162q2%200%206-2t11-3%2012-1q13%200%2024%2013t16%2029q10%2027%2034%20153t46%20240%2022%20115v3h-47q-47%200-50%202-4%20 [...]
+	background-position: 50% 45.25860887311717%;
+}
+
+.ve-ui-mwMathSymbol-f_40_n_41__32__61__32__92_begin_123_cases_125__32_n_47_2_44__32__38__32__92_text_123_if_32__125_n_92_text_123__32_is_32_even_125__32__92__92__32_3n_43_1_44__32__38__32__92_text_123_if_32__125_n_92_text_123__32_is_32_odd_125__32__92_end_123_cases_125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20style%3D%22vertical-align%3A-2.505ex%22%20width%3D%2230.457ex%22%20height%3D%226.176ex%22%20viewBox%3D%220%20-1580.7%2013113.5%202659.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EEquation%3C%2Ftitle%3E%3Cdesc%3Ef%20left-parenthesis%20n%20right-parenthesis%20equals%20StartLayout%20Enlarged%20left-brace%201st%20Row%201st%20Column%20n%20slash%202%20comm [...]
+}
+
+.ve-ui-mwMathSymbol-f_94__123__40_3_41__125_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%223.687ex%22%20height%3D%223.176ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-1078.4%201587.3%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M118-162q2%200%206-2t11-3%2012-1q13%200%2024%2013t16%2029q10%2027%2034%20153t46%20240%2022%20115v3h-47q-47%200-50%202-4 [...]
+	background-position: 50% 31.327212976938785%;
+}
+
+.ve-ui-mwMathSymbol-x_2_94_3 {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.402ex%22%20height%3D%223.176ex%22%20style%3D%22vertical-align%3A-1.005ex%22%20viewBox%3D%220%20-934.9%201034.1%201367.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M52%20289q7%2042%2054%2097t116%2056q35%200%2064-18t43-45q42%2063%20101%2063%2037%200%2064-22t28-59q0-29-14-47t-27-22-23 [...]
+	background-position: 50% 56.85311144653124%;
+}
+
+.ve-ui-mwMathSymbol-x_39_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.032ex%22%20height%3D%222.509ex%22%20style%3D%22vertical-align%3A-.338ex%22%20viewBox%3D%220%20-934.9%20875%201080.4%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M52%20289q7%2042%2054%2097t116%2056q35%200%2064-18t43-45q42%2063%20101%2063%2037%200%2064-22t28-59q0-29-14-47t-27-22-23-4q- [...]
+	background-position: 50% 37.65720902567737%;
+}
+
+.ve-ui-mwMathSymbol-y_39__39_ {
+	background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%222.323ex%22%20height%3D%222.843ex%22%20style%3D%22vertical-align%3A-.671ex%22%20viewBox%3D%220%20-934.9%201000.1%201223.9%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cdefs%3E%3Cpath%20stroke-width%3D%2210%22%20id%3D%22a%22%20d%3D%22M21%20287q0%2014%2015%2048t48%2071%2074%2036q41%200%2066-23t26-64q-2-19-3-21%200-3-16-46t-33-97-16-86q0-43%2014-60t42-18 [...]
+	background-position: 50% 45.25860887311717%;
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..53727ee
--- /dev/null
+++ b/package.json
@@ -0,0 +1,16 @@
+{
+  "private": true,
+  "scripts": {
+    "test": "grunt test"
+  },
+  "devDependencies": {
+    "grunt": "0.4.5",
+    "grunt-cli": "0.1.13",
+    "grunt-banana-checker": "0.4.0",
+    "grunt-jsonlint": "1.0.7",
+    "grunt-contrib-csslint": "0.5.0",
+    "grunt-contrib-jshint": "0.11.3",
+    "grunt-contrib-watch": "0.6.1",
+    "grunt-jscs": "2.1.0"
+  }
+}
diff --git a/phpcs.xml b/phpcs.xml
new file mode 100644
index 0000000..d81a292
--- /dev/null
+++ b/phpcs.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<ruleset>
+	<rule ref="vendor/mediawiki/mediawiki-codesniffer/MediaWiki"/>
+	<file>.</file>
+	<arg name="extensions" value="php,php5,inc"/>
+	<arg name="encoding" value="utf8"/>
+	<exclude-pattern>vendor</exclude-pattern>
+</ruleset>
diff --git a/tests/MathCoverageTest.php b/tests/MathCoverageTest.php
new file mode 100644
index 0000000..17abed0
--- /dev/null
+++ b/tests/MathCoverageTest.php
@@ -0,0 +1,98 @@
+<?php
+
+/**
+ * PHPUnit tests to test the wide range of all typical use cases for formulae at Wikipedia.
+ * To generate the page https://www.mediawiki.org/wiki/Extension:Math/CoverageTest is used to
+ * generate the test data.
+ * The testData is generated by the maintenance script Math/maintenance/MathGenerateTests.php.
+ * To update the test data locally with vagrant the following procedure is recommended:
+ *
+ * 1. copy the source from https://www.mediawiki.org/wiki/Extension:Math/CoverageTest
+ * to a new page e.g.
+ *    MathTest at your local vagrant instance
+ * 2. run <code>php MathGenerateTests.php MathTest</code>
+ *	  in the maitenance folder of the Math extension.
+ * 3. Test local e.g. via
+ *    <code>sudo php /vagrant/mediawiki/tests/phpunit/phpunit.php
+ *		/vagrant/mediawiki/extensions/Math/tests/MathCoverageTest.php</code>
+ *    (If you don't use sudo you might have problems with the permissions set at vagrant.)
+ *
+ * @covers MathRenderer
+ *
+ * @group Extensions
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathCoverageTest extends MediaWikiTestCase {
+	protected static $hasTexvc;
+	protected static $texvcPath;
+
+	public static function setUpBeforeClass() {
+		global $wgTexvc;
+
+		if ( is_executable( $wgTexvc ) ) {
+			wfDebugLog( __CLASS__, " using build in texvc from "
+				. "\$wgMathTexvcCheckExecutable = $wgTexvc" );
+			# Using build-in
+			self::$hasTexvc = true;
+			self::$texvcPath = $wgTexvc;
+		} else {
+			# Attempt to compile
+			wfDebugLog( __CLASS__, " compiling texvc..." );
+			$cmd = 'cd ' . dirname( __DIR__ ) . '/math; make --always-make 2>&1';
+			wfShellExec( $cmd, $retval );
+			if ( $retval === 0 ) {
+				self::$hasTexvc = true;
+				self::$texvcPath = dirname( __DIR__ ) . '/math/texvc';
+				wfDebugLog( __CLASS__, ' compiled texvc at ' . self::$texvcPath );
+			} else {
+				wfDebugLog( __CLASS__, ' ocaml not available or compilation of texvc failed' );
+			}
+		}
+	}
+
+	/**
+	 * Sets up the fixture, for example, opens a network connection.
+	 * This method is called before a test is executed.
+	 */
+	protected function setUp() {
+		parent::setUp();
+
+		if ( ! self::$hasTexvc ) {
+			$this->markTestSkipped( "No texvc installed on server" );
+		} else {
+			$this->setMwGlobals( 'wgTexvc',
+				self::$texvcPath );
+		}
+	}
+
+	/**
+	 * Loops over all test cases provided by the provider function.
+	 * Compares each the rendering result of each input with the expected output.
+	 * @dataProvider provideCoverage
+	 */
+	public function testCoverage( $input, $output ) {
+		// TODO: Make rendering mode configurable
+		// TODO: Provide test-ids
+		// TODO: Link to the wikipage that contains the reference rendering
+		$this->assertEquals(
+			$this->normalize( $output ),
+			$this->normalize( MathRenderer::renderMath( $input, [], 'png' ) ),
+			"Failed to render $input"
+		);
+	}
+
+	/**
+	 * Gets the test-data from the file ParserTest.json
+	 * @return [$input, $output] where $input is the test input string
+	 * and $output is the rendered html5-output string
+	 */
+	public function provideCoverage() {
+		return json_decode( file_get_contents( __DIR__ . '/ParserTest.json' ) );
+	}
+
+	private function normalize( $input ) {
+		return preg_replace( '#src="(.*?)/(([a-f]|\d)*).png"#', 'src="\2.png"', $input );
+	}
+}
diff --git a/tests/MathDatabaseTest.php b/tests/MathDatabaseTest.php
new file mode 100644
index 0000000..5e521f7
--- /dev/null
+++ b/tests/MathDatabaseTest.php
@@ -0,0 +1,123 @@
+<?php
+
+/**
+ * Test the database access and core functionality of MathRenderer.
+ *
+ * @covers MathRenderer
+ *
+ * @group Math
+ * @group Database //Used by needsDB
+ *
+ * @licence GNU GPL v2+
+ */
+class MathDatabaseTest extends MediaWikiTestCase {
+	/**
+	 * @var MathRenderer
+	 */
+	private $renderer;
+	const SOME_TEX = "a+b";
+	const SOME_HTML = "a<sub>b</sub> and so on";
+	const SOME_MATHML = "iℏ∂_tΨ=H^Ψ<mrow><\ci>";
+	const SOME_CONSERVATIVENESS = 2;
+	const SOME_OUTPUTHASH = 'C65c884f742c8591808a121a828bc09f8<';
+
+	/**
+	 * creates a new database connection and a new math renderer
+	 * TODO: Check if there is a way to get database access without creating
+	 * the connection to the database explicitly
+	 * function addDBData() {
+	 *    $this->tablesUsed[] = 'math';
+	 * }
+	 * was not sufficient.
+	 */
+	protected function setup() {
+		parent::setUp();
+		// TODO: figure out why this is necessary
+		$this->db = wfGetDB( DB_MASTER );
+		// Create a new instance of MathSource
+		$this->renderer = new MathTexvc( self::SOME_TEX );
+		$this->tablesUsed[] = 'math';
+	}
+
+	/**
+	 * Checks the tex and hash functions
+	 * @covers MathRenderer::getInputHash()
+	 */
+	public function testInputHash() {
+		$expectedhash = $this->db->encodeBlob( pack( "H32", md5( self::SOME_TEX ) ) );
+		$this->assertEquals( $expectedhash, $this->renderer->getInputHash() );
+	}
+
+	/**
+	 * Helper function to set the current state of the sample renderer instance to the test values
+	 */
+	public function setValues() {
+		// set some values
+		$this->renderer->setTex( self::SOME_TEX );
+		$this->renderer->setMathml( self::SOME_MATHML );
+		$this->renderer->setHtml( self::SOME_HTML );
+		$this->renderer->setOutputHash( self::SOME_OUTPUTHASH );
+	}
+
+	/**
+	 * Checks database access. Writes an entry and reads it back.
+	 * @covers MathRenderer::writeDatabaseEntry()
+	 * @covers MathRenderer::readDatabaseEntry()
+	 */
+	public function testDBBasics() {
+		$this->setValues();
+		$this->renderer->writeToDatabase( $this->db );
+		$renderer2 = new MathTexvc( self::SOME_TEX );
+		$this->assertTrue( $renderer2->readFromDatabase(), 'Reading from database failed' );
+		// comparing the class object does now work due to null values etc.
+		$this->assertEquals(
+			$this->renderer->getTex(), $renderer2->getTex(), "test if tex is the same"
+		);
+		$this->assertEquals(
+			$this->renderer->getMathml(), $renderer2->getMathml(), "Check MathML encoding"
+		);
+		$this->assertEquals(
+			$this->renderer->getHtml(), $renderer2->getHtml(), 'test if HTML is the same'
+		);
+	}
+
+	/**
+	 * Checks the creation of the math table.
+	 * @covers MathHooks::onLoadExtensionSchemaUpdates
+	 */
+	public function testCreateTable() {
+		$this->setMwGlobals( 'wgMathValidModes', [ 'png' ] );
+		$this->db->dropTable( "math", __METHOD__ );
+		$dbu = DatabaseUpdater::newForDB( $this->db );
+		$dbu->doUpdates( [ "extensions" ] );
+		$this->expectOutputRegex( '/(.*)Creating math table(.*)/' );
+		$this->setValues();
+		$this->renderer->writeToDatabase();
+		$res = $this->db->select( "math", "*" );
+		$row = $res->fetchRow();
+		$this->assertEquals( 10, count( $row ) );
+	}
+
+	/*
+	 * This test checks if no additional write operation
+	 * is performed, if the entry already existed in the database.
+	 */
+	public function testNoWrite() {
+		$this->setValues();
+		$inputHash = $this->renderer->getInputHash();
+		$this->assertTrue( $this->renderer->isChanged() );
+		$this->assertTrue( $this->renderer->writeCache(), "Write new entry" );
+		$res = $this->db->selectField( "math", "math_inputhash",
+			[ "math_inputhash" => $inputHash ] );
+		$this->assertTrue( $res !== false, "Check database entry" );
+		$this->assertTrue( $this->renderer->readFromDatabase(), "Read entry from database" );
+		$this->assertFalse( $this->renderer->isChanged() );
+		// modify the database entry manually
+		$this->db->delete( "math", [ "math_inputhash" => $inputHash ] );
+		// the renderer should not be aware of the modification and should not recreate the entry
+		$this->assertFalse( $this->renderer->writeCache() );
+		// as a result no entry can be found in the database.
+		$this->assertFalse( $this->renderer->readFromDatabase() );
+
+	}
+}
diff --git a/tests/MathFormatterTest.php b/tests/MathFormatterTest.php
new file mode 100644
index 0000000..1d69bf3
--- /dev/null
+++ b/tests/MathFormatterTest.php
@@ -0,0 +1,105 @@
+<?php
+
+use DataValues\StringValue;
+use DataValues\NumberValue;
+use Wikibase\Lib\SnakFormatter;
+
+/**
+ * Test the results of MathFormatter
+ *
+ * @covers MathFormatter
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathFormatterTest extends MediaWikiTestCase {
+
+	const SOME_TEX = 'a^2+b^2 < c^2';
+
+	protected static $hasRestbase;
+
+	public static function setUpBeforeClass() {
+		$rbi = new MathRestbaseInterface();
+		self::$hasRestbase = $rbi->checkBackend( true );
+	}
+
+	protected function setUp() {
+		parent::setUp();
+
+		if ( !self::$hasRestbase ) {
+			$this->markTestSkipped( 'Can not connect to Restbase Math interface.' );
+		}
+	}
+
+	/**
+	 * Checks the
+	 * @covers MathFormatter::__construct()
+	 */
+	public function testBasics() {
+		$formatter = new MathFormatter( SnakFormatter::FORMAT_PLAIN );
+		// check if the format input was corretly passed to the class
+		$this->assertSame( SnakFormatter::FORMAT_PLAIN, $formatter->getFormat(), 'test getFormat' );
+	}
+
+	/**
+	 * @expectedException ValueFormatters\Exceptions\MismatchingDataValueTypeException
+	 */
+	public function testNotStringValue() {
+		$formatter = new MathFormatter( SnakFormatter::FORMAT_PLAIN );
+		$formatter->format( new NumberValue( 0 ) );
+	}
+
+	/**
+	 * @expectedException ValueFormatters\Exceptions\MismatchingDataValueTypeException
+	 */
+	public function testNullValue() {
+		$formatter = new MathFormatter( SnakFormatter::FORMAT_PLAIN );
+		$formatter->format( null );
+	}
+
+	/**
+	 * @expectedException InvalidArgumentException
+	 */
+	public function testUnknownFormat() {
+		new MathFormatter( 'unknown/unknown' );
+	}
+
+	public function testFormatPlain() {
+		$formatter = new MathFormatter( SnakFormatter::FORMAT_PLAIN );
+		$value = new StringValue( self::SOME_TEX );
+		$resultFormat = $formatter->format( $value );
+		$this->assertSame( self::SOME_TEX, $resultFormat );
+	}
+
+	public function testFormatHtml() {
+		$formatter = new MathFormatter( SnakFormatter::FORMAT_HTML );
+		$value = new StringValue( self::SOME_TEX );
+		$resultFormat = $formatter->format( $value );
+		$this->assertContains( '</math>', $resultFormat, 'Result must contain math-tag' );
+	}
+
+	public function testFormatDiffHtml() {
+		$formatter = new MathFormatter( SnakFormatter::FORMAT_HTML_DIFF );
+		$value = new StringValue( self::SOME_TEX );
+		$resultFormat = $formatter->format( $value );
+		$this->assertContains( '</math>', $resultFormat, 'Result must contain math-tag' );
+		$this->assertContains( '</h4>', $resultFormat, 'Result must contain a <h4> tag' );
+		$this->assertContains( '</code>', $resultFormat, 'Result must contain a <code> tag' );
+		$this->assertContains( 'wb-details', $resultFormat, 'Result must contain wb-details class' );
+		$this->assertContains(
+			htmlspecialchars( self::SOME_TEX ),
+			$resultFormat,
+			'Result must contain the TeX source'
+		);
+	}
+
+	public function testFormatXWiki() {
+		$tex = self::SOME_TEX;
+		$formatter = new MathFormatter( SnakFormatter::FORMAT_WIKI );
+		$value = new StringValue( self::SOME_TEX );
+		$resultFormat = $formatter->format( $value );
+		$this->assertSame( "<math>$tex</math>", $resultFormat, 'Tex wasn\'t properly wrapped' );
+	}
+
+}
diff --git a/tests/MathHooksTest.php b/tests/MathHooksTest.php
new file mode 100644
index 0000000..eb52538
--- /dev/null
+++ b/tests/MathHooksTest.php
@@ -0,0 +1,106 @@
+<?php
+
+/**
+ * @covers MathHooks
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathHooksTest extends MediaWikiTestCase {
+
+	public function testMathModeToString() {
+		$default = 'png-testing'; // use a different string for testing only
+		$testCases = [
+			'MW_MATH_SIMPLE'      => $default,
+			'MW_MATH_HTML'        => $default,
+			'MW_MATH_MODERN'      => $default,
+			'MW_MATH_MATHJAX'     => $default,
+			'MW_MATH_LATEXML_JAX' => $default,
+			'MW_MATH_PNG'         => 'png',
+			'MW_MATH_SOURCE'      => 'source',
+			'MW_MATH_MATHML'      => 'mathml',
+			'MW_MATH_LATEXML'     => 'latexml',
+			1                     => $default,
+			2                     => $default,
+			4                     => $default,
+			6                     => $default,
+			8                     => $default,
+			0                     => 'png',
+			3                     => 'source',
+			5                     => 'mathml',
+			7                     => 'latexml',
+			'png'                 => 'png',
+			'source'              => 'source',
+			'mathml'              => 'mathml',
+			'latexml'             => 'latexml',
+		];
+		foreach ( $testCases as $input => $expected ){
+			$real = MathHooks::mathModeToString( $input, $default );
+			$this->assertEquals( $expected, $real, "Conversion math mode $input -> $expected" );
+		}
+	}
+
+	public function testMathStyleToString() {
+		$default = 'inlineDisplaystyle-test';
+		$testCases = [
+			'MW_MATHSTYLE_INLINE_DISPLAYSTYLE'  => 'inlineDisplaystyle',
+			'MW_MATHSTYLE_DISPLAY'              => 'display',
+			'MW_MATHSTYLE_INLINE'               => 'inline',
+			0                                   => 'inlineDisplaystyle',
+			1                                   => 'display',
+			2                                   => 'inline',
+			'inlineDisplaystyle'                => 'inlineDisplaystyle',
+			'display'                           => 'display',
+			'inline'                            => 'inline',
+		];
+		foreach ( $testCases as $input => $expected ){
+			$real = MathHooks::mathStyleToString( $input, $default );
+			$this->assertEquals( $expected, $real, "Conversion in math style" );
+		}
+	}
+
+	public function testMathCheckToString() {
+		$default = 'always-default';
+		$testCases = [
+			'MW_MATH_CHECK_ALWAYS'  => 'always',
+			'MW_MATH_CHECK_NEVER'   => 'never',
+			'MW_MATH_CHECK_NEW'     => 'new',
+			0                       => 'always',
+			1                       => 'never',
+			2                       => 'new',
+			'always'                => 'always',
+			'never'                 => 'never',
+			'new'                   => 'new',
+			true                    => 'never',
+			false                   => 'always'
+		];
+
+		foreach ( $testCases as $input => $expected ){
+			$real = MathHooks::mathCheckToString( $input, $default );
+			$this->assertEquals( $expected, $real, "Conversion in math check method" );
+		}
+	}
+
+	public function testMathModeToHash() {
+		$default = 0;
+		$testCases = [
+			'png'    => 0,
+			'source' => 3,
+			'mathml' => 5,
+			'latexml'=> 7,
+			'invalid'=> $default
+		];
+
+		foreach ( $testCases as $input => $expected ){
+			$real = MathHooks::mathModeToHashKey( $input, $default );
+			$this->assertEquals( $expected, $real, "Conversion to hash key" );
+		}
+	}
+
+	public function testGetMathNames() {
+		$real = MathHooks::getMathNames();
+		$this->assertEquals( 'PNG images', $real['png'] );
+	}
+
+}
diff --git a/tests/MathIdTest.php b/tests/MathIdTest.php
new file mode 100644
index 0000000..38ac6bc
--- /dev/null
+++ b/tests/MathIdTest.php
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * Test the Id feature
+ *
+ * @covers MathRenderer
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathIdTest extends MediaWikiTestCase {
+
+	/**
+	 * Checks if the id specified as attribute is set in the renderer object
+	 */
+	public function testBasics() {
+		define( 'RANDOM_ID', 'a_random_id' );
+		$renderer = MathRenderer::getRenderer( "a+b", [ 'id' => RANDOM_ID ] );
+		$this->assertEquals( RANDOM_ID, $renderer->getId() );
+	}
+
+}
diff --git a/tests/MathInputCheckRestbaseTest.php b/tests/MathInputCheckRestbaseTest.php
new file mode 100644
index 0000000..dca32e0
--- /dev/null
+++ b/tests/MathInputCheckRestbaseTest.php
@@ -0,0 +1,107 @@
+<?php
+
+/**
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathInputCheckRestbaseTest extends MediaWikiTestCase {
+	protected static $hasRestbase;
+	/** @var MathInputCheckRestbase */
+	protected $BadObject;
+	/** @var MathInputCheckRestbase */
+	protected $GoodObject;
+	public static function setUpBeforeClass() {
+		$rbi = new MathRestbaseInterface();
+		self::$hasRestbase = $rbi->checkBackend( true );
+	}
+
+	/**
+	 * Sets up the fixture, for example, opens a network connection.
+	 * This method is called before a test is executed.
+	 */
+	protected function setUp() {
+		parent::setUp();
+		if ( !self::$hasRestbase ) {
+			$this->markTestSkipped( "Can not connect to Restbase Math interface." );
+		}
+		$this->BadObject = new MathInputCheckRestbase( '\newcommand{\text{do evil things}}' );
+		$this->GoodObject = new MathInputCheckRestbase( '\sin\left(\frac12x\right)' );
+
+	}
+
+	/**
+ * @covers MathInputCheckRestbase::getError
+ */
+	public function testGetError() {
+		$this->assertNull( $this->GoodObject->getError() );
+		$this->assertNull( $this->BadObject->getError() );
+		$this->BadObject->isValid();
+		$this->GoodObject->isValid();
+		$this->assertNull( $this->GoodObject->getError() );
+		$expectedMessage = wfMessage(
+				'math_unknown_function', '\newcommand'
+		)->inContentLanguage()->escaped();
+		$this->assertContains( $expectedMessage, $this->BadObject->getError() );
+	}
+	/**
+	 * @covers MathInputCheckRestbase::getError
+	 */
+	public function testErrorSyntax() {
+		$o = new MathInputCheckRestbase( '\left(' );
+		$this->assertFalse( $o->isValid() );
+		$expectedMessage = wfMessage( 'math_syntax_error' )->inContentLanguage()->escaped();
+		$this->assertContains( $expectedMessage, $o->getError() );
+	}
+	/**
+	 * @covers MathInputCheckRestbase::getError
+	 */
+	public function testErrorLexing() {
+		$o = new MathInputCheckRestbase( "\x61\xCC\x81" );
+		$this->assertFalse( $o->isValid() );
+		// Lexical errors are no longer supported. The new error message
+		// Expected "-", "[", "\\\\",
+		// "\\\\begin", "\\\\begin{", "]", "^", "_", "{", [ \\t\\n\\r], [%$], [().], [,:;?!\\\'],
+		// [-+*=], [0-9], [><~], [\\/|] or [a-zA-Z] but "\\u0301" found.
+		// is more expressive anyhow.
+		$expectedMessage = wfMessage( 'math_syntax_error' )->inContentLanguage()->escaped();
+		$this->assertContains( $expectedMessage, $o->getError() );
+	}
+
+	/**
+	 * @covers MathInputCheckRestbase::isValid
+	 */
+	public function testIsValid() {
+		$this->assertFalse( $this->BadObject->isValid() );
+		$this->assertTrue( $this->GoodObject->isValid() );
+	}
+
+	/**
+	 * @covers MathInputCheckRestbase::getValidTex
+	 */
+	public function testGetValidTex() {
+		$this->assertNull( $this->GoodObject->getValidTex() );
+		$this->assertNull( $this->BadObject->getValidTex() );
+		$this->BadObject->isValid();
+		$this->GoodObject->isValid();
+		$this->assertNull( $this->BadObject->getValidTex() );
+
+		// Note that texvcjs has slightly diverged from texvc and enforces brackets for function
+		// arguments. Also the double space between frac and the arg has ben reduce to a single space.
+		$this->assertEquals( $this->GoodObject->getValidTex(), '\\sin \\left({\\frac {1}{2}}x\\right)' );
+	}
+
+	/**
+	 * Test corner cases of texvccheck conversion
+	 * @covers MathInputCheckTexvc::getValidTex
+	 */
+	public function testGetValidTexCornerCases() {
+		$Object = new MathInputCheckTexvc( '\reals' );
+		$Object->isValid();
+		$this->assertEquals( "\\mathbb{R} ", $Object->getValidTex() );
+		$Object = new MathInputCheckTexvc( '\lbrack' ); // Bug: 54624
+		$Object->isValid();
+		$this->assertEquals( '\\lbrack ', $Object->getValidTex() );
+	}
+
+}
diff --git a/tests/MathInputCheckTest.php b/tests/MathInputCheckTest.php
new file mode 100644
index 0000000..6d9a3f3
--- /dev/null
+++ b/tests/MathInputCheckTest.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * @covers MathInputCheck
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathInputCheckTest extends MediaWikiTestCase
+{
+	/**
+	 * @covers MathInputCheck::isValid
+	 */
+	public function testIsValid() {
+		$InputCheck = $this->getMockBuilder( 'MathInputCheck' )->getMock();
+		$this->assertEquals( $InputCheck->IsValid(), false );
+	}
+
+	/**
+	 * @covers MathInputCheck::getError
+	 * @todo   Implement testGetError().
+	 */
+	public function testGetError() {
+		$InputCheck = $this->getMockBuilder( 'MathInputCheck' )->getMock();
+		$this->assertNull( $InputCheck->getError() );
+	}
+
+	/**
+	 * @covers MathInputCheck::getValidTex
+	 */
+	public function testGetValidTex() {
+		$InputCheck = $this->getMockBuilder( 'MathInputCheck' )
+			->setConstructorArgs( [ 'some tex input' ] )
+			->getMock();
+		$this->assertNull( $InputCheck->getValidTex() );
+	}
+}
diff --git a/tests/MathInputCheckTexvcTest.php b/tests/MathInputCheckTexvcTest.php
new file mode 100644
index 0000000..e965445
--- /dev/null
+++ b/tests/MathInputCheckTexvcTest.php
@@ -0,0 +1,191 @@
+<?php
+
+/**
+ * @covers MathInputCheckTexvc
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathInputCheckTexvcTest extends MediaWikiTestCase {
+
+	/**
+	 * @var MathInputCheckTexvc
+	 */
+	protected $BadObject;
+	protected $GoodObject;
+
+	protected static $hasTexvccheck;
+	protected static $texvccheckPath;
+
+	public static function setUpBeforeClass() {
+		global $wgMathTexvcCheckExecutable;
+
+		if ( is_executable( $wgMathTexvcCheckExecutable ) ) {
+			wfDebugLog( __CLASS__, " using build in texvccheck from "
+				. "\$wgMathTexvcCheckExecutable = $wgMathTexvcCheckExecutable" );
+			# Using build-in
+			self::$hasTexvccheck = true;
+			self::$texvccheckPath = $wgMathTexvcCheckExecutable;
+		} else {
+			# Attempt to compile
+			wfDebugLog( __CLASS__, " compiling texvccheck..." );
+			$cmd = 'cd ' . dirname( __DIR__ ) . '/texvccheck; make --always-make 2>&1';
+			wfShellExec( $cmd, $retval );
+			if ( $retval === 0 ) {
+				self::$hasTexvccheck = true;
+				self::$texvccheckPath = dirname( __DIR__ ) . '/texvccheck/texvccheck';
+				wfDebugLog( __CLASS__, ' compiled texvccheck at ' . self::$texvccheckPath );
+			} else {
+				wfDebugLog( __CLASS__, ' ocaml not available or compilation of texvccheck failed' );
+			}
+		}
+	}
+
+	/**
+	 * Sets up the fixture, for example, opens a network connection.
+	 * This method is called before a test is executed.
+	 */
+	protected function setUp() {
+		parent::setUp();
+		$this->BadObject = new MathInputCheckTexvc( '\newcommand{\text{do evil things}}' );
+		$this->GoodObject = new MathInputCheckTexvc( '\sin\left(\frac12x\right)' );
+
+		if ( ! self::$hasTexvccheck ) {
+			$this->markTestSkipped( "No texvccheck installed on server" );
+		} else {
+			$this->setMwGlobals( 'wgMathTexvcCheckExecutable',
+				self::$texvccheckPath );
+		}
+	}
+
+	/**
+	 * This is not a real phpUnit test.
+	 * It's just to discover whether setting default values dependent
+	 * on the existence of executables influences the performance reaonably.
+	 * The test is disabled by default. You can enable it via
+	 * php .../tests/phpunit/phpunit.php --group Utility ...
+	 * @group Utility
+	 */
+	public function testPerformanceIsExecutable() {
+		global $wgMathTexvcCheckExecutable;
+		/** @var int the number of runs used in that test */
+		$numberOfRuns = 10;
+		/** @var double the maximal average time accetable for a execution of is_executable in seconds*/
+		$maxAvgTime = .001;
+		$tstart = microtime( true );
+
+		for ( $i = 1; $i <= $numberOfRuns; $i++ ) {
+			is_executable( $wgMathTexvcCheckExecutable );
+		}
+
+		$time = microtime( true ) - $tstart;
+		$this->assertTrue(
+			$time < $maxAvgTime * $numberOfRuns,
+			'function is_executable consumes too much time'
+		);
+	}
+
+	/**
+	 * @covers MathInputCheckTexvc::testGetError
+	 */
+	public function testGetError() {
+		$this->assertNull( $this->GoodObject->getError() );
+		$this->assertNull( $this->BadObject->getError() );
+		$this->BadObject->isValid();
+		$this->GoodObject->isValid();
+		$this->assertNull( $this->GoodObject->getError() );
+		$expectedMessage = wfMessage(
+			'math_unknown_function', '\newcommand'
+		)->inContentLanguage()->escaped();
+		$this->assertContains( $expectedMessage, $this->BadObject->getError() );
+	}
+
+	/**
+	 * @covers MathInputCheckTexvc::isValid
+	 */
+	public function testIsValid() {
+		$this->assertFalse( $this->BadObject->isValid() );
+		$this->assertTrue( $this->GoodObject->isValid() );
+	}
+
+	/**
+	 * @covers MathInputCheckTexvc::getValidTex
+	 */
+	public function testGetValidTex() {
+		$this->assertNull( $this->GoodObject->getValidTex() );
+		$this->assertNull( $this->BadObject->getValidTex() );
+		$this->BadObject->isValid();
+		$this->GoodObject->isValid();
+		$this->assertNull( $this->BadObject->getValidTex() );
+
+		// Be aware of the additional brackets and spaces inserted here
+		$this->assertEquals( $this->GoodObject->getValidTex(), "\\sin \\left({\\frac  12}x\\right)" );
+	}
+
+	/**
+	 * Test corner cases of texvccheck conversion
+	 * @covers MathInputCheckTexvc::getValidTex
+	 */
+	public function testGetValidTexCornerCases() {
+		$Object = new MathInputCheckTexvc( '\reals' );
+		$Object->isValid();
+		$this->assertEquals( "\\mathbb{R} ", $Object->getValidTex() );
+		$Object = new MathInputCheckTexvc( '\lbrack' ); // Bug: 54624
+		$Object->isValid();
+		$this->assertEquals( '\\lbrack ', $Object->getValidTex() );
+	}
+
+	/**
+	 * Tests behavior of convertTexvcError
+	 * The method was moved from MathTexvc to MathInputCheckTexvc
+	 * @covers MathTexvc::convertTexvcError
+	 */
+	public function testConvertTexvcError() {
+		$texvc = $this->getMockBuilder( 'MathInputCheckTexvc' )
+			->setMethods( null )
+			->disableOriginalConstructor()
+			->getMock();
+
+		$mathFailure = wfMessage( 'math_failure' )->inContentLanguage()->escaped();
+
+		$actualLexing = $texvc->convertTexvcError( 'E' );
+		$expectedLexing = wfMessage( 'math_lexing_error', '' )->inContentLanguage()->escaped();
+		$this->assertContains(
+			$mathFailure, $actualLexing, 'Lexing error contains general math failure message'
+		);
+		$this->assertContains(
+			$expectedLexing, $actualLexing, 'Lexing error contains detailed error for lexing'
+		);
+
+		$actualSyntax = $texvc->convertTexvcError( 'S' );
+		$expectedSyntax = wfMessage( 'math_syntax_error', '' )->inContentLanguage()->escaped();
+		$this->assertContains(
+			$mathFailure, $actualSyntax, 'Syntax error contains general math failure message'
+		);
+		$this->assertContains(
+			$expectedSyntax, $actualSyntax, 'Syntax error contains detailed error for syntax'
+		);
+
+		$unknownFunction = 'figureEightIntegral';
+		$actualUnknownFunction = $texvc->convertTexvcError( "F$unknownFunction" );
+		$expectedUnknownFunction = wfMessage(
+			'math_unknown_function', $unknownFunction
+		)->inContentLanguage()->escaped();
+		$this->assertContains( $mathFailure, $actualUnknownFunction,
+			'Unknown function error contains general math failure message'
+		);
+		$this->assertContains( $expectedUnknownFunction, $actualUnknownFunction,
+			'Unknown function error contains detailed error for unknown function'
+		);
+
+		$actualUnknownError = $texvc->convertTexvcError( 'Q' );
+		$expectedUnknownError = wfMessage( 'math_unknown_error', '' )->inContentLanguage()->escaped();
+		$this->assertContains(
+			$mathFailure, $actualUnknownError, 'Unknown error contains general math failure message'
+		);
+		$this->assertContains( $expectedUnknownError, $actualUnknownError,
+			'Unknown error contains detailed error for unknownError'
+		);
+	}
+}
diff --git a/tests/MathLaTeXMLDatabaseTest.php b/tests/MathLaTeXMLDatabaseTest.php
new file mode 100644
index 0000000..399966d
--- /dev/null
+++ b/tests/MathLaTeXMLDatabaseTest.php
@@ -0,0 +1,115 @@
+<?php
+
+/**
+ * @covers MathLaTeXML
+ *
+ * @group Math
+ * @group Database (Used by needsDB)
+ *
+ * @licence GNU GPL v2+
+ */
+class MathLaTeXMLDatabaseTest extends MediaWikiTestCase {
+	public $renderer;
+	const SOME_TEX = "a+b";
+	const SOME_HTML = "a<sub>b</sub>";
+	const SOME_MATHML = "iℏ∂_tΨ=H^Ψ<mrow><\ci>";
+	const SOME_LOG = "Sample Log Text.";
+	const SOME_TIMESTAMP = 1272509157;
+	const SOME_SVG = "<?xml </svg >>%%LIKE;'\" DROP TABLE math;";
+
+	/**
+	 * Helper function to test protected/private Methods
+	 * @param $name
+	 * @return ReflectionMethod
+	 */
+	protected static function getMethod( $name ) {
+		$class = new ReflectionClass( 'MathLaTeXML' );
+		$method = $class->getMethod( $name );
+		$method->setAccessible( true );
+		return $method;
+	}
+
+	/**
+	 * creates a new database connection and a new math renderer
+	 * TODO: Check if there is a way to get database access without creating
+	 * the connection to the database explicitly
+	 * function addDBData() {
+	 * 	$this->tablesUsed[] = 'math';
+	 * }
+	 * was not sufficient.
+	 */
+	protected function setup() {
+		parent::setUp();
+		// TODO: figure out why this is necessary
+		$this->db = wfGetDB( DB_MASTER );
+		// Create a new instance of MathSource
+		$this->renderer = new MathLaTeXML( self::SOME_TEX );
+		self::setupTestDB( $this->db, "mathtest" );
+	}
+
+	/**
+	 * Checks the tex and hash functions
+	 * @covers MathRenderer::getInputHash()
+	 */
+	public function testInputHash() {
+		$expectedhash = $this->db->encodeBlob( pack( "H32", md5( self::SOME_TEX ) ) );
+		$this->assertEquals( $expectedhash, $this->renderer->getInputHash() );
+	}
+
+	/**
+	 * Helper function to set the current state of the sample renderer instance to the test values
+	 */
+	public function setValues() {
+		// set some values
+		$this->renderer->setTex( self::SOME_TEX );
+		$this->renderer->setMathml( self::SOME_MATHML );
+	}
+
+	/**
+	 * @covers MathLaTeXML::getMathTableName
+	 */
+	public function testTableName() {
+		$fnGetMathTableName = self::getMethod( 'getMathTableName' );
+		$obj = new MathLaTeXML();
+		$tableName = $fnGetMathTableName->invokeArgs( $obj, [] );
+		$this->assertEquals( $tableName, "mathlatexml", "Wrong latexml table name" );
+	}
+
+	/**
+	 * Checks the creation of the math table.
+	 * @covers MathHooks::onLoadExtensionSchemaUpdates
+	 */
+	public function testCreateTable() {
+		$this->setMwGlobals( 'wgMathValidModes', [ 'latexml' ] );
+		$this->db->dropTable( "mathlatexml", __METHOD__ );
+		$dbu = DatabaseUpdater::newForDB( $this->db );
+		$dbu->doUpdates( [ "extensions" ] );
+		$this->expectOutputRegex( '/(.*)Creating mathlatexml table(.*)/' );
+		$this->setValues();
+		$this->renderer->writeToDatabase();
+		$res = $this->db->select( "mathlatexml", "*" );
+		$row = $res->fetchRow();
+		$this->assertEquals( 12,  count( $row ) );
+	}
+
+	/**
+	 * Checks database access. Writes an entry and reads it back.
+	 * @depends testCreateTable
+	 * @covers MathRenderer::writeDatabaseEntry()
+	 * @covers MathRenderer::readDatabaseEntry()
+	 */
+	public function testDBBasics() {
+		$this->setValues();
+		$this->renderer->writeToDatabase();
+
+		$renderer2 = $this->renderer = new MathLaTeXML( self::SOME_TEX );
+		$renderer2->readFromDatabase();
+		// comparing the class object does now work due to null values etc.
+		$this->assertEquals(
+			$this->renderer->getTex(), $renderer2->getTex(), "test if tex is the same"
+		);
+		$this->assertEquals(
+			$this->renderer->getMathml(), $renderer2->getMathml(), "Check MathML encoding"
+		);
+	}
+}
diff --git a/tests/MathLaTeXMLTest.php b/tests/MathLaTeXMLTest.php
new file mode 100644
index 0000000..6008959
--- /dev/null
+++ b/tests/MathLaTeXMLTest.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * Test the LaTeXML output format.
+ *
+ * @covers MathLaTeXML
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathLaTeXMLTest extends MediaWikiTestCase {
+
+	/**
+	 * Tests the serialization of the LaTeXML settings
+	 * @covers MathLaTeXML::serializeSettings
+	 */
+	public function testSerializeSettings() {
+		$renderer = $this->getMockBuilder( 'MathLaTeXML' )
+			->setMethods( null )
+			->disableOriginalConstructor()
+			->getMock();
+		$sampleSettings = [
+			'k1' => 'v1',
+			'k2&=' => 'v2 + & *üö',
+			'k3' => [
+				'v3A', 'v3b'
+			]
+		];
+		$expected = 'k1=v1&k2%26%3D=v2+%2B+%26+%2A%C3%BC%C3%B6&k3=v3A&k3=v3b';
+		$this->assertEquals(
+			$expected,
+			$renderer->serializeSettings( $sampleSettings ),
+			'test serialization of array settings'
+		);
+		$this->assertEquals(
+			$expected,
+			$renderer->serializeSettings( $expected ),
+			'test serialization of a string setting'
+		);
+	}
+}
diff --git a/tests/MathMLRdfBuilderTest.php b/tests/MathMLRdfBuilderTest.php
new file mode 100644
index 0000000..4b6c54b
--- /dev/null
+++ b/tests/MathMLRdfBuilderTest.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Test the MathML RDF formatter
+ *
+ * @group Math
+ * @covers MathMLRdfBuilder
+ * @author Moritz Schubotz (physikerwelt)
+ */
+
+use DataValues\StringValue;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Snak\PropertyValueSnak;
+use Wikimedia\Purtle\NTriplesRdfWriter;
+
+class MathMLRdfBuilderTest extends MediaWikiTestCase {
+	const ACME_PREFIX_URL = 'http://acme/';
+	const ACME_REF = 'testing';
+	protected static $hasRestbase;
+
+	public static function setUpBeforeClass() {
+		$rbi = new MathRestbaseInterface();
+		self::$hasRestbase = $rbi->checkBackend( true );
+	}
+
+	/**
+	 * Sets up the fixture, for example, opens a network connection.
+	 * This method is called before a test is executed.
+	 */
+	protected function setUp() {
+		parent::setUp();
+		if ( !self::$hasRestbase ) {
+			$this->markTestSkipped( "Can not connect to Restbase Math interface." );
+		}
+	}
+
+	/**
+	 *
+	 * @param string $test
+	 * @return string
+	 */
+	private function makeCase( $test ) {
+		$builder = new MathMLRdfBuilder();
+		$writer = new NTriplesRdfWriter();
+		$writer->prefix( 'www', "http://www/" );
+		$writer->prefix( 'acme', self::ACME_PREFIX_URL );
+
+		$writer->start();
+		$writer->about( 'www', 'Q1' );
+
+		$snak = new PropertyValueSnak( new PropertyId( 'P1' ), new StringValue( $test ) );
+		$builder->addValue( $writer, 'acme', self::ACME_REF, 'DUMMY', $snak );
+
+		return trim( $writer->drain() );
+	}
+
+	public function testValidInput() {
+		$triples = $this->makeCase( 'a^2' );
+		$this->assertContains( self::ACME_PREFIX_URL . self::ACME_REF . '> "<math', $triples );
+		$this->assertContains( '<mi>a</mi>\n', $triples );
+		$this->assertContains( '<mn>2</mn>\n', $triples );
+		$this->assertContains( 'a^{2}', $triples );
+		$this->assertContains( '^^<http://www.w3.org/1998/Math/MathML> .', $triples );
+	}
+
+	public function testInvalidInput() {
+		$triples = $this->makeCase( '\notExists' );
+		$this->assertContains( '<math', $triples );
+		$this->assertContains( 'unknown function', $triples );
+		$this->assertContains( 'notExists', $triples );
+		$this->assertContains( '^^<http://www.w3.org/1998/Math/MathML> .', $triples );
+	}
+}
diff --git a/tests/MathMathMLTest.php b/tests/MathMathMLTest.php
new file mode 100644
index 0000000..745c449
--- /dev/null
+++ b/tests/MathMathMLTest.php
@@ -0,0 +1,187 @@
+<?php
+
+/**
+ * Test the MathML output format.
+ *
+ * @covers MathMathML
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathMathMLTest extends MediaWikiTestCase {
+
+	// State-variables for HTTP Mockup classes
+	public static $content = null;
+	public static $good = false;
+	public static $html = false;
+	public static $timeout = false;
+
+	/**
+	 * Set the mock values for the HTTP Mockup classes
+	 *
+	 * @param boolean $good
+	 * @param mixed $html HTML of the error message or false if no error is present.
+	 * @param boolean $timeout true if
+	 */
+	public static function setMockValues( $good, $html, $timeout ) {
+		self::$good = $good;
+		self::$html = $html;
+		self::$timeout = $timeout;
+	}
+
+	/**
+	 * Tests behavior of makeRequest() that communicates with the host.
+	 * Testcase: Invalid request.
+	 * @covers MathTexvc::makeRequest
+	 */
+	public function testMakeRequestInvalid() {
+		self::setMockValues( false, false, false );
+		$url = 'http://example.com/invalid';
+
+		$renderer = $this->getMockBuilder( 'MathMathML' )
+				->setMethods( null )
+				->disableOriginalConstructor()
+				->getMock();
+		$requestReturn = $renderer->makeRequest( $url, 'a+b', $res, $error,
+			'MathMLHttpRequestTester' );
+		$this->assertEquals( false, $requestReturn,
+			"requestReturn is false if HTTP::post returns false." );
+		$this->assertEquals( false, $res,
+			"res is false if HTTP:post returns false." );
+		$errmsg = wfMessage( 'math_invalidresponse', '', $url, '' )->inContentLanguage()->escaped();
+		$this->assertContains( $errmsg, $error,
+			"return an error if HTTP::post returns false" );
+	}
+
+	/**
+	 * Tests behavior of makeRequest() that communicates with the host.
+	 * Testcase: Valid request.
+	 * @covers MathTexvc::makeRequest
+	 */
+	public function testMakeRequestSuccess() {
+		self::setMockValues( true, true, false );
+		$url = 'http://example.com/valid';
+		$renderer = $this->getMockBuilder( 'MathMathML' )
+				->setMethods( null )
+				->disableOriginalConstructor()
+				->getMock();
+		$requestReturn = $renderer->makeRequest( $url, 'a+b', $res, $error,
+			'MathMLHttpRequestTester' );
+		$this->assertEquals( true, $requestReturn, "successful call return" );
+		$this->isTrue( $res, "successfull call" );
+		$this->assertEquals( $error, '', "successfull call errormessage" );
+	}
+
+	/**
+	 * Tests behavior of makeRequest() that communicates with the host.
+	 * Testcase: Timeout.
+	 * @covers MathMathML::makeRequest
+	 */
+	public function testMakeRequestTimeout() {
+		self::setMockValues( false, true, true );
+		$url = 'http://example.com/timeout';
+		$renderer = $this->getMockBuilder( 'MathMathML' )
+				->setMethods( null )
+				->disableOriginalConstructor()
+				->getMock();
+		$requestReturn = $renderer->makeRequest(
+			$url, '$\longcommand$', $res, $error, 'MathMLHttpRequestTester'
+		);
+		$this->assertEquals( false, $requestReturn, "timeout call return" );
+		$this->assertEquals( false, $res, "timeout call return" );
+		$errmsg = wfMessage( 'math_timeout', '', $url )->inContentLanguage()->escaped();
+		$this->assertContains( $errmsg, $error, "timeout call errormessage" );
+	}
+
+	/**
+	 * Checks if a String is a valid MathML element
+	 * @covers MathMathML::isValidXML
+	 */
+	public function testisValidXML() {
+		$renderer = $this->getMockBuilder( 'MathMathML' )
+				->setMethods( null )
+				->disableOriginalConstructor()
+				->getMock();
+		$validSample = '<math>content</math>';
+		$invalidSample = '<notmath />';
+		$this->assertTrue( $renderer->isValidMathML( $validSample ),
+			'test if math expression is valid mathml sample' );
+		$this->assertFalse( $renderer->isValidMathML( $invalidSample ),
+			'test if math expression is invalid mathml sample' );
+	}
+
+	public function testintegrationTestWithLinks() {
+		$p = new Parser();
+		$po = new ParserOptions();
+		$t = new Title( "test" );
+		$res = $p->parse( '[[test|<math forcemathmode="png">a+b</math>]]', $t, $po )->getText();
+		$this->assertContains( '</a>', $res );
+		$this->assertContains( '.png', $res );
+	}
+
+	/**
+	 * @covers MathMathML::correctSvgStyle
+	 * @see https://phabricator.wikimedia.org/T132563
+	 */
+	public function testMathMLStyle() {
+		$m = new MathMathML();
+		$m->setSvg( 'style="vertical-align:-.505ex" height="2.843ex" width="28.527ex"' );
+		$style = '';
+		$m->correctSvgStyle( $style );
+		$this->assertEquals( 'vertical-align:-.505ex; height: 2.843ex; width: 28.527ex;', $style );
+		$m->setSvg( 'style=" vertical-align:-.505ex; \n" height="2.843ex" width="28.527ex"' );
+		$this->assertEquals( 'vertical-align:-.505ex; height: 2.843ex; width: 28.527ex;', $style );
+	}
+}
+
+/**
+ * Helper class for testing
+ * @author physikerwelt
+ * @see MWHttpRequestTester
+ *
+ */
+class MathMLHttpRequestTester {
+
+	public static function factory() {
+		return new MathMLHttpRequestTester();
+	}
+
+	public static function execute() {
+		return new MathMLTestStatus();
+	}
+
+	public static function getContent() {
+		return MathMathMLTest::$content;
+	}
+
+}
+
+/**
+ * Helper class for testing
+ * @author physikerwelt
+ * @see Status
+ */
+class MathMLTestStatus {
+
+	static function isGood() {
+		return MathMathMLTest::$good;
+	}
+
+	static function hasMessage( $s ) {
+		if ( $s == 'http-timed-out' ) {
+			return MathMathMLTest::$timeout;
+		} else {
+			return false;
+		}
+	}
+
+	static function getHtml() {
+		return MathMathMLTest::$html;
+	}
+
+	static function getWikiText() {
+		return MathMathMLTest::$html;
+	}
+
+}
diff --git a/tests/MathRendererTest.php b/tests/MathRendererTest.php
new file mode 100644
index 0000000..9ce8f40
--- /dev/null
+++ b/tests/MathRendererTest.php
@@ -0,0 +1,164 @@
+<?php
+
+/**
+ * Test the database access and core functionality of MathRenderer.
+ *
+ * @covers MathRenderer
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathRendererTest extends MediaWikiTestCase {
+	const SOME_TEX = "a+b";
+	const TEXVCCHECK_INPUT = '\forall \epsilon \exist \delta';
+	const TEXVCCHECK_OUTPUT = '\forall \epsilon \exists \delta '; // be aware of the s at exists
+
+	protected static $hasRestbase;
+
+	public static function setUpBeforeClass() {
+		$rbi = new MathRestbaseInterface();
+		self::$hasRestbase = $rbi->checkBackend( true );
+	}
+
+	/**
+	 * Sets up the fixture, for example, opens a network connection.
+	 * This method is called before a test is executed.
+	 */
+	protected function setUp() {
+		parent::setUp();
+		if ( !self::$hasRestbase ) {
+			$this->markTestSkipped( "Can not connect to Restbase Math interface." );
+		}
+	}
+
+	/**
+	 * Checks the tex and hash functions
+	 * @covers MathRenderer::getTex()
+	 * @covers MathRenderer::__construct()
+	 */
+	public function testBasics() {
+		$renderer = $this->getMockForAbstractClass( 'MathRenderer', [ self::SOME_TEX ] );
+		// check if the TeX input was corretly passed to the class
+		$this->assertEquals( self::SOME_TEX, $renderer->getTex(), "test getTex" );
+		$this->assertEquals( $renderer->isChanged(), false, "test if changed is initially false" );
+	}
+
+	/**
+	 * Test behavior of writeCache() when nothing was changed
+	 * @covers MathRenderer::writeCache()
+	 */
+	public function testWriteCacheSkip() {
+		$renderer =
+			$this->getMockBuilder( 'MathRenderer' )->setMethods( [
+					'writeToDatabase',
+					'render',
+					'getMathTableName',
+					'getHtmlOutput'
+				] )->disableOriginalConstructor()->getMock();
+		$renderer->expects( $this->never() )->method( 'writeToDatabase' );
+		$renderer->writeCache();
+	}
+
+	/**
+	 * Test behavior of writeCache() when values were changed.
+	 * @covers MathRenderer::writeCache()
+	 */
+	public function testWriteCache() {
+		$renderer =
+			$this->getMockBuilder( 'MathRenderer' )->setMethods( [
+					'writeToDatabase',
+					'render',
+					'getMathTableName',
+					'getHtmlOutput'
+				] )->disableOriginalConstructor()->getMock();
+		$renderer->expects( $this->never() )->method( 'writeToDatabase' );
+		$renderer->writeCache();
+	}
+
+	public function testSetPurge() {
+		$renderer =
+			$this->getMockBuilder( 'MathRenderer' )->setMethods( [
+					'render',
+					'getMathTableName',
+					'getHtmlOutput'
+				] )->disableOriginalConstructor()->getMock();
+		$renderer->setPurge();
+		$this->assertEquals( $renderer->isPurge(), true, "Test purge." );
+
+	}
+
+	public function testDisableCheckingAlways() {
+		$this->setMwGlobals( "wgMathDisableTexFilter", 'never' );
+		$renderer =
+			$this->getMockBuilder( 'MathRenderer' )->setMethods( [
+					'render',
+					'getMathTableName',
+					'getHtmlOutput',
+					'readFromDatabase',
+					'setTex'
+				] )->setConstructorArgs( [ self::TEXVCCHECK_INPUT ] )->getMock();
+		$renderer->expects( $this->never() )->method( 'readFromDatabase' );
+		$renderer->expects( $this->once() )->method( 'setTex' )->with( self::TEXVCCHECK_OUTPUT );
+
+		$this->assertEquals( $renderer->checkTeX(), true );
+		// now setTex sould not be called again
+		$this->assertEquals( $renderer->checkTeX(), true );
+
+	}
+
+	public function testDisableCheckingNever() {
+		$this->setMwGlobals( "wgMathDisableTexFilter", 'always' );
+		$renderer =
+			$this->getMockBuilder( 'MathRenderer' )->setMethods( [
+					'render',
+					'getMathTableName',
+					'getHtmlOutput',
+					'readFromDatabase',
+					'setTex'
+				] )->setConstructorArgs( [ self::TEXVCCHECK_INPUT ] )->getMock();
+		$renderer->expects( $this->never() )->method( 'readFromDatabase' );
+		$renderer->expects( $this->never() )->method( 'setTex' );
+
+		$this->assertEquals( $renderer->checkTeX(), true );
+	}
+
+	public function testCheckingNewUnknown() {
+		$this->setMwGlobals( "wgMathDisableTexFilter", 'new' );
+		$renderer =
+			$this->getMockBuilder( 'MathRenderer' )->setMethods( [
+					'render',
+					'getMathTableName',
+					'getHtmlOutput',
+					'readFromDatabase',
+					'setTex'
+				] )->setConstructorArgs( [ self::TEXVCCHECK_INPUT ] )->getMock();
+		$renderer->expects( $this->once() )->method( 'readFromDatabase' )
+			->will( $this->returnValue( false ) );
+		$renderer->expects( $this->once() )->method( 'setTex' )->with( self::TEXVCCHECK_OUTPUT );
+
+		$this->assertEquals( $renderer->checkTeX(), true );
+		// now setTex sould not be called again
+		$this->assertEquals( $renderer->checkTeX(), true );
+	}
+
+	public function testCheckingNewKnown() {
+		$this->setMwGlobals( "wgMathDisableTexFilter", 'new' );
+		$renderer =
+			$this->getMockBuilder( 'MathRenderer' )->setMethods( [
+					'render',
+					'getMathTableName',
+					'getHtmlOutput',
+					'readFromDatabase',
+					'setTex'
+				] )->setConstructorArgs( [ self::TEXVCCHECK_INPUT ] )->getMock();
+		$renderer->expects( $this->exactly( 2 ) )->method( 'readFromDatabase' )
+			->will( $this->returnValue( true ) );
+		$renderer->expects( $this->never() )->method( 'setTex' );
+
+		$this->assertEquals( $renderer->checkTeX(), true );
+		// we don't mark a object as checked even though we rely on the database cache
+		// so readFromDatabase will be called again
+		$this->assertEquals( $renderer->checkTeX(), true );
+	}
+}
diff --git a/tests/MathRestBaseInterfaceTest.php b/tests/MathRestBaseInterfaceTest.php
new file mode 100644
index 0000000..af21836
--- /dev/null
+++ b/tests/MathRestBaseInterfaceTest.php
@@ -0,0 +1,88 @@
+<?php
+
+/**
+ * Test the interface to access Restbase paths
+ * /media/math/check/{type}
+ * /media/math/render/{format}/{hash}
+ *
+ * @covers MathRestbaseInterface
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathRestbaseInterfaceTest extends MediaWikiTestCase {
+	protected static $hasRestbase;
+
+	public static function setUpBeforeClass() {
+		$rbi = new MathRestbaseInterface();
+		self::$hasRestbase = $rbi->checkBackend( true );
+	}
+
+	/**
+	 * Sets up the fixture, for example, opens a network connection.
+	 * This method is called before a test is executed.
+	 */
+	protected function setUp() {
+		parent::setUp();
+		if ( !self::$hasRestbase ) {
+			$this->markTestSkipped( "Can not connect to Restbase Math interface." );
+		}
+	}
+
+	public function testConfig() {
+		$rbi = new MathRestbaseInterface();
+		$this->assertTrue( $rbi->checkBackend() );
+	}
+
+	public function testSuccess() {
+		$input = '\\sin x^2';
+		$rbi = new MathRestbaseInterface( $input );
+		$this->assertTrue( $rbi->getSuccess(), "Assuming that $input is valid input." );
+		$this->assertEquals( '\\sin x^{2}', $rbi->getCheckedTex() );
+		$this->assertContains( '<mi>sin</mi>', $rbi->getMathML() );
+		$url = $rbi->getFullSvgUrl();
+		$req = MWHttpRequest::factory( $url );
+		$status = $req->execute();
+		$this->assertTrue( $status->isOK() );
+		$this->assertContains( '</svg>', $req->getContent() );
+	}
+
+	public function testFail() {
+		$input = '\\sin\\newcommand';
+		$rbi = new MathRestbaseInterface( $input );
+		$this->assertFalse( $rbi->getSuccess(), "Assuming that $input is invalid input." );
+		$this->assertEquals( '', $rbi->getCheckedTex() );
+		$this->assertEquals( 'Illegal TeX function', $rbi->getError()->error->message );
+	}
+
+	public function testChem() {
+		$input = '\ce{H2O}';
+		$rbi = new MathRestbaseInterface( $input, 'chem' );
+		$this->assertTrue( $rbi->checkTeX(), "Assuming that $input is valid input." );
+		$this->assertTrue( $rbi->getSuccess(), "Assuming that $input is valid input." );
+		$this->assertEquals( '{\ce {H2O}}', $rbi->getCheckedTex() );
+		$this->assertContains( '<msubsup>', $rbi->getMathML() );
+		$this->assertContains( '<mtext>H</mtext>', $rbi->getMathML() );
+	}
+	/**
+	 * @expectedException MWException
+	 * @expectedExceptionMessage TeX input is invalid.
+	 */
+	public function testException() {
+		$input = '\\newcommand';
+		$rbi = new MathRestbaseInterface( $input );
+		$rbi->getMathML();
+	}
+
+	/**
+	 * @expectedException MWException
+	 * @expectedExceptionMessage TeX input is invalid.
+	 */
+	public function testExceptionSvg() {
+		$input = '\\newcommand';
+		$rbi = new MathRestbaseInterface( $input );
+		$rbi->getFullSvgUrl();
+	}
+
+}
diff --git a/tests/MathSourceTest.php b/tests/MathSourceTest.php
new file mode 100644
index 0000000..06ca7b4
--- /dev/null
+++ b/tests/MathSourceTest.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * Test the TeX source output format.
+ *
+ * @covers MathRenderer
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathSourceTest extends MediaWikiTestCase {
+
+	/**
+	 * Checks the basic functionallity
+	 * i.e. if the span element is generated right.
+	 */
+	public function testBasics() {
+		$real = MathRenderer::renderMath( "a+b", [], 'source' );
+		$this->assertEquals(
+			'<span class="mwe-math-fallback-source-inline tex" dir="ltr">$ a+b $</span>',
+			$real,
+			"Rendering of a+b in plain Text mode"
+		);
+	}
+
+	/**
+	 * Checks if newlines are converted to spaces correctly.
+	 */
+	public function testNewLines() {
+		$real = MathRenderer::renderMath( "a\n b", [], 'source' );
+		$this->assertSame(
+			'<span class="mwe-math-fallback-source-inline tex" dir="ltr">$ a  b $</span>',
+			$real,
+			"converting newlines to spaces"
+		);
+	}
+
+}
diff --git a/tests/MathTexvcTest.php b/tests/MathTexvcTest.php
new file mode 100644
index 0000000..d407a8d
--- /dev/null
+++ b/tests/MathTexvcTest.php
@@ -0,0 +1,192 @@
+<?php
+
+/**
+ * PHPUnit tests for MathTexvc.
+ *
+ * @covers MathTexvc
+ *
+ * @group Extensions
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathTexvcTest extends MediaWikiTestCase {
+
+	/**
+	 * Tests behavior of render() upon a cache hit.
+	 * If the rendered object exists in the database cache, MathTexvc
+	 * just generates HTML from it, and skips shelling out to texvc
+	 * entirely.
+	 * @covers MathTexvc::render
+	 */
+	function testRenderCacheHit() {
+		global $wgMathCheckFiles;
+
+		// Disable file checks. (This is permissable, because PHPUnit
+		// will backup / restore global state on test setup / teardown.)
+		$wgMathCheckFiles = false;
+
+		// Create a MathTexvc mock, replacing methods 'readFromDatabase',
+		// 'callTexvc', and 'doHTMLRender' with test doubles.
+		$texvc = $this->getMockBuilder( 'MathTexvc' )
+			->setMethods( [ 'readCache', 'callTexvc', 'getHtmlOutput' ] )
+			->disableOriginalConstructor()
+			->getMock();
+
+		// When we call render() below, MathTexvc will ...
+
+		// ... first check if the item exists in the database cache:
+		$texvc->expects( $this->once() )
+			->method( 'readCache' )
+			->with()
+			->will( $this->returnValue( true ) );
+
+		// ... if cache lookup succeeded, it won't shell out to texvc:
+		$texvc->expects( $this->never() )
+			->method( 'callTexvc' );
+
+		// ... the output will not be generated if not requested
+		$texvc->expects( $this->never() )
+			->method( 'getHtmlOutput' );
+
+		$texvc->render();
+	}
+
+	/**
+	 * Test behavior of render() upon cache miss.
+	 * If the rendered object is not in the cache, MathTexvc will shell
+	 * out to texvc to generate it. If texvc succeeds, it'll use the
+	 * result to generate HTML.
+	 * @covers MathTexvc::render
+	 */
+	function testRenderCacheMiss() {
+		$texvc = $this->getMockBuilder( 'MathTexvc' )
+			->setMethods( [ 'readCache', 'callTexvc', 'getHtmlOutput' ] )
+			->disableOriginalConstructor()
+			->getMock();
+
+		// When we call render() below, MathTexvc will ...
+
+		// ... first look up the item in cache:
+		$texvc->expects( $this->once() )
+			->method( 'readCache' )
+			->will( $this->returnValue( false ) );
+
+		// ... on cache miss, MathTexvc will shell out to texvc:
+		$texvc->expects( $this->once() )
+			->method( 'callTexvc' )
+			->will( $this->returnValue( MathTexvc::MW_TEXVC_SUCCESS ) );
+
+		// ... the output will not be generated if not requested
+		$texvc->expects( $this->never() )
+			->method( 'getHtmlOutput' );
+
+		$texvc->render();
+	}
+
+	/**
+	 * Test behavior of render() when texvc fails.
+	 * If texvc returns a value other than MW_TEXVC_SUCCESS, render()
+	 * returns the error object and does not attempt to generate HTML.
+	 * @covers MathTexvc::render
+	 */
+	function testRenderTexvcFailure() {
+		$texvc = $this->getMockBuilder( 'MathTexvc' )
+			->setMethods( [ 'readCache', 'callTexvc', 'getHtmlOutput' ] )
+			->disableOriginalConstructor()
+			->getMock();
+
+		// When we call render() below, MathTexvc will ...
+
+		// ... first look up the item in cache:
+		$texvc->expects( $this->any() )
+			->method( 'readCache' )
+			->will( $this->returnValue( false ) );
+
+		// ... on cache miss, shell out to texvc:
+		$texvc->expects( $this->once() )
+			->method( 'callTexvc' )
+			->will( $this->returnValue( false ) );
+
+		// ... if texvc fails, render() will not generate HTML:
+		$texvc->expects( $this->never() )
+			->method( 'getHtmlOutput' );
+
+		// ... it will return the error result instead:
+		$this->assertEquals( $texvc->render(), false );
+	}
+
+	/**
+	 * Tests behavior of convertTexvcError
+	 *
+	 * @covers MathTexvc::convertTexvcError
+	 */
+	public function testConvertTexvcError() {
+		$texvc = $this->getMockBuilder( 'MathTexvc' )
+			->setMethods( null )
+			->disableOriginalConstructor()
+			->getMock();
+
+		$mathFailure = wfMessage( 'math_failure' )->inContentLanguage()->escaped();
+
+		$actualLexing = $texvc->convertTexvcError( 'E' );
+		$expectedLexing = wfMessage( 'math_lexing_error', '' )->inContentLanguage()->escaped();
+		$this->assertContains(
+			$mathFailure, $actualLexing, 'Lexing error contains general math failure message'
+		);
+		$this->assertContains(
+			$expectedLexing, $actualLexing, 'Lexing error contains detailed error for lexing'
+		);
+
+		$actualSyntax = $texvc->convertTexvcError( 'S' );
+		$expectedSyntax = wfMessage( 'math_syntax_error', '' )->inContentLanguage()->escaped();
+		$this->assertContains(
+			$mathFailure, $actualSyntax, 'Syntax error contains general math failure message'
+		);
+		$this->assertContains(
+			$expectedSyntax, $actualSyntax, 'Syntax error contains detailed error for syntax'
+		);
+
+		$unknownFunction = 'figureEightIntegral';
+		$actualUnknownFunction = $texvc->convertTexvcError( "F$unknownFunction" );
+		$expectedUnknownFunction = wfMessage(
+			'math_unknown_function', $unknownFunction
+		)->inContentLanguage()->escaped();
+		$this->assertContains( $mathFailure, $actualUnknownFunction,
+			'Unknown function error contains general math failure message'
+		);
+		$this->assertContains( $expectedUnknownFunction, $actualUnknownFunction,
+			'Unknown function error contains detailed error for unknown function'
+		);
+
+		$actualUnknownError = $texvc->convertTexvcError( 'Q' );
+		$expectedUnknownError = wfMessage( 'math_unknown_error', '' )->inContentLanguage()->escaped();
+		$this->assertContains(
+			$mathFailure, $actualUnknownError, 'Unknown error contains general math failure message'
+		);
+		$this->assertContains( $expectedUnknownError, $actualUnknownError,
+			'Unknown error contains detailed error for unknownError'
+		);
+	}
+
+	/**
+	 * Test behavior $change when the rendered hash was changed
+	 * @covers MathRenderer::setHash()
+	 */
+	public function testChangeHash() {
+		$renderer = $this->getMockBuilder( 'MathTexvc' )
+			->setMethods( [ 'render', 'getMathTableName' ] )
+			->disableOriginalConstructor()
+			->getMock();
+		$this->assertEquals(
+			$renderer->isChanged(),
+			false,
+			"test if changed is initially false"
+		);
+		$renderer->setHash( '0000' );
+		$this->assertEquals(
+			$renderer->isChanged(),
+			true,
+			"assumes that changing a hash sets changed to true" );
+	}
+}
diff --git a/tests/MathValidatorTest.php b/tests/MathValidatorTest.php
new file mode 100644
index 0000000..f5b6b90
--- /dev/null
+++ b/tests/MathValidatorTest.php
@@ -0,0 +1,71 @@
+<?php
+
+use DataValues\StringValue;
+use DataValues\NumberValue;
+
+/**
+ * @covers MathValidator
+ *
+ * @group Math
+ *
+ * @licence GNU GPL v2+
+ */
+class MathValidatorTest extends MediaWikiTestCase {
+	const VADLID_TEX = "a^2+b^2=c^2";
+	const INVADLID_TEX = "\\notExists";
+
+	protected static $hasRestbase;
+
+	public static function setUpBeforeClass() {
+		$rbi = new MathRestbaseInterface();
+		self::$hasRestbase = $rbi->checkBackend( true );
+	}
+
+	/**
+	 * Sets up the fixture, for example, opens a network connection.
+	 * This method is called before a test is executed.
+	 */
+	protected function setUp() {
+		parent::setUp();
+
+		if ( !self::$hasRestbase ) {
+			$this->markTestSkipped( "Can not connect to Restbase Math interface." );
+		}
+	}
+
+	protected function tearDown() {
+		parent::tearDown();
+	}
+
+	/**
+	 * @expectedException ValueFormatters\Exceptions\MismatchingDataValueTypeException
+	 */
+	public function testNotStringValue() {
+		$validator = new MathValidator();
+		$validator->validate( new NumberValue( 0 ) );
+	}
+
+	/**
+	 * @expectedException ValueFormatters\Exceptions\MismatchingDataValueTypeException
+	 */
+	public function testNullValue() {
+		$validator = new MathValidator();
+		$validator->validate( null );
+	}
+
+	public function testValidInput() {
+		$validator = new MathValidator();
+		$result = $validator->validate( new StringValue( self::VADLID_TEX ) );
+		// not supported by jenkins php version
+		// $this->assertType( \ValueValidators\Result::class, $result );
+		$this->assertTrue( $result->isValid() );
+	}
+
+	public function testInvalidInput() {
+		$validator = new MathValidator();
+		$result = $validator->validate( new StringValue( self::INVADLID_TEX ) );
+		// not supported by jenkins php version
+		// $this->assertType( \ValueValidators\Result::class, $result );
+		$this->assertFalse( $result->isValid() );
+	}
+}
diff --git a/tests/ParserTest.json b/tests/ParserTest.json
new file mode 100644
index 0000000..168496b
--- /dev/null
+++ b/tests/ParserTest.json
@@ -0,0 +1,1798 @@
+[
+    [
+        "e^{i \\pi} + 1 = 0\\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"e^{i \\pi} + 1 = 0\\,\\!\" src=\"9e9a547076c6820b95e439dd1a5d6a32.png\" \/>"
+    ],
+    [
+        "e^{i \\pi} + 1 = 0\\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"e^{i \\pi} + 1 = 0\\,\\!\" src=\"9e9a547076c6820b95e439dd1a5d6a32.png\" \/>"
+    ],
+    [
+        "\\definecolor{red}{RGB}{255,0,0}\\pagecolor{red}e^{i \\pi} + 1 = 0\\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\definecolor{red}{RGB}{255,0,0}\\pagecolor{red}e^{i \\pi} + 1 = 0\\,\\!\" src=\"67aca9e0de80ac6ab651ed1097b49fe2.png\" \/>"
+    ],
+    [
+        "\\text{abc}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{abc}\" src=\"46045b1f6fa9dc10a3112ba360d4d9d7.png\" \/>"
+    ],
+    [
+        "\\alpha\\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\alpha\\,\\!\" src=\"4bc6c42bbabe567d1f2516326e52b775.png\" \/>"
+    ],
+    [
+        " f(x) = x^2\\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\" f(x) = x^2\\,\\!\" src=\"3a5f0f03603148035120a3cba993e54f.png\" \/>"
+    ],
+    [
+        "\\sqrt{2}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sqrt{2}\" src=\"ef5590434a387b3c4427e09d5b08baaf.png\" \/>"
+    ],
+    [
+        "\\sqrt{1-e^2}\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sqrt{1-e^2}\\!\" src=\"04c93cf9f0a7cf697add9a2d4173a9e9.png\" \/>"
+    ],
+    [
+        "\\sqrt{1-z^3}\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sqrt{1-z^3}\\!\" src=\"108d6aa70c84fddabbbd3ec97f3d3ff8.png\" \/>"
+    ],
+    [
+        "x",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x\" src=\"9dd4e461268c8034f5c8564e155c67a6.png\" \/>"
+    ],
+    [
+        "\\dot{a}, \\ddot{a}, \\acute{a}, \\grave{a} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\dot{a}, \\ddot{a}, \\acute{a}, \\grave{a} \\!\" src=\"c096beaae99e2d37b4050c4ccf30fbf8.png\" \/>"
+    ],
+    [
+        "\\check{a}, \\breve{a}, \\tilde{a}, \\bar{a} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\check{a}, \\breve{a}, \\tilde{a}, \\bar{a} \\!\" src=\"ef387ac79f18651dd3105d2c584b3c95.png\" \/>"
+    ],
+    [
+        "\\hat{a}, \\widehat{a}, \\vec{a} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\hat{a}, \\widehat{a}, \\vec{a} \\!\" src=\"731677a388ba08f520ebe91623dab74a.png\" \/>"
+    ],
+    [
+        "\\exp_a b = a^b, \\exp b = e^b, 10^m \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\exp_a b = a^b, \\exp b = e^b, 10^m \\!\" src=\"199ac36bc19f7951df5041aedc1e2525.png\" \/>"
+    ],
+    [
+        "\\ln c, \\lg d = \\log e, \\log_{10} f \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\ln c, \\lg d = \\log e, \\log_{10} f \\!\" src=\"d58edc12e2750302cfcdfd47f7674607.png\" \/>"
+    ],
+    [
+        "\\sin a, \\cos b, \\tan c, \\cot d, \\sec e, \\csc f\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sin a, \\cos b, \\tan c, \\cot d, \\sec e, \\csc f\\!\" src=\"0de90ca439db043c53360a81e56e2543.png\" \/>"
+    ],
+    [
+        "\\arcsin h, \\arccos i, \\arctan j \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\arcsin h, \\arccos i, \\arctan j \\!\" src=\"d4f41532d2a06150554f27d52b3c9479.png\" \/>"
+    ],
+    [
+        "\\sinh k, \\cosh l, \\tanh m, \\coth n \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sinh k, \\cosh l, \\tanh m, \\coth n \\!\" src=\"2d460f19d2addae865a78806e3a3afd8.png\" \/>"
+    ],
+    [
+        "\\operatorname{sh}\\,k, \\operatorname{ch}\\,l, \\operatorname{th}\\,m, \\operatorname{coth}\\,n \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\operatorname{sh}\\,k, \\operatorname{ch}\\,l, \\operatorname{th}\\,m, \\operatorname{coth}\\,n \\!\" src=\"7f37a94f008e914726d78b52bf7e3ff4.png\" \/>"
+    ],
+    [
+        "\\operatorname{argsh}\\,o, \\operatorname{argch}\\,p, \\operatorname{argth}\\,q \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\operatorname{argsh}\\,o, \\operatorname{argch}\\,p, \\operatorname{argth}\\,q \\!\" src=\"4e797e4c1988d0f75df043f9347214c0.png\" \/>"
+    ],
+    [
+        "\\sgn r, \\left\\vert s \\right\\vert \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sgn r, \\left\\vert s \\right\\vert \\!\" src=\"cf2302a36d9f76e484ea9833b583bc73.png\" \/>"
+    ],
+    [
+        "\\min(x,y), \\max(x,y) \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\min(x,y), \\max(x,y) \\!\" src=\"6685fb9850f120547152b9e8f89e127d.png\" \/>"
+    ],
+    [
+        "\\min x, \\max y, \\inf s, \\sup t \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\min x, \\max y, \\inf s, \\sup t \\!\" src=\"8cb6afbfa7011932573dc4fe62a6326f.png\" \/>"
+    ],
+    [
+        "\\lim u, \\liminf v, \\limsup w \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\lim u, \\liminf v, \\limsup w \\!\" src=\"15e23ef762c80f28daef47e565900b89.png\" \/>"
+    ],
+    [
+        "\\dim p, \\deg q, \\det m, \\ker\\phi \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\dim p, \\deg q, \\det m, \\ker\\phi \\!\" src=\"ffbfa151b5260ecb5ef79f0c87514688.png\" \/>"
+    ],
+    [
+        "\\Pr j, \\hom l, \\lVert z \\rVert, \\arg z \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Pr j, \\hom l, \\lVert z \\rVert, \\arg z \\!\" src=\"dde6ad7a50f2079b6e085bccfcbe49e0.png\" \/>"
+    ],
+    [
+        "dt, \\operatorname{d}\\!t, \\partial t, \\nabla\\psi\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"dt, \\operatorname{d}\\!t, \\partial t, \\nabla\\psi\\!\" src=\"b32346afbfaabbd8e7e3eee827952c44.png\" \/>"
+    ],
+    [
+        "dy\/dx, \\operatorname{d}\\!y\/\\operatorname{d}\\!x, {dy \\over dx}, {\\operatorname{d}\\!y\\over\\operatorname{d}\\!x}, {\\partial^2\\over\\partial x_1\\partial x_2}y \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"dy\/dx, \\operatorname{d}\\!y\/\\operatorname{d}\\!x, {dy \\over dx}, {\\operatorname{d}\\!y\\over\\operatorname{d}\\!x}, {\\partial^2\\over\\partial x_1\\partial x_2}y \\!\" src=\"8854ea48cc731b20acb7e31b7676ab14.png\" \/>"
+    ],
+    [
+        "\\prime, \\backprime, f^\\prime, f', f'', f^{(3)} \\!, \\dot y, \\ddot y",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\prime, \\backprime, f^\\prime, f', f'', f^{(3)} \\!, \\dot y, \\ddot y\" src=\"99434cfc81c7e2121520b25248f49eab.png\" \/>"
+    ],
+    [
+        "\\infty, \\aleph, \\complement, \\backepsilon, \\eth, \\Finv, \\hbar \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\infty, \\aleph, \\complement, \\backepsilon, \\eth, \\Finv, \\hbar \\!\" src=\"5a419cad96da19939591abb89e952110.png\" \/>"
+    ],
+    [
+        "\\Im, \\imath, \\jmath, \\Bbbk, \\ell, \\mho, \\wp, \\Re, \\circledS \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Im, \\imath, \\jmath, \\Bbbk, \\ell, \\mho, \\wp, \\Re, \\circledS \\!\" src=\"c390bebffad60aca74b245dcc59a25ef.png\" \/>"
+    ],
+    [
+        "s_k \\equiv 0 \\pmod{m} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"s_k \\equiv 0 \\pmod{m} \\!\" src=\"353ab52b3f2c5f26ee74c81d31f2a36c.png\" \/>"
+    ],
+    [
+        "a\\,\\bmod\\,b \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a\\,\\bmod\\,b \\!\" src=\"ee6494b1a13934593f79f5874592a117.png\" \/>"
+    ],
+    [
+        "\\gcd(m, n), \\operatorname{lcm}(m, n)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\gcd(m, n), \\operatorname{lcm}(m, n)\" src=\"6d966ef8f78b4ae70f97c9d14f873cfa.png\" \/>"
+    ],
+    [
+        "\\mid, \\nmid, \\shortmid, \\nshortmid \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mid, \\nmid, \\shortmid, \\nshortmid \\!\" src=\"39e442097c139a70392ae8a043a9297a.png\" \/>"
+    ],
+    [
+        "\\surd, \\sqrt{2}, \\sqrt[n]{}, \\sqrt[3]{x^3+y^3 \\over 2} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\surd, \\sqrt{2}, \\sqrt[n]{}, \\sqrt[3]{x^3+y^3 \\over 2} \\!\" src=\"2ab6022932b3bf67498985081a9a0546.png\" \/>"
+    ],
+    [
+        "+, -, \\pm, \\mp, \\dotplus \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"+, -, \\pm, \\mp, \\dotplus \\!\" src=\"5c60a256506efc42047c06ea4cba9cf3.png\" \/>"
+    ],
+    [
+        "\\times, \\div, \\divideontimes, \/, \\backslash \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\times, \\div, \\divideontimes, \/, \\backslash \\!\" src=\"b386c20a84be6bea1495f8f4d34aaf9d.png\" \/>"
+    ],
+    [
+        "\\cdot, * \\ast, \\star, \\circ, \\bullet \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\cdot, * \\ast, \\star, \\circ, \\bullet \\!\" src=\"1538e6e687ddbc430d2edba1dd4c57f3.png\" \/>"
+    ],
+    [
+        "\\boxplus, \\boxminus, \\boxtimes, \\boxdot \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boxplus, \\boxminus, \\boxtimes, \\boxdot \\!\" src=\"a7d67089f319edbd2c6ceda550ae97fc.png\" \/>"
+    ],
+    [
+        "\\oplus, \\ominus, \\otimes, \\oslash, \\odot\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\oplus, \\ominus, \\otimes, \\oslash, \\odot\\!\" src=\"efa177feefc3df54b529112042dd4862.png\" \/>"
+    ],
+    [
+        "\\circleddash, \\circledcirc, \\circledast \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\circleddash, \\circledcirc, \\circledast \\!\" src=\"e33c682e034881ea51ca94419fe6534f.png\" \/>"
+    ],
+    [
+        "\\bigoplus, \\bigotimes, \\bigodot \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bigoplus, \\bigotimes, \\bigodot \\!\" src=\"901f6c26646a95b68684a88c3dd7ba23.png\" \/>"
+    ],
+    [
+        "\\{ \\}, \\O \\empty \\emptyset, \\varnothing \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\{ \\}, \\O \\empty \\emptyset, \\varnothing \\!\" src=\"66f1c50302d04ec150b9791a0ed9dd72.png\" \/>"
+    ],
+    [
+        "\\in, \\notin \\not\\in, \\ni, \\not\\ni \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\in, \\notin \\not\\in, \\ni, \\not\\ni \\!\" src=\"e3ccfeab48f96e390879beae43fef5f6.png\" \/>"
+    ],
+    [
+        "\\cap, \\Cap, \\sqcap, \\bigcap \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\cap, \\Cap, \\sqcap, \\bigcap \\!\" src=\"fce1ad3d3efa856b424905062f483e19.png\" \/>"
+    ],
+    [
+        "\\cup, \\Cup, \\sqcup, \\bigcup, \\bigsqcup, \\uplus, \\biguplus \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\cup, \\Cup, \\sqcup, \\bigcup, \\bigsqcup, \\uplus, \\biguplus \\!\" src=\"b8621006bb69395016e695a8f866c004.png\" \/>"
+    ],
+    [
+        "\\setminus, \\smallsetminus, \\times \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\setminus, \\smallsetminus, \\times \\!\" src=\"e17420f59b39e697a8f0cbd94dd53ad5.png\" \/>"
+    ],
+    [
+        "\\subset, \\Subset, \\sqsubset \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\subset, \\Subset, \\sqsubset \\!\" src=\"b4900dc0901ce8489cff150076d16088.png\" \/>"
+    ],
+    [
+        "\\supset, \\Supset, \\sqsupset \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\supset, \\Supset, \\sqsupset \\!\" src=\"cb5fa1a8597041a2eb565361a1401079.png\" \/>"
+    ],
+    [
+        "\\subseteq, \\nsubseteq, \\subsetneq, \\varsubsetneq, \\sqsubseteq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\subseteq, \\nsubseteq, \\subsetneq, \\varsubsetneq, \\sqsubseteq \\!\" src=\"54b164cefa6faadfce92a97d239f2f80.png\" \/>"
+    ],
+    [
+        "\\supseteq, \\nsupseteq, \\supsetneq, \\varsupsetneq, \\sqsupseteq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\supseteq, \\nsupseteq, \\supsetneq, \\varsupsetneq, \\sqsupseteq \\!\" src=\"4e928a53227784971555d98d1ef5c7be.png\" \/>"
+    ],
+    [
+        "\\subseteqq, \\nsubseteqq, \\subsetneqq, \\varsubsetneqq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\subseteqq, \\nsubseteqq, \\subsetneqq, \\varsubsetneqq \\!\" src=\"0162e51aac9e459011206dd370890444.png\" \/>"
+    ],
+    [
+        "\\supseteqq, \\nsupseteqq, \\supsetneqq, \\varsupsetneqq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\supseteqq, \\nsupseteqq, \\supsetneqq, \\varsupsetneqq \\!\" src=\"3a07c3fb9a0f14534117951fc276d2e0.png\" \/>"
+    ],
+    [
+        "=, \\ne, \\neq, \\equiv, \\not\\equiv \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"=, \\ne, \\neq, \\equiv, \\not\\equiv \\!\" src=\"71bb47c2145fabb0a1692fe545a019c8.png\" \/>"
+    ],
+    [
+        "\\doteq, \\doteqdot, \\overset{\\underset{\\mathrm{def}}{}}{=}, := \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\doteq, \\doteqdot, \\overset{\\underset{\\mathrm{def}}{}}{=}, := \\!\" src=\"6426a1cb9fe7d87280f4d1b7137abc07.png\" \/>"
+    ],
+    [
+        "\\sim, \\nsim, \\backsim, \\thicksim, \\simeq, \\backsimeq, \\eqsim, \\cong, \\ncong \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sim, \\nsim, \\backsim, \\thicksim, \\simeq, \\backsimeq, \\eqsim, \\cong, \\ncong \\!\" src=\"30784f1f1b325970cfacabacb47b192e.png\" \/>"
+    ],
+    [
+        "\\approx, \\thickapprox, \\approxeq, \\asymp, \\propto, \\varpropto \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\approx, \\thickapprox, \\approxeq, \\asymp, \\propto, \\varpropto \\!\" src=\"8c58c414b8003f68301141b50ceadc02.png\" \/>"
+    ],
+    [
+        "<, \\nless, \\ll, \\not\\ll, \\lll, \\not\\lll, \\lessdot \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"<, \\nless, \\ll, \\not\\ll, \\lll, \\not\\lll, \\lessdot \\!\" src=\"346b8a9e0891b24a7433041f233be228.png\" \/>"
+    ],
+    [
+        ">, \\ngtr, \\gg, \\not\\gg, \\ggg, \\not\\ggg, \\gtrdot \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\">, \\ngtr, \\gg, \\not\\gg, \\ggg, \\not\\ggg, \\gtrdot \\!\" src=\"8b8f7a0e7ad46e494dc5b032c5558068.png\" \/>"
+    ],
+    [
+        "\\le \\leq, \\lneq, \\leqq, \\nleqq, \\lneqq, \\lvertneqq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\le \\leq, \\lneq, \\leqq, \\nleqq, \\lneqq, \\lvertneqq \\!\" src=\"2a0fc5dad4cb369221b29e8a49c0e769.png\" \/>"
+    ],
+    [
+        "\\ge \\geq, \\gneq, \\geqq, \\ngeqq, \\gneqq, \\gvertneqq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\ge \\geq, \\gneq, \\geqq, \\ngeqq, \\gneqq, \\gvertneqq \\!\" src=\"ab7369a11c4f4e0db4d838b4303a673c.png\" \/>"
+    ],
+    [
+        "\\lessgtr \\lesseqgtr \\lesseqqgtr \\gtrless \\gtreqless \\gtreqqless \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\lessgtr \\lesseqgtr \\lesseqqgtr \\gtrless \\gtreqless \\gtreqqless \\!\" src=\"849c96983e134159f2d7da012e2fef32.png\" \/>"
+    ],
+    [
+        "\\leqslant, \\nleqslant, \\eqslantless \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\leqslant, \\nleqslant, \\eqslantless \\!\" src=\"69bafd8e6dd7f1e6c45449a7eb0bbd72.png\" \/>"
+    ],
+    [
+        "\\geqslant, \\ngeqslant, \\eqslantgtr \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\geqslant, \\ngeqslant, \\eqslantgtr \\!\" src=\"dfba791fb6522dc8d44b3c8d751d8bf5.png\" \/>"
+    ],
+    [
+        "\\lesssim, \\lnsim, \\lessapprox, \\lnapprox \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\lesssim, \\lnsim, \\lessapprox, \\lnapprox \\!\" src=\"13fd2ed1c2d478c14cece389bb5c64a1.png\" \/>"
+    ],
+    [
+        " \\gtrsim, \\gnsim, \\gtrapprox, \\gnapprox \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\" \\gtrsim, \\gnsim, \\gtrapprox, \\gnapprox \\,\" src=\"d74fd13928904c2d1b8f494a026e58b1.png\" \/>"
+    ],
+    [
+        "\\prec, \\nprec, \\preceq, \\npreceq, \\precneqq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\prec, \\nprec, \\preceq, \\npreceq, \\precneqq \\!\" src=\"efd1161f1c5933353120560a5706009b.png\" \/>"
+    ],
+    [
+        "\\succ, \\nsucc, \\succeq, \\nsucceq, \\succneqq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\succ, \\nsucc, \\succeq, \\nsucceq, \\succneqq \\!\" src=\"fbf129d72470a83b6f94671d3f3c3736.png\" \/>"
+    ],
+    [
+        "\\preccurlyeq, \\curlyeqprec \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\preccurlyeq, \\curlyeqprec \\,\" src=\"618877a0da3b42786403dd6f89f23cd4.png\" \/>"
+    ],
+    [
+        "\\succcurlyeq, \\curlyeqsucc \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\succcurlyeq, \\curlyeqsucc \\,\" src=\"c62e39463302a563b562ca55a05b427b.png\" \/>"
+    ],
+    [
+        "\\precsim, \\precnsim, \\precapprox, \\precnapprox \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\precsim, \\precnsim, \\precapprox, \\precnapprox \\,\" src=\"94defc1756f8294cc2126346b99a61a6.png\" \/>"
+    ],
+    [
+        "\\succsim, \\succnsim, \\succapprox, \\succnapprox \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\succsim, \\succnsim, \\succapprox, \\succnapprox \\,\" src=\"c7d48d910d1de01a804bcf1e0ef65e1d.png\" \/>"
+    ],
+    [
+        "\\parallel, \\nparallel, \\shortparallel, \\nshortparallel \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\parallel, \\nparallel, \\shortparallel, \\nshortparallel \\!\" src=\"5b09ecb8b14b1df562a4caf1180c7d29.png\" \/>"
+    ],
+    [
+        "\\perp, \\angle, \\sphericalangle, \\measuredangle, 45^\\circ \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\perp, \\angle, \\sphericalangle, \\measuredangle, 45^\\circ \\!\" src=\"ddc31bfbbe9c00652ee9dfa869cdbd73.png\" \/>"
+    ],
+    [
+        "\\Box, \\blacksquare, \\diamond, \\Diamond \\lozenge, \\blacklozenge, \\bigstar \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Box, \\blacksquare, \\diamond, \\Diamond \\lozenge, \\blacklozenge, \\bigstar \\!\" src=\"bdf723cee9fa064c46b56a76fc90f40f.png\" \/>"
+    ],
+    [
+        "\\bigcirc, \\triangle \\bigtriangleup, \\bigtriangledown \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bigcirc, \\triangle \\bigtriangleup, \\bigtriangledown \\!\" src=\"aa8038ff0b44c400b3ce49f30bd8640a.png\" \/>"
+    ],
+    [
+        "\\vartriangle, \\triangledown\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\vartriangle, \\triangledown\\!\" src=\"a0ce77d5ff2eee65687c195a386e2a57.png\" \/>"
+    ],
+    [
+        "\\blacktriangle, \\blacktriangledown, \\blacktriangleleft, \\blacktriangleright \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\blacktriangle, \\blacktriangledown, \\blacktriangleleft, \\blacktriangleright \\!\" src=\"fb28c5e57867c70b72ee3ec7767725a2.png\" \/>"
+    ],
+    [
+        "\\forall, \\exists, \\nexists \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\forall, \\exists, \\nexists \\!\" src=\"686b55bf8ded08acf37721fa9e289505.png\" \/>"
+    ],
+    [
+        "\\therefore, \\because, \\And \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\therefore, \\because, \\And \\!\" src=\"e152ae479d89f44ffcb05f5c0010f977.png\" \/>"
+    ],
+    [
+        "\\or \\lor \\vee, \\curlyvee, \\bigvee \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\or \\lor \\vee, \\curlyvee, \\bigvee \\!\" src=\"73cb2ef925b7885181d33363b6dc562a.png\" \/>"
+    ],
+    [
+        "\\and \\land \\wedge, \\curlywedge, \\bigwedge \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\and \\land \\wedge, \\curlywedge, \\bigwedge \\!\" src=\"6b5e9b7373ce2c57602dc9dae4c84adb.png\" \/>"
+    ],
+    [
+        "\\bar{q}, \\bar{abc}, \\overline{q}, \\overline{abc}, \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bar{q}, \\bar{abc}, \\overline{q}, \\overline{abc}, \\!\" src=\"223a4c78df8eb8b9a1086c5e490f48ce.png\" \/>"
+    ],
+    [
+        "\\lnot \\neg, \\not\\operatorname{R}, \\bot, \\top \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\lnot \\neg, \\not\\operatorname{R}, \\bot, \\top \\!\" src=\"99f7d273b7b0b3509afedb5c7f6738a0.png\" \/>"
+    ],
+    [
+        "\\vdash \\dashv, \\vDash, \\Vdash, \\models \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\vdash \\dashv, \\vDash, \\Vdash, \\models \\!\" src=\"c1eec4d326b28c81681be40303f53029.png\" \/>"
+    ],
+    [
+        "\\Vvdash \\nvdash \\nVdash \\nvDash \\nVDash \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Vvdash \\nvdash \\nVdash \\nvDash \\nVDash \\!\" src=\"89b4b08896b7110ddb06bf486b6791ec.png\" \/>"
+    ],
+    [
+        "\\ulcorner \\urcorner \\llcorner \\lrcorner \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\ulcorner \\urcorner \\llcorner \\lrcorner \\,\" src=\"a21720642028f8a9fe4157c6800f3ba3.png\" \/>"
+    ],
+    [
+        "\\Rrightarrow, \\Lleftarrow \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Rrightarrow, \\Lleftarrow \\!\" src=\"c960b376ea9224b684e54d964af456dd.png\" \/>"
+    ],
+    [
+        "\\Rightarrow, \\nRightarrow, \\Longrightarrow \\implies\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Rightarrow, \\nRightarrow, \\Longrightarrow \\implies\\!\" src=\"31c1448fab538846ac5f11bc2022c176.png\" \/>"
+    ],
+    [
+        "\\Leftarrow, \\nLeftarrow, \\Longleftarrow \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Leftarrow, \\nLeftarrow, \\Longleftarrow \\!\" src=\"84b1cba7e578ad0ff11d4bf2f22ce2e7.png\" \/>"
+    ],
+    [
+        "\\Leftrightarrow, \\nLeftrightarrow, \\Longleftrightarrow \\iff \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Leftrightarrow, \\nLeftrightarrow, \\Longleftrightarrow \\iff \\!\" src=\"7eb8b8e5483e32ff80c2cfcc8255091d.png\" \/>"
+    ],
+    [
+        "\\Uparrow, \\Downarrow, \\Updownarrow \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Uparrow, \\Downarrow, \\Updownarrow \\!\" src=\"7efd0476ba546822fa6059aea7adfec6.png\" \/>"
+    ],
+    [
+        "\\rightarrow \\to, \\nrightarrow, \\longrightarrow\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\rightarrow \\to, \\nrightarrow, \\longrightarrow\\!\" src=\"f1274eb98e3631ddde35ce79a1371ccc.png\" \/>"
+    ],
+    [
+        "\\leftarrow \\gets, \\nleftarrow, \\longleftarrow\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\leftarrow \\gets, \\nleftarrow, \\longleftarrow\\!\" src=\"416c117d1c7b30d1f655eff0dd223aa7.png\" \/>"
+    ],
+    [
+        "\\leftrightarrow, \\nleftrightarrow, \\longleftrightarrow \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\leftrightarrow, \\nleftrightarrow, \\longleftrightarrow \\!\" src=\"4c589175a17c959876c7843656839055.png\" \/>"
+    ],
+    [
+        "\\uparrow, \\downarrow, \\updownarrow \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\uparrow, \\downarrow, \\updownarrow \\!\" src=\"92df6c1de62cb4c990943f697dc9d5e9.png\" \/>"
+    ],
+    [
+        "\\nearrow, \\swarrow, \\nwarrow, \\searrow \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\nearrow, \\swarrow, \\nwarrow, \\searrow \\!\" src=\"c050f2c2ab90cedc7b277ca59954d607.png\" \/>"
+    ],
+    [
+        "\\mapsto, \\longmapsto \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mapsto, \\longmapsto \\!\" src=\"fbd64bf3496731549c3adf48abcb6726.png\" \/>"
+    ],
+    [
+        "\\rightharpoonup \\rightharpoondown \\leftharpoonup \\leftharpoondown \\upharpoonleft \\upharpoonright \\downharpoonleft \\downharpoonright \\rightleftharpoons \\leftrightharpoons \\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\rightharpoonup \\rightharpoondown \\leftharpoonup \\leftharpoondown \\upharpoonleft \\upharpoonright \\downharpoonleft \\downharpoonright \\rightleftharpoons \\leftrightharpoons \\,\\!\" src=\"422d605ad5b47e52b7275a53d9d87499.png\" \/>"
+    ],
+    [
+        "\\curvearrowleft \\circlearrowleft \\Lsh \\upuparrows \\rightrightarrows \\rightleftarrows \\rightarrowtail \\looparrowright \\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\curvearrowleft \\circlearrowleft \\Lsh \\upuparrows \\rightrightarrows \\rightleftarrows \\rightarrowtail \\looparrowright \\,\\!\" src=\"49b807f451f07bd074ece7e0dd1030c0.png\" \/>"
+    ],
+    [
+        "\\curvearrowright \\circlearrowright \\Rsh \\downdownarrows \\leftleftarrows \\leftrightarrows \\leftarrowtail \\looparrowleft \\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\curvearrowright \\circlearrowright \\Rsh \\downdownarrows \\leftleftarrows \\leftrightarrows \\leftarrowtail \\looparrowleft \\,\\!\" src=\"4bd4fbd2e32aabba593a093331aa5e7a.png\" \/>"
+    ],
+    [
+        "\\hookrightarrow \\hookleftarrow \\multimap \\leftrightsquigarrow \\rightsquigarrow \\twoheadrightarrow \\twoheadleftarrow \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\hookrightarrow \\hookleftarrow \\multimap \\leftrightsquigarrow \\rightsquigarrow \\twoheadrightarrow \\twoheadleftarrow \\!\" src=\"ad1b5e897e1e42b0541f628ba2373316.png\" \/>"
+    ],
+    [
+        "\\amalg \\P \\S \\% \\dagger \\ddagger \\ldots \\cdots \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\amalg \\P \\S \\% \\dagger \\ddagger \\ldots \\cdots \\!\" src=\"cee34c650af3f8f9d2509ff6a532d72b.png\" \/>"
+    ],
+    [
+        "\\smile \\frown \\wr \\triangleleft \\triangleright\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\smile \\frown \\wr \\triangleleft \\triangleright\\!\" src=\"21ac72c7b055e08569958c900c80fc2c.png\" \/>"
+    ],
+    [
+        "\\diamondsuit, \\heartsuit, \\clubsuit, \\spadesuit, \\Game, \\flat, \\natural, \\sharp \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\diamondsuit, \\heartsuit, \\clubsuit, \\spadesuit, \\Game, \\flat, \\natural, \\sharp \\!\" src=\"0c2b0cc6b1aec3eef3dd4ea2a2577cfd.png\" \/>"
+    ],
+    [
+        "\\diagup \\diagdown \\centerdot \\ltimes \\rtimes \\leftthreetimes \\rightthreetimes \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\diagup \\diagdown \\centerdot \\ltimes \\rtimes \\leftthreetimes \\rightthreetimes \\!\" src=\"db4e3633a6cb328d58e994d8902e214c.png\" \/>"
+    ],
+    [
+        "\\eqcirc \\circeq \\triangleq \\bumpeq \\Bumpeq \\doteqdot \\risingdotseq \\fallingdotseq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\eqcirc \\circeq \\triangleq \\bumpeq \\Bumpeq \\doteqdot \\risingdotseq \\fallingdotseq \\!\" src=\"62167659ee6ffb21c81d130f9444aaeb.png\" \/>"
+    ],
+    [
+        "\\intercal \\barwedge \\veebar \\doublebarwedge \\between \\pitchfork \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\intercal \\barwedge \\veebar \\doublebarwedge \\between \\pitchfork \\!\" src=\"77c1d9d38e2af63f15deb3bfab0a75e8.png\" \/>"
+    ],
+    [
+        "\\vartriangleleft \\ntriangleleft \\vartriangleright \\ntriangleright \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\vartriangleleft \\ntriangleleft \\vartriangleright \\ntriangleright \\!\" src=\"22942360063a4b9991511ce68a0461b8.png\" \/>"
+    ],
+    [
+        "\\trianglelefteq \\ntrianglelefteq \\trianglerighteq \\ntrianglerighteq \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\trianglelefteq \\ntrianglelefteq \\trianglerighteq \\ntrianglerighteq \\!\" src=\"314bd37d48aa31ee670ae3c5c94e4663.png\" \/>"
+    ],
+    [
+        "a^2",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a^2\" src=\"a4791fd2e334993453b00d036ab792af.png\" \/>"
+    ],
+    [
+        "a_2",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a_2\" src=\"0f768ac5d5dea8d93716a27da05871de.png\" \/>"
+    ],
+    [
+        "10^{30} a^{2+2}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"10^{30} a^{2+2}\" src=\"32ca3769f0845a739d1905190921cfbf.png\" \/>"
+    ],
+    [
+        "a_{i,j} b_{f'}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a_{i,j} b_{f'}\" src=\"0f4147d22d4fd86b0b1ae03159179f75.png\" \/>"
+    ],
+    [
+        "x_2^3",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x_2^3\" src=\"1d368948190fdda83d5a2a398b1c1927.png\" \/>"
+    ],
+    [
+        "{x_2}^3 \\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{x_2}^3 \\,\\!\" src=\"a168479afc14eaf30f911f14100be89d.png\" \/>"
+    ],
+    [
+        "10^{10^{8}}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"10^{10^{8}}\" src=\"9c6e0dad7a12f5eb70209bc235df2e3a.png\" \/>"
+    ],
+    [
+        "\\sideset{_1^2}{_3^4}\\prod_a^b",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sideset{_1^2}{_3^4}\\prod_a^b\" src=\"bd00243bd391e7d7401aa59203f59981.png\" \/>"
+    ],
+    [
+        "{}_1^2\\!\\Omega_3^4",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{}_1^2\\!\\Omega_3^4\" src=\"15ba0b09e81e31854db164051a52502e.png\" \/>"
+    ],
+    [
+        "\\overset{\\alpha}{\\omega}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\overset{\\alpha}{\\omega}\" src=\"fd91a9665d330097d6f847e140a0bf09.png\" \/>"
+    ],
+    [
+        "\\underset{\\alpha}{\\omega}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\underset{\\alpha}{\\omega}\" src=\"d75cfe5f3b21632bdc8c274d9690a4a6.png\" \/>"
+    ],
+    [
+        "\\overset{\\alpha}{\\underset{\\gamma}{\\omega}}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\overset{\\alpha}{\\underset{\\gamma}{\\omega}}\" src=\"ad6263e136435be19ea5761d672622e9.png\" \/>"
+    ],
+    [
+        "\\stackrel{\\alpha}{\\omega}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\stackrel{\\alpha}{\\omega}\" src=\"de51915eed5826ec13b061539f249359.png\" \/>"
+    ],
+    [
+        "x', y'', f', f''",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x', y'', f', f''\" src=\"38198fd7fa831b8cca706fe92505c726.png\" \/>"
+    ],
+    [
+        "x^\\prime, y^{\\prime\\prime}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x^\\prime, y^{\\prime\\prime}\" src=\"3f8892c43f66700333f11c45029e30ac.png\" \/>"
+    ],
+    [
+        "\\dot{x}, \\ddot{x}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\dot{x}, \\ddot{x}\" src=\"28c4f624dc02d1e01adde0928c45ff07.png\" \/>"
+    ],
+    [
+        " \\hat a \\ \\bar b \\ \\vec c",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\" \\hat a \\ \\bar b \\ \\vec c\" src=\"93f5427e14ad2339f6905e1141f52d38.png\" \/>"
+    ],
+    [
+        " \\overrightarrow{a b} \\ \\overleftarrow{c d} \\ \\widehat{d e f}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\" \\overrightarrow{a b} \\ \\overleftarrow{c d} \\ \\widehat{d e f}\" src=\"068086b5de6bf21adea301df3efffbf7.png\" \/>"
+    ],
+    [
+        " \\overline{g h i} \\ \\underline{j k l}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\" \\overline{g h i} \\ \\underline{j k l}\" src=\"849f4d97e037fc2cf06b1257d31b67a9.png\" \/>"
+    ],
+    [
+        "\\overset{\\frown} {AB}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\overset{\\frown} {AB}\" src=\"8748475980cbfc9c9028b4b298d2f438.png\" \/>"
+    ],
+    [
+        " A \\xleftarrow{n+\\mu-1} B \\xrightarrow[T]{n\\pm i-1} C",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\" A \\xleftarrow{n+\\mu-1} B \\xrightarrow[T]{n\\pm i-1} C\" src=\"ce50e9216ca80ae92251cbdeea7ce134.png\" \/>"
+    ],
+    [
+        "\\overbrace{ 1+2+\\cdots+100 }^{5050}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\overbrace{ 1+2+\\cdots+100 }^{5050}\" src=\"eae794abb74d6c73dc96eaa994cc0a16.png\" \/>"
+    ],
+    [
+        "\\underbrace{ a+b+\\cdots+z }_{26}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\underbrace{ a+b+\\cdots+z }_{26}\" src=\"32035dea97452b31b44d084f90bd66a6.png\" \/>"
+    ],
+    [
+        "\\sum_{k=1}^N k^2",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sum_{k=1}^N k^2\" src=\"3187b0dd4e53e474d81e26f775c1cdfa.png\" \/>"
+    ],
+    [
+        "\\textstyle \\sum_{k=1}^N k^2",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\textstyle \\sum_{k=1}^N k^2\" src=\"ee6fd1bafe0faa5913e5cf53d90096fa.png\" \/>"
+    ],
+    [
+        "\\frac{\\sum_{k=1}^N k^2}{a}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\frac{\\sum_{k=1}^N k^2}{a}\" src=\"e4b2e0205d7b4bc8dfdd8bfb4fa6986e.png\" \/>"
+    ],
+    [
+        "\\frac{\\displaystyle \\sum_{k=1}^N k^2}{a}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\frac{\\displaystyle \\sum_{k=1}^N k^2}{a}\" src=\"8c1e37db35417fd592a89614b954327d.png\" \/>"
+    ],
+    [
+        "\\frac{\\sum\\limits^{^N}_{k=1} k^2}{a}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\frac{\\sum\\limits^{^N}_{k=1} k^2}{a}\" src=\"f6e3e304b3ee1d87ebb949075e8839e4.png\" \/>"
+    ],
+    [
+        "\\prod_{i=1}^N x_i",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\prod_{i=1}^N x_i\" src=\"f2be40a3bca3b9cc59559468999c5a9d.png\" \/>"
+    ],
+    [
+        "\\textstyle \\prod_{i=1}^N x_i",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\textstyle \\prod_{i=1}^N x_i\" src=\"65b9b87b09704b4e4301e774de4c57ae.png\" \/>"
+    ],
+    [
+        "\\coprod_{i=1}^N x_i",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\coprod_{i=1}^N x_i\" src=\"d684b776e6e99aaa14db27115904c5bf.png\" \/>"
+    ],
+    [
+        "\\textstyle \\coprod_{i=1}^N x_i",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\textstyle \\coprod_{i=1}^N x_i\" src=\"14a11d376f41516ee499e2830f056523.png\" \/>"
+    ],
+    [
+        "\\lim_{n \\to \\infty}x_n",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\lim_{n \\to \\infty}x_n\" src=\"f64f3526ec6d389a67c3e13dbf609dc9.png\" \/>"
+    ],
+    [
+        "\\textstyle \\lim_{n \\to \\infty}x_n",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\textstyle \\lim_{n \\to \\infty}x_n\" src=\"1c00b7e0e828c0f44e484919b9e0174e.png\" \/>"
+    ],
+    [
+        "\\int\\limits_{1}^{3}\\frac{e^3\/x}{x^2}\\, dx",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int\\limits_{1}^{3}\\frac{e^3\/x}{x^2}\\, dx\" src=\"40764d04d428b630657f305cba34c985.png\" \/>"
+    ],
+    [
+        "\\int_{1}^{3}\\frac{e^3\/x}{x^2}\\, dx",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int_{1}^{3}\\frac{e^3\/x}{x^2}\\, dx\" src=\"d5e7d8bdc59d07349b3966578895a93f.png\" \/>"
+    ],
+    [
+        "\\textstyle \\int\\limits_{-N}^{N} e^x\\, dx",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\textstyle \\int\\limits_{-N}^{N} e^x\\, dx\" src=\"9194fdfb9704fa475c5ae486a56041ea.png\" \/>"
+    ],
+    [
+        "\\textstyle \\int_{-N}^{N} e^x\\, dx",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\textstyle \\int_{-N}^{N} e^x\\, dx\" src=\"1726000a5a8e3c02cea114e5b545941c.png\" \/>"
+    ],
+    [
+        "\\iint\\limits_D \\, dx\\,dy",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\iint\\limits_D \\, dx\\,dy\" src=\"4abac8d616c5670900504ddce25a4a4b.png\" \/>"
+    ],
+    [
+        "\\iiint\\limits_E \\, dx\\,dy\\,dz",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\iiint\\limits_E \\, dx\\,dy\\,dz\" src=\"6e9a4e709d965b32de1ab3d16aca388a.png\" \/>"
+    ],
+    [
+        "\\iiiint\\limits_F \\, dx\\,dy\\,dz\\,dt",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\iiiint\\limits_F \\, dx\\,dy\\,dz\\,dt\" src=\"49005f50f3ba2dfade3a265ebe363ee9.png\" \/>"
+    ],
+    [
+        "\\int_{(x,y)\\in C} x^3\\, dx + 4y^2\\, dy",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int_{(x,y)\\in C} x^3\\, dx + 4y^2\\, dy\" src=\"cfcc65ff7c8970aac316f359a9aaf928.png\" \/>"
+    ],
+    [
+        "\\oint_{(x,y)\\in C} x^3\\, dx + 4y^2\\, dy",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\oint_{(x,y)\\in C} x^3\\, dx + 4y^2\\, dy\" src=\"d6c5bf8e05426a4b56804937b9ffb559.png\" \/>"
+    ],
+    [
+        "\\bigcap_{i=_1}^n E_i",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bigcap_{i=_1}^n E_i\" src=\"83d87c98d958c7c2db86180b49230b65.png\" \/>"
+    ],
+    [
+        "\\bigcup_{i=_1}^n E_i",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bigcup_{i=_1}^n E_i\" src=\"e6409717ec9d63567a34f9d1173ce2ae.png\" \/>"
+    ],
+    [
+        "\\frac{2}{4}=0.5",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\frac{2}{4}=0.5\" src=\"46dc0b34e0ab4e944a437720a4431d6c.png\" \/>"
+    ],
+    [
+        "\\tfrac{2}{4} = 0.5",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\tfrac{2}{4} = 0.5\" src=\"284667fc4a92790093aa59b61b3667a0.png\" \/>"
+    ],
+    [
+        "\\dfrac{2}{4} = 0.5 \\qquad \\dfrac{2}{c + \\dfrac{2}{d + \\dfrac{2}{4}}} = a",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\dfrac{2}{4} = 0.5 \\qquad \\dfrac{2}{c + \\dfrac{2}{d + \\dfrac{2}{4}}} = a\" src=\"5a37ae94a95c7dd603c20cd4fbe8d9e9.png\" \/>"
+    ],
+    [
+        "\\cfrac{2}{c + \\cfrac{2}{d + \\cfrac{2}{4}}} = a",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\cfrac{2}{c + \\cfrac{2}{d + \\cfrac{2}{4}}} = a\" src=\"6d099c02b3faf73f9320656217415906.png\" \/>"
+    ],
+    [
+        "\\cfrac{x}{1 + \\cfrac{\\cancel{y}}{\\cancel{y}}} = \\cfrac{x}{2}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\cfrac{x}{1 + \\cfrac{\\cancel{y}}{\\cancel{y}}} = \\cfrac{x}{2}\" src=\"fa001cd2dd438152e45a44591f235148.png\" \/>"
+    ],
+    [
+        "\\binom{n}{k}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\binom{n}{k}\" src=\"6b2be63a1b8e310465d1b538e2d7d71b.png\" \/>"
+    ],
+    [
+        "\\tbinom{n}{k}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\tbinom{n}{k}\" src=\"8482b29cc0af31fa35ff6bf04200b265.png\" \/>"
+    ],
+    [
+        "\\dbinom{n}{k}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\dbinom{n}{k}\" src=\"c44601a9dbb85dfb88868c14dc54c8ef.png\" \/>"
+    ],
+    [
+        "\\begin{matrix} x & y \\\\ z & v\n\\end{matrix}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{matrix} x & y \\\\ z & v
\\end{matrix}\" src=\"b99890966e1b997497211428f8e3419d.png\" \/>"
+    ],
+    [
+        "\\begin{vmatrix} x & y \\\\ z & v\n\\end{vmatrix}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{vmatrix} x & y \\\\ z & v
\\end{vmatrix}\" src=\"92b8f0e57848a80b4babd2ba93775370.png\" \/>"
+    ],
+    [
+        "\\begin{Vmatrix} x & y \\\\ z & v\n\\end{Vmatrix}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{Vmatrix} x & y \\\\ z & v
\\end{Vmatrix}\" src=\"bba5bfd11057dbb202307584eed8f2dc.png\" \/>"
+    ],
+    [
+        "\\begin{bmatrix} 0 & \\cdots & 0 \\\\ \\vdots\n& \\ddots & \\vdots \\\\ 0 & \\cdots &\n0\\end{bmatrix} ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{bmatrix} 0 & \\cdots & 0 \\\\ \\vdots
& \\ddots & \\vdots \\\\ 0 & \\cdots &
0\\end{bmatrix} \" src=\"81a12a09ac84853e3d25323b8643c630.png\" \/>"
+    ],
+    [
+        "\\begin{Bmatrix} x & y \\\\ z & v\n\\end{Bmatrix}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{Bmatrix} x & y \\\\ z & v
\\end{Bmatrix}\" src=\"bf7244e2842c8a7d55892e229560d5c1.png\" \/>"
+    ],
+    [
+        "\\begin{pmatrix} x & y \\\\ z & v\n\\end{pmatrix}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{pmatrix} x & y \\\\ z & v
\\end{pmatrix}\" src=\"444df88e616def4e275b4e920c7b872e.png\" \/>"
+    ],
+    [
+        "\n\\bigl( \\begin{smallmatrix}\na&b\\\\ c&d\n\\end{smallmatrix} \\bigr)\n",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"
\\bigl( \\begin{smallmatrix}
a&b\\\\ c&d
\\end{smallmatrix} \\bigr)
\" src=\"cd49bbc188dce0f93fef57312af5a106.png\" \/>"
+    ],
+    [
+        "f(n) =\n\\begin{cases}\nn\/2, & \\text{if }n\\text{ is even} \\\\\n3n+1, & \\text{if }n\\text{ is odd}\n\\end{cases} ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"f(n) =
\\begin{cases}
n\/2, & \\text{if }n\\text{ is even} \\\\
3n+1, & \\text{if }n\\text{ is odd}
\\end{cases} \" src=\"98503cc6876b22f5900297971fdd42ed.png\" \/>"
+    ],
+    [
+        "\n\\begin{align}\nf(x) & = (a+b)^2 \\\\\n& = a^2+2ab+b^2 \\\\\n\\end{align}\n",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"
\\begin{align}
f(x) & = (a+b)^2 \\\\
& = a^2+2ab+b^2 \\\\
\\end{align}
\" src=\"2c50960e8bcfd9e86527a123a0c43aa2.png\" \/>"
+    ],
+    [
+        "\n\\begin{alignat}{2}\nf(x) & = (a-b)^2 \\\\\n& = a^2-2ab+b^2 \\\\\n\\end{alignat}\n",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"
\\begin{alignat}{2}
f(x) & = (a-b)^2 \\\\
& = a^2-2ab+b^2 \\\\
\\end{alignat}
\" src=\"fe45a0df3e20bc5caf718e5333678d08.png\" \/>"
+    ],
+    [
+        "\\begin{array}{lcl}\nz & = & a \\\\\nf(x,y,z) & = & x + y + z\n\\end{array}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{array}{lcl}
z & = & a \\\\
f(x,y,z) & = & x + y + z
\\end{array}\" src=\"9bf19115bb27237fa997ca93b94ad217.png\" \/>"
+    ],
+    [
+        "\\begin{array}{lcr}\nz & = & a \\\\\nf(x,y,z) & = & x + y + z\n\\end{array}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{array}{lcr}
z & = & a \\\\
f(x,y,z) & = & x + y + z
\\end{array}\" src=\"02ae32735e1e21ba3b05984289fd2763.png\" \/>"
+    ],
+    [
+        "f(x) \\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"f(x) \\,\\!\" src=\"8dfae20000a042d8e9047aad1d7e171e.png\" \/>"
+    ],
+    [
+        "= \\sum_{n=0}^\\infty a_n x^n ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"= \\sum_{n=0}^\\infty a_n x^n \" src=\"6633d51d63b35281d030755a6b0aebb1.png\" \/>"
+    ],
+    [
+        "= a_0+a_1x+a_2x^2+\\cdots",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"= a_0+a_1x+a_2x^2+\\cdots\" src=\"fe3e268382fd486e8572daf895bd4c9d.png\" \/>"
+    ],
+    [
+        "f(x) \\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"f(x) \\,\\!\" src=\"8dfae20000a042d8e9047aad1d7e171e.png\" \/>"
+    ],
+    [
+        "= \\sum_{n=0}^\\infty a_n x^n ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"= \\sum_{n=0}^\\infty a_n x^n \" src=\"6633d51d63b35281d030755a6b0aebb1.png\" \/>"
+    ],
+    [
+        "= a_0 +a_1x+a_2x^2+\\cdots",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"= a_0 +a_1x+a_2x^2+\\cdots\" src=\"fe3e268382fd486e8572daf895bd4c9d.png\" \/>"
+    ],
+    [
+        "\\begin{cases} 3x + 5y + z \\\\ 7x - 2y + 4z \\\\ -6x + 3y + 2z \\end{cases}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{cases} 3x + 5y + z \\\\ 7x - 2y + 4z \\\\ -6x + 3y + 2z \\end{cases}\" src=\"6349be04b3562fc215c7a4e130422a96.png\" \/>"
+    ],
+    [
+        "\n\\begin{array}{|c|c||c|} a & b & S \\\\\n\\hline\n0&0&1\\\\\n0&1&1\\\\\n1&0&1\\\\\n1&1&0\\\\\n\\end{array}\n",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"
\\begin{array}{|c|c||c|} a & b & S \\\\
\\hline
0&0&1\\\\
0&1&1\\\\
1&0&1\\\\
1&1&0\\\\
\\end{array}
\" src=\"9151e94ef2bb52c18176dbe4c11921ed.png\" \/>"
+    ],
+    [
+        "( \\frac{1}{2} )",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"( \\frac{1}{2} )\" src=\"40ad9d3d1fc9a61e16d22d7e3f854fec.png\" \/>"
+    ],
+    [
+        "\\left ( \\frac{1}{2} \\right )",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left ( \\frac{1}{2} \\right )\" src=\"28bcd5b82ce0e92b25e8a0b4bd5be215.png\" \/>"
+    ],
+    [
+        "\\left ( \\frac{a}{b} \\right )",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left ( \\frac{a}{b} \\right )\" src=\"2905969500b40b2f2c7078206e7e0e81.png\" \/>"
+    ],
+    [
+        "\\left [ \\frac{a}{b} \\right ] \\quad \\left \\lbrack \\frac{a}{b} \\right \\rbrack",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left [ \\frac{a}{b} \\right ] \\quad \\left \\lbrack \\frac{a}{b} \\right \\rbrack\" src=\"7cb5a74153ec87cdda6b92669ba685e1.png\" \/>"
+    ],
+    [
+        "\\left \\{ \\frac{a}{b} \\right \\} \\quad \\left \\lbrace \\frac{a}{b} \\right \\rbrace",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left \\{ \\frac{a}{b} \\right \\} \\quad \\left \\lbrace \\frac{a}{b} \\right \\rbrace\" src=\"805b2e61cb380736d5366bccb844b1c7.png\" \/>"
+    ],
+    [
+        "\\left \\langle \\frac{a}{b} \\right \\rangle",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left \\langle \\frac{a}{b} \\right \\rangle\" src=\"d06e733ce705ed26a7e048dbd2945371.png\" \/>"
+    ],
+    [
+        "\\left | \\frac{a}{b} \\right \\vert \\quad \\left \\Vert \\frac{c}{d} \\right \\|",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left | \\frac{a}{b} \\right \\vert \\quad \\left \\Vert \\frac{c}{d} \\right \\|\" src=\"809fc4791f12abb16a5f9611a43469f9.png\" \/>"
+    ],
+    [
+        "\\left \\lfloor \\frac{a}{b} \\right \\rfloor \\quad \\left \\lceil \\frac{c}{d} \\right \\rceil",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left \\lfloor \\frac{a}{b} \\right \\rfloor \\quad \\left \\lceil \\frac{c}{d} \\right \\rceil\" src=\"14c563a841b6c01dd13c5f3fa90845a1.png\" \/>"
+    ],
+    [
+        "\\left \/ \\frac{a}{b} \\right \\backslash",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left \/ \\frac{a}{b} \\right \\backslash\" src=\"2f3c5907c0a4fc4fda69eb71890ce952.png\" \/>"
+    ],
+    [
+        "\\left \\uparrow \\frac{a}{b} \\right \\downarrow \\quad \\left \\Uparrow \\frac{a}{b} \\right \\Downarrow \\quad \\left \\updownarrow \\frac{a}{b} \\right \\Updownarrow",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left \\uparrow \\frac{a}{b} \\right \\downarrow \\quad \\left \\Uparrow \\frac{a}{b} \\right \\Downarrow \\quad \\left \\updownarrow \\frac{a}{b} \\right \\Updownarrow\" src=\"de73c9252b269fb79408d6f791b5c3de.png\" \/>"
+    ],
+    [
+        "\\left [ 0,1 \\right )",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left [ 0,1 \\right )\" src=\"a38771eae1778d0e214f6596a8dc1337.png\" \/>"
+    ],
+    [
+        "\\left \\langle \\psi \\right |",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left \\langle \\psi \\right |\" src=\"da25fc177fd4c53a2c3399c25685dd4c.png\" \/>"
+    ],
+    [
+        "\\left . \\frac{A}{B} \\right \\} \\to X",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left . \\frac{A}{B} \\right \\} \\to X\" src=\"b71d82a3ed5c1a72ded46efc19ecc582.png\" \/>"
+    ],
+    [
+        "\\big( \\Big( \\bigg( \\Bigg( \\dots \\Bigg] \\bigg] \\Big] \\big]",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\big( \\Big( \\bigg( \\Bigg( \\dots \\Bigg] \\bigg] \\Big] \\big]\" src=\"642a7988a93248dd92f1a53804cd40aa.png\" \/>"
+    ],
+    [
+        "\\big\\{ \\Big\\{ \\bigg\\{ \\Bigg\\{ \\dots \\Bigg\\rangle \\bigg\\rangle \\Big\\rangle \\big\\rangle",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\big\\{ \\Big\\{ \\bigg\\{ \\Bigg\\{ \\dots \\Bigg\\rangle \\bigg\\rangle \\Big\\rangle \\big\\rangle\" src=\"a3c9de0fb4f73e62e457cc7c91c5f6f0.png\" \/>"
+    ],
+    [
+        "\\big\\| \\Big\\| \\bigg\\| \\Bigg\\| \\dots \\Bigg| \\bigg| \\Big| \\big|",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\big\\| \\Big\\| \\bigg\\| \\Bigg\\| \\dots \\Bigg| \\bigg| \\Big| \\big|\" src=\"0445cc925a6ea0bd478a8f5fefc3633c.png\" \/>"
+    ],
+    [
+        "\\big\\lfloor \\Big\\lfloor \\bigg\\lfloor \\Bigg\\lfloor \\dots \\Bigg\\rceil \\bigg\\rceil \\Big\\rceil \\big\\rceil",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\big\\lfloor \\Big\\lfloor \\bigg\\lfloor \\Bigg\\lfloor \\dots \\Bigg\\rceil \\bigg\\rceil \\Big\\rceil \\big\\rceil\" src=\"94c286b66620b6e5cd43c5cc20fe1a22.png\" \/>"
+    ],
+    [
+        "\\big\\uparrow \\Big\\uparrow \\bigg\\uparrow \\Bigg\\uparrow \\dots \\Bigg\\Downarrow \\bigg\\Downarrow \\Big\\Downarrow \\big\\Downarrow",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\big\\uparrow \\Big\\uparrow \\bigg\\uparrow \\Bigg\\uparrow \\dots \\Bigg\\Downarrow \\bigg\\Downarrow \\Big\\Downarrow \\big\\Downarrow\" src=\"e16f28e8e168f07f25b7a0162ccc2866.png\" \/>"
+    ],
+    [
+        "\\big\\updownarrow \\Big\\updownarrow \\bigg\\updownarrow \\Bigg\\updownarrow \\dots \\Bigg\\Updownarrow \\bigg\\Updownarrow \\Big\\Updownarrow \\big\\Updownarrow",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\big\\updownarrow \\Big\\updownarrow \\bigg\\updownarrow \\Bigg\\updownarrow \\dots \\Bigg\\Updownarrow \\bigg\\Updownarrow \\Big\\Updownarrow \\big\\Updownarrow\" src=\"d30b4b79fa453480ad0a50be8dfd8911.png\" \/>"
+    ],
+    [
+        "\\big \/ \\Big \/ \\bigg \/ \\Bigg \/ \\dots \\Bigg\\backslash \\bigg\\backslash \\Big\\backslash \\big\\backslash",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\big \/ \\Big \/ \\bigg \/ \\Bigg \/ \\dots \\Bigg\\backslash \\bigg\\backslash \\Big\\backslash \\big\\backslash\" src=\"f01a0b3277fdff89f7dee39c2d6f7928.png\" \/>"
+    ],
+    [
+        "x^2 + y^2 + z^2 = 1 \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x^2 + y^2 + z^2 = 1 \\,\" src=\"65f59a1d3fcd866ff10d5e3ac57f991e.png\" \/>"
+    ],
+    [
+        "\\Alpha \\Beta \\Gamma \\Delta \\Epsilon \\Zeta \\Eta \\Theta \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Alpha \\Beta \\Gamma \\Delta \\Epsilon \\Zeta \\Eta \\Theta \\!\" src=\"a7a8e6bbde24e99f9dab00c840f9483d.png\" \/>"
+    ],
+    [
+        "\\Iota \\Kappa \\Lambda \\Mu \\Nu \\Xi \\Pi \\Rho \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Iota \\Kappa \\Lambda \\Mu \\Nu \\Xi \\Pi \\Rho \\!\" src=\"5052faf817c1a445941f4005983fdc63.png\" \/>"
+    ],
+    [
+        "\\Sigma \\Tau \\Upsilon \\Phi \\Chi \\Psi \\Omega \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Sigma \\Tau \\Upsilon \\Phi \\Chi \\Psi \\Omega \\!\" src=\"9d97dae2e9b62c1c9b6c104ef5eac475.png\" \/>"
+    ],
+    [
+        "\\alpha \\beta \\gamma \\delta \\epsilon \\zeta \\eta \\theta \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\alpha \\beta \\gamma \\delta \\epsilon \\zeta \\eta \\theta \\!\" src=\"9fef94989f0aefed4c953823bd945e89.png\" \/>"
+    ],
+    [
+        "\\iota \\kappa \\lambda \\mu \\nu \\xi \\pi \\rho \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\iota \\kappa \\lambda \\mu \\nu \\xi \\pi \\rho \\!\" src=\"dd438c310fdd611181d2d78eeca09d6f.png\" \/>"
+    ],
+    [
+        "\\sigma \\tau \\upsilon \\phi \\chi \\psi \\omega \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sigma \\tau \\upsilon \\phi \\chi \\psi \\omega \\!\" src=\"c5a0f66abb41232d4d6e6e79954e3ee2.png\" \/>"
+    ],
+    [
+        "\\varepsilon \\digamma \\varkappa \\varpi \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\varepsilon \\digamma \\varkappa \\varpi \\!\" src=\"d393ba319387b0c29b54c3488101e21b.png\" \/>"
+    ],
+    [
+        "\\varrho \\varsigma \\vartheta \\varphi \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\varrho \\varsigma \\vartheta \\varphi \\!\" src=\"40714b7031faeacd49b6f8e23a529b7f.png\" \/>"
+    ],
+    [
+        "\\aleph \\beth \\gimel \\daleth \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\aleph \\beth \\gimel \\daleth \\!\" src=\"d02fa3b52ced52aa798b674ea5710116.png\" \/>"
+    ],
+    [
+        "\\mathbb{ABCDEFGHI} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbb{ABCDEFGHI} \\!\" src=\"16b49d7cbcbe69f78f5b039e1082eb21.png\" \/>"
+    ],
+    [
+        "\\mathbb{JKLMNOPQR} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbb{JKLMNOPQR} \\!\" src=\"59834bc6366bc6bd065b46c9da28b81f.png\" \/>"
+    ],
+    [
+        "\\mathbb{STUVWXYZ} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbb{STUVWXYZ} \\!\" src=\"f8cecba104ecf7248d1e8624ea4f97ad.png\" \/>"
+    ],
+    [
+        "\\mathbf{ABCDEFGHI} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbf{ABCDEFGHI} \\!\" src=\"a007c39fe7cdcaac5787780cd59f9863.png\" \/>"
+    ],
+    [
+        "\\mathbf{JKLMNOPQR} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbf{JKLMNOPQR} \\!\" src=\"d576d3e20c41ffb373b3aa2666f84631.png\" \/>"
+    ],
+    [
+        "\\mathbf{STUVWXYZ} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbf{STUVWXYZ} \\!\" src=\"d63658e6be16cb35c5eeddd9af0d0456.png\" \/>"
+    ],
+    [
+        "\\mathbf{abcdefghijklm} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbf{abcdefghijklm} \\!\" src=\"746a58465658c7ce27865b5874b866de.png\" \/>"
+    ],
+    [
+        "\\mathbf{nopqrstuvwxyz} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbf{nopqrstuvwxyz} \\!\" src=\"7a2d9be40a985f3f4062e810aa82850f.png\" \/>"
+    ],
+    [
+        "\\mathbf{0123456789} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathbf{0123456789} \\!\" src=\"b58f56dec00a8c4058e96f4868dfaf38.png\" \/>"
+    ],
+    [
+        "\\boldsymbol{\\Alpha\\Beta\\Gamma\\Delta\\Epsilon\\Zeta\\Eta\\Theta} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boldsymbol{\\Alpha\\Beta\\Gamma\\Delta\\Epsilon\\Zeta\\Eta\\Theta} \\!\" src=\"53c4c980272d709263a0ec407ce9f000.png\" \/>"
+    ],
+    [
+        "\\boldsymbol{\\Iota\\Kappa\\Lambda\\Mu\\Nu\\Xi\\Pi\\Rho} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boldsymbol{\\Iota\\Kappa\\Lambda\\Mu\\Nu\\Xi\\Pi\\Rho} \\!\" src=\"e68389a7314c09b14444e535f71e853c.png\" \/>"
+    ],
+    [
+        "\\boldsymbol{\\Sigma\\Tau\\Upsilon\\Phi\\Chi\\Psi\\Omega} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boldsymbol{\\Sigma\\Tau\\Upsilon\\Phi\\Chi\\Psi\\Omega} \\!\" src=\"72f30cfb281ddfdbd437f17eab32dfde.png\" \/>"
+    ],
+    [
+        "\\boldsymbol{\\alpha\\beta\\gamma\\delta\\epsilon\\zeta\\eta\\theta} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boldsymbol{\\alpha\\beta\\gamma\\delta\\epsilon\\zeta\\eta\\theta} \\!\" src=\"c3d73d4055fbe3c3631848bc0317a0c5.png\" \/>"
+    ],
+    [
+        "\\boldsymbol{\\iota\\kappa\\lambda\\mu\\nu\\xi\\pi\\rho} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boldsymbol{\\iota\\kappa\\lambda\\mu\\nu\\xi\\pi\\rho} \\!\" src=\"d8bf62dcf94457cebec14434b72e3f62.png\" \/>"
+    ],
+    [
+        "\\boldsymbol{\\sigma\\tau\\upsilon\\phi\\chi\\psi\\omega} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boldsymbol{\\sigma\\tau\\upsilon\\phi\\chi\\psi\\omega} \\!\" src=\"3801c81d051bce44677f49e7d9069dd5.png\" \/>"
+    ],
+    [
+        "\\boldsymbol{\\varepsilon\\digamma\\varkappa\\varpi} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boldsymbol{\\varepsilon\\digamma\\varkappa\\varpi} \\!\" src=\"27b172a5d4d90f193347807c2828a142.png\" \/>"
+    ],
+    [
+        "\\boldsymbol{\\varrho\\varsigma\\vartheta\\varphi} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\boldsymbol{\\varrho\\varsigma\\vartheta\\varphi} \\!\" src=\"9dc6a867e48fba8d25fdd599b6330f4f.png\" \/>"
+    ],
+    [
+        "\\mathit{0123456789} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathit{0123456789} \\!\" src=\"96846c8042557a593245c9adbfadcf67.png\" \/>"
+    ],
+    [
+        "\\mathit{\\Alpha\\Beta\\Gamma\\Delta\\Epsilon\\Zeta\\Eta\\Theta} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathit{\\Alpha\\Beta\\Gamma\\Delta\\Epsilon\\Zeta\\Eta\\Theta} \\!\" src=\"ca124a231c239009f51303d8ac514eff.png\" \/>"
+    ],
+    [
+        "\\mathit{\\Iota\\Kappa\\Lambda\\Mu\\Nu\\Xi\\Pi\\Rho} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathit{\\Iota\\Kappa\\Lambda\\Mu\\Nu\\Xi\\Pi\\Rho} \\!\" src=\"bfa30e6555a2803a938815fbee4a2c0a.png\" \/>"
+    ],
+    [
+        "\\mathit{\\Sigma\\Tau\\Upsilon\\Phi\\Chi\\Psi\\Omega} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathit{\\Sigma\\Tau\\Upsilon\\Phi\\Chi\\Psi\\Omega} \\!\" src=\"b2ddf1062667a4ba071276d7368fe453.png\" \/>"
+    ],
+    [
+        "\\mathrm{ABCDEFGHI} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathrm{ABCDEFGHI} \\!\" src=\"3d36032a7983b4c8da9148beaf789055.png\" \/>"
+    ],
+    [
+        "\\mathrm{JKLMNOPQR} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathrm{JKLMNOPQR} \\!\" src=\"a9d3a8ae5e05b7bd96f20871e0c1cb96.png\" \/>"
+    ],
+    [
+        "\\mathrm{STUVWXYZ} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathrm{STUVWXYZ} \\!\" src=\"ea8b007cc18c226d2143fd4c43f0cca4.png\" \/>"
+    ],
+    [
+        "\\mathrm{abcdefghijklm} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathrm{abcdefghijklm} \\!\" src=\"9f6eb1d0200709ff7caf09f99faa4bd4.png\" \/>"
+    ],
+    [
+        "\\mathrm{nopqrstuvwxyz} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathrm{nopqrstuvwxyz} \\!\" src=\"b8dbd6a0585c8b2ce9094a777e2e716e.png\" \/>"
+    ],
+    [
+        "\\mathrm{0123456789} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathrm{0123456789} \\!\" src=\"f68e3877be64b002381f33959430445c.png\" \/>"
+    ],
+    [
+        "\\mathsf{ABCDEFGHI} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{ABCDEFGHI} \\!\" src=\"8a3b93220f8167b67275c84486fbfefd.png\" \/>"
+    ],
+    [
+        "\\mathsf{JKLMNOPQR} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{JKLMNOPQR} \\!\" src=\"c846a434b8192403806e5afa67cb56c8.png\" \/>"
+    ],
+    [
+        "\\mathsf{STUVWXYZ} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{STUVWXYZ} \\!\" src=\"465dc4c154760665cb218bf372b5077b.png\" \/>"
+    ],
+    [
+        "\\mathsf{abcdefghijklm} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{abcdefghijklm} \\!\" src=\"ee0e512b5e7b926eb2ad3ccb2e97f99e.png\" \/>"
+    ],
+    [
+        "\\mathsf{nopqrstuvwxyz} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{nopqrstuvwxyz} \\!\" src=\"c681c7261b4988870a4d21531838e1ff.png\" \/>"
+    ],
+    [
+        "\\mathsf{0123456789} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{0123456789} \\!\" src=\"4c0a1005670f8615d3f6a5e2a3f7ebae.png\" \/>"
+    ],
+    [
+        "\\mathsf{\\Alpha \\Beta \\Gamma \\Delta \\Epsilon \\Zeta \\Eta \\Theta} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{\\Alpha \\Beta \\Gamma \\Delta \\Epsilon \\Zeta \\Eta \\Theta} \\!\" src=\"563865ef112b2951163ce8e1069f9f8e.png\" \/>"
+    ],
+    [
+        "\\mathsf{\\Iota \\Kappa \\Lambda \\Mu \\Nu \\Xi \\Pi \\Rho} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{\\Iota \\Kappa \\Lambda \\Mu \\Nu \\Xi \\Pi \\Rho} \\!\" src=\"cdaf253be44a861a7d892226543e6672.png\" \/>"
+    ],
+    [
+        "\\mathsf{\\Sigma \\Tau \\Upsilon \\Phi \\Chi \\Psi \\Omega}\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathsf{\\Sigma \\Tau \\Upsilon \\Phi \\Chi \\Psi \\Omega}\\!\" src=\"d3df02b6333f8234da8af066da224e14.png\" \/>"
+    ],
+    [
+        "\\mathcal{ABCDEFGHI} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathcal{ABCDEFGHI} \\!\" src=\"d728a6ce6448bfd13bfee7b34b988477.png\" \/>"
+    ],
+    [
+        "\\mathcal{JKLMNOPQR} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathcal{JKLMNOPQR} \\!\" src=\"231d55516d700b93504c5391b0bbd482.png\" \/>"
+    ],
+    [
+        "\\mathcal{STUVWXYZ} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathcal{STUVWXYZ} \\!\" src=\"671cdb09089e8aea4d1c10963dff47bb.png\" \/>"
+    ],
+    [
+        "\\mathfrak{ABCDEFGHI} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathfrak{ABCDEFGHI} \\!\" src=\"1086f52f9d3b3a3409c30f9df307803d.png\" \/>"
+    ],
+    [
+        "\\mathfrak{JKLMNOPQR} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathfrak{JKLMNOPQR} \\!\" src=\"c99678db9d429d52ea0eb02bba3b72f6.png\" \/>"
+    ],
+    [
+        "\\mathfrak{STUVWXYZ} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathfrak{STUVWXYZ} \\!\" src=\"de83cd08cc780451bd2330d3d40b1532.png\" \/>"
+    ],
+    [
+        "\\mathfrak{abcdefghijklm} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathfrak{abcdefghijklm} \\!\" src=\"3648203f3849eb6a103cab171143bff5.png\" \/>"
+    ],
+    [
+        "\\mathfrak{nopqrstuvwxyz} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathfrak{nopqrstuvwxyz} \\!\" src=\"61605c6e5c504c766b330ca61d747920.png\" \/>"
+    ],
+    [
+        "\\mathfrak{0123456789} \\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathfrak{0123456789} \\!\" src=\"d7ce6e5c0f153732ba276fbfc47f019b.png\" \/>"
+    ],
+    [
+        "x y z",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x y z\" src=\"d16fb36f0911f878998c136191af705e.png\" \/>"
+    ],
+    [
+        "\\text{x y z}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{x y z}\" src=\"cc6e918f4c63d050ae99d4381c7bb2d5.png\" \/>"
+    ],
+    [
+        "\\text{if} n \\text{is even}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{if} n \\text{is even}\" src=\"d2f16386d2a4bbd2fd4b7187fcf73a52.png\" \/>"
+    ],
+    [
+        "\\text{if }n\\text{ is even}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{if }n\\text{ is even}\" src=\"82915036ba72b9f1dacfd528d40f4371.png\" \/>"
+    ],
+    [
+        "\\text{if}~n\\ \\text{is even}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{if}~n\\ \\text{is even}\" src=\"971bad3f2ace3107b439f9af94476aed.png\" \/>"
+    ],
+    [
+        "{\\color{Blue}x^2}+{\\color{YellowOrange}2x}-{\\color{OliveGreen}1}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{\\color{Blue}x^2}+{\\color{YellowOrange}2x}-{\\color{OliveGreen}1}\" src=\"3220b8a1d12128d1ada4a82d5c3d3723.png\" \/>"
+    ],
+    [
+        "x_{1,2}=\\frac{-b\\pm\\sqrt{\\color{Red}b^2-4ac}}{2a}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x_{1,2}=\\frac{-b\\pm\\sqrt{\\color{Red}b^2-4ac}}{2a}\" src=\"443e636a7722cec5d8f7b005deb2433a.png\" \/>"
+    ],
+    [
+        "e^{i \\pi} + 1 = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"e^{i \\pi} + 1 = 0\" src=\"f897005615c391e14cd50112cda44665.png\" \/>"
+    ],
+    [
+        "\\definecolor{orange}{RGB}{255,165,0}\\pagecolor{orange}e^{i \\pi} + 1 = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\definecolor{orange}{RGB}{255,165,0}\\pagecolor{orange}e^{i \\pi} + 1 = 0\" src=\"95dfa34eee8b069de07f18e7f3b43cea.png\" \/>"
+    ],
+    [
+        "e^{i \\pi} + 1 = 0\\,\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"e^{i \\pi} + 1 = 0\\,\\!\" src=\"9e9a547076c6820b95e439dd1a5d6a32.png\" \/>"
+    ],
+    [
+        "\\definecolor{orange}{RGB}{255,165,0}\\pagecolor{orange}e^{i \\pi} + 1 = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\definecolor{orange}{RGB}{255,165,0}\\pagecolor{orange}e^{i \\pi} + 1 = 0\" src=\"95dfa34eee8b069de07f18e7f3b43cea.png\" \/>"
+    ],
+    [
+        "e^{i \\pi} + 1 = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"e^{i \\pi} + 1 = 0\" src=\"f897005615c391e14cd50112cda44665.png\" \/>"
+    ],
+    [
+        "\\definecolor{orange}{RGB}{255,165,0}\\pagecolor{orange}e^{i \\pi} + 1 = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\definecolor{orange}{RGB}{255,165,0}\\pagecolor{orange}e^{i \\pi} + 1 = 0\" src=\"95dfa34eee8b069de07f18e7f3b43cea.png\" \/>"
+    ],
+    [
+        "\\color{Apricot}\\text{Apricot}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Apricot}\\text{Apricot}\" src=\"b8948aeb7bdca5bd4e18d613ac6c5696.png\" \/>"
+    ],
+    [
+        "\\color{Aquamarine}\\text{Aquamarine}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Aquamarine}\\text{Aquamarine}\" src=\"fc435c38d6cd34147f1b0562b0e580c0.png\" \/>"
+    ],
+    [
+        "\\color{Bittersweet}\\text{Bittersweet}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Bittersweet}\\text{Bittersweet}\" src=\"d67b10dd93c2300ee8d13b5099078d1b.png\" \/>"
+    ],
+    [
+        "\\color{Black}\\text{Black}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Black}\\text{Black}\" src=\"364fc160f6c30914ad3d70a6bb551dc6.png\" \/>"
+    ],
+    [
+        "\\color{Blue}\\text{Blue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Blue}\\text{Blue}\" src=\"5f795126f5d16b97c60578f01b368cd6.png\" \/>"
+    ],
+    [
+        "\\color{BlueGreen}\\text{BlueGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{BlueGreen}\\text{BlueGreen}\" src=\"302ea2ab02b2998679c1f973dfb17395.png\" \/>"
+    ],
+    [
+        "\\color{BlueViolet}\\text{BlueViolet}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{BlueViolet}\\text{BlueViolet}\" src=\"f7d3a6b44f64ec4d9b289bf8ac436d92.png\" \/>"
+    ],
+    [
+        "\\color{BrickRed}\\text{BrickRed}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{BrickRed}\\text{BrickRed}\" src=\"a2f94714d1809cb3f71016db0e8c2315.png\" \/>"
+    ],
+    [
+        "\\color{Brown}\\text{Brown}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Brown}\\text{Brown}\" src=\"99cfd151aa2998fb6b309c8c50393c32.png\" \/>"
+    ],
+    [
+        "\\color{BurntOrange}\\text{BurntOrange}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{BurntOrange}\\text{BurntOrange}\" src=\"3e3b04676ace992e28aaa5608455a289.png\" \/>"
+    ],
+    [
+        "\\color{CadetBlue}\\text{CadetBlue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{CadetBlue}\\text{CadetBlue}\" src=\"fd392c22a7bb76e6203788f0a5e6584b.png\" \/>"
+    ],
+    [
+        "\\color{CarnationPink}\\text{CarnationPink}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{CarnationPink}\\text{CarnationPink}\" src=\"6079cf2eacc794bf3e99bc9fc233e2d0.png\" \/>"
+    ],
+    [
+        "\\color{Cerulean}\\text{Cerulean}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Cerulean}\\text{Cerulean}\" src=\"9759c3640f8f5a2cfa5cfa5c4bc64e2f.png\" \/>"
+    ],
+    [
+        "\\color{CornflowerBlue}\\text{CornflowerBlue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{CornflowerBlue}\\text{CornflowerBlue}\" src=\"072ea0cddb81b6996a86c5c60042fc8c.png\" \/>"
+    ],
+    [
+        "\\color{Cyan}\\text{Cyan}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Cyan}\\text{Cyan}\" src=\"321ecf031772dbe95758cab0dfaa6f27.png\" \/>"
+    ],
+    [
+        "\\color{Dandelion}\\text{Dandelion}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Dandelion}\\text{Dandelion}\" src=\"78686b75a31528404d2e9b365f892142.png\" \/>"
+    ],
+    [
+        "\\color{DarkOrchid}\\text{DarkOrchid}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{DarkOrchid}\\text{DarkOrchid}\" src=\"19bc495f720e6bb920eed9545880e383.png\" \/>"
+    ],
+    [
+        "\\color{Emerald}\\text{Emerald}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Emerald}\\text{Emerald}\" src=\"b4310eecc8d70893a71a728574dc9f0f.png\" \/>"
+    ],
+    [
+        "\\color{ForestGreen}\\text{ForestGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{ForestGreen}\\text{ForestGreen}\" src=\"b89859eb7faadeb40830600590478e6e.png\" \/>"
+    ],
+    [
+        "\\color{Fuchsia}\\text{Fuchsia}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Fuchsia}\\text{Fuchsia}\" src=\"3073bfb913846b8b74d221b3de291348.png\" \/>"
+    ],
+    [
+        "\\color{Goldenrod}\\text{Goldenrod}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Goldenrod}\\text{Goldenrod}\" src=\"af66a8061a03abb89bc4d205503d437f.png\" \/>"
+    ],
+    [
+        "\\color{Gray}\\text{Gray}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Gray}\\text{Gray}\" src=\"1e5478f23b28143107d25266b55ef78a.png\" \/>"
+    ],
+    [
+        "\\color{Green}\\text{Green}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Green}\\text{Green}\" src=\"9474b1edd45b5aefe4533543fe85bbbd.png\" \/>"
+    ],
+    [
+        "\\color{GreenYellow}\\text{GreenYellow}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{GreenYellow}\\text{GreenYellow}\" src=\"906467f5d3fa98cfa97b4194f268d5c7.png\" \/>"
+    ],
+    [
+        "\\color{JungleGreen}\\text{JungleGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{JungleGreen}\\text{JungleGreen}\" src=\"f72158890930502ffd7dae256812f7e4.png\" \/>"
+    ],
+    [
+        "\\color{Lavender}\\text{Lavender}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Lavender}\\text{Lavender}\" src=\"f2fa7339ac0b50f73409f1e05eb77800.png\" \/>"
+    ],
+    [
+        "\\color{LimeGreen}\\text{LimeGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{LimeGreen}\\text{LimeGreen}\" src=\"c4c5d14dea2c682d5f4148eab87e332f.png\" \/>"
+    ],
+    [
+        "\\color{Magenta}\\text{Magenta}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Magenta}\\text{Magenta}\" src=\"d9bfd6c63b5b8c21f53e52a74a75eb97.png\" \/>"
+    ],
+    [
+        "\\color{Mahogany}\\text{Mahogany}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Mahogany}\\text{Mahogany}\" src=\"dbb2ef205ba8d4d3586b1b9785c54c25.png\" \/>"
+    ],
+    [
+        "\\color{Maroon}\\text{Maroon}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Maroon}\\text{Maroon}\" src=\"5861b59a922bda9d96cf03cb8a184a8a.png\" \/>"
+    ],
+    [
+        "\\color{Melon}\\text{Melon}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Melon}\\text{Melon}\" src=\"e9b605ab8c6a1135ac9bb24e540e645b.png\" \/>"
+    ],
+    [
+        "\\color{MidnightBlue}\\text{MidnightBlue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{MidnightBlue}\\text{MidnightBlue}\" src=\"3c196c0de1592080c250b05208cb29c1.png\" \/>"
+    ],
+    [
+        "\\color{Mulberry}\\text{Mulberry}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Mulberry}\\text{Mulberry}\" src=\"78fe49c7ffa31d0309ecad4e17c8533b.png\" \/>"
+    ],
+    [
+        "\\color{NavyBlue}\\text{NavyBlue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{NavyBlue}\\text{NavyBlue}\" src=\"b57ac6d698f2a553d1de298b8ae86f55.png\" \/>"
+    ],
+    [
+        "\\color{OliveGreen}\\text{OliveGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{OliveGreen}\\text{OliveGreen}\" src=\"1ff90d0c4e6d6901579206062701309a.png\" \/>"
+    ],
+    [
+        "\\color{Orange}\\text{Orange}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Orange}\\text{Orange}\" src=\"1dd73f756801b262f01f87912b369339.png\" \/>"
+    ],
+    [
+        "\\color{OrangeRed}\\text{OrangeRed}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{OrangeRed}\\text{OrangeRed}\" src=\"6df4aca479f5fa8acae9c21141636557.png\" \/>"
+    ],
+    [
+        "\\color{Orchid}\\text{Orchid}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Orchid}\\text{Orchid}\" src=\"e03e079ac7c0138cc85bb20894e42c7d.png\" \/>"
+    ],
+    [
+        "\\color{Peach}\\text{Peach}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Peach}\\text{Peach}\" src=\"16a4afaaa911b78f102f2e088c596715.png\" \/>"
+    ],
+    [
+        "\\color{Periwinkle}\\text{Periwinkle}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Periwinkle}\\text{Periwinkle}\" src=\"104bee7d6969d0403571f7aa65390384.png\" \/>"
+    ],
+    [
+        "\\color{PineGreen}\\text{PineGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{PineGreen}\\text{PineGreen}\" src=\"5821d738015d4bae29a90be43c9dc760.png\" \/>"
+    ],
+    [
+        "\\color{Plum}\\text{Plum}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Plum}\\text{Plum}\" src=\"de3328ac78da89a5e86e1917ec8fb87b.png\" \/>"
+    ],
+    [
+        "\\color{ProcessBlue}\\text{ProcessBlue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{ProcessBlue}\\text{ProcessBlue}\" src=\"e20ab4232d3130d086b8de76eee6b53c.png\" \/>"
+    ],
+    [
+        "\\color{Purple}\\text{Purple}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Purple}\\text{Purple}\" src=\"fefd1c1377e3d29213e81e866583adad.png\" \/>"
+    ],
+    [
+        "\\color{RawSienna}\\text{RawSienna}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{RawSienna}\\text{RawSienna}\" src=\"745d3d1a6a79b318a497e6fbcb57dc02.png\" \/>"
+    ],
+    [
+        "\\color{Red}\\text{Red}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Red}\\text{Red}\" src=\"9e2052c4c91b5216205fe642a06c5ac1.png\" \/>"
+    ],
+    [
+        "\\color{RedOrange}\\text{RedOrange}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{RedOrange}\\text{RedOrange}\" src=\"2a026699e64707b449d7c3811d752725.png\" \/>"
+    ],
+    [
+        "\\color{RedViolet}\\text{RedViolet}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{RedViolet}\\text{RedViolet}\" src=\"2ac9ad9fbd882591f7971ff477880fe6.png\" \/>"
+    ],
+    [
+        "\\color{Rhodamine}\\text{Rhodamine}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Rhodamine}\\text{Rhodamine}\" src=\"27d615add22f24e5689271903afd2ea8.png\" \/>"
+    ],
+    [
+        "\\color{RoyalBlue}\\text{RoyalBlue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{RoyalBlue}\\text{RoyalBlue}\" src=\"6e26c2a826a4d55150b804f2e71444af.png\" \/>"
+    ],
+    [
+        "\\color{RoyalPurple}\\text{RoyalPurple}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{RoyalPurple}\\text{RoyalPurple}\" src=\"dd4a6069922baf4c048592b1bccef491.png\" \/>"
+    ],
+    [
+        "\\color{RubineRed}\\text{RubineRed}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{RubineRed}\\text{RubineRed}\" src=\"771e441e86b10ef3db7b7cb90d9570d1.png\" \/>"
+    ],
+    [
+        "\\color{Salmon}\\text{Salmon}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Salmon}\\text{Salmon}\" src=\"1204c3c0547f50b71bda5357deba7948.png\" \/>"
+    ],
+    [
+        "\\color{SeaGreen}\\text{SeaGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{SeaGreen}\\text{SeaGreen}\" src=\"e897b90beb4e669c01a63c3d2ac2d954.png\" \/>"
+    ],
+    [
+        "\\color{Sepia}\\text{Sepia}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Sepia}\\text{Sepia}\" src=\"e3b0037782599bf00cec26b758627e4b.png\" \/>"
+    ],
+    [
+        "\\color{SkyBlue}\\text{SkyBlue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{SkyBlue}\\text{SkyBlue}\" src=\"03bc1de1505a991d0f8c2db1a9211740.png\" \/>"
+    ],
+    [
+        "\\color{SpringGreen}\\text{SpringGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{SpringGreen}\\text{SpringGreen}\" src=\"7de66b44de4a77d808c6ad47e0ba3502.png\" \/>"
+    ],
+    [
+        "\\color{Tan}\\text{Tan}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Tan}\\text{Tan}\" src=\"6975e0f90106c5e304d39dfebc6ad1d0.png\" \/>"
+    ],
+    [
+        "\\color{TealBlue}\\text{TealBlue}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{TealBlue}\\text{TealBlue}\" src=\"2b19a41a6ca9691cdbd5fa9f15665d5a.png\" \/>"
+    ],
+    [
+        "\\color{Thistle}\\text{Thistle}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Thistle}\\text{Thistle}\" src=\"828c123619d3d3e078aa28bbb362c389.png\" \/>"
+    ],
+    [
+        "\\color{Turquoise}\\text{Turquoise}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Turquoise}\\text{Turquoise}\" src=\"edbea9eb14e35cbadb5e2df41afae369.png\" \/>"
+    ],
+    [
+        "\\color{Violet}\\text{Violet}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{Violet}\\text{Violet}\" src=\"85da72dd0a892dd3364fefd94a14cf7c.png\" \/>"
+    ],
+    [
+        "\\color{VioletRed}\\text{VioletRed}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{VioletRed}\\text{VioletRed}\" src=\"9b5d2430fd995e45f7974583ab86db0c.png\" \/>"
+    ],
+    [
+        "\\color{WildStrawberry}\\text{WildStrawberry}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{WildStrawberry}\\text{WildStrawberry}\" src=\"0962e3794c0315fd26b9668555ebff1c.png\" \/>"
+    ],
+    [
+        "\\color{YellowGreen}\\text{YellowGreen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{YellowGreen}\\text{YellowGreen}\" src=\"72a3756fa95c0da850b33ccb7b3e3900.png\" \/>"
+    ],
+    [
+        "\\color{YellowOrange}\\text{YellowOrange}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\color{YellowOrange}\\text{YellowOrange}\" src=\"119eb093f2ffcbd3d77a13f55f185f52.png\" \/>"
+    ],
+    [
+        "a \\qquad b",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a \\qquad b\" src=\"e505263bc9c94f673c580f3a36a7f08a.png\" \/>"
+    ],
+    [
+        "a \\quad b",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a \\quad b\" src=\"da8c1d9effa4501fd80c054e59ad917d.png\" \/>"
+    ],
+    [
+        "a\\ b",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a\\ b\" src=\"692d4bffca8e84ffb45cf9d5facf31d6.png\" \/>"
+    ],
+    [
+        "a \\mbox{ } b",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a \\mbox{ } b\" src=\"a2dcf5a19724cb3344c10f6da10ad886.png\" \/>"
+    ],
+    [
+        "a\\;b",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a\\;b\" src=\"b5ade5d5393fd7727bf77fa44ec8b564.png\" \/>"
+    ],
+    [
+        "a\\,b",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a\\,b\" src=\"7bea99aed60ba5e1fe8a134ab43fa85f.png\" \/>"
+    ],
+    [
+        "ab",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"ab\" src=\"187ef4436122d1cc2f40dc2b92f0eba0.png\" \/>"
+    ],
+    [
+        "\\mathit{ab}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\mathit{ab}\" src=\"9eb2e32cf7426cbd216d0dca18e6584e.png\" \/>"
+    ],
+    [
+        "a\\!b",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"a\\!b\" src=\"0fbcad5fadb912e8afa6d113a75c83e4.png\" \/>"
+    ],
+    [
+        "0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+\\cdots",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+\\cdots\" src=\"42fbce9ee33ec5113992c9a867bfddf3.png\" \/>"
+    ],
+    [
+        "{0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+\\cdots}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+\\cdots}\" src=\"d3acbcf21e8a90a92f676359b7def515.png\" \/>"
+    ],
+    [
+        "\\int_{-N}^{N} e^x\\, dx",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int_{-N}^{N} e^x\\, dx\" src=\"4e053ca66cfc79a2397c40aa34c66a25.png\" \/>"
+    ],
+    [
+        "\\sum_{i=0}^\\infty 2^{-i}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sum_{i=0}^\\infty 2^{-i}\" src=\"af926e99e79600018438bc1ddea6da71.png\" \/>"
+    ],
+    [
+        "\\text{geometric series:}\\quad \\sum_{i=0}^\\infty 2^{-i}=2 ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{geometric series:}\\quad \\sum_{i=0}^\\infty 2^{-i}=2 \" src=\"4f3cab8bdfda51452401e6897c24319a.png\" \/>"
+    ],
+    [
+        "\\iint",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\iint\" src=\"0e66f8f6b272ca5db6f0b3f1c63a7560.png\" \/>"
+    ],
+    [
+        "\\oint",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\oint\" src=\"058bf10c50ba4ee074da24c60a590314.png\" \/>"
+    ],
+    [
+        "\\iint\\limits_{S}\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\subset\\!\\supset \\mathbf D \\cdot \\mathrm{d}\\mathbf A",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\iint\\limits_{S}\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\subset\\!\\supset \\mathbf D \\cdot \\mathrm{d}\\mathbf A\" src=\"2e1f7e4168ae003494bbec19102f4967.png\" \/>"
+    ],
+    [
+        "\\int\\!\\!\\!\\!\\int_{\\partial V}\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\;\\;\\;\\bigcirc\\,\\,\\mathbf D\\cdot\\mathrm{d}\\mathbf A",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int\\!\\!\\!\\!\\int_{\\partial V}\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\;\\;\\;\\bigcirc\\,\\,\\mathbf D\\cdot\\mathrm{d}\\mathbf A\" src=\"4d0e5fd5543dece7d0ff39eff990efbb.png\" \/>"
+    ],
+    [
+        "\\int\\!\\!\\!\\!\\!\\int\\!\\!\\!\\!\\!\\int_{\\partial V}\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\;\\;\\;\\subset\\!\\supset \\mathbf D\\cdot\\mathrm{d}\\mathbf A",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int\\!\\!\\!\\!\\!\\int\\!\\!\\!\\!\\!\\int_{\\partial V}\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\;\\;\\;\\subset\\!\\supset \\mathbf D\\cdot\\mathrm{d}\\mathbf A\" src=\"1990fe2f58972e93f7d23b3902ca925b.png\" \/>"
+    ],
+    [
+        "\\int\\!\\!\\!\\!\\!\\int\\!\\!\\!\\!\\!\\int_{\\partial V}\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\;\\;\\;\\bigcirc\\,\\,\\mathbf D\\;\\cdot\\mathrm{d}\\mathbf A",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int\\!\\!\\!\\!\\!\\int\\!\\!\\!\\!\\!\\int_{\\partial V}\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\!\\;\\;\\;\\bigcirc\\,\\,\\mathbf D\\;\\cdot\\mathrm{d}\\mathbf A\" src=\"dc59fde59ad9a9ab03d6e0eafdb6e65a.png\" \/>"
+    ],
+    [
+        "{\\scriptstyle S}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{\\scriptstyle S}\" src=\"7ff140fff7dde71951767d28cb5304ac.png\" \/>"
+    ],
+    [
+        "( \\nabla \\times \\bold{F} ) \\cdot {\\rm d}\\bold{S} = \\oint_{\\partial S} \\bold{F} \\cdot {\\rm d}\\boldsymbol{\\ell} ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"( \\nabla \\times \\bold{F} ) \\cdot {\\rm d}\\bold{S} = \\oint_{\\partial S} \\bold{F} \\cdot {\\rm d}\\boldsymbol{\\ell} \" src=\"f6d35e69f3593017cdd38fbf8e798a9f.png\" \/>"
+    ],
+    [
+        "{\\scriptstyle S}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{\\scriptstyle S}\" src=\"7ff140fff7dde71951767d28cb5304ac.png\" \/>"
+    ],
+    [
+        "( \\nabla \\times \\bold{F} ) \\cdot {\\rm d}\\bold{S} = \\oint_{\\partial S} \\bold{F} \\cdot {\\rm d}\\boldsymbol{\\ell} ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"( \\nabla \\times \\bold{F} ) \\cdot {\\rm d}\\bold{S} = \\oint_{\\partial S} \\bold{F} \\cdot {\\rm d}\\boldsymbol{\\ell} \" src=\"f6d35e69f3593017cdd38fbf8e798a9f.png\" \/>"
+    ],
+    [
+        "\\oint_C \\bold{B} \\cdot {\\rm d} \\boldsymbol{\\ell} = \\mu_0 ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\oint_C \\bold{B} \\cdot {\\rm d} \\boldsymbol{\\ell} = \\mu_0 \" src=\"0f3f1a7580395190da1d7e7bba5a72e6.png\" \/>"
+    ],
+    [
+        "{\\scriptstyle S}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{\\scriptstyle S}\" src=\"7ff140fff7dde71951767d28cb5304ac.png\" \/>"
+    ],
+    [
+        "\\left ( \\bold{J} + \\epsilon_0\\frac{\\partial \\bold{E}}{\\partial t} \\right ) \\cdot {\\rm d}\\bold{S}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left ( \\bold{J} + \\epsilon_0\\frac{\\partial \\bold{E}}{\\partial t} \\right ) \\cdot {\\rm d}\\bold{S}\" src=\"39a571d0f6a01877c10d8790a5943eab.png\" \/>"
+    ],
+    [
+        "\\oint_{\\partial S} \\bold{B} \\cdot {\\rm d} \\boldsymbol{\\ell} = \\mu_0 ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\oint_{\\partial S} \\bold{B} \\cdot {\\rm d} \\boldsymbol{\\ell} = \\mu_0 \" src=\"229ef1d17720ecf0b771d0783ce81c24.png\" \/>"
+    ],
+    [
+        "{\\scriptstyle S}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{\\scriptstyle S}\" src=\"7ff140fff7dde71951767d28cb5304ac.png\" \/>"
+    ],
+    [
+        "\\left ( \\bold{J} + \\epsilon_0\\frac{\\partial \\bold{E}}{\\partial t} \\right ) \\cdot {\\rm d}\\bold{S}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\left ( \\bold{J} + \\epsilon_0\\frac{\\partial \\bold{E}}{\\partial t} \\right ) \\cdot {\\rm d}\\bold{S}\" src=\"39a571d0f6a01877c10d8790a5943eab.png\" \/>"
+    ],
+    [
+        "\\bold{P} = ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bold{P} = \" src=\"5b2cfaf066bee44f213c6c2882e172c7.png\" \/>"
+    ],
+    [
+        "{\\scriptstyle \\partial \\Omega}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{\\scriptstyle \\partial \\Omega}\" src=\"30c24016df2b868da4e3a8ec58e45ce7.png\" \/>"
+    ],
+    [
+        "\\bold{T} \\cdot {\\rm d}^3\\boldsymbol{\\Sigma} = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bold{T} \\cdot {\\rm d}^3\\boldsymbol{\\Sigma} = 0\" src=\"7357641bffa0e625f2d806b7357b7ee5.png\" \/>"
+    ],
+    [
+        "\\bold{P} = ",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bold{P} = \" src=\"5b2cfaf066bee44f213c6c2882e172c7.png\" \/>"
+    ],
+    [
+        "{\\scriptstyle \\partial \\Omega}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{\\scriptstyle \\partial \\Omega}\" src=\"30c24016df2b868da4e3a8ec58e45ce7.png\" \/>"
+    ],
+    [
+        "\\bold{T} \\cdot {\\rm d}^3\\boldsymbol{\\Sigma} = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\bold{T} \\cdot {\\rm d}^3\\boldsymbol{\\Sigma} = 0\" src=\"7357641bffa0e625f2d806b7357b7ee5.png\" \/>"
+    ],
+    [
+        "\\overset{\\frown}{AB}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\overset{\\frown}{AB}\" src=\"8748475980cbfc9c9028b4b298d2f438.png\" \/>"
+    ],
+    [
+        "ax^2 + bx + c = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"ax^2 + bx + c = 0\" src=\"0c4913db725b72609d4825124dda12aa.png\" \/>"
+    ],
+    [
+        "ax^2 + bx + c = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"ax^2 + bx + c = 0\" src=\"0c4913db725b72609d4825124dda12aa.png\" \/>"
+    ],
+    [
+        "x={-b\\pm\\sqrt{b^2-4ac} \\over 2a}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x={-b\\pm\\sqrt{b^2-4ac} \\over 2a}\" src=\"a1f76f347b763aa6fc880cbc641fc29f.png\" \/>"
+    ],
+    [
+        "x={-b\\pm\\sqrt{b^2-4ac} \\over 2a}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"x={-b\\pm\\sqrt{b^2-4ac} \\over 2a}\" src=\"a1f76f347b763aa6fc880cbc641fc29f.png\" \/>"
+    ],
+    [
+        "2 = \\left( \\frac{\\left(3-x\\right) \\times 2}{3-x} \\right)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"2 = \\left( \\frac{\\left(3-x\\right) \\times 2}{3-x} \\right)\" src=\"894f312e78ebc09a4e78c11b79cf4a8c.png\" \/>"
+    ],
+    [
+        "2 = \\left(\n\\frac{\\left(3-x\\right) \\times 2}{3-x}\n\\right)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"2 = \\left(
\\frac{\\left(3-x\\right) \\times 2}{3-x}
\\right)\" src=\"894f312e78ebc09a4e78c11b79cf4a8c.png\" \/>"
+    ],
+    [
+        "S_{\\text{new}} = S_{\\text{old}} - \\frac{ \\left( 5-T \\right) ^2} {2}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"S_{\\text{new}} = S_{\\text{old}} - \\frac{ \\left( 5-T \\right) ^2} {2}\" src=\"aa0dc58e7114c5b91f6113130dcbc1d5.png\" \/>"
+    ],
+    [
+        "S_{\\text{new}} = S_{\\text{old}} - \\frac{ \\left( 5-T \\right) ^2} {2}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"S_{\\text{new}} = S_{\\text{old}} - \\frac{ \\left( 5-T \\right) ^2} {2}\" src=\"aa0dc58e7114c5b91f6113130dcbc1d5.png\" \/>"
+    ],
+    [
+        "\\int_a^x \\!\\!\\!\\int_a^s f(y)\\,dy\\,ds = \\int_a^x f(y)(x-y)\\,dy",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int_a^x \\!\\!\\!\\int_a^s f(y)\\,dy\\,ds = \\int_a^x f(y)(x-y)\\,dy\" src=\"4465ba032469b775777205effe6cdc0f.png\" \/>"
+    ],
+    [
+        "\\int_a^x \\!\\!\\!\\int_a^s f(y)\\,dy\\,ds\n= \\int_a^x f(y)(x-y)\\,dy",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\int_a^x \\!\\!\\!\\int_a^s f(y)\\,dy\\,ds
= \\int_a^x f(y)(x-y)\\,dy\" src=\"4465ba032469b775777205effe6cdc0f.png\" \/>"
+    ],
+    [
+        "\\det(\\mathsf{A}-\\lambda\\mathsf{I}) = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\det(\\mathsf{A}-\\lambda\\mathsf{I}) = 0\" src=\"691187249f1e86a2e459362d66b5a743.png\" \/>"
+    ],
+    [
+        "\\det(\\mathsf{A}-\\lambda\\mathsf{I}) = 0",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\det(\\mathsf{A}-\\lambda\\mathsf{I}) = 0\" src=\"691187249f1e86a2e459362d66b5a743.png\" \/>"
+    ],
+    [
+        "\\sum_{i=0}^{n-1} i",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sum_{i=0}^{n-1} i\" src=\"9c3090bae1d9eccd9e1747ecc51eaece.png\" \/>"
+    ],
+    [
+        "\\sum_{i=0}^{n-1} i",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sum_{i=0}^{n-1} i\" src=\"9c3090bae1d9eccd9e1747ecc51eaece.png\" \/>"
+    ],
+    [
+        "\\sum_{m=1}^\\infty\\sum_{n=1}^\\infty\\frac{m^2\\,n}{3^m\\left(m\\,3^n+n\\,3^m\\right)}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sum_{m=1}^\\infty\\sum_{n=1}^\\infty\\frac{m^2\\,n}{3^m\\left(m\\,3^n+n\\,3^m\\right)}\" src=\"5cd6041b50d619f041f121baea301898.png\" \/>"
+    ],
+    [
+        "\\sum_{m=1}^\\infty\\sum_{n=1}^\\infty\\frac{m^2\\,n}\n{3^m\\left(m\\,3^n+n\\,3^m\\right)}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sum_{m=1}^\\infty\\sum_{n=1}^\\infty\\frac{m^2\\,n}
{3^m\\left(m\\,3^n+n\\,3^m\\right)}\" src=\"5cd6041b50d619f041f121baea301898.png\" \/>"
+    ],
+    [
+        "u'' + p(x)u' + q(x)u=f(x),\\quad x>a",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"u'' + p(x)u' + q(x)u=f(x),\\quad x>a\" src=\"d7b3799aedae667fcc79b43ba678b94a.png\" \/>"
+    ],
+    [
+        "u'' + p(x)u' + q(x)u=f(x),\\quad x>a",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"u'' + p(x)u' + q(x)u=f(x),\\quad x>a\" src=\"d7b3799aedae667fcc79b43ba678b94a.png\" \/>"
+    ],
+    [
+        "|\\bar{z}| = |z|, |(\\bar{z})^n| = |z|^n, \\arg(z^n) = n \\arg(z)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"|\\bar{z}| = |z|, |(\\bar{z})^n| = |z|^n, \\arg(z^n) = n \\arg(z)\" src=\"2eac34dbc8ebbccb22ce8dfe9d5c1a86.png\" \/>"
+    ],
+    [
+        "|\\bar{z}| = |z|,\n|(\\bar{z})^n| = |z|^n,\n\\arg(z^n) = n \\arg(z)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"|\\bar{z}| = |z|,
|(\\bar{z})^n| = |z|^n,
\\arg(z^n) = n \\arg(z)\" src=\"2eac34dbc8ebbccb22ce8dfe9d5c1a86.png\" \/>"
+    ],
+    [
+        "\\lim_{z\\rightarrow z_0} f(z)=f(z_0)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\lim_{z\\rightarrow z_0} f(z)=f(z_0)\" src=\"02122c7e5ff915c4616fb457747c8bf4.png\" \/>"
+    ],
+    [
+        "\\lim_{z\\rightarrow z_0} f(z)=f(z_0)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\lim_{z\\rightarrow z_0} f(z)=f(z_0)\" src=\"02122c7e5ff915c4616fb457747c8bf4.png\" \/>"
+    ],
+    [
+        "\\phi_n(\\kappa)\n= \\frac{1}{4\\pi^2\\kappa^2} \\int_0^\\infty \\frac{\\sin(\\kappa R)}{\\kappa R} \\frac{\\partial}{\\partial R} \\left[R^2\\frac{\\partial D_n(R)}{\\partial R}\\right]\\,dR",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\phi_n(\\kappa)
= \\frac{1}{4\\pi^2\\kappa^2} \\int_0^\\infty \\frac{\\sin(\\kappa R)}{\\kappa R} \\frac{\\partial}{\\partial R} \\left[R^2\\frac{\\partial D_n(R)}{\\partial R}\\right]\\,dR\" src=\"7fb11db1e8b5890998b2f0f59f0e3d60.png\" \/>"
+    ],
+    [
+        "\\phi_n(\\kappa) =\n\\frac{1}{4\\pi^2\\kappa^2} \\int_0^\\infty\n\\frac{\\sin(\\kappa R)}{\\kappa R}\n\\frac{\\partial}{\\partial R}\n\\left[R^2\\frac{\\partial D_n(R)}{\\partial R}\\right]\\,dR",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\phi_n(\\kappa) =
\\frac{1}{4\\pi^2\\kappa^2} \\int_0^\\infty
\\frac{\\sin(\\kappa R)}{\\kappa R}
\\frac{\\partial}{\\partial R}
\\left[R^2\\frac{\\partial D_n(R)}{\\partial R}\\right]\\,dR\" src=\"7fb11db1e8b5890998b2f0f59f0e3d60.png\" \/>"
+    ],
+    [
+        "\\phi_n(\\kappa) = 0.033C_n^2\\kappa^{-11\/3},\\quad \\frac{1}{L_0}\\ll\\kappa\\ll\\frac{1}{l_0}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\phi_n(\\kappa) = 0.033C_n^2\\kappa^{-11\/3},\\quad \\frac{1}{L_0}\\ll\\kappa\\ll\\frac{1}{l_0}\" src=\"8f72d606f5f91bd51583a0a08b36eed9.png\" \/>"
+    ],
+    [
+        "\\phi_n(\\kappa) =\n0.033C_n^2\\kappa^{-11\/3},\\quad\n\\frac{1}{L_0}\\ll\\kappa\\ll\\frac{1}{l_0}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\phi_n(\\kappa) =
0.033C_n^2\\kappa^{-11\/3},\\quad
\\frac{1}{L_0}\\ll\\kappa\\ll\\frac{1}{l_0}\" src=\"8f72d606f5f91bd51583a0a08b36eed9.png\" \/>"
+    ],
+    [
+        "f(x) = \\begin{cases}1 & -1 \\le x < 0 \\\\\n\\frac{1}{2} & x = 0 \\\\ 1 - x^2 & \\text{otherwise}\\end{cases}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"f(x) = \\begin{cases}1 & -1 \\le x < 0 \\\\
\\frac{1}{2} & x = 0 \\\\ 1 - x^2 & \\text{otherwise}\\end{cases}\" src=\"3e3579f4c1c6a95f181f227fd3ede7de.png\" \/>"
+    ],
+    [
+        "\nf(x) =\n\\begin{cases}\n1 & -1 \\le x < 0 \\\\\n\\frac{1}{2} & x = 0 \\\\\n1 - x^2 & \\text{otherwise}\n\\end{cases}\n",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"
f(x) =
\\begin{cases}
1 & -1 \\le x < 0 \\\\
\\frac{1}{2} & x = 0 \\\\
1 - x^2 & \\text{otherwise}
\\end{cases}
\" src=\"3e3579f4c1c6a95f181f227fd3ede7de.png\" \/>"
+    ],
+    [
+        "{}_pF_q(a_1,\\dots,a_p;c_1,\\dots,c_q;z) = \\sum_{n=0}^\\infty \\frac{(a_1)_n\\cdots(a_p)_n}{(c_1)_n\\cdots(c_q)_n}\\frac{z^n}{n!}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{}_pF_q(a_1,\\dots,a_p;c_1,\\dots,c_q;z) = \\sum_{n=0}^\\infty \\frac{(a_1)_n\\cdots(a_p)_n}{(c_1)_n\\cdots(c_q)_n}\\frac{z^n}{n!}\" src=\"c02cbc6ec9c57aca74ebc3a0314dea79.png\" \/>"
+    ],
+    [
+        "{}_pF_q(a_1,\\dots,a_p;c_1,\\dots,c_q;z)\n= \\sum_{n=0}^\\infty\n\\frac{(a_1)_n\\cdots(a_p)_n}{(c_1)_n\\cdots(c_q)_n}\n\\frac{z^n}{n!}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"{}_pF_q(a_1,\\dots,a_p;c_1,\\dots,c_q;z)
= \\sum_{n=0}^\\infty
\\frac{(a_1)_n\\cdots(a_p)_n}{(c_1)_n\\cdots(c_q)_n}
\\frac{z^n}{n!}\" src=\"c02cbc6ec9c57aca74ebc3a0314dea79.png\" \/>"
+    ],
+    [
+        "\\frac{a}{b}\\ \\tfrac{a}{b}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\frac{a}{b}\\ \\tfrac{a}{b}\" src=\"54e172be623599fef29e40733c94895e.png\" \/>"
+    ],
+    [
+        "\\frac{a}{b}\\ \\tfrac{a}{b}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\frac{a}{b}\\ \\tfrac{a}{b}\" src=\"54e172be623599fef29e40733c94895e.png\" \/>"
+    ],
+    [
+        "S=dD\\,\\sin\\alpha\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"S=dD\\,\\sin\\alpha\\!\" src=\"385776efb87d3eb7fe18587efd484ef5.png\" \/>"
+    ],
+    [
+        "S=dD\\,\\sin\\alpha\\!",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"S=dD\\,\\sin\\alpha\\!\" src=\"385776efb87d3eb7fe18587efd484ef5.png\" \/>"
+    ],
+    [
+        "V=\\frac16\\pi h\\left[3\\left(r_1^2+r_2^2\\right)+h^2\\right]",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"V=\\frac16\\pi h\\left[3\\left(r_1^2+r_2^2\\right)+h^2\\right]\" src=\"624bfa733e479dff276edfdc7b1b8f6a.png\" \/>"
+    ],
+    [
+        "V=\\frac16\\pi h\\left[3\\left(r_1^2+r_2^2\\right)+h^2\\right]",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"V=\\frac16\\pi h\\left[3\\left(r_1^2+r_2^2\\right)+h^2\\right]\" src=\"624bfa733e479dff276edfdc7b1b8f6a.png\" \/>"
+    ],
+    [
+        "\\begin{align}\nu & = \\tfrac{1}{\\sqrt{2}}(x+y) \\qquad & x &= \\tfrac{1}{\\sqrt{2}}(u+v)\\\\\nv & = \\tfrac{1}{\\sqrt{2}}(x-y) \\qquad & y &= \\tfrac{1}{\\sqrt{2}}(u-v)\n\\end{align}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{align}
u & = \\tfrac{1}{\\sqrt{2}}(x+y) \\qquad & x &= \\tfrac{1}{\\sqrt{2}}(u+v)\\\\
v & = \\tfrac{1}{\\sqrt{2}}(x-y) \\qquad & y &= \\tfrac{1}{\\sqrt{2}}(u-v)
\\end{align}\" src=\"787eb92e00313cb866a89579fde92108.png\" \/>"
+    ],
+    [
+        "\\begin{align}\nu & = \\tfrac{1}{\\sqrt{2}}(x+y) \\qquad & x &= \\tfrac{1}{\\sqrt{2}}(u+v) \\\\\nv & = \\tfrac{1}{\\sqrt{2}}(x-y) \\qquad & y &= \\tfrac{1}{\\sqrt{2}}(u-v)\n\\end{align}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\begin{align}
u & = \\tfrac{1}{\\sqrt{2}}(x+y) \\qquad & x &= \\tfrac{1}{\\sqrt{2}}(u+v) \\\\
v & = \\tfrac{1}{\\sqrt{2}}(x-y) \\qquad & y &= \\tfrac{1}{\\sqrt{2}}(u-v)
\\end{align}\" src=\"787eb92e00313cb866a89579fde92108.png\" \/>"
+    ],
+    [
+        " with a thumbnail- we don't render math in the parsertests by default, so math is not stripped and turns up as escaped <math> tags. [[Image:foobar.jpg|thumb|<math>2+2",
+        "<strong class='error texerror'>Failed to parse (syntax error):  with a thumbnail- we don't render math in the parsertests by default, so math is not stripped and turns up as escaped &lt;math&gt; tags. [[Image:foobar.jpg|thumb|<math>2+2<\/strong>\n"
+    ],
+    [
+        " with a thumbnail- math enabled [[Image:foobar.jpg|thumb|<math>2+2",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\" with a thumbnail- math enabled [[Image:foobar.jpg|thumb|<math>2+2\" src=\"4b1d6eacd0bcc60a0aadf0d34626ee74.png\" \/>"
+    ],
+    [
+        "<script>alert(document.cookies);<\/script>",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"<script>alert(document.cookies);<\/script>\" src=\"59f1117d63b4ce95a694d44b588f0840.png\" \/>"
+    ],
+    [
+        "\\widehat{x}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\widehat{x}\" src=\"260a7a181658b82549b23574d4bf476b.png\" \/>"
+    ],
+    [
+        "\\widetilde{x}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\widetilde{x}\" src=\"4848f7a70999ab4e0ca9d205efa3cd04.png\" \/>"
+    ],
+    [
+        "\\euro 200",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\euro 200\" src=\"18867d4c568a19ae7b2388346e504ec3.png\" \/>"
+    ],
+    [
+        "\\geneuro",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\geneuro\" src=\"98b63c235ee187a38267e0e170b10e9d.png\" \/>"
+    ],
+    [
+        "\\geneuronarrow",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\geneuronarrow\" src=\"aa4a1ed370f4ee705c6930384bf89502.png\" \/>"
+    ],
+    [
+        "\\geneurowide",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\geneurowide\" src=\"4404468e6187fb04e4f7e1f15e550825.png\" \/>"
+    ],
+    [
+        "\\officialeuro",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\officialeuro\" src=\"d708de0eed23dbd6f02b99ea9073547b.png\" \/>"
+    ],
+    [
+        "\\digamma",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\digamma\" src=\"2f057b6e514c8ca2d9cf9a3e549f8865.png\" \/>"
+    ],
+    [
+        "\\Coppa\\coppa\\varcoppa",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Coppa\\coppa\\varcoppa\" src=\"8308ee5003aa36112414cad8ef874f85.png\" \/>"
+    ],
+    [
+        "\\Digamma",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Digamma\" src=\"5cfd6e5df6c87798542dca2e22c1e7cb.png\" \/>"
+    ],
+    [
+        "\\Koppa\\koppa",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Koppa\\koppa\" src=\"52593a0cdac178d165985ac014788b97.png\" \/>"
+    ],
+    [
+        "\\Sampi\\sampi",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Sampi\\sampi\" src=\"e9dabb19e4c27bf23d3c2a3629474562.png\" \/>"
+    ],
+    [
+        "\\Stigma\\stigma\\varstigma",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\Stigma\\stigma\\varstigma\" src=\"7b9233276816994a33a5e968202cef6e.png\" \/>"
+    ],
+    [
+        "\\text{next years}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{next years}\" src=\"6691dbc0b36631a68b78dd5ace256d80.png\" \/>"
+    ],
+    [
+        "\\text{next year's}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{next year's}\" src=\"236fd262b1976d04bc0e7a969d61aede.png\" \/>"
+    ],
+    [
+        "\\text{`next' year}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\text{`next' year}\" src=\"05854b483a833f067cb6ae72319b44bc.png\" \/>"
+    ],
+    [
+        "\\sin x",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sin x\" src=\"cdba58911c590ced3e2435dfa39f6873.png\" \/>"
+    ],
+    [
+        "\\sin(x)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sin(x)\" src=\"3e21673ce6c9b09f9ec50b7237248576.png\" \/>"
+    ],
+    [
+        "\\sin{x}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sin{x}\" src=\"fb5551723991d4dcb974a23c162ae813.png\" \/>"
+    ],
+    [
+        "\\sin x \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sin x \\,\" src=\"76a8e1a01bd233c1e4e16d63b2bbf939.png\" \/>"
+    ],
+    [
+        "\\sin(x) \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sin(x) \\,\" src=\"16c69b0a3658d3b398f72c518d869a03.png\" \/>"
+    ],
+    [
+        "\\sin{x} \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sin{x} \\,\" src=\"839639707da39f691e702c2399cbf943.png\" \/>"
+    ],
+    [
+        "\\sen x",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sen x\" src=\"fb82a78d580396c62cecb4cf018f3769.png\" \/>"
+    ],
+    [
+        "\\sen(x)",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sen(x)\" src=\"83a10e6756c8e59055178dc1f593130a.png\" \/>"
+    ],
+    [
+        "\\sen{x}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sen{x}\" src=\"04fde4f7a7e478015066f378050b1979.png\" \/>"
+    ],
+    [
+        "\\sen x \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sen x \\,\" src=\"0ac592b8f31b4698766c50c532f446a7.png\" \/>"
+    ],
+    [
+        "\\sen(x) \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sen(x) \\,\" src=\"bb5469d24fcdd52aa60cb9ee90ba697d.png\" \/>"
+    ],
+    [
+        "\\sen{x} \\,",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\sen{x} \\,\" src=\"d4882a4bcf5db1da3e30d905da8b394e.png\" \/>"
+    ],
+    [
+        "\\operatorname{sen}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\operatorname{sen}\" src=\"fa9660c7eb053ca8d3c9a87fa86635d9.png\" \/>"
+    ],
+    [
+        "\\dot \\vec B",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\dot \\vec B\" src=\"e64939568ecb506a86a392373cec0458.png\" \/>"
+    ],
+    [
+        "\\tilde \\mathcal{M}",
+        "<img class=\"mwe-math-fallback-image-inline tex\" alt=\"\\tilde \\mathcal{M}\" src=\"55072ce6ef8c840c4b7687bd8a028bde.png\" \/>"
+    ],
+    [
+        "",
+        "<strong class='error texerror'>Failed to parse (PNG conversion failed; check for correct installation of latex and dvipng (or dvips + gs + convert)): <\/strong>\n"
+    ],
+    [
+        " ",
+        "<strong class='error texerror'>Failed to parse (PNG conversion failed; check for correct installation of latex and dvipng (or dvips + gs + convert)):  <\/strong>\n"
+    ]
+]
\ No newline at end of file
diff --git a/tests/browser/README.md b/tests/browser/README.md
new file mode 100644
index 0000000..3631949
--- /dev/null
+++ b/tests/browser/README.md
@@ -0,0 +1 @@
+Please see https://github.com/wikimedia/mediawiki-selenium for instructions on how to run tests.
diff --git a/tests/browser/ci.yml b/tests/browser/ci.yml
new file mode 100644
index 0000000..c2eca93
--- /dev/null
+++ b/tests/browser/ci.yml
@@ -0,0 +1,9 @@
+BROWSER:
+  - chrome
+  - firefox
+
+MEDIAWIKI_ENVIRONMENT:
+  - beta
+
+PLATFORM:
+  - Linux
diff --git a/tests/browser/environments.yml b/tests/browser/environments.yml
new file mode 100644
index 0000000..1c5406b
--- /dev/null
+++ b/tests/browser/environments.yml
@@ -0,0 +1,40 @@
+# Customize this configuration as necessary to provide defaults for various
+# test environments.
+#
+# The set of defaults to use is determined by the MEDIAWIKI_ENVIRONMENT
+# environment variable.
+#
+#   export MEDIAWIKI_ENVIRONMENT=mw-vagrant-host
+#   bundle exec cucumber
+#
+# Additional variables set by the environment will override the corresponding
+# defaults defined here.
+#
+#   export MEDIAWIKI_ENVIRONMENT=mw-vagrant-host
+#   export MEDIAWIKI_USER=Selenium_user2
+#   bundle exec cucumber
+#
+
+mw-vagrant-host: &default
+  user_factory: true
+  mediawiki_url: http://127.0.0.1:8080/wiki/
+
+mw-vagrant-guest:
+  user_factory: true
+  mediawiki_url: http://127.0.0.1/wiki/
+
+beta:
+  mediawiki_url: http://en.wikipedia.beta.wmflabs.org/wiki/
+  mediawiki_user: Selenium_user
+  # mediawiki_password: SET THIS IN THE ENVIRONMENT!
+
+test2:
+  mediawiki_url: http://test2.wikipedia.org/wiki/
+  mediawiki_user: Selenium_user
+  # mediawiki_password: SET THIS IN THE ENVIRONMENT!
+
+integration:
+  user_factory: true
+  # mediawiki_url: THIS WILL BE SET BY JENKINS
+
+default: *default
diff --git a/tests/browser/features/math.feature b/tests/browser/features/math.feature
new file mode 100644
index 0000000..d714696
--- /dev/null
+++ b/tests/browser/features/math.feature
@@ -0,0 +1,8 @@
+ at chrome @en.wikipedia.beta.wmflabs.org @firefox
+Feature: Math
+
+  Scenario: Display simple math
+    Given I am editing a random page with source editor
+    When I type <math>3 + 2</math>
+      And I click Preview
+    Then the page should contain 3 + 2 image
diff --git a/tests/browser/features/step_definitions/math_steps.rb b/tests/browser/features/step_definitions/math_steps.rb
new file mode 100644
index 0000000..7d5c37a
--- /dev/null
+++ b/tests/browser/features/step_definitions/math_steps.rb
@@ -0,0 +1,15 @@
+Given(/^I am editing a random page with source editor$/) do
+  visit EditPage
+end
+
+When(/^I click Preview$/) do
+  on(EditPage).preview
+end
+
+When(/^I type (.+)$/) do |write_text|
+  on(EditPage).article_text = write_text
+end
+
+Then(/^the page should contain 3 \+ 2 image$/) do
+  expect(on(EditPage).math_image_element.when_present).to be_visible
+end
diff --git a/tests/browser/features/support/env.rb b/tests/browser/features/support/env.rb
new file mode 100644
index 0000000..c1072b2
--- /dev/null
+++ b/tests/browser/features/support/env.rb
@@ -0,0 +1,3 @@
+require 'mediawiki_selenium/cucumber'
+require 'mediawiki_selenium/pages'
+require 'mediawiki_selenium/step_definitions'
diff --git a/tests/browser/features/support/pages/edit_page.rb b/tests/browser/features/support/pages/edit_page.rb
new file mode 100644
index 0000000..141944a
--- /dev/null
+++ b/tests/browser/features/support/pages/edit_page.rb
@@ -0,0 +1,16 @@
+class EditPage
+  include PageObject
+
+  page_url 'Special:Random?action=edit'
+
+  text_area(:article_text, id: 'wpTextbox1')
+  button(:preview, id: 'wpPreview')
+
+  def math_image_element
+    if env.lookup(:mediawiki_environment, default: nil) == 'beta'
+      browser.meta(class: 'mwe-math-fallback-image-inline')
+    else
+      browser.img(class: 'tex')
+    end
+  end
+end
diff --git a/texvccheck/.gitignore b/texvccheck/.gitignore
new file mode 100644
index 0000000..be7dcb9
--- /dev/null
+++ b/texvccheck/.gitignore
@@ -0,0 +1,9 @@
+# Compiled source
+*.mli
+!tex.mli
+*.cmi
+*.cmx
+*.o
+
+# The binaries
+texvccheck
diff --git a/texvccheck/Makefile b/texvccheck/Makefile
new file mode 100644
index 0000000..14b44f7
--- /dev/null
+++ b/texvccheck/Makefile
@@ -0,0 +1,65 @@
+.PHONY: clean all
+PREFIX = /usr/local
+DESTDIR = /usr
+SOURCEDIR = $(PWD)
+INSTALL = /usr/bin/install
+OBJ= tex.cmo texutil.cmo parser.cmo lexer.cmo texvccheck.cmo \
+tex.cmx texutil.cmx parser.cmx lexer.cmx texvccheck.cmx \
+lexer.cmi parser.cmi tex.cmi texutil.cmi texvccheck.cmi \
+lexer.o parser.o tex.o texutil.o texvccheck.o \
+lexer.ml parser.ml parser.mli texvccheck texvccheck.bc util.o \
+util.cmo util.cmx util.cmi \
+
+COMMON_NATIVE_OBJ  =util.cmx parser.cmx texutil.cmx lexer.cmx
+COMMON_BYTECODE_OBJ=util.cmo parser.cmo texutil.cmo lexer.cmo
+
+all: texvccheck
+clean:
+	rm -f $(OBJ)
+
+# Native versions
+texvccheck: $(COMMON_NATIVE_OBJ) texvccheck.cmx
+	ocamlopt -o $@ unix.cmxa $^
+
+# Bytecode version
+texvccheck.bc: $(COMMON_BYTECODE_OBJ) texvccheck.cmo
+	ocamlc -o $@ unix.cma $^
+
+install: texvccheck
+	$(INSTALL) -dm777 $(DESTDIR)/bin
+	$(INSTALL) -m777 texvccheck $(DESTDIR)/bin
+
+remove:
+	rm -f $(DESTDIR)/bin/texvccheck
+
+#
+# Pattern rules
+#
+
+#  .ml source  .mli interface
+#  .cmi compiled interface
+#  .cmo object       .cma library object
+#  .cmx object file  .cmxa library object file
+%.ml: %.mll
+	ocamllex $<
+%.mli %.ml: %.mly
+	ocamlyacc $<
+%.cmo: %.ml
+	ocamlc -c $<
+%.cmx: %.ml
+	ocamlopt -c $<
+%.cmi: %.mli
+	ocamlc -c $<
+
+# Various dependencies
+
+lexer.cmo: parser.cmi tex.cmi texutil.cmi
+lexer.cmx: parser.cmx tex.cmi texutil.cmx
+parser.cmo: tex.cmi parser.cmi
+parser.cmx: tex.cmi parser.cmi
+parser.cmi: tex.cmi
+texutil.cmo: parser.cmi tex.cmi util.cmo texutil.cmi
+texutil.cmx: parser.cmx tex.cmi util.cmx texutil.cmi
+texutil.cmi: parser.cmi tex.cmi
+texvccheck.cmo: lexer.cmo parser.cmi texutil.cmi util.cmo
+texvccheck.cmx: lexer.cmx parser.cmx texutil.cmx util.cmx
diff --git a/texvccheck/README b/texvccheck/README
new file mode 100644
index 0000000..26e629c
--- /dev/null
+++ b/texvccheck/README
@@ -0,0 +1,77 @@
+== About texvccheck ==
+
+texvc takes the user input validates it and replaces MediaWiki specific functions.
+Input data is parsed and scrutinized for safety.
+
+texvc was written by Tomasz Wegrzanowski for use with MediaWiki; it's
+included as part of the MediaWiki package (http://www.mediawiki.org) and is
+under the GPL license.
+
+texvc-lite, was extracted from the original texvc program in 2013 by
+Moritz Schubotz and uses only the sanitizing and customization part.
+
+The list of all commands can be viewed by browsing the source files.
+Most commands are listed at
+http://sdrv.ms/15w2gVw
+there is also a tool for convenient whitelisting of special commands
+that are used in local wikis.
+
+Please report bugs at: https://bugzilla.wikimedia.org/
+with "MediaWiki extensions" as product and "Math" as component.
+
+== Setup ==
+
+=== Requirements ===
+
+OCaml 3.06 or later is required to compile texvc; this can be acquired from
+http://caml.inria.fr/ if your system doesn't have it available.
+
+The makefile requires GNU make.
+
+In Ubuntu Precise, all dependencies can be installed using:
+
+  $ sudo apt-get install ocaml
+
+=== Installation ===
+
+Run 'make' (or 'gmake' if GNU make is not your default make). This should
+produce the texvccheck executable.
+
+By default,
+MediaWiki will search in this directory for texvc, if you moved it elsewhere,
+you'll have to modify $wgTexvc and set it to the path of the texvc executable.
+
+== Usage ==
+
+Normally texvc is called from MediaWiki's Math modules and everything
+Just Works. It can be run manually for testing or for use in another app.
+
+=== Command-line parameters ===
+
+    texvccheck '\TeX input string'
+
+Be sure to properly quote the TeX code!
+
+Example:
+
+    texvc "y=x+2"
+
+=== Output format ===
+
+The output is the sanitized and customized tex string.
+
+texvc output format is like this:
+    +%s		ok
+    S		syntax error
+    E		lexing error
+    F%s		unknown function %s
+    -		other error
+
+== Hacking ==
+
+Before you start hacking on the math package its good to know the workflow,
+which is basically:
+
+1. texvc gets called by Math/Math.body.php (check out the line beginning with "$cmd")
+2. texvc does its magic, which is basically to check for invalid latex code.
+3. texvc takes the user input validates it and replaces MediaWiki specific functions
diff --git a/texvccheck/lexer.mll b/texvccheck/lexer.mll
new file mode 100644
index 0000000..2f77dfc
--- /dev/null
+++ b/texvccheck/lexer.mll
@@ -0,0 +1,119 @@
+{
+    open Parser
+    open Tex
+}
+let space = [' ' '\t' '\n' '\r']
+let alpha = ['a'-'z' 'A'-'Z']
+let literal_id = ['a'-'z' 'A'-'Z']
+let literal_mn = ['0'-'9']
+let literal_uf_lt = [',' ':' ';' '?' '!' '\'']
+let delimiter_uf_lt = ['(' ')' '.']
+let literal_uf_op = ['+' '-' '*' '=']
+let delimiter_uf_op = ['/' '|']
+let boxchars  = ['0'-'9' 'a'-'z' 'A'-'Z' '+' '-' '*' ',' '=' '(' ')' ':' '/' ';' '?' '.' '!' '\'' '`' ' ' '\128'-'\255']
+let aboxchars = ['0'-'9' 'a'-'z' 'A'-'Z' '+' '-' '*' ',' '=' '(' ')' ':' '/' ';' '?' '.' '!' '\'' '`' ' ']
+let latex_function_names = "arccos" | "arcsin" | "arctan" | "arg" | "cos" | "cosh" | "cot" | "coth" | "csc"| "deg" | "det" | "dim" | "exp" | "gcd" | "hom" | "inf" | "ker" | "lg" | "lim" | "liminf" | "limsup" | "ln" | "log" | "max" | "min" | "Pr" | "sec" | "sin" | "sinh" | "sup" | "tan" | "tanh"
+let mediawiki_function_names = "arccot" | "arcsec" | "arccsc" | "sgn" | "sen"
+
+rule token = parse
+    space +			{ token lexbuf }
+  | "\\text" space * '{' aboxchars + '}'
+				{  let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  BOX ("\\text", String.sub str n (String.length str - n - 1)) }
+  | "\\mbox" space * '{' aboxchars + '}'
+				{ let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  BOX ("\\mbox", String.sub str n (String.length str - n - 1)) }
+  | "\\hbox" space * '{' aboxchars + '}'
+				{ let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  BOX ("\\hbox", String.sub str n (String.length str - n - 1)) }
+  | "\\vbox" space * '{' aboxchars + '}'
+				{ let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  BOX ("\\vbox", String.sub str n (String.length str - n - 1)) }
+  | "\\text" space * '{' boxchars + '}'
+				{  let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  BOX ("\\text", String.sub str n (String.length str - n - 1)) }
+  | "\\mbox" space * '{' boxchars + '}'
+				{ let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  BOX ("\\mbox", String.sub str n (String.length str - n - 1)) }
+  | "\\hbox" space * '{' boxchars + '}'
+				{ let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  BOX ("\\hbox", String.sub str n (String.length str - n - 1)) }
+  | "\\vbox" space * '{' boxchars + '}'
+				{ let str = Lexing.lexeme lexbuf in
+				  let n = String.index str '{' + 1 in
+				  BOX ("\\vbox", String.sub str n (String.length str - n - 1)) }
+  | literal_id			{ let str = Lexing.lexeme lexbuf in LITERAL (TEX_ONLY str) }
+  | literal_mn			{ let str = Lexing.lexeme lexbuf in LITERAL (TEX_ONLY str) }
+  | literal_uf_lt		{ let str = Lexing.lexeme lexbuf in LITERAL (TEX_ONLY str) }
+  | delimiter_uf_lt		{ let str = Lexing.lexeme lexbuf in DELIMITER (TEX_ONLY str) }
+  | "-"				{ let str = Lexing.lexeme lexbuf in LITERAL (TEX_ONLY str)}
+  | literal_uf_op		{ let str = Lexing.lexeme lexbuf in LITERAL (TEX_ONLY str) }
+  | delimiter_uf_op		{ let str = Lexing.lexeme lexbuf in DELIMITER (TEX_ONLY str) }
+  | "\\operatorname"            {  FUN_AR1nb "\\operatorname" }
+  | "\\sqrt" space * "["	{ FUN_AR1opt "\\sqrt" }
+  | "\\xleftarrow" space * "["	{  FUN_AR1opt "\\xleftarrow" }
+  | "\\xrightarrow" space * "["	{  FUN_AR1opt "\\xrightarrow" }
+  | "\\" (latex_function_names as name) space * "("  { LITERAL (TEX_ONLY ("\\" ^ name ^ "(")) }
+  | "\\" (latex_function_names as name) space * "["  { LITERAL (TEX_ONLY ("\\" ^ name ^ "[") )}
+  | "\\" (latex_function_names as name) space * "\\{"  { LITERAL (TEX_ONLY ("\\" ^ name ^ "\\{")) }
+  | "\\" (latex_function_names as name) space * { LITERAL (TEX_ONLY("\\" ^ name ^ " ")) }
+  | "\\" (mediawiki_function_names as name) space * "("    { ( LITERAL (TEX_ONLY ("\\operatorname{" ^ name ^ "}("))) }
+  | "\\" (mediawiki_function_names as name) space * "["    { ( LITERAL (TEX_ONLY ("\\operatorname{" ^ name ^ "}[")))}
+  | "\\" (mediawiki_function_names as name) space * "\\{"  { ( LITERAL (TEX_ONLY ("\\operatorname{" ^ name ^ "}\\{")))}
+  | "\\" (mediawiki_function_names as name) space *        { ( LITERAL (TEX_ONLY ("\\operatorname{" ^ name ^ "} "))) }
+  | "\\" alpha + 		{ Texutil.find (Lexing.lexeme lexbuf) }
+  | "\\," 			{ LITERAL (TEX_ONLY "\\,") }
+  | "\\ " 			{ LITERAL (TEX_ONLY "\\ ") }
+  | "\\;" 			{ LITERAL (TEX_ONLY "\\;") }
+  | "\\!" 			{ LITERAL (TEX_ONLY "\\!") }
+  | "\\{" 			{ DELIMITER (TEX_ONLY "\\{") }
+  | "\\}" 			{ DELIMITER (TEX_ONLY "\\}") }
+  | "\\|" 			{ DELIMITER (TEX_ONLY "\\|") }
+  | "\\_" 			{ LITERAL (TEX_ONLY "\\_") }
+  | "\\#" 			{ LITERAL (TEX_ONLY "\\#") }
+  | "\\%"			{ LITERAL (TEX_ONLY "\\%") }
+  | "\\$"			{ LITERAL (TEX_ONLY "\\$") }
+  | "\\&"			{ LITERAL (TEX_ONLY "\\&") }
+  | "&"				{ NEXT_CELL }
+  | "\\\\"			{ NEXT_ROW }
+  | "\\begin{matrix}"		{  BEGIN__MATRIX }
+  | "\\end{matrix}"		{ END__MATRIX }
+  | "\\begin{pmatrix}"		{  BEGIN_PMATRIX }
+  | "\\end{pmatrix}"		{ END_PMATRIX }
+  | "\\begin{bmatrix}"		{  BEGIN_BMATRIX }
+  | "\\end{bmatrix}"		{ END_BMATRIX }
+  | "\\begin{Bmatrix}"		{  BEGIN_BBMATRIX }
+  | "\\end{Bmatrix}"		{ END_BBMATRIX }
+  | "\\begin{vmatrix}"		{  BEGIN_VMATRIX }
+  | "\\end{vmatrix}"		{ END_VMATRIX }
+  | "\\begin{Vmatrix}"		{  BEGIN_VVMATRIX }
+  | "\\end{Vmatrix}"		{ END_VVMATRIX }
+  | "\\begin{array}"		{  BEGIN_ARRAY }
+  | "\\end{array}"  		{ END_ARRAY }
+  | "\\begin{align}"		{  BEGIN_ALIGN }
+  | "\\end{align}"  		{ END_ALIGN }
+  | "\\begin{alignat}"		{  BEGIN_ALIGNAT }
+  | "\\end{alignat}"  		{ END_ALIGNAT }
+  | "\\begin{smallmatrix}"	{  BEGIN_SMALLMATRIX }
+  | "\\end{smallmatrix}"  	{ END_SMALLMATRIX }
+  | "\\begin{cases}"		{  BEGIN_CASES }
+  | "\\end{cases}"		{ END_CASES }
+  | '>'				{ LITERAL (TEX_ONLY ">") }
+  | '<'				{ LITERAL (TEX_ONLY "<") }
+  | '%'				{ LITERAL (TEX_ONLY "\\%") }
+  | '$'				{ LITERAL (TEX_ONLY "\\$") }
+  | '~'				{ LITERAL (TEX_ONLY "~") }
+  | '['				{ DELIMITER (TEX_ONLY "[") }
+  | ']'				{ SQ_CLOSE }
+  | '{'				{ CURLY_OPEN }
+  | '}'				{ CURLY_CLOSE }
+  | '^'				{ SUP }
+  | '_'				{ SUB }
+  | eof				{ EOF }
diff --git a/math/parser.mly b/texvccheck/parser.mly
similarity index 95%
copy from math/parser.mly
copy to texvccheck/parser.mly
index 373d45d..51e240c 100644
--- a/math/parser.mly
+++ b/texvccheck/parser.mly
@@ -1,20 +1,19 @@
 %{
     open Tex
-    open Render_info
-    
+
     let sq_close_ri = HTMLABLEC(FONT_UFH,"]", "]")
 %}
-%token <Render_info.t> LITERAL DELIMITER
+%token <Tex.render_t> LITERAL DELIMITER
 %token <string> FUN_AR2 FUN_INFIX FUN_AR1 DECL FUN_AR1nb FUN_AR1opt BIG FUN_AR2nb
 %token <string*string> BOX
 %token <string*(string*string)> FUN_AR1hl
-%token <string*Render_info.font_force> FUN_AR1hf DECLh
+%token <string*Tex.font_force> FUN_AR1hf DECLh
 %token <string*(Tex.t->Tex.t->string*string*string)> FUN_AR2h
 %token <string*(Tex.t list->Tex.t list->string*string*string)> FUN_INFIXh
 %token EOF CURLY_OPEN CURLY_CLOSE SUB SUP SQ_CLOSE NEXT_CELL NEXT_ROW
 %token BEGIN__MATRIX BEGIN_PMATRIX BEGIN_BMATRIX BEGIN_BBMATRIX BEGIN_VMATRIX BEGIN_VVMATRIX BEGIN_CASES BEGIN_ARRAY BEGIN_ALIGN BEGIN_ALIGNAT BEGIN_SMALLMATRIX
 %token END__MATRIX END_PMATRIX END_BMATRIX END_BBMATRIX END_VMATRIX END_VVMATRIX END_CASES END_ARRAY END_ALIGN END_ALIGNAT END_SMALLMATRIX
-%token LEFT RIGHT 
+%token LEFT RIGHT
 %type <Tex.t list> tex_expr
 %start tex_expr
 
@@ -45,7 +44,7 @@ litsq_uq:
 litsq_dq:
     litsq_zq SUB lit		{ $1,$3 }
 litsq_zq:
-  | SQ_CLOSE 			{ TEX_LITERAL sq_close_ri }
+    SQ_CLOSE			{ TEX_LITERAL sq_close_ri }
 expr_nosqc:
     /* */			{ [] }
   | lit_aq expr_nosqc		{ $1 :: $2 }
diff --git a/texvccheck/test.pl b/texvccheck/test.pl
new file mode 100755
index 0000000..898032d
--- /dev/null
+++ b/texvccheck/test.pl
@@ -0,0 +1,9 @@
+#! /usr/bin/perl
+my $texvc = `texvc '\\sin(x)+{}{}\\cos(x)^2 newcommand'`;
+if (substr($result,0,1) eq "+") {
+	print "good";
+} else {
+	print "bad";
+}
+print $result;
+my $ = `tex2svg '\\sin(x)+{}{}\\cos(x)^2 newcommand'`;
diff --git a/texvccheck/tex.mli b/texvccheck/tex.mli
new file mode 100644
index 0000000..834df14
--- /dev/null
+++ b/texvccheck/tex.mli
@@ -0,0 +1,48 @@
+type font_force =
+    FONTFORCE_IT
+  | FONTFORCE_RM
+
+type font_class =
+    FONT_IT  (* IT default, may be forced to be RM *)
+  | FONT_RM  (* RM default, may be forced to be IT *)
+  | FONT_UF  (* not affected by IT/RM setting *)
+  | FONT_RTI (* RM - any, IT - not available in HTML *)
+  | FONT_UFH (* in TeX UF, in HTML RM *)
+
+type math_class =
+    MN
+  | MI
+  | MO
+
+type render_t =
+      HTMLABLEC of font_class * string * string
+    | HTMLABLEM of font_class * string * string
+    | HTMLABLE of font_class * string * string
+    | MHTMLABLEC of font_class * string * string * math_class * string
+    | HTMLABLE_BIG of string * string
+    | TEX_ONLY of string
+
+type t =
+      TEX_LITERAL of render_t
+    | TEX_CURLY of t list
+    | TEX_FQ of t * t * t
+    | TEX_DQ of t * t
+    | TEX_UQ of t * t
+    | TEX_FQN of t * t
+    | TEX_DQN of t
+    | TEX_UQN of t
+    | TEX_LR of render_t * render_t * t list
+    | TEX_BOX of string * string
+    | TEX_BIG of string * render_t
+    | TEX_FUN1 of string * t
+    | TEX_FUN1nb of string * t
+    | TEX_FUN2 of string * t * t
+    | TEX_FUN2nb of string * t * t
+    | TEX_INFIX of string * t list * t list
+    | TEX_FUN2sq of string * t * t
+    | TEX_FUN1hl  of string * (string * string) * t
+    | TEX_FUN1hf  of string * font_force * t
+    | TEX_FUN2h  of string * (t -> t -> string * string * string) * t * t
+    | TEX_INFIXh of string * (t list -> t list -> string * string * string) * t list * t list
+    | TEX_MATRIX of string * t list list list
+    | TEX_DECLh  of string * font_force * t list
diff --git a/texvccheck/texutil.ml b/texvccheck/texutil.ml
new file mode 100644
index 0000000..9aebd7c
--- /dev/null
+++ b/texvccheck/texutil.ml
@@ -0,0 +1,712 @@
+(* vim: set sw=8 ts=8 et: *)
+open Parser
+open Tex
+open Util
+
+
+let tex_part = function
+    HTMLABLE (_,t,_) -> t
+  | HTMLABLEM (_,t,_) -> t
+  | HTMLABLEC (_,t,_) -> t
+  | MHTMLABLEC (_,t,_,_,_) -> t
+  | HTMLABLE_BIG (t,_) -> t
+  | TEX_ONLY t -> t
+
+let rec render_tex = function
+    TEX_FQ (a,b,c) -> (render_tex a) ^ "_{" ^ (render_tex  b) ^ "}^{" ^ (render_tex  c) ^ "}"
+  | TEX_DQ (a,b) -> (render_tex a) ^ "_{" ^ (render_tex  b) ^ "}"
+  | TEX_UQ (a,b) -> (render_tex a) ^ "^{" ^ (render_tex  b) ^ "}"
+  | TEX_FQN (a,b) -> "_{" ^ (render_tex  a) ^ "}^{" ^ (render_tex  b) ^ "}"
+  | TEX_DQN (a) -> "_{" ^ (render_tex  a) ^ "}"
+  | TEX_UQN (a) -> "^{" ^ (render_tex  a) ^ "}"
+  | TEX_LITERAL s -> tex_part s
+  | TEX_FUN1 (f,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
+  | TEX_FUN1nb (f,a) -> f ^ " " ^ (render_tex a)
+  | TEX_FUN1hl (f,_,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
+  | TEX_FUN1hf (f,_,a) -> "{" ^ f ^ " " ^ (render_tex a) ^ "}"
+  | TEX_DECLh (f,_,a) -> "{" ^ f ^ "{" ^ (mapjoin render_tex a) ^ "}}"
+  | TEX_FUN2 (f,a,b)    -> "{" ^ f ^ " " ^ (render_tex a) ^ (render_tex b) ^ "}"
+  | TEX_FUN2h (f,_,a,b) -> "{" ^ f ^ " " ^ (render_tex a) ^ (render_tex b) ^ "}"
+  | TEX_FUN2nb (f,a,b) -> f ^ (render_tex a) ^ (render_tex b)
+
+  | TEX_FUN2sq (f,a,b) -> "{" ^ f ^ "[ " ^ (render_tex a) ^ "]" ^ (render_tex b) ^ "}"
+  | TEX_CURLY (tl) -> "{" ^ (mapjoin render_tex tl) ^ "}"
+  | TEX_INFIX (s,ll,rl) -> "{" ^ (mapjoin render_tex ll) ^ " " ^ s ^ "" ^ (mapjoin render_tex rl) ^ "}"
+  | TEX_INFIXh (s,_,ll,rl) -> "{" ^ (mapjoin render_tex ll) ^ " " ^ s ^ "" ^ (mapjoin render_tex rl) ^ "}"
+  | TEX_BOX (bt,s) -> "{"^bt^"{" ^ s ^ "}}"
+  | TEX_BIG (bt,d) -> "{"^bt^(tex_part d)^"}"
+  | TEX_MATRIX (t,rows) -> "{\\begin{"^t^"}"^(mapjoine "\\\\" (mapjoine "&" (mapjoin render_tex)) rows)^"\\end{"^t^"}}"
+  | TEX_LR (l,r,tl) -> "\\left"^(tex_part l)^(mapjoin render_tex tl)^"\\right"^(tex_part r)
+
+
+(* Turn that into hash table lookup *)
+exception Illegal_tex_function of string
+
+let find cmd = match cmd with
+    "\\aleph"
+  | "\\alpha"
+  | "\\amalg"
+  | "\\And"
+  | "\\angle"
+  | "\\approx"
+  | "\\approxeq"
+  | "\\ast"
+  | "\\asymp"
+  | "\\backepsilon"
+  | "\\backprime"
+  | "\\backsim"
+  | "\\backsimeq"
+  | "\\barwedge"
+  | "\\Bbbk"
+  | "\\because"
+  | "\\beta"
+  | "\\beth"
+  | "\\between"
+  | "\\bigcap"
+  | "\\bigcirc"
+  | "\\bigcup"
+  | "\\bigodot"
+  | "\\bigoplus"
+  | "\\bigotimes"
+  | "\\bigsqcup"
+  | "\\bigstar"
+  | "\\bigtriangledown"
+  | "\\bigtriangleup"
+  | "\\biguplus"
+  | "\\bigvee"
+  | "\\bigwedge"
+  | "\\blacklozenge"
+  | "\\blacksquare"
+  | "\\blacktriangle"
+  | "\\blacktriangledown"
+  | "\\blacktriangleleft"
+  | "\\blacktriangleright"
+  | "\\bot"
+  | "\\bowtie"
+  | "\\Box"
+  | "\\boxdot"
+  | "\\boxminus"
+  | "\\boxplus"
+  | "\\boxtimes"
+  | "\\bullet"
+  | "\\bumpeq"
+  | "\\Bumpeq"
+  | "\\cap"
+  | "\\Cap"
+  | "\\cdot"
+  | "\\cdots"
+  | "\\centerdot"
+  | "\\checkmark"
+  | "\\chi"
+  | "\\circ"
+  | "\\circeq"
+  | "\\circlearrowleft"
+  | "\\circlearrowright"
+  | "\\circledast"
+  | "\\circledcirc"
+  | "\\circleddash"
+  | "\\circledS"
+  | "\\clubsuit"
+  | "\\colon"
+  | "\\color"
+  | "\\complement"
+  | "\\cong"
+  | "\\coprod"
+  | "\\cup"
+  | "\\Cup"
+  | "\\curlyeqprec"
+  | "\\curlyeqsucc"
+  | "\\curlyvee"
+  | "\\curlywedge"
+  | "\\curvearrowleft"
+  | "\\curvearrowright"
+  | "\\dagger"
+  | "\\daleth"
+  | "\\dashv"
+  | "\\ddagger"
+  | "\\ddots"
+  | "\\definecolor"
+  | "\\delta"
+  | "\\Delta"
+  | "\\diagdown"
+  | "\\diagup"
+  | "\\diamond"
+  | "\\Diamond"
+  | "\\diamondsuit"
+  | "\\digamma"
+  | "\\displaystyle"
+  | "\\div"
+  | "\\divideontimes"
+  | "\\doteq"
+  | "\\doteqdot"
+  | "\\dotplus"
+  | "\\dots"
+  | "\\dotsb"
+  | "\\dotsc"
+  | "\\dotsi"
+  | "\\dotsm"
+  | "\\dotso"
+  | "\\doublebarwedge"
+  | "\\downdownarrows"
+  | "\\downharpoonleft"
+  | "\\downharpoonright"
+  | "\\ell"
+  | "\\emptyset"
+  | "\\epsilon"
+  | "\\eqcirc"
+  | "\\eqsim"
+  | "\\eqslantgtr"
+  | "\\eqslantless"
+  | "\\equiv"
+  | "\\eta"
+  | "\\eth"
+  | "\\exists"
+  | "\\fallingdotseq"
+  | "\\Finv"
+  | "\\flat"
+  | "\\forall"
+  | "\\frown"
+  | "\\Game"
+  | "\\gamma"
+  | "\\Gamma"
+  | "\\geq"
+  | "\\geqq"
+  | "\\geqslant"
+  | "\\gets"
+  | "\\gg"
+  | "\\ggg"
+  | "\\gimel"
+  | "\\gnapprox"
+  | "\\gneq"
+  | "\\gneqq"
+  | "\\gnsim"
+  | "\\gtrapprox"
+  | "\\gtrdot"
+  | "\\gtreqless"
+  | "\\gtreqqless"
+  | "\\gtrless"
+  | "\\gtrsim"
+  | "\\gvertneqq"
+  | "\\hbar"
+  | "\\heartsuit"
+  | "\\hline"
+  | "\\hookleftarrow"
+  | "\\hookrightarrow"
+  | "\\hslash"
+  | "\\iff"
+  | "\\iiiint"
+  | "\\iiint"
+  | "\\iint"
+  | "\\Im"
+  | "\\imath"
+  | "\\implies"
+  | "\\in"
+  | "\\infty"
+  | "\\injlim"
+  | "\\int"
+  | "\\intercal"
+  | "\\iota"
+  | "\\jmath"
+  | "\\kappa"
+  | "\\lambda"
+  | "\\Lambda"
+  | "\\land"
+  | "\\ldots"
+  | "\\leftarrow"
+  | "\\Leftarrow"
+  | "\\leftarrowtail"
+  | "\\leftharpoondown"
+  | "\\leftharpoonup"
+  | "\\leftleftarrows"
+  | "\\leftrightarrow"
+  | "\\Leftrightarrow"
+  | "\\leftrightarrows"
+  | "\\leftrightharpoons"
+  | "\\leftrightsquigarrow"
+  | "\\leftthreetimes"
+  | "\\leq"
+  | "\\leqq"
+  | "\\leqslant"
+  | "\\lessapprox"
+  | "\\lessdot"
+  | "\\lesseqgtr"
+  | "\\lesseqqgtr"
+  | "\\lessgtr"
+  | "\\lesssim"
+  | "\\limits"
+  | "\\ll"
+  | "\\Lleftarrow"
+  | "\\lll"
+  | "\\lnapprox"
+  | "\\lneq"
+  | "\\lneqq"
+  | "\\lnot"
+  | "\\lnsim"
+  | "\\longleftarrow"
+  | "\\Longleftarrow"
+  | "\\longleftrightarrow"
+  | "\\Longleftrightarrow"
+  | "\\longmapsto"
+  | "\\longrightarrow"
+  | "\\Longrightarrow"
+  | "\\looparrowleft"
+  | "\\looparrowright"
+  | "\\lor"
+  | "\\lozenge"
+  | "\\Lsh"
+  | "\\ltimes"
+  | "\\lVert"
+  | "\\lvertneqq"
+  | "\\mapsto"
+  | "\\measuredangle"
+  | "\\mho"
+  | "\\mid"
+  | "\\mod"
+  | "\\models"
+  | "\\mp"
+  | "\\mu"
+  | "\\multimap"
+  | "\\nabla"
+  | "\\natural"
+  | "\\ncong"
+  | "\\nearrow"
+  | "\\neg"
+  | "\\neq"
+  | "\\nexists"
+  | "\\ngeq"
+  | "\\ngeqq"
+  | "\\ngeqslant"
+  | "\\ngtr"
+  | "\\ni"
+  | "\\nleftarrow"
+  | "\\nLeftarrow"
+  | "\\nleftrightarrow"
+  | "\\nLeftrightarrow"
+  | "\\nleq"
+  | "\\nleqq"
+  | "\\nleqslant"
+  | "\\nless"
+  | "\\nmid"
+  | "\\nolimits"
+  | "\\not"
+  | "\\notin"
+  | "\\nparallel"
+  | "\\nprec"
+  | "\\npreceq"
+  | "\\nrightarrow"
+  | "\\nRightarrow"
+  | "\\nshortmid"
+  | "\\nshortparallel"
+  | "\\nsim"
+  | "\\nsubseteq"
+  | "\\nsubseteqq"
+  | "\\nsucc"
+  | "\\nsucceq"
+  | "\\nsupseteq"
+  | "\\nsupseteqq"
+  | "\\ntriangleleft"
+  | "\\ntrianglelefteq"
+  | "\\ntriangleright"
+  | "\\ntrianglerighteq"
+  | "\\nu"
+  | "\\nvdash"
+  | "\\nVdash"
+  | "\\nvDash"
+  | "\\nVDash"
+  | "\\nwarrow"
+  | "\\odot"
+  | "\\oint"
+  | "\\omega"
+  | "\\Omega"
+  | "\\ominus"
+  | "\\oplus"
+  | "\\oslash"
+  | "\\otimes"
+  | "\\P"
+  | "\\pagecolor"
+  | "\\parallel"
+  | "\\partial"
+  | "\\perp"
+  | "\\phi"
+  | "\\Phi"
+  | "\\pi"
+  | "\\Pi"
+  | "\\pitchfork"
+  | "\\pm"
+  | "\\prec"
+  | "\\precapprox"
+  | "\\preccurlyeq"
+  | "\\preceq"
+  | "\\precnapprox"
+  | "\\precneqq"
+  | "\\precnsim"
+  | "\\precsim"
+  | "\\prime"
+  | "\\prod"
+  | "\\projlim"
+  | "\\propto"
+  | "\\psi"
+  | "\\Psi"
+  | "\\qquad"
+  | "\\quad"
+  | "\\Re"
+  | "\\rho"
+  | "\\rightarrow"
+  | "\\Rightarrow"
+  | "\\rightarrowtail"
+  | "\\rightharpoondown"
+  | "\\rightharpoonup"
+  | "\\rightleftarrows"
+  | "\\rightrightarrows"
+  | "\\rightsquigarrow"
+  | "\\rightthreetimes"
+  | "\\risingdotseq"
+  | "\\Rrightarrow"
+  | "\\Rsh"
+  | "\\rtimes"
+  | "\\rVert"
+  | "\\S"
+  | "\\scriptscriptstyle"
+  | "\\scriptstyle"
+  | "\\searrow"
+  | "\\setminus"
+  | "\\sharp"
+  | "\\shortmid"
+  | "\\shortparallel"
+  | "\\sigma"
+  | "\\Sigma"
+  | "\\sim"
+  | "\\simeq"
+  | "\\smallfrown"
+  | "\\smallsetminus"
+  | "\\smallsmile"
+  | "\\smile"
+  | "\\spadesuit"
+  | "\\sphericalangle"
+  | "\\sqcap"
+  | "\\sqcup"
+  | "\\sqsubset"
+  | "\\sqsubseteq"
+  | "\\sqsupset"
+  | "\\sqsupseteq"
+  | "\\square"
+  | "\\star"
+  | "\\subset"
+  | "\\Subset"
+  | "\\subseteq"
+  | "\\subseteqq"
+  | "\\subsetneq"
+  | "\\subsetneqq"
+  | "\\succ"
+  | "\\succapprox"
+  | "\\succcurlyeq"
+  | "\\succeq"
+  | "\\succnapprox"
+  | "\\succneqq"
+  | "\\succnsim"
+  | "\\succsim"
+  | "\\sum"
+  | "\\supset"
+  | "\\Supset"
+  | "\\supseteq"
+  | "\\supseteqq"
+  | "\\supsetneq"
+  | "\\supsetneqq"
+  | "\\surd"
+  | "\\swarrow"
+  | "\\tau"
+  | "\\textstyle"
+  | "\\therefore"
+  | "\\theta"
+  | "\\Theta"
+  | "\\thickapprox"
+  | "\\thicksim"
+  | "\\times"
+  | "\\to"
+  | "\\top"
+  | "\\triangle"
+  | "\\triangledown"
+  | "\\triangleleft"
+  | "\\trianglelefteq"
+  | "\\triangleq"
+  | "\\triangleright"
+  | "\\trianglerighteq"
+  | "\\upharpoonleft"
+  | "\\upharpoonright"
+  | "\\uplus"
+  | "\\upsilon"
+  | "\\Upsilon"
+  | "\\upuparrows"
+  | "\\varepsilon"
+  | "\\varinjlim"
+  | "\\varkappa"
+  | "\\varliminf"
+  | "\\varlimsup"
+  | "\\varnothing"
+  | "\\varphi"
+  | "\\varpi"
+  | "\\varprojlim"
+  | "\\varpropto"
+  | "\\varrho"
+  | "\\varsigma"
+  | "\\varsubsetneq"
+  | "\\varsubsetneqq"
+  | "\\varsupsetneq"
+  | "\\varsupsetneqq"
+  | "\\vartheta"
+  | "\\vartriangle"
+  | "\\vartriangleleft"
+  | "\\vartriangleright"
+  | "\\vdash"
+  | "\\Vdash"
+  | "\\vDash"
+  | "\\vdots"
+  | "\\vee"
+  | "\\veebar"
+  | "\\vline"
+  | "\\Vvdash"
+  | "\\wedge"
+  | "\\wp"
+  | "\\wr"
+  | "\\xi"
+  | "\\Xi"
+  | "\\zeta"
+  -> LITERAL ( TEX_ONLY( cmd ^ " " ) )
+
+  | "\\big"
+  | "\\Big"
+  | "\\bigg"
+  | "\\Bigg"
+  | "\\biggl"
+  | "\\Biggl"
+  | "\\biggr"
+  | "\\Biggr"
+  | "\\bigl"
+  | "\\Bigl"
+  | "\\bigr"
+  | "\\Bigr"
+  -> BIG (  cmd ^ " " )
+
+  | "\\backslash"
+  | "\\downarrow"
+  | "\\Downarrow"
+  | "\\langle"
+  | "\\lbrace"
+  | "\\lceil"
+  | "\\lfloor"
+  | "\\llcorner"
+  | "\\lrcorner"
+  | "\\rangle"
+  | "\\rbrace"
+  | "\\rceil"
+  | "\\rfloor"
+  | "\\rightleftharpoons"
+  | "\\twoheadleftarrow"
+  | "\\twoheadrightarrow"
+  | "\\ulcorner"
+  | "\\uparrow"
+  | "\\Uparrow"
+  | "\\updownarrow"
+  | "\\Updownarrow"
+  | "\\urcorner"
+  | "\\Vert"
+  | "\\vert"
+  | "\\lbrack"
+  | "\\rbrack"
+  -> DELIMITER( TEX_ONLY( cmd ^ " ") )
+
+  | "\\acute"
+  | "\\bar"
+  | "\\bcancel"
+  | "\\bmod"
+  | "\\boldsymbol"
+  | "\\breve"
+  | "\\cancel"
+  | "\\check"
+  | "\\ddot"
+  | "\\dot"
+  | "\\emph"
+  | "\\grave"
+  | "\\hat"
+  | "\\mathbb"
+  | "\\mathbf"
+  | "\\mathbin"
+  | "\\mathcal"
+  | "\\mathclose"
+  | "\\mathfrak"
+  | "\\mathit"
+  | "\\mathop"
+  | "\\mathopen"
+  | "\\mathord"
+  | "\\mathpunct"
+  | "\\mathrel"
+  | "\\mathrm"
+  | "\\mathsf"
+  | "\\mathtt"
+  | "\\operatorname"
+  | "\\overleftarrow"
+  | "\\overleftrightarrow"
+  | "\\overline"
+  | "\\overrightarrow"
+  | "\\pmod"
+  | "\\sqrt"
+  | "\\textbf"
+  | "\\textit"
+  | "\\textrm"
+  | "\\textsf"
+  | "\\texttt"
+  | "\\tilde"
+  | "\\underline"
+  | "\\vec"
+  | "\\widehat"
+  | "\\widetilde"
+  | "\\xcancel"
+  | "\\xleftarrow"
+  | "\\xrightarrow"
+  -> FUN_AR1( cmd ^ " " )
+
+  | "\\binom"
+  | "\\cancelto"
+  | "\\cfrac"
+  | "\\dbinom"
+  | "\\dfrac"
+  | "\\frac"
+  | "\\overset"
+  | "\\stackrel"
+  | "\\tbinom"
+  | "\\tfrac"
+  | "\\underset"
+  -> FUN_AR2( cmd ^ " " )
+  | "\\atop"
+  | "\\choose"
+  | "\\over"
+  -> FUN_INFIX( cmd ^ " " )
+
+  | "\\AA"
+  | "\\Coppa"
+  | "\\coppa"
+  | "\\Digamma"
+  | "\\euro"
+  | "\\geneuro"
+  | "\\geneuronarrow"
+  | "\\geneurowide"
+  | "\\Koppa"
+  | "\\koppa"
+  | "\\officialeuro"
+  | "\\Sampi"
+  | "\\sampi"
+  | "\\Stigma"
+  | "\\stigma"
+  | "\\textvisiblespace"
+  | "\\varstigma"
+  -> LITERAL ( TEX_ONLY( "\\mbox{" ^ cmd ^ "} " ) )
+
+  | "\\C" -> LITERAL ( TEX_ONLY( "\\mathbb{C}" ^ " " ) )
+  | "\\H" -> LITERAL ( TEX_ONLY( "\\mathbb{H}" ^ " " ) )
+  | "\\N" -> LITERAL ( TEX_ONLY( "\\mathbb{N}" ^ " " ) )
+  | "\\Q" -> LITERAL ( TEX_ONLY( "\\mathbb{Q}" ^ " " ) )
+  | "\\R" -> LITERAL ( TEX_ONLY( "\\mathbb{R}" ^ " " ) )
+  | "\\Z" -> LITERAL ( TEX_ONLY( "\\mathbb{Z}" ^ " " ) )
+
+  | "\\darr" -> DELIMITER( TEX_ONLY( "\\downarrow" ^ " " ) )
+  | "\\dArr" -> DELIMITER( TEX_ONLY( "\\Downarrow" ^ " " ) )
+  | "\\Darr" -> DELIMITER( TEX_ONLY( "\\Downarrow" ^ " " ) )
+  | "\\lang" -> DELIMITER( TEX_ONLY( "\\langle" ^ " " ) )
+  | "\\rang" -> DELIMITER( TEX_ONLY( "\\rangle" ^ " " ) )
+  | "\\uarr" -> DELIMITER( TEX_ONLY( "\\uparrow" ^ " " ) )
+  | "\\uArr" -> DELIMITER( TEX_ONLY( "\\Uparrow" ^ " " ) )
+  | "\\Uarr" -> DELIMITER( TEX_ONLY( "\\Uparrow" ^ " " ) )
+
+  | "\\Bbb" -> FUN_AR1( "\\mathbb" ^ " " )
+  | "\\bold" -> FUN_AR1( "\\mathbf" ^ " " )
+
+  | "\\alef" -> LITERAL ( TEX_ONLY( "\\aleph" ^ " " ) )
+  | "\\alefsym" -> LITERAL ( TEX_ONLY( "\\aleph" ^ " " ) )
+  | "\\Alpha" -> LITERAL ( TEX_ONLY( "\\mathrm{A}" ^ " " ) )
+  | "\\and" -> LITERAL ( TEX_ONLY( "\\land" ^ " " ) )
+  | "\\ang" -> LITERAL ( TEX_ONLY( "\\angle" ^ " " ) )
+  | "\\Beta" -> LITERAL ( TEX_ONLY( "\\mathrm{B}" ^ " " ) )
+  | "\\bull" -> LITERAL ( TEX_ONLY( "\\bullet" ^ " " ) )
+  | "\\Chi" -> LITERAL ( TEX_ONLY( "\\mathrm{X}" ^ " " ) )
+  | "\\clubs" -> LITERAL ( TEX_ONLY( "\\clubsuit" ^ " " ) )
+  | "\\cnums" -> LITERAL ( TEX_ONLY( "\\mathbb{C}" ^ " " ) )
+  | "\\Complex" -> LITERAL ( TEX_ONLY( "\\mathbb{C}" ^ " " ) )
+  | "\\Dagger" -> LITERAL ( TEX_ONLY( "\\ddagger" ^ " " ) )
+  | "\\diamonds" -> LITERAL ( TEX_ONLY( "\\diamondsuit" ^ " " ) )
+  | "\\Doteq" -> LITERAL ( TEX_ONLY( "\\doteqdot" ^ " " ) )
+  | "\\doublecap" -> LITERAL ( TEX_ONLY( "\\Cap" ^ " " ) )
+  | "\\doublecup" -> LITERAL ( TEX_ONLY( "\\Cup" ^ " " ) )
+  | "\\empty" -> LITERAL ( TEX_ONLY( "\\emptyset" ^ " " ) )
+  | "\\Epsilon" -> LITERAL ( TEX_ONLY( "\\mathrm{E}" ^ " " ) )
+  | "\\Eta" -> LITERAL ( TEX_ONLY( "\\mathrm{H}" ^ " " ) )
+  | "\\exist" -> LITERAL ( TEX_ONLY( "\\exists" ^ " " ) )
+  | "\\ge" -> LITERAL ( TEX_ONLY( "\\geq" ^ " " ) )
+  | "\\gggtr" -> LITERAL ( TEX_ONLY( "\\ggg" ^ " " ) )
+  | "\\hAar" -> LITERAL ( TEX_ONLY( "\\Leftrightarrow" ^ " " ) )
+  | "\\harr" -> LITERAL ( TEX_ONLY( "\\leftrightarrow" ^ " " ) )
+  | "\\Harr" -> LITERAL ( TEX_ONLY( "\\Leftrightarrow" ^ " " ) )
+  | "\\hearts" -> LITERAL ( TEX_ONLY( "\\heartsuit" ^ " " ) )
+  | "\\image" -> LITERAL ( TEX_ONLY( "\\Im" ^ " " ) )
+  | "\\infin" -> LITERAL ( TEX_ONLY( "\\infty" ^ " " ) )
+  | "\\Iota" -> LITERAL ( TEX_ONLY( "\\mathrm{I}" ^ " " ) )
+  | "\\isin" -> LITERAL ( TEX_ONLY( "\\in" ^ " " ) )
+  | "\\Kappa" -> LITERAL ( TEX_ONLY( "\\mathrm{K}" ^ " " ) )
+  | "\\larr" -> LITERAL ( TEX_ONLY( "\\leftarrow" ^ " " ) )
+  | "\\Larr" -> LITERAL ( TEX_ONLY( "\\Leftarrow" ^ " " ) )
+  | "\\lArr" -> LITERAL ( TEX_ONLY( "\\Leftarrow" ^ " " ) )
+  | "\\le" -> LITERAL ( TEX_ONLY( "\\leq" ^ " " ) )
+  | "\\lrarr" -> LITERAL ( TEX_ONLY( "\\leftrightarrow" ^ " " ) )
+  | "\\Lrarr" -> LITERAL ( TEX_ONLY( "\\Leftrightarrow" ^ " " ) )
+  | "\\lrArr" -> LITERAL ( TEX_ONLY( "\\Leftrightarrow" ^ " " ) )
+  | "\\Mu" -> LITERAL ( TEX_ONLY( "\\mathrm{M}" ^ " " ) )
+  | "\\natnums" -> LITERAL ( TEX_ONLY( "\\mathbb{N}" ^ " " ) )
+  | "\\ne" -> LITERAL ( TEX_ONLY( "\\neq" ^ " " ) )
+  | "\\Nu" -> LITERAL ( TEX_ONLY( "\\mathrm{N}" ^ " " ) )
+  | "\\O" -> LITERAL ( TEX_ONLY( "\\emptyset" ^ " " ) )
+  | "\\omicron" -> LITERAL ( TEX_ONLY( "\\mathrm{o}" ^ " " ) )
+  | "\\Omicron" -> LITERAL ( TEX_ONLY( "\\mathrm{O}" ^ " " ) )
+  | "\\or" -> LITERAL ( TEX_ONLY( "\\lor" ^ " " ) )
+  | "\\part" -> LITERAL ( TEX_ONLY( "\\partial" ^ " " ) )
+  | "\\plusmn" -> LITERAL ( TEX_ONLY( "\\pm" ^ " " ) )
+  | "\\rarr" -> LITERAL ( TEX_ONLY( "\\rightarrow" ^ " " ) )
+  | "\\Rarr" -> LITERAL ( TEX_ONLY( "\\Rightarrow" ^ " " ) )
+  | "\\rArr" -> LITERAL ( TEX_ONLY( "\\Rightarrow" ^ " " ) )
+  | "\\real" -> LITERAL ( TEX_ONLY( "\\Re" ^ " " ) )
+  | "\\reals" -> LITERAL ( TEX_ONLY( "\\mathbb{R}" ^ " " ) )
+  | "\\Reals" -> LITERAL ( TEX_ONLY( "\\mathbb{R}" ^ " " ) )
+  | "\\restriction" -> LITERAL ( TEX_ONLY( "\\upharpoonright" ^ " " ) )
+  | "\\Rho" -> LITERAL ( TEX_ONLY( "\\mathrm{P}" ^ " " ) )
+  | "\\sdot" -> LITERAL ( TEX_ONLY( "\\cdot" ^ " " ) )
+  | "\\sect" -> LITERAL ( TEX_ONLY( "\\S" ^ " " ) )
+  | "\\spades" -> LITERAL ( TEX_ONLY( "\\spadesuit" ^ " " ) )
+  | "\\sub" -> LITERAL ( TEX_ONLY( "\\subset" ^ " " ) )
+  | "\\sube" -> LITERAL ( TEX_ONLY( "\\subseteq" ^ " " ) )
+  | "\\supe" -> LITERAL ( TEX_ONLY( "\\supseteq" ^ " " ) )
+  | "\\Tau" -> LITERAL ( TEX_ONLY( "\\mathrm{T}" ^ " " ) )
+  | "\\thetasym" -> LITERAL ( TEX_ONLY( "\\vartheta" ^ " " ) )
+  | "\\varcoppa" -> LITERAL ( TEX_ONLY( "\\mbox{\\coppa}" ^ " " ) )
+  | "\\weierp" -> LITERAL ( TEX_ONLY( "\\wp" ^ " " ) )
+  | "\\Zeta" -> LITERAL ( TEX_ONLY( "\\mathrm{Z}" ^ " " ) )
+
+  | "\\rm"
+  | "\\it"
+  | "\\cal"
+  | "\\bf"
+  -> DECLh ( cmd ^ " ", FONTFORCE_RM ) (* see bug 54818 *)
+
+  | "\\overbrace" -> FUN_AR1nb "\\overbrace "
+  | "\\underbrace" -> FUN_AR1nb "\\underbrace "
+  | "\\sideset" -> FUN_AR2nb "\\sideset "
+  | "\\left" -> LEFT
+  | "\\right" -> RIGHT
+
+  | "\\text"
+  | "\\mbox"
+  | "\\vbox"
+  | "\\hbox"
+  -> raise (Failure ("malformatted " ^ cmd))
+
+  | s -> raise (Illegal_tex_function s)
+
+
+
diff --git a/texvccheck/texvccheck.ml b/texvccheck/texvccheck.ml
new file mode 100644
index 0000000..1872fe6
--- /dev/null
+++ b/texvccheck/texvccheck.ml
@@ -0,0 +1,38 @@
+(* vim: set sw=8 ts=8 et: *)
+exception LexerException of string
+
+(* *)
+let lexer_token_safe lexbuf =
+    try Lexer.token lexbuf
+    with Failure s -> raise (LexerException s)
+
+(* *)
+let render tree =
+    let outtex = Util.mapjoin Texutil.render_tex tree in
+    begin
+    print_string ("+" ^ outtex);
+    end
+
+(* TODO: document
+ * Arguments:
+ * 1st : tex input string
+ *
+ * Output one character:
+ *  E : Lexer exception raised
+ *  F : TeX function not recognized
+ *  S : Parsing error
+ *  - : Generic/Default failure code. Might be an invalid argument,
+ *      output file already exist, a problem with an external
+ *      command ...
+ *)
+let _ =
+    try render (
+        Parser.tex_expr lexer_token_safe (
+            Lexing.from_string Sys.argv.(1))
+        )
+    with Parsing.Parse_error -> print_string "S"
+       | LexerException _ -> print_string "E"
+       | Texutil.Illegal_tex_function s -> print_string ("F" ^ s)
+       | Invalid_argument _ -> print_string "-"
+       | Failure _ -> print_string "-"
+       | _ -> print_string "-"
diff --git a/texvccheck/util.ml b/texvccheck/util.ml
new file mode 100644
index 0000000..e380279
--- /dev/null
+++ b/texvccheck/util.ml
@@ -0,0 +1,9 @@
+(* vim: set sw=8 ts=8 et: *)
+
+(* TODO document *)
+let mapjoin f l = (List.fold_left (fun a b -> a ^ (f b)) "" l)
+
+(* TODO document *)
+let mapjoine e f = function
+    [] -> ""
+  | h::t -> (List.fold_left (fun a b -> a ^ e ^ (f b)) (f h) t)
\ No newline at end of file
diff --git a/version b/version
new file mode 100644
index 0000000..4ac9d3c
--- /dev/null
+++ b/version
@@ -0,0 +1,4 @@
+Math: REL1_27
+2016-06-13T23:05:44
+
+efdd7c2

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/mediawiki-math.git



More information about the Pkg-mediawiki-commits mailing list