diff --git a/product/PloneHotfix20121106/README.txt b/product/PloneHotfix20121106/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..50b7337a5af80afdb8c144c23e09506e91b6e06e
--- /dev/null
+++ b/product/PloneHotfix20121106/README.txt
@@ -0,0 +1,51 @@
+Plone hotfix, 2012-11-06
+========================
+
+This hotfix fixes multiple vulnerabilities in Plone,
+including arbitrary code execution and privilege escalation.
+
+This hotfix should be applied to the following versions of Plone:
+
+# Plone 4.3 <= 4.3a2
+* Plone 4.2 <= 4.2.2
+* Any older version of Plone including 2.1, 2.5, 3.0, 3.1, 3.2, 3.3, 4.0, and 4.1
+
+The hotfix is officially supported by the Plone security team on the
+following versions of Plone in accordance with the Plone
+`version support policy`_: 3.3.6, 4.1.6, and 4.2.2. 
+However it has also received some testing on older versions of Plone.
+The fixes included here will be incorporated into subsequent releases of Plone,
+so Plone 4.2.3, 4.3b1 and greater should not require this hotfix.
+
+
+Installation
+============
+
+Installation instructions can be found at
+http://plone.org/products/plone-hotfix/releases/20121106
+
+
+Q&A
+===
+
+Q: How can I confirm that the hotfix is installed correctly and my site is protected?
+  A: On startup, the hotfix will log a number of messages to the Zope event log
+  that look like this::
+
+    2012-11-05 21:15:26 INFO Products.PloneHotfix20121106 Applied registerConfiglet patch
+
+  The exact list of patches attempted depends on the version of Plone.
+  If a patch is attempted but fails, it will be logged as a warning that says
+  "Could not apply". This may indicate that you have a non-standard Plone
+  installation.
+
+Q: How can I report problems installing the patch?
+  A: Contact the Plone security team at security@plone.org, or visit the
+  #plone channel on freenode IRC.
+
+Q: How can I report other potential security vulnerabilities?
+  A: Please email the security team at security@plone.org rather than discussing
+  potential security issues publicly.
+
+
+.. _`version support policy`: http://plone.org/support/version-support-policy
diff --git a/product/PloneHotfix20121106/__init__.py b/product/PloneHotfix20121106/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..841e0a4b29a5770a7ce47e61c5f3b6190a5e4734
--- /dev/null
+++ b/product/PloneHotfix20121106/__init__.py
@@ -0,0 +1,20 @@
+import logging
+logger = logging.getLogger(__name__)
+
+hotfixes = (
+    'setHeader',
+    'allow_module',
+    'get_request_var_or_attr',
+    'safe_html', # XXX: must be merged into our PortalTransforms product
+    'ftp',
+    'atat',
+    )
+
+# Apply the fixes
+for hotfix in hotfixes:
+    try:
+        __import__('%s.%s' % (__name__, hotfix))
+        logger.info('Applied %s patch', hotfix)
+    except Exception:
+        logger.warn('Could not apply %s', hotfix)
+logger.info('Hotfix installed')
diff --git a/product/PloneHotfix20121106/allow_module.py b/product/PloneHotfix20121106/allow_module.py
new file mode 100644
index 0000000000000000000000000000000000000000..c41b90919c28bbc575dfdb5bf86e39cef67a129b
--- /dev/null
+++ b/product/PloneHotfix20121106/allow_module.py
@@ -0,0 +1,17 @@
+import AccessControl.SecurityInfo
+from AccessControl.SecurityInfo import ModuleSecurityInfo
+
+
+def allow_module(module_name):
+    """Allow a module and all its contents to be used from a
+    restricted Script. The argument module_name may be a simple
+    or dotted module or package name. Note that if a package
+    path is given, all modules in the path will be available."""
+    ModuleSecurityInfo(module_name).setDefaultAccess(1)
+    ModuleSecurityInfo(module_name).declarePrivate('allow_module')
+    dot = module_name.find('.')
+    while dot > 0:
+        ModuleSecurityInfo(module_name[:dot]).setDefaultAccess(1)
+        ModuleSecurityInfo(module_name).declarePrivate('allow_module')
+        dot = module_name.find('.', dot + 1)
+AccessControl.allow_module = AccessControl.SecurityInfo.allow_module = allow_module
diff --git a/product/PloneHotfix20121106/atat.py b/product/PloneHotfix20121106/atat.py
new file mode 100644
index 0000000000000000000000000000000000000000..57900490c3935dd8b7af3dd1b14560023f35f706
--- /dev/null
+++ b/product/PloneHotfix20121106/atat.py
@@ -0,0 +1,15 @@
+try:
+    from zope.traversing import namespace
+except ImportError:
+    from zope.app.traversing import namespace
+try:
+    from zope.traversing.interfaces import TraversalError
+except ImportError:
+    from zope.exceptions import NotFoundError as TraversalError
+
+old_traverse = namespace.view.traverse
+def traverse(self, name, ignored):
+	if not name:
+		raise TraversalError(self.context, name)
+	return old_traverse(self, name, ignored)
+namespace.view.traverse = traverse
diff --git a/product/PloneHotfix20121106/ftp.py b/product/PloneHotfix20121106/ftp.py
new file mode 100644
index 0000000000000000000000000000000000000000..28f45c6516f57d4c9ef1aedecfc648c8358ea4bc
--- /dev/null
+++ b/product/PloneHotfix20121106/ftp.py
@@ -0,0 +1,9 @@
+from AccessControl import getSecurityManager
+from zExceptions import Unauthorized
+from OFS.ObjectManager import ObjectManager
+
+old_manage_FTPlist = ObjectManager.manage_FTPlist
+def manage_FTPlist(self, REQUEST):
+	if not getSecurityManager().checkPermission('Access contents information', self):
+		raise Unauthorized('Not allowed to access contents.')
+ObjectManager.manage_FTPlist = manage_FTPlist
\ No newline at end of file
diff --git a/product/PloneHotfix20121106/get_request_var_or_attr.py b/product/PloneHotfix20121106/get_request_var_or_attr.py
new file mode 100644
index 0000000000000000000000000000000000000000..10c890e4acea1636c108277d3ef70ddad5d19dca
--- /dev/null
+++ b/product/PloneHotfix20121106/get_request_var_or_attr.py
@@ -0,0 +1,2 @@
+from App import Undo
+Undo.UndoSupport.get_request_var_or_attr__roles__ = ()
diff --git a/product/PloneHotfix20121106/safe_html.py b/product/PloneHotfix20121106/safe_html.py
new file mode 100644
index 0000000000000000000000000000000000000000..ee8ca6e7fe8ae36c51e7722aac37eaf63e3c5181
--- /dev/null
+++ b/product/PloneHotfix20121106/safe_html.py
@@ -0,0 +1,2384 @@
+import re
+from sgmllib import SGMLParser, SGMLParseError
+from Products.CMFDefault.utils import IllegalHTML
+from Products.PortalTransforms.transforms import safe_html
+
+CHARREF_RE = re.compile(r"&(?:amp;)?#([xX]?[0-9a-fA-F]+);?")
+ENTITYREF_RE = re.compile(r"&(\w{1,32});?")
+
+CHR_RE = re.compile(r'\\(\d+)')
+def unescape_chr(matchobj):
+       return chr(int(matchobj.group(1), 16))
+
+
+def decode_charref(s):
+    s = s.group(1)
+    try:
+        if s[0] in ['x', 'X']:
+            c = int(s[1:], 16)
+        else:
+            c = int(s)
+        return unichr(c)
+    except ValueError:
+        return '&#'+s+';'
+
+
+def decode_entityref(s):
+    s = s.group(1)
+    try:
+        return html5entities[s + ';']
+    except KeyError:
+        try:
+            return html5entities[s]
+        except KeyError:
+            # strip unrecognized entities
+            return ''
+
+
+def decode_htmlentities(s):
+	# Decode HTML5 entities (numeric or named).
+    s = CHR_RE.sub(unescape_chr, s)
+    if '&' not in s:
+        return s
+    s = CHARREF_RE.sub(decode_charref, s)
+    return ENTITYREF_RE.sub(decode_entityref, s)
+safe_html.decode_htmlentities = decode_htmlentities
+
+
+def parse_declaration(self, i):
+    """Fix handling of CDATA sections. Code borrowed from BeautifulSoup.
+    """
+    j = None
+    if self.rawdata[i:i+9] == '<![CDATA[':
+        k = self.rawdata.find(']]>', i)
+        if k == -1:
+            k = len(self.rawdata)
+        j = k+3
+    else:
+        try:
+            j = SGMLParser.parse_declaration(self, i)
+        except SGMLParseError:
+            j = len(self.rawdata)
+    return j  
+safe_html.StrippingParser.parse_declaration = parse_declaration
+
+if getattr(safe_html, 'safeToInt', None) is None:
+    def safeToInt(value):
+        """Convert value to integer or just return 0 if we can't"""
+        try:
+            return int(value)
+        except (TypeError, ValueError):
+            return 0
+    safe_html.safeToInt = safeToInt
+
+if getattr(safe_html, 'hasScript', None) is None:
+    def unknown_starttag(self, tag, attrs):
+        """ Delete all tags except for legal ones.
+        """
+        if self.suppress:
+            return
+
+        if tag in self.valid:
+            self.result.append('<' + tag)
+
+            remove_script = getattr(self, 'remove_javascript', True)
+
+            for k, v in attrs:
+                if remove_script and k.strip().lower().startswith('on'):
+                    if not self.raise_error:
+                        continue
+                    else:
+                        raise IllegalHTML('Script event "%s" not allowed.' % k)
+                elif remove_script and hasScript(v):
+                    if not self.raise_error:
+                        continue
+                    else:
+                        raise IllegalHTML('Script URI "%s" not allowed.' % v)
+                else:
+                    self.result.append(' %s="%s"' % (k, v))
+
+            #UNUSED endTag = '</%s>' % tag
+            if safeToInt(self.valid.get(tag)):
+                self.result.append('>')
+            else:
+                self.result.append(' />')
+        elif tag in self.nasty:
+            self.suppress = True
+            if self.raise_error:
+                raise IllegalHTML('Dynamic tag "%s" not allowed.' % tag)
+        else:
+            # omit tag
+            pass
+
+    safe_html.StrippingParser.unknown_starttag = unknown_starttag
+
+
+if getattr(safe_html, 'CSS_COMMENT', None) is None:
+
+    CSS_COMMENT = re.compile(r'/\*.*\*/')
+
+    def hasScript(s):
+        s = decode_htmlentities(s)
+        s = s.replace('\x00', '')
+        s = CSS_COMMENT.sub('', s)
+        s = ''.join(s.split()).lower()
+        for t in ('script:', 'expression:', 'expression(', 'data:'):
+            if t in s:
+                return True
+        return False
+    safe_html.hasScript = hasScript
+    safe_html.CSS_COMMENT = CSS_COMMENT
+
+
+# maps the HTML5 named character references to the equivalent Unicode character(s)
+# (taken from http://hg.python.org/cpython/rev/2b54e25d6ecb)
+html5entities = {
+    'Aacute;': u'\xc1',
+    'Aacute': u'\xc1',
+    'aacute;': u'\xe1',
+    'aacute': u'\xe1',
+    'Abreve;': u'\u0102',
+    'abreve;': u'\u0103',
+    'ac;': u'\u223e',
+    'acd;': u'\u223f',
+    'acE;': u'\u223e\u0333',
+    'Acirc;': u'\xc2',
+    'Acirc': u'\xc2',
+    'acirc;': u'\xe2',
+    'acirc': u'\xe2',
+    'acute;': u'\xb4',
+    'acute': u'\xb4',
+    'Acy;': u'\u0410',
+    'acy;': u'\u0430',
+    'AElig;': u'\xc6',
+    'AElig': u'\xc6',
+    'aelig;': u'\xe6',
+    'aelig': u'\xe6',
+    'af;': u'\u2061',
+    'Afr;': u'\U0001d504',
+    'afr;': u'\U0001d51e',
+    'Agrave;': u'\xc0',
+    'Agrave': u'\xc0',
+    'agrave;': u'\xe0',
+    'agrave': u'\xe0',
+    'alefsym;': u'\u2135',
+    'aleph;': u'\u2135',
+    'Alpha;': u'\u0391',
+    'alpha;': u'\u03b1',
+    'Amacr;': u'\u0100',
+    'amacr;': u'\u0101',
+    'amalg;': u'\u2a3f',
+    'amp;': '&',
+    'amp': '&',
+    'And;': u'\u2a53',
+    'and;': u'\u2227',
+    'andand;': u'\u2a55',
+    'andd;': u'\u2a5c',
+    'andslope;': u'\u2a58',
+    'andv;': u'\u2a5a',
+    'ang;': u'\u2220',
+    'ange;': u'\u29a4',
+    'angle;': u'\u2220',
+    'angmsd;': u'\u2221',
+    'angmsdaa;': u'\u29a8',
+    'angmsdab;': u'\u29a9',
+    'angmsdac;': u'\u29aa',
+    'angmsdad;': u'\u29ab',
+    'angmsdae;': u'\u29ac',
+    'angmsdaf;': u'\u29ad',
+    'angmsdag;': u'\u29ae',
+    'angmsdah;': u'\u29af',
+    'angrt;': u'\u221f',
+    'angrtvb;': u'\u22be',
+    'angrtvbd;': u'\u299d',
+    'angsph;': u'\u2222',
+    'angst;': u'\xc5',
+    'angzarr;': u'\u237c',
+    'Aogon;': u'\u0104',
+    'aogon;': u'\u0105',
+    'Aopf;': u'\U0001d538',
+    'aopf;': u'\U0001d552',
+    'ap;': u'\u2248',
+    'apacir;': u'\u2a6f',
+    'apE;': u'\u2a70',
+    'ape;': u'\u224a',
+    'apid;': u'\u224b',
+    'apos;': "'",
+    'ApplyFunction;': u'\u2061',
+    'approx;': u'\u2248',
+    'approxeq;': u'\u224a',
+    'Aring;': u'\xc5',
+    'Aring': u'\xc5',
+    'aring;': u'\xe5',
+    'aring': u'\xe5',
+    'Ascr;': u'\U0001d49c',
+    'ascr;': u'\U0001d4b6',
+    'Assign;': u'\u2254',
+    'ast;': '*',
+    'asymp;': u'\u2248',
+    'asympeq;': u'\u224d',
+    'Atilde;': u'\xc3',
+    'Atilde': u'\xc3',
+    'atilde;': u'\xe3',
+    'atilde': u'\xe3',
+    'Auml;': u'\xc4',
+    'Auml': u'\xc4',
+    'auml;': u'\xe4',
+    'auml': u'\xe4',
+    'awconint;': u'\u2233',
+    'awint;': u'\u2a11',
+    'backcong;': u'\u224c',
+    'backepsilon;': u'\u03f6',
+    'backprime;': u'\u2035',
+    'backsim;': u'\u223d',
+    'backsimeq;': u'\u22cd',
+    'Backslash;': u'\u2216',
+    'Barv;': u'\u2ae7',
+    'barvee;': u'\u22bd',
+    'Barwed;': u'\u2306',
+    'barwed;': u'\u2305',
+    'barwedge;': u'\u2305',
+    'bbrk;': u'\u23b5',
+    'bbrktbrk;': u'\u23b6',
+    'bcong;': u'\u224c',
+    'Bcy;': u'\u0411',
+    'bcy;': u'\u0431',
+    'bdquo;': u'\u201e',
+    'becaus;': u'\u2235',
+    'Because;': u'\u2235',
+    'because;': u'\u2235',
+    'bemptyv;': u'\u29b0',
+    'bepsi;': u'\u03f6',
+    'bernou;': u'\u212c',
+    'Bernoullis;': u'\u212c',
+    'Beta;': u'\u0392',
+    'beta;': u'\u03b2',
+    'beth;': u'\u2136',
+    'between;': u'\u226c',
+    'Bfr;': u'\U0001d505',
+    'bfr;': u'\U0001d51f',
+    'bigcap;': u'\u22c2',
+    'bigcirc;': u'\u25ef',
+    'bigcup;': u'\u22c3',
+    'bigodot;': u'\u2a00',
+    'bigoplus;': u'\u2a01',
+    'bigotimes;': u'\u2a02',
+    'bigsqcup;': u'\u2a06',
+    'bigstar;': u'\u2605',
+    'bigtriangledown;': u'\u25bd',
+    'bigtriangleup;': u'\u25b3',
+    'biguplus;': u'\u2a04',
+    'bigvee;': u'\u22c1',
+    'bigwedge;': u'\u22c0',
+    'bkarow;': u'\u290d',
+    'blacklozenge;': u'\u29eb',
+    'blacksquare;': u'\u25aa',
+    'blacktriangle;': u'\u25b4',
+    'blacktriangledown;': u'\u25be',
+    'blacktriangleleft;': u'\u25c2',
+    'blacktriangleright;': u'\u25b8',
+    'blank;': u'\u2423',
+    'blk12;': u'\u2592',
+    'blk14;': u'\u2591',
+    'blk34;': u'\u2593',
+    'block;': u'\u2588',
+    'bne;': '=\u20e5',
+    'bnequiv;': u'\u2261\u20e5',
+    'bNot;': u'\u2aed',
+    'bnot;': u'\u2310',
+    'Bopf;': u'\U0001d539',
+    'bopf;': u'\U0001d553',
+    'bot;': u'\u22a5',
+    'bottom;': u'\u22a5',
+    'bowtie;': u'\u22c8',
+    'boxbox;': u'\u29c9',
+    'boxDL;': u'\u2557',
+    'boxDl;': u'\u2556',
+    'boxdL;': u'\u2555',
+    'boxdl;': u'\u2510',
+    'boxDR;': u'\u2554',
+    'boxDr;': u'\u2553',
+    'boxdR;': u'\u2552',
+    'boxdr;': u'\u250c',
+    'boxH;': u'\u2550',
+    'boxh;': u'\u2500',
+    'boxHD;': u'\u2566',
+    'boxHd;': u'\u2564',
+    'boxhD;': u'\u2565',
+    'boxhd;': u'\u252c',
+    'boxHU;': u'\u2569',
+    'boxHu;': u'\u2567',
+    'boxhU;': u'\u2568',
+    'boxhu;': u'\u2534',
+    'boxminus;': u'\u229f',
+    'boxplus;': u'\u229e',
+    'boxtimes;': u'\u22a0',
+    'boxUL;': u'\u255d',
+    'boxUl;': u'\u255c',
+    'boxuL;': u'\u255b',
+    'boxul;': u'\u2518',
+    'boxUR;': u'\u255a',
+    'boxUr;': u'\u2559',
+    'boxuR;': u'\u2558',
+    'boxur;': u'\u2514',
+    'boxV;': u'\u2551',
+    'boxv;': u'\u2502',
+    'boxVH;': u'\u256c',
+    'boxVh;': u'\u256b',
+    'boxvH;': u'\u256a',
+    'boxvh;': u'\u253c',
+    'boxVL;': u'\u2563',
+    'boxVl;': u'\u2562',
+    'boxvL;': u'\u2561',
+    'boxvl;': u'\u2524',
+    'boxVR;': u'\u2560',
+    'boxVr;': u'\u255f',
+    'boxvR;': u'\u255e',
+    'boxvr;': u'\u251c',
+    'bprime;': u'\u2035',
+    'Breve;': u'\u02d8',
+    'breve;': u'\u02d8',
+    'brvbar;': u'\xa6',
+    'brvbar': u'\xa6',
+    'Bscr;': u'\u212c',
+    'bscr;': u'\U0001d4b7',
+    'bsemi;': u'\u204f',
+    'bsim;': u'\u223d',
+    'bsime;': u'\u22cd',
+    'bsol;': u'\\',
+    'bsolb;': u'\u29c5',
+    'bsolhsub;': u'\u27c8',
+    'bull;': u'\u2022',
+    'bullet;': u'\u2022',
+    'bump;': u'\u224e',
+    'bumpE;': u'\u2aae',
+    'bumpe;': u'\u224f',
+    'Bumpeq;': u'\u224e',
+    'bumpeq;': u'\u224f',
+    'Cacute;': u'\u0106',
+    'cacute;': u'\u0107',
+    'Cap;': u'\u22d2',
+    'cap;': u'\u2229',
+    'capand;': u'\u2a44',
+    'capbrcup;': u'\u2a49',
+    'capcap;': u'\u2a4b',
+    'capcup;': u'\u2a47',
+    'capdot;': u'\u2a40',
+    'CapitalDifferentialD;': u'\u2145',
+    'caps;': u'\u2229\ufe00',
+    'caret;': u'\u2041',
+    'caron;': u'\u02c7',
+    'Cayleys;': u'\u212d',
+    'ccaps;': u'\u2a4d',
+    'Ccaron;': u'\u010c',
+    'ccaron;': u'\u010d',
+    'Ccedil;': u'\xc7',
+    'Ccedil': u'\xc7',
+    'ccedil;': u'\xe7',
+    'ccedil': u'\xe7',
+    'Ccirc;': u'\u0108',
+    'ccirc;': u'\u0109',
+    'Cconint;': u'\u2230',
+    'ccups;': u'\u2a4c',
+    'ccupssm;': u'\u2a50',
+    'Cdot;': u'\u010a',
+    'cdot;': u'\u010b',
+    'cedil;': u'\xb8',
+    'cedil': u'\xb8',
+    'Cedilla;': u'\xb8',
+    'cemptyv;': u'\u29b2',
+    'cent;': u'\xa2',
+    'cent': u'\xa2',
+    'CenterDot;': u'\xb7',
+    'centerdot;': u'\xb7',
+    'Cfr;': u'\u212d',
+    'cfr;': u'\U0001d520',
+    'CHcy;': u'\u0427',
+    'chcy;': u'\u0447',
+    'check;': u'\u2713',
+    'checkmark;': u'\u2713',
+    'Chi;': u'\u03a7',
+    'chi;': u'\u03c7',
+    'cir;': u'\u25cb',
+    'circ;': u'\u02c6',
+    'circeq;': u'\u2257',
+    'circlearrowleft;': u'\u21ba',
+    'circlearrowright;': u'\u21bb',
+    'circledast;': u'\u229b',
+    'circledcirc;': u'\u229a',
+    'circleddash;': u'\u229d',
+    'CircleDot;': u'\u2299',
+    'circledR;': u'\xae',
+    'circledS;': u'\u24c8',
+    'CircleMinus;': u'\u2296',
+    'CirclePlus;': u'\u2295',
+    'CircleTimes;': u'\u2297',
+    'cirE;': u'\u29c3',
+    'cire;': u'\u2257',
+    'cirfnint;': u'\u2a10',
+    'cirmid;': u'\u2aef',
+    'cirscir;': u'\u29c2',
+    'ClockwiseContourIntegral;': u'\u2232',
+    'CloseCurlyDoubleQuote;': u'\u201d',
+    'CloseCurlyQuote;': u'\u2019',
+    'clubs;': u'\u2663',
+    'clubsuit;': u'\u2663',
+    'Colon;': u'\u2237',
+    'colon;': ':',
+    'Colone;': u'\u2a74',
+    'colone;': u'\u2254',
+    'coloneq;': u'\u2254',
+    'comma;': ',',
+    'commat;': '@',
+    'comp;': u'\u2201',
+    'compfn;': u'\u2218',
+    'complement;': u'\u2201',
+    'complexes;': u'\u2102',
+    'cong;': u'\u2245',
+    'congdot;': u'\u2a6d',
+    'Congruent;': u'\u2261',
+    'Conint;': u'\u222f',
+    'conint;': u'\u222e',
+    'ContourIntegral;': u'\u222e',
+    'Copf;': u'\u2102',
+    'copf;': u'\U0001d554',
+    'coprod;': u'\u2210',
+    'Coproduct;': u'\u2210',
+    'COPY;': u'\xa9',
+    'COPY': u'\xa9',
+    'copy;': u'\xa9',
+    'copy': u'\xa9',
+    'copysr;': u'\u2117',
+    'CounterClockwiseContourIntegral;': u'\u2233',
+    'crarr;': u'\u21b5',
+    'Cross;': u'\u2a2f',
+    'cross;': u'\u2717',
+    'Cscr;': u'\U0001d49e',
+    'cscr;': u'\U0001d4b8',
+    'csub;': u'\u2acf',
+    'csube;': u'\u2ad1',
+    'csup;': u'\u2ad0',
+    'csupe;': u'\u2ad2',
+    'ctdot;': u'\u22ef',
+    'cudarrl;': u'\u2938',
+    'cudarrr;': u'\u2935',
+    'cuepr;': u'\u22de',
+    'cuesc;': u'\u22df',
+    'cularr;': u'\u21b6',
+    'cularrp;': u'\u293d',
+    'Cup;': u'\u22d3',
+    'cup;': u'\u222a',
+    'cupbrcap;': u'\u2a48',
+    'CupCap;': u'\u224d',
+    'cupcap;': u'\u2a46',
+    'cupcup;': u'\u2a4a',
+    'cupdot;': u'\u228d',
+    'cupor;': u'\u2a45',
+    'cups;': u'\u222a\ufe00',
+    'curarr;': u'\u21b7',
+    'curarrm;': u'\u293c',
+    'curlyeqprec;': u'\u22de',
+    'curlyeqsucc;': u'\u22df',
+    'curlyvee;': u'\u22ce',
+    'curlywedge;': u'\u22cf',
+    'curren;': u'\xa4',
+    'curren': u'\xa4',
+    'curvearrowleft;': u'\u21b6',
+    'curvearrowright;': u'\u21b7',
+    'cuvee;': u'\u22ce',
+    'cuwed;': u'\u22cf',
+    'cwconint;': u'\u2232',
+    'cwint;': u'\u2231',
+    'cylcty;': u'\u232d',
+    'Dagger;': u'\u2021',
+    'dagger;': u'\u2020',
+    'daleth;': u'\u2138',
+    'Darr;': u'\u21a1',
+    'dArr;': u'\u21d3',
+    'darr;': u'\u2193',
+    'dash;': u'\u2010',
+    'Dashv;': u'\u2ae4',
+    'dashv;': u'\u22a3',
+    'dbkarow;': u'\u290f',
+    'dblac;': u'\u02dd',
+    'Dcaron;': u'\u010e',
+    'dcaron;': u'\u010f',
+    'Dcy;': u'\u0414',
+    'dcy;': u'\u0434',
+    'DD;': u'\u2145',
+    'dd;': u'\u2146',
+    'ddagger;': u'\u2021',
+    'ddarr;': u'\u21ca',
+    'DDotrahd;': u'\u2911',
+    'ddotseq;': u'\u2a77',
+    'deg;': u'\xb0',
+    'deg': u'\xb0',
+    'Del;': u'\u2207',
+    'Delta;': u'\u0394',
+    'delta;': u'\u03b4',
+    'demptyv;': u'\u29b1',
+    'dfisht;': u'\u297f',
+    'Dfr;': u'\U0001d507',
+    'dfr;': u'\U0001d521',
+    'dHar;': u'\u2965',
+    'dharl;': u'\u21c3',
+    'dharr;': u'\u21c2',
+    'DiacriticalAcute;': u'\xb4',
+    'DiacriticalDot;': u'\u02d9',
+    'DiacriticalDoubleAcute;': u'\u02dd',
+    'DiacriticalGrave;': '`',
+    'DiacriticalTilde;': u'\u02dc',
+    'diam;': u'\u22c4',
+    'Diamond;': u'\u22c4',
+    'diamond;': u'\u22c4',
+    'diamondsuit;': u'\u2666',
+    'diams;': u'\u2666',
+    'die;': u'\xa8',
+    'DifferentialD;': u'\u2146',
+    'digamma;': u'\u03dd',
+    'disin;': u'\u22f2',
+    'div;': u'\xf7',
+    'divide;': u'\xf7',
+    'divide': u'\xf7',
+    'divideontimes;': u'\u22c7',
+    'divonx;': u'\u22c7',
+    'DJcy;': u'\u0402',
+    'djcy;': u'\u0452',
+    'dlcorn;': u'\u231e',
+    'dlcrop;': u'\u230d',
+    'dollar;': '$',
+    'Dopf;': u'\U0001d53b',
+    'dopf;': u'\U0001d555',
+    'Dot;': u'\xa8',
+    'dot;': u'\u02d9',
+    'DotDot;': u'\u25cc\u20dc',
+    'doteq;': u'\u2250',
+    'doteqdot;': u'\u2251',
+    'DotEqual;': u'\u2250',
+    'dotminus;': u'\u2238',
+    'dotplus;': u'\u2214',
+    'dotsquare;': u'\u22a1',
+    'doublebarwedge;': u'\u2306',
+    'DoubleContourIntegral;': u'\u222f',
+    'DoubleDot;': u'\xa8',
+    'DoubleDownArrow;': u'\u21d3',
+    'DoubleLeftArrow;': u'\u21d0',
+    'DoubleLeftRightArrow;': u'\u21d4',
+    'DoubleLeftTee;': u'\u2ae4',
+    'DoubleLongLeftArrow;': u'\u27f8',
+    'DoubleLongLeftRightArrow;': u'\u27fa',
+    'DoubleLongRightArrow;': u'\u27f9',
+    'DoubleRightArrow;': u'\u21d2',
+    'DoubleRightTee;': u'\u22a8',
+    'DoubleUpArrow;': u'\u21d1',
+    'DoubleUpDownArrow;': u'\u21d5',
+    'DoubleVerticalBar;': u'\u2225',
+    'DownArrow;': u'\u2193',
+    'Downarrow;': u'\u21d3',
+    'downarrow;': u'\u2193',
+    'DownArrowBar;': u'\u2913',
+    'DownArrowUpArrow;': u'\u21f5',
+    'DownBreve;': u'\u25cc\u0311',
+    'downdownarrows;': u'\u21ca',
+    'downharpoonleft;': u'\u21c3',
+    'downharpoonright;': u'\u21c2',
+    'DownLeftRightVector;': u'\u2950',
+    'DownLeftTeeVector;': u'\u295e',
+    'DownLeftVector;': u'\u21bd',
+    'DownLeftVectorBar;': u'\u2956',
+    'DownRightTeeVector;': u'\u295f',
+    'DownRightVector;': u'\u21c1',
+    'DownRightVectorBar;': u'\u2957',
+    'DownTee;': u'\u22a4',
+    'DownTeeArrow;': u'\u21a7',
+    'drbkarow;': u'\u2910',
+    'drcorn;': u'\u231f',
+    'drcrop;': u'\u230c',
+    'Dscr;': u'\U0001d49f',
+    'dscr;': u'\U0001d4b9',
+    'DScy;': u'\u0405',
+    'dscy;': u'\u0455',
+    'dsol;': u'\u29f6',
+    'Dstrok;': u'\u0110',
+    'dstrok;': u'\u0111',
+    'dtdot;': u'\u22f1',
+    'dtri;': u'\u25bf',
+    'dtrif;': u'\u25be',
+    'duarr;': u'\u21f5',
+    'duhar;': u'\u296f',
+    'dwangle;': u'\u29a6',
+    'DZcy;': u'\u040f',
+    'dzcy;': u'\u045f',
+    'dzigrarr;': u'\u27ff',
+    'Eacute;': u'\xc9',
+    'Eacute': u'\xc9',
+    'eacute;': u'\xe9',
+    'eacute': u'\xe9',
+    'easter;': u'\u2a6e',
+    'Ecaron;': u'\u011a',
+    'ecaron;': u'\u011b',
+    'ecir;': u'\u2256',
+    'Ecirc;': u'\xca',
+    'Ecirc': u'\xca',
+    'ecirc;': u'\xea',
+    'ecirc': u'\xea',
+    'ecolon;': u'\u2255',
+    'Ecy;': u'\u042d',
+    'ecy;': u'\u044d',
+    'eDDot;': u'\u2a77',
+    'Edot;': u'\u0116',
+    'eDot;': u'\u2251',
+    'edot;': u'\u0117',
+    'ee;': u'\u2147',
+    'efDot;': u'\u2252',
+    'Efr;': u'\U0001d508',
+    'efr;': u'\U0001d522',
+    'eg;': u'\u2a9a',
+    'Egrave;': u'\xc8',
+    'Egrave': u'\xc8',
+    'egrave;': u'\xe8',
+    'egrave': u'\xe8',
+    'egs;': u'\u2a96',
+    'egsdot;': u'\u2a98',
+    'el;': u'\u2a99',
+    'Element;': u'\u2208',
+    'elinters;': u'\u23e7',
+    'ell;': u'\u2113',
+    'els;': u'\u2a95',
+    'elsdot;': u'\u2a97',
+    'Emacr;': u'\u0112',
+    'emacr;': u'\u0113',
+    'empty;': u'\u2205',
+    'emptyset;': u'\u2205',
+    'EmptySmallSquare;': u'\u25fb',
+    'emptyv;': u'\u2205',
+    'EmptyVerySmallSquare;': u'\u25ab',
+    'emsp;': u'\u2003',
+    'emsp13;': u'\u2004',
+    'emsp14;': u'\u2005',
+    'ENG;': u'\u014a',
+    'eng;': u'\u014b',
+    'ensp;': u'\u2002',
+    'Eogon;': u'\u0118',
+    'eogon;': u'\u0119',
+    'Eopf;': u'\U0001d53c',
+    'eopf;': u'\U0001d556',
+    'epar;': u'\u22d5',
+    'eparsl;': u'\u29e3',
+    'eplus;': u'\u2a71',
+    'epsi;': u'\u03b5',
+    'Epsilon;': u'\u0395',
+    'epsilon;': u'\u03b5',
+    'epsiv;': u'\u03f5',
+    'eqcirc;': u'\u2256',
+    'eqcolon;': u'\u2255',
+    'eqsim;': u'\u2242',
+    'eqslantgtr;': u'\u2a96',
+    'eqslantless;': u'\u2a95',
+    'Equal;': u'\u2a75',
+    'equals;': '=',
+    'EqualTilde;': u'\u2242',
+    'equest;': u'\u225f',
+    'Equilibrium;': u'\u21cc',
+    'equiv;': u'\u2261',
+    'equivDD;': u'\u2a78',
+    'eqvparsl;': u'\u29e5',
+    'erarr;': u'\u2971',
+    'erDot;': u'\u2253',
+    'Escr;': u'\u2130',
+    'escr;': u'\u212f',
+    'esdot;': u'\u2250',
+    'Esim;': u'\u2a73',
+    'esim;': u'\u2242',
+    'Eta;': u'\u0397',
+    'eta;': u'\u03b7',
+    'ETH;': u'\xd0',
+    'ETH': u'\xd0',
+    'eth;': u'\xf0',
+    'eth': u'\xf0',
+    'Euml;': u'\xcb',
+    'Euml': u'\xcb',
+    'euml;': u'\xeb',
+    'euml': u'\xeb',
+    'euro;': u'\u20ac',
+    'excl;': '!',
+    'exist;': u'\u2203',
+    'Exists;': u'\u2203',
+    'expectation;': u'\u2130',
+    'ExponentialE;': u'\u2147',
+    'exponentiale;': u'\u2147',
+    'fallingdotseq;': u'\u2252',
+    'Fcy;': u'\u0424',
+    'fcy;': u'\u0444',
+    'female;': u'\u2640',
+    'ffilig;': u'\ufb03',
+    'fflig;': u'\ufb00',
+    'ffllig;': u'\ufb04',
+    'Ffr;': u'\U0001d509',
+    'ffr;': u'\U0001d523',
+    'filig;': u'\ufb01',
+    'FilledSmallSquare;': u'\u25fc',
+    'FilledVerySmallSquare;': u'\u25aa',
+    'fjlig;': 'fj',
+    'flat;': u'\u266d',
+    'fllig;': u'\ufb02',
+    'fltns;': u'\u25b1',
+    'fnof;': u'\u0192',
+    'Fopf;': u'\U0001d53d',
+    'fopf;': u'\U0001d557',
+    'ForAll;': u'\u2200',
+    'forall;': u'\u2200',
+    'fork;': u'\u22d4',
+    'forkv;': u'\u2ad9',
+    'Fouriertrf;': u'\u2131',
+    'fpartint;': u'\u2a0d',
+    'frac12;': u'\xbd',
+    'frac12': u'\xbd',
+    'frac13;': u'\u2153',
+    'frac14;': u'\xbc',
+    'frac14': u'\xbc',
+    'frac15;': u'\u2155',
+    'frac16;': u'\u2159',
+    'frac18;': u'\u215b',
+    'frac23;': u'\u2154',
+    'frac25;': u'\u2156',
+    'frac34;': u'\xbe',
+    'frac34': u'\xbe',
+    'frac35;': u'\u2157',
+    'frac38;': u'\u215c',
+    'frac45;': u'\u2158',
+    'frac56;': u'\u215a',
+    'frac58;': u'\u215d',
+    'frac78;': u'\u215e',
+    'frasl;': u'\u2044',
+    'frown;': u'\u2322',
+    'Fscr;': u'\u2131',
+    'fscr;': u'\U0001d4bb',
+    'gacute;': u'\u01f5',
+    'Gamma;': u'\u0393',
+    'gamma;': u'\u03b3',
+    'Gammad;': u'\u03dc',
+    'gammad;': u'\u03dd',
+    'gap;': u'\u2a86',
+    'Gbreve;': u'\u011e',
+    'gbreve;': u'\u011f',
+    'Gcedil;': u'\u0122',
+    'Gcirc;': u'\u011c',
+    'gcirc;': u'\u011d',
+    'Gcy;': u'\u0413',
+    'gcy;': u'\u0433',
+    'Gdot;': u'\u0120',
+    'gdot;': u'\u0121',
+    'gE;': u'\u2267',
+    'ge;': u'\u2265',
+    'gEl;': u'\u2a8c',
+    'gel;': u'\u22db',
+    'geq;': u'\u2265',
+    'geqq;': u'\u2267',
+    'geqslant;': u'\u2a7e',
+    'ges;': u'\u2a7e',
+    'gescc;': u'\u2aa9',
+    'gesdot;': u'\u2a80',
+    'gesdoto;': u'\u2a82',
+    'gesdotol;': u'\u2a84',
+    'gesl;': u'\u22db\ufe00',
+    'gesles;': u'\u2a94',
+    'Gfr;': u'\U0001d50a',
+    'gfr;': u'\U0001d524',
+    'Gg;': u'\u22d9',
+    'gg;': u'\u226b',
+    'ggg;': u'\u22d9',
+    'gimel;': u'\u2137',
+    'GJcy;': u'\u0403',
+    'gjcy;': u'\u0453',
+    'gl;': u'\u2277',
+    'gla;': u'\u2aa5',
+    'glE;': u'\u2a92',
+    'glj;': u'\u2aa4',
+    'gnap;': u'\u2a8a',
+    'gnapprox;': u'\u2a8a',
+    'gnE;': u'\u2269',
+    'gne;': u'\u2a88',
+    'gneq;': u'\u2a88',
+    'gneqq;': u'\u2269',
+    'gnsim;': u'\u22e7',
+    'Gopf;': u'\U0001d53e',
+    'gopf;': u'\U0001d558',
+    'grave;': '`',
+    'GreaterEqual;': u'\u2265',
+    'GreaterEqualLess;': u'\u22db',
+    'GreaterFullEqual;': u'\u2267',
+    'GreaterGreater;': u'\u2aa2',
+    'GreaterLess;': u'\u2277',
+    'GreaterSlantEqual;': u'\u2a7e',
+    'GreaterTilde;': u'\u2273',
+    'Gscr;': u'\U0001d4a2',
+    'gscr;': u'\u210a',
+    'gsim;': u'\u2273',
+    'gsime;': u'\u2a8e',
+    'gsiml;': u'\u2a90',
+    'GT;': '>',
+    'GT': '>',
+    'Gt;': u'\u226b',
+    'gt;': '>',
+    'gt': '>',
+    'gtcc;': u'\u2aa7',
+    'gtcir;': u'\u2a7a',
+    'gtdot;': u'\u22d7',
+    'gtlPar;': u'\u2995',
+    'gtquest;': u'\u2a7c',
+    'gtrapprox;': u'\u2a86',
+    'gtrarr;': u'\u2978',
+    'gtrdot;': u'\u22d7',
+    'gtreqless;': u'\u22db',
+    'gtreqqless;': u'\u2a8c',
+    'gtrless;': u'\u2277',
+    'gtrsim;': u'\u2273',
+    'gvertneqq;': u'\u2269\ufe00',
+    'gvnE;': u'\u2269\ufe00',
+    'Hacek;': u'\u02c7',
+    'hairsp;': u'\u200a',
+    'half;': u'\xbd',
+    'hamilt;': u'\u210b',
+    'HARDcy;': u'\u042a',
+    'hardcy;': u'\u044a',
+    'hArr;': u'\u21d4',
+    'harr;': u'\u2194',
+    'harrcir;': u'\u2948',
+    'harrw;': u'\u21ad',
+    'Hat;': '^',
+    'hbar;': u'\u210f',
+    'Hcirc;': u'\u0124',
+    'hcirc;': u'\u0125',
+    'hearts;': u'\u2665',
+    'heartsuit;': u'\u2665',
+    'hellip;': u'\u2026',
+    'hercon;': u'\u22b9',
+    'Hfr;': u'\u210c',
+    'hfr;': u'\U0001d525',
+    'HilbertSpace;': u'\u210b',
+    'hksearow;': u'\u2925',
+    'hkswarow;': u'\u2926',
+    'hoarr;': u'\u21ff',
+    'homtht;': u'\u223b',
+    'hookleftarrow;': u'\u21a9',
+    'hookrightarrow;': u'\u21aa',
+    'Hopf;': u'\u210d',
+    'hopf;': u'\U0001d559',
+    'horbar;': u'\u2015',
+    'HorizontalLine;': u'\u2500',
+    'Hscr;': u'\u210b',
+    'hscr;': u'\U0001d4bd',
+    'hslash;': u'\u210f',
+    'Hstrok;': u'\u0126',
+    'hstrok;': u'\u0127',
+    'HumpDownHump;': u'\u224e',
+    'HumpEqual;': u'\u224f',
+    'hybull;': u'\u2043',
+    'hyphen;': u'\u2010',
+    'Iacute;': u'\xcd',
+    'Iacute': u'\xcd',
+    'iacute;': u'\xed',
+    'iacute': u'\xed',
+    'ic;': u'\u2063',
+    'Icirc;': u'\xce',
+    'Icirc': u'\xce',
+    'icirc;': u'\xee',
+    'icirc': u'\xee',
+    'Icy;': u'\u0418',
+    'icy;': u'\u0438',
+    'Idot;': u'\u0130',
+    'IEcy;': u'\u0415',
+    'iecy;': u'\u0435',
+    'iexcl;': u'\xa1',
+    'iexcl': u'\xa1',
+    'iff;': u'\u21d4',
+    'Ifr;': u'\u2111',
+    'ifr;': u'\U0001d526',
+    'Igrave;': u'\xcc',
+    'Igrave': u'\xcc',
+    'igrave;': u'\xec',
+    'igrave': u'\xec',
+    'ii;': u'\u2148',
+    'iiiint;': u'\u2a0c',
+    'iiint;': u'\u222d',
+    'iinfin;': u'\u29dc',
+    'iiota;': u'\u2129',
+    'IJlig;': u'\u0132',
+    'ijlig;': u'\u0133',
+    'Im;': u'\u2111',
+    'Imacr;': u'\u012a',
+    'imacr;': u'\u012b',
+    'image;': u'\u2111',
+    'ImaginaryI;': u'\u2148',
+    'imagline;': u'\u2110',
+    'imagpart;': u'\u2111',
+    'imath;': u'\u0131',
+    'imof;': u'\u22b7',
+    'imped;': u'\u01b5',
+    'Implies;': u'\u21d2',
+    'in;': u'\u2208',
+    'incare;': u'\u2105',
+    'infin;': u'\u221e',
+    'infintie;': u'\u29dd',
+    'inodot;': u'\u0131',
+    'Int;': u'\u222c',
+    'int;': u'\u222b',
+    'intcal;': u'\u22ba',
+    'integers;': u'\u2124',
+    'Integral;': u'\u222b',
+    'intercal;': u'\u22ba',
+    'Intersection;': u'\u22c2',
+    'intlarhk;': u'\u2a17',
+    'intprod;': u'\u2a3c',
+    'InvisibleComma;': u'\u2063',
+    'InvisibleTimes;': u'\u2062',
+    'IOcy;': u'\u0401',
+    'iocy;': u'\u0451',
+    'Iogon;': u'\u012e',
+    'iogon;': u'\u012f',
+    'Iopf;': u'\U0001d540',
+    'iopf;': u'\U0001d55a',
+    'Iota;': u'\u0399',
+    'iota;': u'\u03b9',
+    'iprod;': u'\u2a3c',
+    'iquest;': u'\xbf',
+    'iquest': u'\xbf',
+    'Iscr;': u'\u2110',
+    'iscr;': u'\U0001d4be',
+    'isin;': u'\u2208',
+    'isindot;': u'\u22f5',
+    'isinE;': u'\u22f9',
+    'isins;': u'\u22f4',
+    'isinsv;': u'\u22f3',
+    'isinv;': u'\u2208',
+    'it;': u'\u2062',
+    'Itilde;': u'\u0128',
+    'itilde;': u'\u0129',
+    'Iukcy;': u'\u0406',
+    'iukcy;': u'\u0456',
+    'Iuml;': u'\xcf',
+    'Iuml': u'\xcf',
+    'iuml;': u'\xef',
+    'iuml': u'\xef',
+    'Jcirc;': u'\u0134',
+    'jcirc;': u'\u0135',
+    'Jcy;': u'\u0419',
+    'jcy;': u'\u0439',
+    'Jfr;': u'\U0001d50d',
+    'jfr;': u'\U0001d527',
+    'jmath;': u'\u0237',
+    'Jopf;': u'\U0001d541',
+    'jopf;': u'\U0001d55b',
+    'Jscr;': u'\U0001d4a5',
+    'jscr;': u'\U0001d4bf',
+    'Jsercy;': u'\u0408',
+    'jsercy;': u'\u0458',
+    'Jukcy;': u'\u0404',
+    'jukcy;': u'\u0454',
+    'Kappa;': u'\u039a',
+    'kappa;': u'\u03ba',
+    'kappav;': u'\u03f0',
+    'Kcedil;': u'\u0136',
+    'kcedil;': u'\u0137',
+    'Kcy;': u'\u041a',
+    'kcy;': u'\u043a',
+    'Kfr;': u'\U0001d50e',
+    'kfr;': u'\U0001d528',
+    'kgreen;': u'\u0138',
+    'KHcy;': u'\u0425',
+    'khcy;': u'\u0445',
+    'KJcy;': u'\u040c',
+    'kjcy;': u'\u045c',
+    'Kopf;': u'\U0001d542',
+    'kopf;': u'\U0001d55c',
+    'Kscr;': u'\U0001d4a6',
+    'kscr;': u'\U0001d4c0',
+    'lAarr;': u'\u21da',
+    'Lacute;': u'\u0139',
+    'lacute;': u'\u013a',
+    'laemptyv;': u'\u29b4',
+    'lagran;': u'\u2112',
+    'Lambda;': u'\u039b',
+    'lambda;': u'\u03bb',
+    'Lang;': u'\u27ea',
+    'lang;': u'\u2329',
+    'langd;': u'\u2991',
+    'langle;': u'\u2329',
+    'lap;': u'\u2a85',
+    'Laplacetrf;': u'\u2112',
+    'laquo;': u'\xab',
+    'laquo': u'\xab',
+    'Larr;': u'\u219e',
+    'lArr;': u'\u21d0',
+    'larr;': u'\u2190',
+    'larrb;': u'\u21e4',
+    'larrbfs;': u'\u291f',
+    'larrfs;': u'\u291d',
+    'larrhk;': u'\u21a9',
+    'larrlp;': u'\u21ab',
+    'larrpl;': u'\u2939',
+    'larrsim;': u'\u2973',
+    'larrtl;': u'\u21a2',
+    'lat;': u'\u2aab',
+    'lAtail;': u'\u291b',
+    'latail;': u'\u2919',
+    'late;': u'\u2aad',
+    'lates;': u'\u2aad\ufe00',
+    'lBarr;': u'\u290e',
+    'lbarr;': u'\u290c',
+    'lbbrk;': u'\u2772',
+    'lbrace;': '{',
+    'lbrack;': '[',
+    'lbrke;': u'\u298b',
+    'lbrksld;': u'\u298f',
+    'lbrkslu;': u'\u298d',
+    'Lcaron;': u'\u013d',
+    'lcaron;': u'\u013e',
+    'Lcedil;': u'\u013b',
+    'lcedil;': u'\u013c',
+    'lceil;': u'\u2308',
+    'lcub;': '{',
+    'Lcy;': u'\u041b',
+    'lcy;': u'\u043b',
+    'ldca;': u'\u2936',
+    'ldquo;': u'\u201c',
+    'ldquor;': u'\u201e',
+    'ldrdhar;': u'\u2967',
+    'ldrushar;': u'\u294b',
+    'ldsh;': u'\u21b2',
+    'lE;': u'\u2266',
+    'le;': u'\u2264',
+    'LeftAngleBracket;': u'\u2329',
+    'LeftArrow;': u'\u2190',
+    'Leftarrow;': u'\u21d0',
+    'leftarrow;': u'\u2190',
+    'LeftArrowBar;': u'\u21e4',
+    'LeftArrowRightArrow;': u'\u21c6',
+    'leftarrowtail;': u'\u21a2',
+    'LeftCeiling;': u'\u2308',
+    'LeftDoubleBracket;': u'\u27e6',
+    'LeftDownTeeVector;': u'\u2961',
+    'LeftDownVector;': u'\u21c3',
+    'LeftDownVectorBar;': u'\u2959',
+    'LeftFloor;': u'\u230a',
+    'leftharpoondown;': u'\u21bd',
+    'leftharpoonup;': u'\u21bc',
+    'leftleftarrows;': u'\u21c7',
+    'LeftRightArrow;': u'\u2194',
+    'Leftrightarrow;': u'\u21d4',
+    'leftrightarrow;': u'\u2194',
+    'leftrightarrows;': u'\u21c6',
+    'leftrightharpoons;': u'\u21cb',
+    'leftrightsquigarrow;': u'\u21ad',
+    'LeftRightVector;': u'\u294e',
+    'LeftTee;': u'\u22a3',
+    'LeftTeeArrow;': u'\u21a4',
+    'LeftTeeVector;': u'\u295a',
+    'leftthreetimes;': u'\u22cb',
+    'LeftTriangle;': u'\u22b2',
+    'LeftTriangleBar;': u'\u29cf',
+    'LeftTriangleEqual;': u'\u22b4',
+    'LeftUpDownVector;': u'\u2951',
+    'LeftUpTeeVector;': u'\u2960',
+    'LeftUpVector;': u'\u21bf',
+    'LeftUpVectorBar;': u'\u2958',
+    'LeftVector;': u'\u21bc',
+    'LeftVectorBar;': u'\u2952',
+    'lEg;': u'\u2a8b',
+    'leg;': u'\u22da',
+    'leq;': u'\u2264',
+    'leqq;': u'\u2266',
+    'leqslant;': u'\u2a7d',
+    'les;': u'\u2a7d',
+    'lescc;': u'\u2aa8',
+    'lesdot;': u'\u2a7f',
+    'lesdoto;': u'\u2a81',
+    'lesdotor;': u'\u2a83',
+    'lesg;': u'\u22da\ufe00',
+    'lesges;': u'\u2a93',
+    'lessapprox;': u'\u2a85',
+    'lessdot;': u'\u22d6',
+    'lesseqgtr;': u'\u22da',
+    'lesseqqgtr;': u'\u2a8b',
+    'LessEqualGreater;': u'\u22da',
+    'LessFullEqual;': u'\u2266',
+    'LessGreater;': u'\u2276',
+    'lessgtr;': u'\u2276',
+    'LessLess;': u'\u2aa1',
+    'lesssim;': u'\u2272',
+    'LessSlantEqual;': u'\u2a7d',
+    'LessTilde;': u'\u2272',
+    'lfisht;': u'\u297c',
+    'lfloor;': u'\u230a',
+    'Lfr;': u'\U0001d50f',
+    'lfr;': u'\U0001d529',
+    'lg;': u'\u2276',
+    'lgE;': u'\u2a91',
+    'lHar;': u'\u2962',
+    'lhard;': u'\u21bd',
+    'lharu;': u'\u21bc',
+    'lharul;': u'\u296a',
+    'lhblk;': u'\u2584',
+    'LJcy;': u'\u0409',
+    'ljcy;': u'\u0459',
+    'Ll;': u'\u22d8',
+    'll;': u'\u226a',
+    'llarr;': u'\u21c7',
+    'llcorner;': u'\u231e',
+    'Lleftarrow;': u'\u21da',
+    'llhard;': u'\u296b',
+    'lltri;': u'\u25fa',
+    'Lmidot;': u'\u013f',
+    'lmidot;': u'\u0140',
+    'lmoust;': u'\u23b0',
+    'lmoustache;': u'\u23b0',
+    'lnap;': u'\u2a89',
+    'lnapprox;': u'\u2a89',
+    'lnE;': u'\u2268',
+    'lne;': u'\u2a87',
+    'lneq;': u'\u2a87',
+    'lneqq;': u'\u2268',
+    'lnsim;': u'\u22e6',
+    'loang;': u'\u27ec',
+    'loarr;': u'\u21fd',
+    'lobrk;': u'\u27e6',
+    'LongLeftArrow;': u'\u27f5',
+    'Longleftarrow;': u'\u27f8',
+    'longleftarrow;': u'\u27f5',
+    'LongLeftRightArrow;': u'\u27f7',
+    'Longleftrightarrow;': u'\u27fa',
+    'longleftrightarrow;': u'\u27f7',
+    'longmapsto;': u'\u27fc',
+    'LongRightArrow;': u'\u27f6',
+    'Longrightarrow;': u'\u27f9',
+    'longrightarrow;': u'\u27f6',
+    'looparrowleft;': u'\u21ab',
+    'looparrowright;': u'\u21ac',
+    'lopar;': u'\u2985',
+    'Lopf;': u'\U0001d543',
+    'lopf;': u'\U0001d55d',
+    'loplus;': u'\u2a2d',
+    'lotimes;': u'\u2a34',
+    'lowast;': u'\u2217',
+    'lowbar;': '_',
+    'LowerLeftArrow;': u'\u2199',
+    'LowerRightArrow;': u'\u2198',
+    'loz;': u'\u25ca',
+    'lozenge;': u'\u25ca',
+    'lozf;': u'\u29eb',
+    'lpar;': '(',
+    'lparlt;': u'\u2993',
+    'lrarr;': u'\u21c6',
+    'lrcorner;': u'\u231f',
+    'lrhar;': u'\u21cb',
+    'lrhard;': u'\u296d',
+    'lrm;': u'\u200e',
+    'lrtri;': u'\u22bf',
+    'lsaquo;': u'\u2039',
+    'Lscr;': u'\u2112',
+    'lscr;': u'\U0001d4c1',
+    'Lsh;': u'\u21b0',
+    'lsh;': u'\u21b0',
+    'lsim;': u'\u2272',
+    'lsime;': u'\u2a8d',
+    'lsimg;': u'\u2a8f',
+    'lsqb;': '[',
+    'lsquo;': u'\u2018',
+    'lsquor;': u'\u201a',
+    'Lstrok;': u'\u0141',
+    'lstrok;': u'\u0142',
+    'LT;': '<',
+    'LT': '<',
+    'Lt;': u'\u226a',
+    'lt;': '<',
+    'lt': '<',
+    'ltcc;': u'\u2aa6',
+    'ltcir;': u'\u2a79',
+    'ltdot;': u'\u22d6',
+    'lthree;': u'\u22cb',
+    'ltimes;': u'\u22c9',
+    'ltlarr;': u'\u2976',
+    'ltquest;': u'\u2a7b',
+    'ltri;': u'\u25c3',
+    'ltrie;': u'\u22b4',
+    'ltrif;': u'\u25c2',
+    'ltrPar;': u'\u2996',
+    'lurdshar;': u'\u294a',
+    'luruhar;': u'\u2966',
+    'lvertneqq;': u'\u2268\ufe00',
+    'lvnE;': u'\u2268\ufe00',
+    'macr;': u'\xaf',
+    'macr': u'\xaf',
+    'male;': u'\u2642',
+    'malt;': u'\u2720',
+    'maltese;': u'\u2720',
+    'Map;': u'\u2905',
+    'map;': u'\u21a6',
+    'mapsto;': u'\u21a6',
+    'mapstodown;': u'\u21a7',
+    'mapstoleft;': u'\u21a4',
+    'mapstoup;': u'\u21a5',
+    'marker;': u'\u25ae',
+    'mcomma;': u'\u2a29',
+    'Mcy;': u'\u041c',
+    'mcy;': u'\u043c',
+    'mdash;': u'\u2014',
+    'mDDot;': u'\u223a',
+    'measuredangle;': u'\u2221',
+    'MediumSpace;': u'\u205f',
+    'Mellintrf;': u'\u2133',
+    'Mfr;': u'\U0001d510',
+    'mfr;': u'\U0001d52a',
+    'mho;': u'\u2127',
+    'micro;': u'\xb5',
+    'micro': u'\xb5',
+    'mid;': u'\u2223',
+    'midast;': '*',
+    'midcir;': u'\u2af0',
+    'middot;': u'\xb7',
+    'middot': u'\xb7',
+    'minus;': u'\u2212',
+    'minusb;': u'\u229f',
+    'minusd;': u'\u2238',
+    'minusdu;': u'\u2a2a',
+    'MinusPlus;': u'\u2213',
+    'mlcp;': u'\u2adb',
+    'mldr;': u'\u2026',
+    'mnplus;': u'\u2213',
+    'models;': u'\u22a7',
+    'Mopf;': u'\U0001d544',
+    'mopf;': u'\U0001d55e',
+    'mp;': u'\u2213',
+    'Mscr;': u'\u2133',
+    'mscr;': u'\U0001d4c2',
+    'mstpos;': u'\u223e',
+    'Mu;': u'\u039c',
+    'mu;': u'\u03bc',
+    'multimap;': u'\u22b8',
+    'mumap;': u'\u22b8',
+    'nabla;': u'\u2207',
+    'Nacute;': u'\u0143',
+    'nacute;': u'\u0144',
+    'nang;': u'\u2220\u20d2',
+    'nap;': u'\u2249',
+    'napE;': u'\u2a70\u0338',
+    'napid;': u'\u224b\u0338',
+    'napos;': u'\u0149',
+    'napprox;': u'\u2249',
+    'natur;': u'\u266e',
+    'natural;': u'\u266e',
+    'naturals;': u'\u2115',
+    'nbsp;': u'\xa0',
+    'nbsp': u'\xa0',
+    'nbump;': u'\u224e\u0338',
+    'nbumpe;': u'\u224f\u0338',
+    'ncap;': u'\u2a43',
+    'Ncaron;': u'\u0147',
+    'ncaron;': u'\u0148',
+    'Ncedil;': u'\u0145',
+    'ncedil;': u'\u0146',
+    'ncong;': u'\u2247',
+    'ncongdot;': u'\u2a6d\u0338',
+    'ncup;': u'\u2a42',
+    'Ncy;': u'\u041d',
+    'ncy;': u'\u043d',
+    'ndash;': u'\u2013',
+    'ne;': u'\u2260',
+    'nearhk;': u'\u2924',
+    'neArr;': u'\u21d7',
+    'nearr;': u'\u2197',
+    'nearrow;': u'\u2197',
+    'nedot;': u'\u2250\u0338',
+    'NegativeMediumSpace;': u'\u200b',
+    'NegativeThickSpace;': u'\u200b',
+    'NegativeThinSpace;': u'\u200b',
+    'NegativeVeryThinSpace;': u'\u200b',
+    'nequiv;': u'\u2262',
+    'nesear;': u'\u2928',
+    'nesim;': u'\u2242\u0338',
+    'NestedGreaterGreater;': u'\u226b',
+    'NestedLessLess;': u'\u226a',
+    'NewLine;': u'\n', # should be \u240a but Chrome treats it as whitespace so...
+    'nexist;': u'\u2204',
+    'nexists;': u'\u2204',
+    'Nfr;': u'\U0001d511',
+    'nfr;': u'\U0001d52b',
+    'ngE;': u'\u2267\u0338',
+    'nge;': u'\u2271',
+    'ngeq;': u'\u2271',
+    'ngeqq;': u'\u2267\u0338',
+    'ngeqslant;': u'\u2a7e\u0338',
+    'nges;': u'\u2a7e\u0338',
+    'nGg;': u'\u22d9\u0338',
+    'ngsim;': u'\u2275',
+    'nGt;': u'\u226b\u20d2',
+    'ngt;': u'\u226f',
+    'ngtr;': u'\u226f',
+    'nGtv;': u'\u226b\u0338',
+    'nhArr;': u'\u21ce',
+    'nharr;': u'\u21ae',
+    'nhpar;': u'\u2af2',
+    'ni;': u'\u220b',
+    'nis;': u'\u22fc',
+    'nisd;': u'\u22fa',
+    'niv;': u'\u220b',
+    'NJcy;': u'\u040a',
+    'njcy;': u'\u045a',
+    'nlArr;': u'\u21cd',
+    'nlarr;': u'\u219a',
+    'nldr;': u'\u2025',
+    'nlE;': u'\u2266\u0338',
+    'nle;': u'\u2270',
+    'nLeftarrow;': u'\u21cd',
+    'nleftarrow;': u'\u219a',
+    'nLeftrightarrow;': u'\u21ce',
+    'nleftrightarrow;': u'\u21ae',
+    'nleq;': u'\u2270',
+    'nleqq;': u'\u2266\u0338',
+    'nleqslant;': u'\u2a7d\u0338',
+    'nles;': u'\u2a7d\u0338',
+    'nless;': u'\u226e',
+    'nLl;': u'\u22d8\u0338',
+    'nlsim;': u'\u2274',
+    'nLt;': u'\u226a\u20d2',
+    'nlt;': u'\u226e',
+    'nltri;': u'\u22ea',
+    'nltrie;': u'\u22ec',
+    'nLtv;': u'\u226a\u0338',
+    'nmid;': u'\u2224',
+    'NoBreak;': u'\u2060',
+    'NonBreakingSpace;': u'\xa0',
+    'Nopf;': u'\u2115',
+    'nopf;': u'\U0001d55f',
+    'Not;': u'\u2aec',
+    'not;': u'\xac',
+    'not': u'\xac',
+    'NotCongruent;': u'\u2262',
+    'NotCupCap;': u'\u226d',
+    'NotDoubleVerticalBar;': u'\u2226',
+    'NotElement;': u'\u2209',
+    'NotEqual;': u'\u2260',
+    'NotEqualTilde;': u'\u2242\u0338',
+    'NotExists;': u'\u2204',
+    'NotGreater;': u'\u226f',
+    'NotGreaterEqual;': u'\u2271',
+    'NotGreaterFullEqual;': u'\u2267\u0338',
+    'NotGreaterGreater;': u'\u226b\u0338',
+    'NotGreaterLess;': u'\u2279',
+    'NotGreaterSlantEqual;': u'\u2a7e\u0338',
+    'NotGreaterTilde;': u'\u2275',
+    'NotHumpDownHump;': u'\u224e\u0338',
+    'NotHumpEqual;': u'\u224f\u0338',
+    'notin;': u'\u2209',
+    'notindot;': u'\u22f5\u0338',
+    'notinE;': u'\u22f9\u0338',
+    'notinva;': u'\u2209',
+    'notinvb;': u'\u22f7',
+    'notinvc;': u'\u22f6',
+    'NotLeftTriangle;': u'\u22ea',
+    'NotLeftTriangleBar;': u'\u29cf\u0338',
+    'NotLeftTriangleEqual;': u'\u22ec',
+    'NotLess;': u'\u226e',
+    'NotLessEqual;': u'\u2270',
+    'NotLessGreater;': u'\u2278',
+    'NotLessLess;': u'\u226a\u0338',
+    'NotLessSlantEqual;': u'\u2a7d\u0338',
+    'NotLessTilde;': u'\u2274',
+    'NotNestedGreaterGreater;': u'\u2aa2\u0338',
+    'NotNestedLessLess;': u'\u2aa1\u0338',
+    'notni;': u'\u220c',
+    'notniva;': u'\u220c',
+    'notnivb;': u'\u22fe',
+    'notnivc;': u'\u22fd',
+    'NotPrecedes;': u'\u2280',
+    'NotPrecedesEqual;': u'\u2aaf\u0338',
+    'NotPrecedesSlantEqual;': u'\u22e0',
+    'NotReverseElement;': u'\u220c',
+    'NotRightTriangle;': u'\u22eb',
+    'NotRightTriangleBar;': u'\u29d0\u0338',
+    'NotRightTriangleEqual;': u'\u22ed',
+    'NotSquareSubset;': u'\u228f\u0338',
+    'NotSquareSubsetEqual;': u'\u22e2',
+    'NotSquareSuperset;': u'\u2290\u0338',
+    'NotSquareSupersetEqual;': u'\u22e3',
+    'NotSubset;': u'\u2282\u20d2',
+    'NotSubsetEqual;': u'\u2288',
+    'NotSucceeds;': u'\u2281',
+    'NotSucceedsEqual;': u'\u2ab0\u0338',
+    'NotSucceedsSlantEqual;': u'\u22e1',
+    'NotSucceedsTilde;': u'\u227f\u0338',
+    'NotSuperset;': u'\u2283\u20d2',
+    'NotSupersetEqual;': u'\u2289',
+    'NotTilde;': u'\u2241',
+    'NotTildeEqual;': u'\u2244',
+    'NotTildeFullEqual;': u'\u2247',
+    'NotTildeTilde;': u'\u2249',
+    'NotVerticalBar;': u'\u2224',
+    'npar;': u'\u2226',
+    'nparallel;': u'\u2226',
+    'nparsl;': u'\u2afd\u20e5',
+    'npart;': u'\u2202\u0338',
+    'npolint;': u'\u2a14',
+    'npr;': u'\u2280',
+    'nprcue;': u'\u22e0',
+    'npre;': u'\u2aaf\u0338',
+    'nprec;': u'\u2280',
+    'npreceq;': u'\u2aaf\u0338',
+    'nrArr;': u'\u21cf',
+    'nrarr;': u'\u219b',
+    'nrarrc;': u'\u2933\u0338',
+    'nrarrw;': u'\u219d\u0338',
+    'nRightarrow;': u'\u21cf',
+    'nrightarrow;': u'\u219b',
+    'nrtri;': u'\u22eb',
+    'nrtrie;': u'\u22ed',
+    'nsc;': u'\u2281',
+    'nsccue;': u'\u22e1',
+    'nsce;': u'\u2ab0\u0338',
+    'Nscr;': u'\U0001d4a9',
+    'nscr;': u'\U0001d4c3',
+    'nshortmid;': u'\u2224',
+    'nshortparallel;': u'\u2226',
+    'nsim;': u'\u2241',
+    'nsime;': u'\u2244',
+    'nsimeq;': u'\u2244',
+    'nsmid;': u'\u2224',
+    'nspar;': u'\u2226',
+    'nsqsube;': u'\u22e2',
+    'nsqsupe;': u'\u22e3',
+    'nsub;': u'\u2284',
+    'nsubE;': u'\u2ac5\u0338',
+    'nsube;': u'\u2288',
+    'nsubset;': u'\u2282\u20d2',
+    'nsubseteq;': u'\u2288',
+    'nsubseteqq;': u'\u2ac5\u0338',
+    'nsucc;': u'\u2281',
+    'nsucceq;': u'\u2ab0\u0338',
+    'nsup;': u'\u2285',
+    'nsupE;': u'\u2ac6\u0338',
+    'nsupe;': u'\u2289',
+    'nsupset;': u'\u2283\u20d2',
+    'nsupseteq;': u'\u2289',
+    'nsupseteqq;': u'\u2ac6\u0338',
+    'ntgl;': u'\u2279',
+    'Ntilde;': u'\xd1',
+    'Ntilde': u'\xd1',
+    'ntilde;': u'\xf1',
+    'ntilde': u'\xf1',
+    'ntlg;': u'\u2278',
+    'ntriangleleft;': u'\u22ea',
+    'ntrianglelefteq;': u'\u22ec',
+    'ntriangleright;': u'\u22eb',
+    'ntrianglerighteq;': u'\u22ed',
+    'Nu;': u'\u039d',
+    'nu;': u'\u03bd',
+    'num;': '#',
+    'numero;': u'\u2116',
+    'numsp;': u'\u2007',
+    'nvap;': u'\u224d\u20d2',
+    'nVDash;': u'\u22af',
+    'nVdash;': u'\u22ae',
+    'nvDash;': u'\u22ad',
+    'nvdash;': u'\u22ac',
+    'nvge;': u'\u2265\u20d2',
+    'nvgt;': '>\u20d2',
+    'nvHarr;': u'\u2904',
+    'nvinfin;': u'\u29de',
+    'nvlArr;': u'\u2902',
+    'nvle;': u'\u2264\u20d2',
+    'nvlt;': '<\u20d2',
+    'nvltrie;': u'\u22b4\u20d2',
+    'nvrArr;': u'\u2903',
+    'nvrtrie;': u'\u22b5\u20d2',
+    'nvsim;': u'\u223c\u20d2',
+    'nwarhk;': u'\u2923',
+    'nwArr;': u'\u21d6',
+    'nwarr;': u'\u2196',
+    'nwarrow;': u'\u2196',
+    'nwnear;': u'\u2927',
+    'Oacute;': u'\xd3',
+    'Oacute': u'\xd3',
+    'oacute;': u'\xf3',
+    'oacute': u'\xf3',
+    'oast;': u'\u229b',
+    'ocir;': u'\u229a',
+    'Ocirc;': u'\xd4',
+    'Ocirc': u'\xd4',
+    'ocirc;': u'\xf4',
+    'ocirc': u'\xf4',
+    'Ocy;': u'\u041e',
+    'ocy;': u'\u043e',
+    'odash;': u'\u229d',
+    'Odblac;': u'\u0150',
+    'odblac;': u'\u0151',
+    'odiv;': u'\u2a38',
+    'odot;': u'\u2299',
+    'odsold;': u'\u29bc',
+    'OElig;': u'\u0152',
+    'oelig;': u'\u0153',
+    'ofcir;': u'\u29bf',
+    'Ofr;': u'\U0001d512',
+    'ofr;': u'\U0001d52c',
+    'ogon;': u'\u02db',
+    'Ograve;': u'\xd2',
+    'Ograve': u'\xd2',
+    'ograve;': u'\xf2',
+    'ograve': u'\xf2',
+    'ogt;': u'\u29c1',
+    'ohbar;': u'\u29b5',
+    'ohm;': u'\u03a9',
+    'oint;': u'\u222e',
+    'olarr;': u'\u21ba',
+    'olcir;': u'\u29be',
+    'olcross;': u'\u29bb',
+    'oline;': u'\u203e',
+    'olt;': u'\u29c0',
+    'Omacr;': u'\u014c',
+    'omacr;': u'\u014d',
+    'Omega;': u'\u03a9',
+    'omega;': u'\u03c9',
+    'Omicron;': u'\u039f',
+    'omicron;': u'\u03bf',
+    'omid;': u'\u29b6',
+    'ominus;': u'\u2296',
+    'Oopf;': u'\U0001d546',
+    'oopf;': u'\U0001d560',
+    'opar;': u'\u29b7',
+    'OpenCurlyDoubleQuote;': u'\u201c',
+    'OpenCurlyQuote;': u'\u2018',
+    'operp;': u'\u29b9',
+    'oplus;': u'\u2295',
+    'Or;': u'\u2a54',
+    'or;': u'\u2228',
+    'orarr;': u'\u21bb',
+    'ord;': u'\u2a5d',
+    'order;': u'\u2134',
+    'orderof;': u'\u2134',
+    'ordf;': u'\xaa',
+    'ordf': u'\xaa',
+    'ordm;': u'\xba',
+    'ordm': u'\xba',
+    'origof;': u'\u22b6',
+    'oror;': u'\u2a56',
+    'orslope;': u'\u2a57',
+    'orv;': u'\u2a5b',
+    'oS;': u'\u24c8',
+    'Oscr;': u'\U0001d4aa',
+    'oscr;': u'\u2134',
+    'Oslash;': u'\xd8',
+    'Oslash': u'\xd8',
+    'oslash;': u'\xf8',
+    'oslash': u'\xf8',
+    'osol;': u'\u2298',
+    'Otilde;': u'\xd5',
+    'Otilde': u'\xd5',
+    'otilde;': u'\xf5',
+    'otilde': u'\xf5',
+    'Otimes;': u'\u2a37',
+    'otimes;': u'\u2297',
+    'otimesas;': u'\u2a36',
+    'Ouml;': u'\xd6',
+    'Ouml': u'\xd6',
+    'ouml;': u'\xf6',
+    'ouml': u'\xf6',
+    'ovbar;': u'\u233d',
+    'OverBar;': u'\u203e',
+    'OverBrace;': u'\u23de',
+    'OverBracket;': u'\u23b4',
+    'OverParenthesis;': u'\u23dc',
+    'par;': u'\u2225',
+    'para;': u'\xb6',
+    'para': u'\xb6',
+    'parallel;': u'\u2225',
+    'parsim;': u'\u2af3',
+    'parsl;': u'\u2afd',
+    'part;': u'\u2202',
+    'PartialD;': u'\u2202',
+    'Pcy;': u'\u041f',
+    'pcy;': u'\u043f',
+    'percnt;': '%',
+    'period;': '.',
+    'permil;': u'\u2030',
+    'perp;': u'\u22a5',
+    'pertenk;': u'\u2031',
+    'Pfr;': u'\U0001d513',
+    'pfr;': u'\U0001d52d',
+    'Phi;': u'\u03a6',
+    'phi;': u'\u03c6',
+    'phiv;': u'\u03d5',
+    'phmmat;': u'\u2133',
+    'phone;': u'\u260e',
+    'Pi;': u'\u03a0',
+    'pi;': u'\u03c0',
+    'pitchfork;': u'\u22d4',
+    'piv;': u'\u03d6',
+    'planck;': u'\u210f',
+    'planckh;': u'\u210e',
+    'plankv;': u'\u210f',
+    'plus;': '+',
+    'plusacir;': u'\u2a23',
+    'plusb;': u'\u229e',
+    'pluscir;': u'\u2a22',
+    'plusdo;': u'\u2214',
+    'plusdu;': u'\u2a25',
+    'pluse;': u'\u2a72',
+    'PlusMinus;': u'\xb1',
+    'plusmn;': u'\xb1',
+    'plusmn': u'\xb1',
+    'plussim;': u'\u2a26',
+    'plustwo;': u'\u2a27',
+    'pm;': u'\xb1',
+    'Poincareplane;': u'\u210c',
+    'pointint;': u'\u2a15',
+    'Popf;': u'\u2119',
+    'popf;': u'\U0001d561',
+    'pound;': u'\xa3',
+    'pound': u'\xa3',
+    'Pr;': u'\u2abb',
+    'pr;': u'\u227a',
+    'prap;': u'\u2ab7',
+    'prcue;': u'\u227c',
+    'prE;': u'\u2ab3',
+    'pre;': u'\u2aaf',
+    'prec;': u'\u227a',
+    'precapprox;': u'\u2ab7',
+    'preccurlyeq;': u'\u227c',
+    'Precedes;': u'\u227a',
+    'PrecedesEqual;': u'\u2aaf',
+    'PrecedesSlantEqual;': u'\u227c',
+    'PrecedesTilde;': u'\u227e',
+    'preceq;': u'\u2aaf',
+    'precnapprox;': u'\u2ab9',
+    'precneqq;': u'\u2ab5',
+    'precnsim;': u'\u22e8',
+    'precsim;': u'\u227e',
+    'Prime;': u'\u2033',
+    'prime;': u'\u2032',
+    'primes;': u'\u2119',
+    'prnap;': u'\u2ab9',
+    'prnE;': u'\u2ab5',
+    'prnsim;': u'\u22e8',
+    'prod;': u'\u220f',
+    'Product;': u'\u220f',
+    'profalar;': u'\u232e',
+    'profline;': u'\u2312',
+    'profsurf;': u'\u2313',
+    'prop;': u'\u221d',
+    'Proportion;': u'\u2237',
+    'Proportional;': u'\u221d',
+    'propto;': u'\u221d',
+    'prsim;': u'\u227e',
+    'prurel;': u'\u22b0',
+    'Pscr;': u'\U0001d4ab',
+    'pscr;': u'\U0001d4c5',
+    'Psi;': u'\u03a8',
+    'psi;': u'\u03c8',
+    'puncsp;': u'\u2008',
+    'Qfr;': u'\U0001d514',
+    'qfr;': u'\U0001d52e',
+    'qint;': u'\u2a0c',
+    'Qopf;': u'\u211a',
+    'qopf;': u'\U0001d562',
+    'qprime;': u'\u2057',
+    'Qscr;': u'\U0001d4ac',
+    'qscr;': u'\U0001d4c6',
+    'quaternions;': u'\u210d',
+    'quatint;': u'\u2a16',
+    'quest;': '?',
+    'questeq;': u'\u225f',
+    'QUOT;': '"',
+    'QUOT': '"',
+    'quot;': '"',
+    'quot': '"',
+    'rAarr;': u'\u21db',
+    'race;': u'\u223d\u0331',
+    'Racute;': u'\u0154',
+    'racute;': u'\u0155',
+    'radic;': u'\u221a',
+    'raemptyv;': u'\u29b3',
+    'Rang;': u'\u27eb',
+    'rang;': u'\u232a',
+    'rangd;': u'\u2992',
+    'range;': u'\u29a5',
+    'rangle;': u'\u232a',
+    'raquo;': u'\xbb',
+    'raquo': u'\xbb',
+    'Rarr;': u'\u21a0',
+    'rArr;': u'\u21d2',
+    'rarr;': u'\u2192',
+    'rarrap;': u'\u2975',
+    'rarrb;': u'\u21e5',
+    'rarrbfs;': u'\u2920',
+    'rarrc;': u'\u2933',
+    'rarrfs;': u'\u291e',
+    'rarrhk;': u'\u21aa',
+    'rarrlp;': u'\u21ac',
+    'rarrpl;': u'\u2945',
+    'rarrsim;': u'\u2974',
+    'Rarrtl;': u'\u2916',
+    'rarrtl;': u'\u21a3',
+    'rarrw;': u'\u219d',
+    'rAtail;': u'\u291c',
+    'ratail;': u'\u291a',
+    'ratio;': u'\u2236',
+    'rationals;': u'\u211a',
+    'RBarr;': u'\u2910',
+    'rBarr;': u'\u290f',
+    'rbarr;': u'\u290d',
+    'rbbrk;': u'\u2773',
+    'rbrace;': '}',
+    'rbrack;': ']',
+    'rbrke;': u'\u298c',
+    'rbrksld;': u'\u298e',
+    'rbrkslu;': u'\u2990',
+    'Rcaron;': u'\u0158',
+    'rcaron;': u'\u0159',
+    'Rcedil;': u'\u0156',
+    'rcedil;': u'\u0157',
+    'rceil;': u'\u2309',
+    'rcub;': '}',
+    'Rcy;': u'\u0420',
+    'rcy;': u'\u0440',
+    'rdca;': u'\u2937',
+    'rdldhar;': u'\u2969',
+    'rdquo;': u'\u201d',
+    'rdquor;': u'\u201d',
+    'rdsh;': u'\u21b3',
+    'Re;': u'\u211c',
+    'real;': u'\u211c',
+    'realine;': u'\u211b',
+    'realpart;': u'\u211c',
+    'reals;': u'\u211d',
+    'rect;': u'\u25ad',
+    'REG;': u'\xae',
+    'REG': u'\xae',
+    'reg;': u'\xae',
+    'reg': u'\xae',
+    'ReverseElement;': u'\u220b',
+    'ReverseEquilibrium;': u'\u21cb',
+    'ReverseUpEquilibrium;': u'\u296f',
+    'rfisht;': u'\u297d',
+    'rfloor;': u'\u230b',
+    'Rfr;': u'\u211c',
+    'rfr;': u'\U0001d52f',
+    'rHar;': u'\u2964',
+    'rhard;': u'\u21c1',
+    'rharu;': u'\u21c0',
+    'rharul;': u'\u296c',
+    'Rho;': u'\u03a1',
+    'rho;': u'\u03c1',
+    'rhov;': u'\u03f1',
+    'RightAngleBracket;': u'\u232a',
+    'RightArrow;': u'\u2192',
+    'Rightarrow;': u'\u21d2',
+    'rightarrow;': u'\u2192',
+    'RightArrowBar;': u'\u21e5',
+    'RightArrowLeftArrow;': u'\u21c4',
+    'rightarrowtail;': u'\u21a3',
+    'RightCeiling;': u'\u2309',
+    'RightDoubleBracket;': u'\u27e7',
+    'RightDownTeeVector;': u'\u295d',
+    'RightDownVector;': u'\u21c2',
+    'RightDownVectorBar;': u'\u2955',
+    'RightFloor;': u'\u230b',
+    'rightharpoondown;': u'\u21c1',
+    'rightharpoonup;': u'\u21c0',
+    'rightleftarrows;': u'\u21c4',
+    'rightleftharpoons;': u'\u21cc',
+    'rightrightarrows;': u'\u21c9',
+    'rightsquigarrow;': u'\u219d',
+    'RightTee;': u'\u22a2',
+    'RightTeeArrow;': u'\u21a6',
+    'RightTeeVector;': u'\u295b',
+    'rightthreetimes;': u'\u22cc',
+    'RightTriangle;': u'\u22b3',
+    'RightTriangleBar;': u'\u29d0',
+    'RightTriangleEqual;': u'\u22b5',
+    'RightUpDownVector;': u'\u294f',
+    'RightUpTeeVector;': u'\u295c',
+    'RightUpVector;': u'\u21be',
+    'RightUpVectorBar;': u'\u2954',
+    'RightVector;': u'\u21c0',
+    'RightVectorBar;': u'\u2953',
+    'ring;': u'\u02da',
+    'risingdotseq;': u'\u2253',
+    'rlarr;': u'\u21c4',
+    'rlhar;': u'\u21cc',
+    'rlm;': u'\u200f',
+    'rmoust;': u'\u23b1',
+    'rmoustache;': u'\u23b1',
+    'rnmid;': u'\u2aee',
+    'roang;': u'\u27ed',
+    'roarr;': u'\u21fe',
+    'robrk;': u'\u27e7',
+    'ropar;': u'\u2986',
+    'Ropf;': u'\u211d',
+    'ropf;': u'\U0001d563',
+    'roplus;': u'\u2a2e',
+    'rotimes;': u'\u2a35',
+    'RoundImplies;': u'\u2970',
+    'rpar;': ')',
+    'rpargt;': u'\u2994',
+    'rppolint;': u'\u2a12',
+    'rrarr;': u'\u21c9',
+    'Rrightarrow;': u'\u21db',
+    'rsaquo;': u'\u203a',
+    'Rscr;': u'\u211b',
+    'rscr;': u'\U0001d4c7',
+    'Rsh;': u'\u21b1',
+    'rsh;': u'\u21b1',
+    'rsqb;': ']',
+    'rsquo;': u'\u2019',
+    'rsquor;': u'\u2019',
+    'rthree;': u'\u22cc',
+    'rtimes;': u'\u22ca',
+    'rtri;': u'\u25b9',
+    'rtrie;': u'\u22b5',
+    'rtrif;': u'\u25b8',
+    'rtriltri;': u'\u29ce',
+    'RuleDelayed;': u'\u29f4',
+    'ruluhar;': u'\u2968',
+    'rx;': u'\u211e',
+    'Sacute;': u'\u015a',
+    'sacute;': u'\u015b',
+    'sbquo;': u'\u201a',
+    'Sc;': u'\u2abc',
+    'sc;': u'\u227b',
+    'scap;': u'\u2ab8',
+    'Scaron;': u'\u0160',
+    'scaron;': u'\u0161',
+    'sccue;': u'\u227d',
+    'scE;': u'\u2ab4',
+    'sce;': u'\u2ab0',
+    'Scedil;': u'\u015e',
+    'scedil;': u'\u015f',
+    'Scirc;': u'\u015c',
+    'scirc;': u'\u015d',
+    'scnap;': u'\u2aba',
+    'scnE;': u'\u2ab6',
+    'scnsim;': u'\u22e9',
+    'scpolint;': u'\u2a13',
+    'scsim;': u'\u227f',
+    'Scy;': u'\u0421',
+    'scy;': u'\u0441',
+    'sdot;': u'\u22c5',
+    'sdotb;': u'\u22a1',
+    'sdote;': u'\u2a66',
+    'searhk;': u'\u2925',
+    'seArr;': u'\u21d8',
+    'searr;': u'\u2198',
+    'searrow;': u'\u2198',
+    'sect;': u'\xa7',
+    'sect': u'\xa7',
+    'semi;': ';',
+    'seswar;': u'\u2929',
+    'setminus;': u'\u2216',
+    'setmn;': u'\u2216',
+    'sext;': u'\u2736',
+    'Sfr;': u'\U0001d516',
+    'sfr;': u'\U0001d530',
+    'sfrown;': u'\u2322',
+    'sharp;': u'\u266f',
+    'SHCHcy;': u'\u0429',
+    'shchcy;': u'\u0449',
+    'SHcy;': u'\u0428',
+    'shcy;': u'\u0448',
+    'ShortDownArrow;': u'\u2193',
+    'ShortLeftArrow;': u'\u2190',
+    'shortmid;': u'\u2223',
+    'shortparallel;': u'\u2225',
+    'ShortRightArrow;': u'\u2192',
+    'ShortUpArrow;': u'\u2191',
+    'shy;': u'\xad',
+    'shy': u'\xad',
+    'Sigma;': u'\u03a3',
+    'sigma;': u'\u03c3',
+    'sigmaf;': u'\u03c2',
+    'sigmav;': u'\u03c2',
+    'sim;': u'\u223c',
+    'simdot;': u'\u2a6a',
+    'sime;': u'\u2243',
+    'simeq;': u'\u2243',
+    'simg;': u'\u2a9e',
+    'simgE;': u'\u2aa0',
+    'siml;': u'\u2a9d',
+    'simlE;': u'\u2a9f',
+    'simne;': u'\u2246',
+    'simplus;': u'\u2a24',
+    'simrarr;': u'\u2972',
+    'slarr;': u'\u2190',
+    'SmallCircle;': u'\u2218',
+    'smallsetminus;': u'\u2216',
+    'smashp;': u'\u2a33',
+    'smeparsl;': u'\u29e4',
+    'smid;': u'\u2223',
+    'smile;': u'\u2323',
+    'smt;': u'\u2aaa',
+    'smte;': u'\u2aac',
+    'smtes;': u'\u2aac\ufe00',
+    'SOFTcy;': u'\u042c',
+    'softcy;': u'\u044c',
+    'sol;': '/',
+    'solb;': u'\u29c4',
+    'solbar;': u'\u233f',
+    'Sopf;': u'\U0001d54a',
+    'sopf;': u'\U0001d564',
+    'spades;': u'\u2660',
+    'spadesuit;': u'\u2660',
+    'spar;': u'\u2225',
+    'sqcap;': u'\u2293',
+    'sqcaps;': u'\u2293\ufe00',
+    'sqcup;': u'\u2294',
+    'sqcups;': u'\u2294\ufe00',
+    'Sqrt;': u'\u221a',
+    'sqsub;': u'\u228f',
+    'sqsube;': u'\u2291',
+    'sqsubset;': u'\u228f',
+    'sqsubseteq;': u'\u2291',
+    'sqsup;': u'\u2290',
+    'sqsupe;': u'\u2292',
+    'sqsupset;': u'\u2290',
+    'sqsupseteq;': u'\u2292',
+    'squ;': u'\u25a1',
+    'Square;': u'\u25a1',
+    'square;': u'\u25a1',
+    'SquareIntersection;': u'\u2293',
+    'SquareSubset;': u'\u228f',
+    'SquareSubsetEqual;': u'\u2291',
+    'SquareSuperset;': u'\u2290',
+    'SquareSupersetEqual;': u'\u2292',
+    'SquareUnion;': u'\u2294',
+    'squarf;': u'\u25aa',
+    'squf;': u'\u25aa',
+    'srarr;': u'\u2192',
+    'Sscr;': u'\U0001d4ae',
+    'sscr;': u'\U0001d4c8',
+    'ssetmn;': u'\u2216',
+    'ssmile;': u'\u2323',
+    'sstarf;': u'\u22c6',
+    'Star;': u'\u22c6',
+    'star;': u'\u2606',
+    'starf;': u'\u2605',
+    'straightepsilon;': u'\u03f5',
+    'straightphi;': u'\u03d5',
+    'strns;': u'\xaf',
+    'Sub;': u'\u22d0',
+    'sub;': u'\u2282',
+    'subdot;': u'\u2abd',
+    'subE;': u'\u2ac5',
+    'sube;': u'\u2286',
+    'subedot;': u'\u2ac3',
+    'submult;': u'\u2ac1',
+    'subnE;': u'\u2acb',
+    'subne;': u'\u228a',
+    'subplus;': u'\u2abf',
+    'subrarr;': u'\u2979',
+    'Subset;': u'\u22d0',
+    'subset;': u'\u2282',
+    'subseteq;': u'\u2286',
+    'subseteqq;': u'\u2ac5',
+    'SubsetEqual;': u'\u2286',
+    'subsetneq;': u'\u228a',
+    'subsetneqq;': u'\u2acb',
+    'subsim;': u'\u2ac7',
+    'subsub;': u'\u2ad5',
+    'subsup;': u'\u2ad3',
+    'succ;': u'\u227b',
+    'succapprox;': u'\u2ab8',
+    'succcurlyeq;': u'\u227d',
+    'Succeeds;': u'\u227b',
+    'SucceedsEqual;': u'\u2ab0',
+    'SucceedsSlantEqual;': u'\u227d',
+    'SucceedsTilde;': u'\u227f',
+    'succeq;': u'\u2ab0',
+    'succnapprox;': u'\u2aba',
+    'succneqq;': u'\u2ab6',
+    'succnsim;': u'\u22e9',
+    'succsim;': u'\u227f',
+    'SuchThat;': u'\u220b',
+    'Sum;': u'\u2211',
+    'sum;': u'\u2211',
+    'sung;': u'\u266a',
+    'Sup;': u'\u22d1',
+    'sup;': u'\u2283',
+    'sup1;': u'\xb9',
+    'sup1': u'\xb9',
+    'sup2;': u'\xb2',
+    'sup2': u'\xb2',
+    'sup3;': u'\xb3',
+    'sup3': u'\xb3',
+    'supdot;': u'\u2abe',
+    'supdsub;': u'\u2ad8',
+    'supE;': u'\u2ac6',
+    'supe;': u'\u2287',
+    'supedot;': u'\u2ac4',
+    'Superset;': u'\u2283',
+    'SupersetEqual;': u'\u2287',
+    'suphsol;': u'\u27c9',
+    'suphsub;': u'\u2ad7',
+    'suplarr;': u'\u297b',
+    'supmult;': u'\u2ac2',
+    'supnE;': u'\u2acc',
+    'supne;': u'\u228b',
+    'supplus;': u'\u2ac0',
+    'Supset;': u'\u22d1',
+    'supset;': u'\u2283',
+    'supseteq;': u'\u2287',
+    'supseteqq;': u'\u2ac6',
+    'supsetneq;': u'\u228b',
+    'supsetneqq;': u'\u2acc',
+    'supsim;': u'\u2ac8',
+    'supsub;': u'\u2ad4',
+    'supsup;': u'\u2ad6',
+    'swarhk;': u'\u2926',
+    'swArr;': u'\u21d9',
+    'swarr;': u'\u2199',
+    'swarrow;': u'\u2199',
+    'swnwar;': u'\u292a',
+    'szlig;': u'\xdf',
+    'szlig': u'\xdf',
+    'Tab;': u'\t', # should be \u2409 but Chrome treats it as whitespace so...
+    'target;': u'\u2316',
+    'Tau;': u'\u03a4',
+    'tau;': u'\u03c4',
+    'tbrk;': u'\u23b4',
+    'Tcaron;': u'\u0164',
+    'tcaron;': u'\u0165',
+    'Tcedil;': u'\u0162',
+    'tcedil;': u'\u0163',
+    'Tcy;': u'\u0422',
+    'tcy;': u'\u0442',
+    'tdot;': u'\u25cc\u20db',
+    'telrec;': u'\u2315',
+    'Tfr;': u'\U0001d517',
+    'tfr;': u'\U0001d531',
+    'there4;': u'\u2234',
+    'Therefore;': u'\u2234',
+    'therefore;': u'\u2234',
+    'Theta;': u'\u0398',
+    'theta;': u'\u03b8',
+    'thetasym;': u'\u03d1',
+    'thetav;': u'\u03d1',
+    'thickapprox;': u'\u2248',
+    'thicksim;': u'\u223c',
+    'ThickSpace;': u'\u205f\u200a',
+    'thinsp;': u'\u2009',
+    'ThinSpace;': u'\u2009',
+    'thkap;': u'\u2248',
+    'thksim;': u'\u223c',
+    'THORN;': u'\xde',
+    'THORN': u'\xde',
+    'thorn;': u'\xfe',
+    'thorn': u'\xfe',
+    'Tilde;': u'\u223c',
+    'tilde;': u'\u02dc',
+    'TildeEqual;': u'\u2243',
+    'TildeFullEqual;': u'\u2245',
+    'TildeTilde;': u'\u2248',
+    'times;': u'\xd7',
+    'times': u'\xd7',
+    'timesb;': u'\u22a0',
+    'timesbar;': u'\u2a31',
+    'timesd;': u'\u2a30',
+    'tint;': u'\u222d',
+    'toea;': u'\u2928',
+    'top;': u'\u22a4',
+    'topbot;': u'\u2336',
+    'topcir;': u'\u2af1',
+    'Topf;': u'\U0001d54b',
+    'topf;': u'\U0001d565',
+    'topfork;': u'\u2ada',
+    'tosa;': u'\u2929',
+    'tprime;': u'\u2034',
+    'TRADE;': u'\u2122',
+    'trade;': u'\u2122',
+    'triangle;': u'\u25b5',
+    'triangledown;': u'\u25bf',
+    'triangleleft;': u'\u25c3',
+    'trianglelefteq;': u'\u22b4',
+    'triangleq;': u'\u225c',
+    'triangleright;': u'\u25b9',
+    'trianglerighteq;': u'\u22b5',
+    'tridot;': u'\u25ec',
+    'trie;': u'\u225c',
+    'triminus;': u'\u2a3a',
+    'TripleDot;': u'\u25cc\u20db',
+    'triplus;': u'\u2a39',
+    'trisb;': u'\u29cd',
+    'tritime;': u'\u2a3b',
+    'trpezium;': u'\u23e2',
+    'Tscr;': u'\U0001d4af',
+    'tscr;': u'\U0001d4c9',
+    'TScy;': u'\u0426',
+    'tscy;': u'\u0446',
+    'TSHcy;': u'\u040b',
+    'tshcy;': u'\u045b',
+    'Tstrok;': u'\u0166',
+    'tstrok;': u'\u0167',
+    'twixt;': u'\u226c',
+    'twoheadleftarrow;': u'\u219e',
+    'twoheadrightarrow;': u'\u21a0',
+    'Uacute;': u'\xda',
+    'Uacute': u'\xda',
+    'uacute;': u'\xfa',
+    'uacute': u'\xfa',
+    'Uarr;': u'\u219f',
+    'uArr;': u'\u21d1',
+    'uarr;': u'\u2191',
+    'Uarrocir;': u'\u2949',
+    'Ubrcy;': u'\u040e',
+    'ubrcy;': u'\u045e',
+    'Ubreve;': u'\u016c',
+    'ubreve;': u'\u016d',
+    'Ucirc;': u'\xdb',
+    'Ucirc': u'\xdb',
+    'ucirc;': u'\xfb',
+    'ucirc': u'\xfb',
+    'Ucy;': u'\u0423',
+    'ucy;': u'\u0443',
+    'udarr;': u'\u21c5',
+    'Udblac;': u'\u0170',
+    'udblac;': u'\u0171',
+    'udhar;': u'\u296e',
+    'ufisht;': u'\u297e',
+    'Ufr;': u'\U0001d518',
+    'ufr;': u'\U0001d532',
+    'Ugrave;': u'\xd9',
+    'Ugrave': u'\xd9',
+    'ugrave;': u'\xf9',
+    'ugrave': u'\xf9',
+    'uHar;': u'\u2963',
+    'uharl;': u'\u21bf',
+    'uharr;': u'\u21be',
+    'uhblk;': u'\u2580',
+    'ulcorn;': u'\u231c',
+    'ulcorner;': u'\u231c',
+    'ulcrop;': u'\u230f',
+    'ultri;': u'\u25f8',
+    'Umacr;': u'\u016a',
+    'umacr;': u'\u016b',
+    'uml;': u'\xa8',
+    'uml': u'\xa8',
+    'UnderBar;': '_',
+    'UnderBrace;': u'\u23df',
+    'UnderBracket;': u'\u23b5',
+    'UnderParenthesis;': u'\u23dd',
+    'Union;': u'\u22c3',
+    'UnionPlus;': u'\u228e',
+    'Uogon;': u'\u0172',
+    'uogon;': u'\u0173',
+    'Uopf;': u'\U0001d54c',
+    'uopf;': u'\U0001d566',
+    'UpArrow;': u'\u2191',
+    'Uparrow;': u'\u21d1',
+    'uparrow;': u'\u2191',
+    'UpArrowBar;': u'\u2912',
+    'UpArrowDownArrow;': u'\u21c5',
+    'UpDownArrow;': u'\u2195',
+    'Updownarrow;': u'\u21d5',
+    'updownarrow;': u'\u2195',
+    'UpEquilibrium;': u'\u296e',
+    'upharpoonleft;': u'\u21bf',
+    'upharpoonright;': u'\u21be',
+    'uplus;': u'\u228e',
+    'UpperLeftArrow;': u'\u2196',
+    'UpperRightArrow;': u'\u2197',
+    'Upsi;': u'\u03d2',
+    'upsi;': u'\u03c5',
+    'upsih;': u'\u03d2',
+    'Upsilon;': u'\u03a5',
+    'upsilon;': u'\u03c5',
+    'UpTee;': u'\u22a5',
+    'UpTeeArrow;': u'\u21a5',
+    'upuparrows;': u'\u21c8',
+    'urcorn;': u'\u231d',
+    'urcorner;': u'\u231d',
+    'urcrop;': u'\u230e',
+    'Uring;': u'\u016e',
+    'uring;': u'\u016f',
+    'urtri;': u'\u25f9',
+    'Uscr;': u'\U0001d4b0',
+    'uscr;': u'\U0001d4ca',
+    'utdot;': u'\u22f0',
+    'Utilde;': u'\u0168',
+    'utilde;': u'\u0169',
+    'utri;': u'\u25b5',
+    'utrif;': u'\u25b4',
+    'uuarr;': u'\u21c8',
+    'Uuml;': u'\xdc',
+    'Uuml': u'\xdc',
+    'uuml;': u'\xfc',
+    'uuml': u'\xfc',
+    'uwangle;': u'\u29a7',
+    'vangrt;': u'\u299c',
+    'varepsilon;': u'\u03f5',
+    'varkappa;': u'\u03f0',
+    'varnothing;': u'\u2205',
+    'varphi;': u'\u03d5',
+    'varpi;': u'\u03d6',
+    'varpropto;': u'\u221d',
+    'vArr;': u'\u21d5',
+    'varr;': u'\u2195',
+    'varrho;': u'\u03f1',
+    'varsigma;': u'\u03c2',
+    'varsubsetneq;': u'\u228a\ufe00',
+    'varsubsetneqq;': u'\u2acb\ufe00',
+    'varsupsetneq;': u'\u228b\ufe00',
+    'varsupsetneqq;': u'\u2acc\ufe00',
+    'vartheta;': u'\u03d1',
+    'vartriangleleft;': u'\u22b2',
+    'vartriangleright;': u'\u22b3',
+    'Vbar;': u'\u2aeb',
+    'vBar;': u'\u2ae8',
+    'vBarv;': u'\u2ae9',
+    'Vcy;': u'\u0412',
+    'vcy;': u'\u0432',
+    'VDash;': u'\u22ab',
+    'Vdash;': u'\u22a9',
+    'vDash;': u'\u22a8',
+    'vdash;': u'\u22a2',
+    'Vdashl;': u'\u2ae6',
+    'Vee;': u'\u22c1',
+    'vee;': u'\u2228',
+    'veebar;': u'\u22bb',
+    'veeeq;': u'\u225a',
+    'vellip;': u'\u22ee',
+    'Verbar;': u'\u2016',
+    'verbar;': '|',
+    'Vert;': u'\u2016',
+    'vert;': '|',
+    'VerticalBar;': u'\u2223',
+    'VerticalLine;': '|',
+    'VerticalSeparator;': u'\u2758',
+    'VerticalTilde;': u'\u2240',
+    'VeryThinSpace;': u'\u200a',
+    'Vfr;': u'\U0001d519',
+    'vfr;': u'\U0001d533',
+    'vltri;': u'\u22b2',
+    'vnsub;': u'\u2282\u20d2',
+    'vnsup;': u'\u2283\u20d2',
+    'Vopf;': u'\U0001d54d',
+    'vopf;': u'\U0001d567',
+    'vprop;': u'\u221d',
+    'vrtri;': u'\u22b3',
+    'Vscr;': u'\U0001d4b1',
+    'vscr;': u'\U0001d4cb',
+    'vsubnE;': u'\u2acb\ufe00',
+    'vsubne;': u'\u228a\ufe00',
+    'vsupnE;': u'\u2acc\ufe00',
+    'vsupne;': u'\u228b\ufe00',
+    'Vvdash;': u'\u22aa',
+    'vzigzag;': u'\u299a',
+    'Wcirc;': u'\u0174',
+    'wcirc;': u'\u0175',
+    'wedbar;': u'\u2a5f',
+    'Wedge;': u'\u22c0',
+    'wedge;': u'\u2227',
+    'wedgeq;': u'\u2259',
+    'weierp;': u'\u2118',
+    'Wfr;': u'\U0001d51a',
+    'wfr;': u'\U0001d534',
+    'Wopf;': u'\U0001d54e',
+    'wopf;': u'\U0001d568',
+    'wp;': u'\u2118',
+    'wr;': u'\u2240',
+    'wreath;': u'\u2240',
+    'Wscr;': u'\U0001d4b2',
+    'wscr;': u'\U0001d4cc',
+    'xcap;': u'\u22c2',
+    'xcirc;': u'\u25ef',
+    'xcup;': u'\u22c3',
+    'xdtri;': u'\u25bd',
+    'Xfr;': u'\U0001d51b',
+    'xfr;': u'\U0001d535',
+    'xhArr;': u'\u27fa',
+    'xharr;': u'\u27f7',
+    'Xi;': u'\u039e',
+    'xi;': u'\u03be',
+    'xlArr;': u'\u27f8',
+    'xlarr;': u'\u27f5',
+    'xmap;': u'\u27fc',
+    'xnis;': u'\u22fb',
+    'xodot;': u'\u2a00',
+    'Xopf;': u'\U0001d54f',
+    'xopf;': u'\U0001d569',
+    'xoplus;': u'\u2a01',
+    'xotime;': u'\u2a02',
+    'xrArr;': u'\u27f9',
+    'xrarr;': u'\u27f6',
+    'Xscr;': u'\U0001d4b3',
+    'xscr;': u'\U0001d4cd',
+    'xsqcup;': u'\u2a06',
+    'xuplus;': u'\u2a04',
+    'xutri;': u'\u25b3',
+    'xvee;': u'\u22c1',
+    'xwedge;': u'\u22c0',
+    'Yacute;': u'\xdd',
+    'Yacute': u'\xdd',
+    'yacute;': u'\xfd',
+    'yacute': u'\xfd',
+    'YAcy;': u'\u042f',
+    'yacy;': u'\u044f',
+    'Ycirc;': u'\u0176',
+    'ycirc;': u'\u0177',
+    'Ycy;': u'\u042b',
+    'ycy;': u'\u044b',
+    'yen;': u'\xa5',
+    'yen': u'\xa5',
+    'Yfr;': u'\U0001d51c',
+    'yfr;': u'\U0001d536',
+    'YIcy;': u'\u0407',
+    'yicy;': u'\u0457',
+    'Yopf;': u'\U0001d550',
+    'yopf;': u'\U0001d56a',
+    'Yscr;': u'\U0001d4b4',
+    'yscr;': u'\U0001d4ce',
+    'YUcy;': u'\u042e',
+    'yucy;': u'\u044e',
+    'Yuml;': u'\u0178',
+    'yuml;': u'\xff',
+    'yuml': u'\xff',
+    'Zacute;': u'\u0179',
+    'zacute;': u'\u017a',
+    'Zcaron;': u'\u017d',
+    'zcaron;': u'\u017e',
+    'Zcy;': u'\u0417',
+    'zcy;': u'\u0437',
+    'Zdot;': u'\u017b',
+    'zdot;': u'\u017c',
+    'zeetrf;': u'\u2128',
+    'ZeroWidthSpace;': u'\u200b',
+    'Zeta;': u'\u0396',
+    'zeta;': u'\u03b6',
+    'Zfr;': u'\u2128',
+    'zfr;': u'\U0001d537',
+    'ZHcy;': u'\u0416',
+    'zhcy;': u'\u0436',
+    'zigrarr;': u'\u21dd',
+    'Zopf;': u'\u2124',
+    'zopf;': u'\U0001d56b',
+    'Zscr;': u'\U0001d4b5',
+    'zscr;': u'\U0001d4cf',
+    'zwj;': u'\u200d',
+    'zwnj;': u'\u200c',
+}
+safe_html.StrippingParser.entitydefs = html5entities
+
+
+def handle_entityref(self, name):
+    if self.suppress:
+        return
+    self.result.append(self.convert_entityref(name))
+safe_html.StrippingParser.handle_entityref = handle_entityref
+
+
+def convert_entityref(self, name):
+    if name + ';' in self.entitydefs:
+        x = ';'
+    elif name in self.entitydefs:
+        x = ''
+    else:
+        x = ';'
+    return '&%s%s' % (name, x)
+safe_html.StrippingParser.convert_entityref = convert_entityref
diff --git a/product/PloneHotfix20121106/setHeader.py b/product/PloneHotfix20121106/setHeader.py
new file mode 100644
index 0000000000000000000000000000000000000000..025dfe8855960c3dbbd78f5cf9b46b1a44c9a1f9
--- /dev/null
+++ b/product/PloneHotfix20121106/setHeader.py
@@ -0,0 +1,17 @@
+import re
+from ZPublisher import HTTPResponse
+
+_CRLF = re.compile(r'[\r\n]')
+HTTPResponse._CRLF = _CRLF
+
+
+if getattr(HTTPResponse, '_scrubHeader', None) is None:
+    def _scrubHeader(name, value):
+        return ''.join(_CRLF.split(str(name))), ''.join(_CRLF.split(str(value)))
+
+    HTTPResponse.HTTPResponse.__old_setHeader = HTTPResponse.HTTPResponse.setHeader
+
+    def setHeader(self, name, value, *args, **kwargs):
+        name, value = _scrubHeader(name, value)
+        return self.__old_setHeader(name, value, *args, **kwargs)
+    HTTPResponse.HTTPResponse.setHeader = setHeader