%
% mathfam256.sty
% 2020/01/23 v0.5  -- compatibility with amstext
% 2020/01/22 v0.4  -- sync with LaTeX2e 2020-02-02 dev
% 2019/09/14 v0.3  -- bug fix and support LaTeX2e 2019-10-01
% 2018/01/22 v0.2  -- first CTAN version
% 2016/12/26 v0.1  Hironobu Yamashita (aminophen)
% 2009/02/20 v0.01 Kazuyoshi Yamamoto (ymt)
%
% This package, originally written by Kazuyoshi Yamamoto
% (as ofamex1.sty, ofamex2.sty, ofamex3.sty)
% and renamed/modified by Hironobu Yamashita, is distributed
% at GitHub repository:
% https://github.com/aminophen/mathfam256
%

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mathfam256}
  [2020/01/23 v0.5 Extend math family up to 256]

%% engine check
\ifx\omathchar\@undefined
  \PackageError{mathfam256}{%
    Sorry, this package requires Omega-like engine features.\MessageBreak
    Currently only the following formats are known:\MessageBreak
    * pLaTeX (run on e-pTeX)\MessageBreak
    * upLaTeX (run on e-upTeX)\MessageBreak
    * Lamed (run on Aleph)\MessageBreak
    It seems you are running unsupported engine}\@ehc
  \expandafter\endinput
\fi
\ifx\numexpr\@undefined
  \PackageError{mathfam256}{This package requires e-TeX features}\@ehc
  \expandafter\endinput
\fi

%% engine check has been done, so always 256
\mathchardef\e@mathgroup@top=\@cclvi

%% patch LaTeX2e internal only if older than 2015/01/01
\@ifl@t@r\fmtversion{2015/01/01}{}{%
  %% Increase math alphabet up to 256
  \PackageInfo{mathfam256}{Patch for \noexpand\document@select@group applied}%
  \def\document@select@group#1#2#3#4{%
   \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
   {%
   \ifmmode
     \ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top
       \begingroup
         \escapechar\m@ne
         \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
         \globaldefs\@ne  \math@fonts
       \endgroup
       \expandafter\extract@alph@from@version
           \csname mv@\math@version\expandafter\endcsname
           \expandafter{\number\csname
                         c@mv@\math@version\endcsname}%
            #1%
       \global\advance\csname c@mv@\math@version\endcsname\@ne
     \else
       \let#1\relax
       \@latex@error{Too many math alphabets used
                     in version \math@version}%
          \@eha
    \fi
   \else \expandafter\non@alpherr\fi
   #1{#4}%
   }%
  }%
  \PackageInfo{mathfam256}{Patch for \noexpand\select@group applied}%
  \def\select@group#1#2#3#4{%
   \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
   {%
   \ifmmode
    \ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top
       \begingroup
         \escapechar\m@ne
         \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
         \globaldefs\@ne  \math@fonts
       \endgroup
       \init@restore@version
       \xdef#1{\noexpand\use@mathgroup\noexpand#2%
               {\number\csname c@mv@\math@version\endcsname}}%
       \global\advance\csname c@mv@\math@version\endcsname\@ne
     \else
       \let#1\relax
       \@latex@error{Too many math alphabets used in
                     version \math@version}%
          \@eha
     \fi
   \else \expandafter\non@alpherr\fi
   #1{#4}%
   }%
  }%
  %% Increase math symbol up to 256
  \PackageInfo{mathfam256}{Patch for \noexpand\new@mathgroup applied}%
  \def\new@mathgroup
    {\e@alloc\mathgroup\chardef{\count18}\m@ne\e@mathgroup@top}%
}

%% LaTeX2e 2019/10/01 makes lots of commands robust;
%% follow both old and new behavior
%% -- Among the changes in 2019/10/01,
%%    "making math delimiters robust with \MakeRobust"
%%    was backed out and replaced with "engine protection"
%%    in 2020/02/02.
%%    (see https://github.com/latex3/latex2e/issues/251)
\edef\omfcclvi@reset{%
  \catcode`\noexpand\&=\the\catcode`\&\relax
  \catcode`\noexpand\~=\the\catcode`\~\relax
  \let\noexpand\omfcclvi@reset\noexpand\@undefined}
\@ifl@t@r\fmtversion{2019/10/01}{%
  \catcode`\&=9\relax
  \catcode`\~=14\relax
}{%
  \catcode`\&=14\relax
  \catcode`\~=9\relax
}

%% use \omath... primitives for low-level commands
\def\set@mathchar#1#2#3#4{%
  \ifnum#1<\sixt@@n
    \global\mathcode`#2="\mathchar@type#3\hexnumber@#1#4\relax
  \else
    \global\omathcode`#2="\mathchar@type#3\hexnumber@@#100#4\relax
  \fi
}
\def\set@mathsymbol#1#2#3#4{%
  \ifnum#1<\sixt@@n
    \global\mathchardef#2"\mathchar@type#3\hexnumber@#1#4\relax
  \else
    \global\omathchardef#2"\mathchar@type#3\hexnumber@@#100#4\relax
  \fi
}
\def\set@mathaccent#1#2#3#4{%
  \ifnum#1<\sixt@@n
    \xdef#2{\mathaccent"\mathchar@type#3\hexnumber@#1#4\relax}%
  \else
    \xdef#2{\omathaccent"\mathchar@type#3\hexnumber@@#100#4\relax}%
  \fi
& \MakeRobust#2%
}
\def\set@mathdelimiter#1#2#3#4#5#6{%
  \@tempswatrue
    \ifnum#1<\sixt@@n\relax\else\@tempswafalse\fi
    \ifnum#2<\sixt@@n\relax\else\@tempswafalse\fi
  \if@tempswa
&   \protected
    \xdef#3{\delimiter"\mathchar@type#4\hexnumber@#1#5\hexnumber@#2#6\relax}%
  \else
&   \protected
    \xdef#3{\odelimiter"\mathchar@type#4\hexnumber@@#100#5%
                       "\hexnumber@@#200#6\relax}%
  \fi
}
\def\set@@mathdelimiter#1#2#3#4#5{%
  \@tempswatrue
    \ifnum#1<\sixt@@n\relax\else\@tempswafalse\fi
    \ifnum#2<\sixt@@n\relax\else\@tempswafalse\fi
  \if@tempswa
    \global\delcode`#3="\hexnumber@#1#4\hexnumber@#2#5\relax
  \else
    \global\odelcode`#3="\hexnumber@@#100#4"\hexnumber@@#200#5\relax
  \fi
}
\def\DeclareMathRadical#1#2#3#4#5{%
  \expandafter\ifx
       \csname\expandafter\@gobble\string#1\endcsname
       \relax
     \let#1\radical
  \fi
  \edef\reserved@a{\noexpand\in@
       {\expandafter\@gobble\string\radical}{\meaning#1}}%
  \reserved@a
  \ifin@
    \expandafter\in@\csname sym#2\expandafter\endcsname
       \expandafter{\group@list}%
    \ifin@
      \expandafter\in@\csname sym#4\expandafter\endcsname
         \expandafter{\group@list}%
      \ifin@
        \begingroup
          \count\z@=#3\relax
          \count\tw@\count\z@
          \divide\count\z@\sixt@@n
          \count@\count\z@
          \multiply\count@\sixt@@n
          \advance\count\tw@-\count@
          \edef\reserved@c{%
            \hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
          \count\z@=#5\relax
          \count\tw@\count\z@
          \divide\count\z@\sixt@@n
          \count@\count\z@
          \multiply\count@\sixt@@n
          \advance\count\tw@-\count@
          \edef\reserved@d{%
            \hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
        \expandafter\set@mathradical
           \csname sym#2\expandafter\endcsname
           \csname sym#4\endcsname
           #1\reserved@c\reserved@d
        \endgroup
      \else
        \@latex@error{Symbol font `#4' is not defined}\@eha
      \fi
    \else
      \@latex@error{Symbol font `#2' is not defined}\@eha
    \fi
  \else
    \@latex@error{Command `\string#1' already defined}\@eha
  \fi
}
\def\set@mathradical#1#2#3#4#5{%
  \@tempswatrue
    \ifnum#1<\sixt@@n\relax\else\@tempswafalse\fi
    \ifnum#2<\sixt@@n\relax\else\@tempswafalse\fi
  \if@tempswa
    \xdef#3{\radical"\hexnumber@#1#4\hexnumber@#2#5\relax}%
  \else
    \xdef#3{\oradical"\hexnumber@@#100#4"\hexnumber@@#200#5\relax}%
  \fi
}
\@onlypreamble\set@mathradical

%% patch for \hexnumber@ (e.g. amsfonts.sty contains some codes like
%%   \edef\yen{\noexpand\mathhexbox{\hexnumber@\symAMSa}55}
%% this should work as well)
\def\mathhexbox#1#2#3{%
  \ifnum"#1<\sixt@@n
    \mbox{$\m@th \mathchar"#1#2#3$}%
  \else
    \mbox{$\m@th \omathchar"#100#2#3$}%
  \fi
}
\def\org@hexnumber@#1{\ifcase\number#1
 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
 9\or A\or B\or C\or D\or E\or F\fi}
\def\hexnumber@#1{%
  \ifnum\number#1<\sixt@@n
    \org@hexnumber@{#1}%
  \else
    \hexnumber@@{#1}%
  \fi
}
\def\hexnumber@@#1{\ifcase\number#1
    00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or
          09\or 0A\or 0B\or 0C\or 0D\or 0E\or 0F\or
    10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or
          19\or 1A\or 1B\or 1C\or 1D\or 1E\or 1F\or
    20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 28\or
          29\or 2A\or 2B\or 2C\or 2D\or 2E\or 2F\or
    30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or
          39\or 3A\or 3B\or 3C\or 3D\or 3E\or 3F\or
    40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or
          49\or 4A\or 4B\or 4C\or 4D\or 4E\or 4F\or
    50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or
          59\or 5A\or 5B\or 5C\or 5D\or 5E\or 5F\or
    60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or
          69\or 6A\or 6B\or 6C\or 6D\or 6E\or 6F\or
    70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or
          79\or 7A\or 7B\or 7C\or 7D\or 7E\or 7F\or
    80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or
          89\or 8A\or 8B\or 8C\or 8D\or 8E\or 8F\or
    90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or
          99\or 9A\or 9B\or 9C\or 9D\or 9E\or 9F\or
    A0\or A1\or A2\or A3\or A4\or A5\or A6\or A7\or A8\or
          A9\or AA\or AB\or AC\or AD\or AE\or AF\or
    B0\or B1\or B2\or B3\or B4\or B5\or B6\or B7\or B8\or
          B9\or BA\or BB\or BC\or BD\or BE\or BF\or
    C0\or C1\or C2\or C3\or C4\or C5\or C6\or C7\or C8\or
          C9\or CA\or CB\or CC\or CD\or CE\or CF\or
    D0\or D1\or D2\or D3\or D4\or D5\or D6\or D7\or D8\or
          D9\or DA\or DB\or DC\or DD\or DE\or DF\or
    E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or E8\or
          E9\or EA\or EB\or EC\or ED\or EE\or EF\or
    F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or F8\or
          F9\or FA\or FB\or FC\or FD\or FE\or FF\fi}

%% patch LaTeX2e internal only if newer than (or equal to) 2015/01/01
%% since the error code was introduced at that time
\@ifl@t@r\fmtversion{2015/01/01}{%
  \PackageInfo{mathfam256}{Patch for \noexpand\DeclareSymbolFont applied}%
  \def\DeclareSymbolFont#1#2#3#4#5{%
   \@tempswafalse
   \edef\reserved@b{#2}%
   \def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
        \ifx\reserved@b\reserved@c \@tempswatrue\fi}%
   \cdp@list
   \if@tempswa
     \@ifundefined{sym#1}{%
        \ifnum\count18<\e@mathgroup@top
          \expandafter\new@mathgroup\csname sym#1\endcsname
          \expandafter\new@symbolfont\csname sym#1\endcsname
                          {#2}{#3}{#4}{#5}%
        \else
           \@latex@error{Too many symbol fonts declared}\@eha
        \fi
       }%
       {%
        \@font@info{Redeclaring symbol font `#1'}%
        \def\group@elt##1##2{%
             \noexpand\group@elt\noexpand##1%
             \expandafter\ifx\csname sym#1\endcsname##1%
               \expandafter\noexpand\csname#2/#3/#4/#5\endcsname
             \else
                 \noexpand##2%
             \fi}%
        \xdef\group@list{\group@list}%
        \def\version@elt##1{%
            \expandafter
            \SetSymbolFont@\expandafter##1\csname#2/#3/#4/#5\expandafter
                \endcsname \csname sym#1\endcsname
            }%
        \version@list
       }%
    \else
      \@latex@error{Encoding scheme  `#2' unknown}\@eha
    \fi
  }%
}{}

%% use \omath... primitives for high-level commands
\def\DeclareMathSymbol#1#2#3#4{%
  \expandafter\in@\csname sym#3\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \begingroup
      \if\relax\noexpand#1% is command?
&       \edef\reserved@b{\expandafter\noexpand
&                        \csname\expandafter\@gobble\string#1\space\endcsname}%
        \edef\reserved@a
          {\noexpand\in@{\expandafter\@gobble\string\mathchar}%
~                       {\meaning#1}}%
&                       {\meaning#1\expandafter\meaning\reserved@b}}%
        \reserved@a
&       \global\expandafter\let\reserved@b\@undefined
        \ifin@
          \oset@mathsymbol{#1}{#2}{#3}{#4}%
          \@font@info{Redeclaring math symbol \string#1}%
        \else
          \expandafter\ifx
            \csname\expandafter\@gobble\string#1\endcsname
            \relax
            \oset@mathsymbol{#1}{#2}{#3}{#4}%
          \else
            \@latex@error{Command `\string#1' already defined}\@eha
          \fi
        \fi
      \else
        \oset@mathchar{#1}{#2}{#3}{#4}%
      \fi
    \endgroup
  \else
    \@latex@error{Symbol font `#3' is not defined}\@eha
  \fi
}
%\@onlypreamble\DeclareMathSymbol
\def\oset@mathsymbol#1#2#3#4{%
  \global\omathchardef#1%
    \number
    \numexpr"1000000*\mathchar@type#2+"10000*\csname sym#3\endcsname+#4}
\@onlypreamble\oset@mathsymbol
\def\oset@mathchar#1#2#3#4{%
  \global\omathcode`#1=%
    \number
    \numexpr"1000000*\mathchar@type#2+"10000*\csname sym#3\endcsname+#4}
\@onlypreamble\oset@mathchar
\def\DeclareMathAccent#1#2#3#4{%
  \expandafter\in@\csname sym#3\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \begingroup
      \if\relax\noexpand#1% is command?
        \edef\reserved@a{\noexpand\in@
~          {\expandafter\@gobble\string\mathaccent}{\meaning#1}}%
&         {\expandafter\@gobble\string\mathaccent}
&         {\expandafter\meaning
&          \csname\expandafter\@gobble\string#1\space\endcsname}}%
        \reserved@a
        \ifin@
&         \expandafter\let
&           \csname\expandafter\@gobble\string#1\space\endcsname
&           \@undefined
          \oset@mathaccent{#1}{#2}{#3}{#4}%
          \@font@info{Redeclaring math accent \string#1}%
        \else
          \expandafter\ifx
          \csname\expandafter\@gobble\string#1\endcsname
          \relax
            \oset@mathaccent{#1}{#2}{#3}{#4}%
          \else
            \@latex@error{Command `\string#1' already defined}\@eha
          \fi
        \fi
      \else
       \@latex@error{Not a command name: `\noexpand#1'}\@eha
      \fi
    \endgroup
  \else
    \@latex@error{Symbol font `#3' is not defined}\@eha
  \fi
}
%\@onlypreamble\DeclareMathAccent
\def\oset@mathaccent#1#2#3#4{%
  \xdef#1{\omathaccent%
    \number
    \numexpr"1000000*\mathchar@type#2+"10000*\csname sym#3\endcsname+#4}%
& \MakeRobust#1%
}
\@onlypreamble\oset@mathaccent
%\def\DeclareMathDelimiter#1{%
%  \if\relax\noexpand#1%
%    \expandafter\@DeclareMathDelimiter
%  \else
%    \expandafter\@xxDeclareMathDelimiter
%  \fi
%  #1}
%\@onlypreamble\DeclareMathDelimiter
%\def\@xxDeclareMathDelimiter#1#2#3#4{%
%   \begingroup
%    \let\mathalpha\mathord
%    \ifnum7=\mathchar@type{#2}%
%      \endgroup
%      \expandafter\@firstofone
%    \else
%      \endgroup
%      \DeclareMathSymbol#1{#2}{#3}{#4}%
%      \expandafter\@firstoftwo
%    \fi
%    {\@xDeclareMathDelimiter#1}{#2}{#3}{#4}}
%\@onlypreamble\@xxDeclareMathDelimiter
\def\@DeclareMathDelimiter#1#2#3#4#5#6{%
  \expandafter\in@\csname sym#3\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \expandafter\in@\csname sym#5\expandafter\endcsname
       \expandafter{\group@list}%
    \ifin@
      \begingroup
        \edef\reserved@a{\noexpand\in@
            {\expandafter\@gobble\string\delimiter}{\meaning#1}}%
        \reserved@a
        \ifin@
          \oset@mathdelimiter{#1}{#2}{#3}{#4}{#5}{#6}%
          \@font@info{Redeclaring math delimiter \string#1}%
        \else
      %%%%% BEGIN -- only for "real" format as of 2019-10-01 which used \MakeRobust
        \edef\reserved@a{\noexpand\in@
          {\expandafter\@gobble\string\delimiter}%
          {\expandafter\meaning\csname\expandafter\@gobble\string#1\space\endcsname}}%
        \reserved@a
        \ifin@
          \global % to cancel global assignment done by \MakeRobust
          \expandafter\let\csname\expandafter\@gobble\string#1\space\endcsname\@undefined
          \oset@mathdelimiter{#1}{#2}{#3}{#4}{#5}{#6}%
          \@font@info{Redeclaring math delimiter \string#1}%
        \else
      %%%%% END
          \expandafter\ifx
            \csname\expandafter\@gobble\string#1\endcsname
            \relax
            \oset@mathdelimiter{#1}{#2}{#3}{#4}{#5}{#6}%
          \else
            \@latex@error{Command `\string#1' already defined}\@eha
          \fi
      %%%%% BEGIN -- only for "real" format as of 2019-10-01 which used \MakeRobust
        \fi
      %%%%% END
        \fi
      \endgroup
    \else
      \@latex@error{Symbol font `#5' is not defined}\@eha
    \fi
  \else
    \@latex@error{Symbol font `#3' is not defined}\@eha
  \fi
}
%\@onlypreamble\@DeclareMathDelimiter
\def\@xDeclareMathDelimiter#1#2#3#4#5{%
  \expandafter\in@\csname sym#2\expandafter\endcsname
     \expandafter{\group@list}%
  \ifin@
    \expandafter\in@\csname sym#4\expandafter\endcsname
       \expandafter{\group@list}%
    \ifin@
      \oset@@mathdelimiter{#1}{#2}{#3}{#4}{#5}%
    \else
      \@latex@error{Symbol font `#4' is not defined}\@eha
    \fi
  \else
    \@latex@error{Symbol font `#2' is not defined}\@eha
  \fi
}
%\@onlypreamble\@xDeclareMathDelimiter
\def\oset@mathdelimiter#1#2#3#4#5#6{%
  \begingroup
  \count\z@
    \numexpr"1000000*\mathchar@type#2+"10000*\csname sym#3\endcsname+#4%
  \count\tw@
    \numexpr"10000*\csname sym#5\endcsname+#6%
& \protected
  \xdef#1{\odelimiter\number\count\z@\space \number\count\tw@}%
  \endgroup
}
\@onlypreamble\oset@mathdelimiter
\def\oset@@mathdelimiter#1#2#3#4#5{%
  \begingroup
  \count\z@\numexpr"10000*\csname sym#2\endcsname+#3%
  \count\tw@\numexpr"10000*\csname sym#4\endcsname+#5%
  \global\odelcode`#1=\number\count\z@\space \number\count\tw@
  \endgroup
}
\@onlypreamble\oset@@mathdelimiter
\def\DeclareMathRadical#1#2#3#4#5{%
  \expandafter\ifx
       \csname\expandafter\@gobble\string#1\endcsname
       \relax
     \let#1\radical
  \fi
  \edef\reserved@a{\noexpand\in@
       {\expandafter\@gobble\string\radical}{\meaning#1}}%
  \reserved@a
  \ifin@
    \expandafter\in@\csname sym#2\expandafter\endcsname
       \expandafter{\group@list}%
    \ifin@
      \expandafter\in@\csname sym#4\expandafter\endcsname
         \expandafter{\group@list}%
      \ifin@
        \oset@mathradical{#1}{#2}{#3}{#4}{#5}%
      \else
        \@latex@error{Symbol font `#4' is not defined}\@eha
      \fi
    \else
      \@latex@error{Symbol font `#2' is not defined}\@eha
    \fi
  \else
    \@latex@error{Command `\string#1' already defined}\@eha
  \fi
}
%\@onlypreamble\DeclareMathRadical
\def\oset@mathradical#1#2#3#4#5{%
  \begingroup
  \count\z@\numexpr"10000*\csname sym#2\endcsname+#3%
  \count\tw@\numexpr"10000*\csname sym#4\endcsname+#5%
  \xdef#1{\oradical\number\count\z@\space \number\count\tw@}%
  \endgroup
}
\@onlypreamble\oset@mathradical

%% reset
\omfcclvi@reset

%% patch: amstext.sty redefines \mathhexbox to use its own \text
\let\omfcclvi@my@mathhexbox\mathhexbox
\def\omfcclvi@patch@mathhexbox{%
  \ifx\mathhexbox\omfcclvi@old@mathhexbox
    \expandafter\@firstoftwo   % known -> info only
  \else\ifx\mathhexbox\omfcclvi@my@mathhexbox
    \expandafter\expandafter\expandafter\@firstoftwo   % known -> info only
  \else
    \expandafter\expandafter\expandafter\@secondoftwo  % unknown -> warning
  \fi\fi
  \PackageInfo\PackageWarning{mathfam256}{Redefining \string\mathhexbox}%
  \let\mathhexbox\omfcclvi@new@mathhexbox
  \let\omfcclvi@old@mathhexbox\@undefined
  \let\omfcclvi@new@mathhexbox\@undefined
  \let\omfcclvi@patch@mathhexbox\@undefined}
\begingroup \catcode`\"=12
\gdef\omfcclvi@old@mathhexbox#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
\gdef\omfcclvi@new@mathhexbox#1#2#3{%
  \ifnum"#1<\sixt@@n
    \text{$\m@th \mathchar"#1#2#3$}%
  \else
    \text{$\m@th \omathchar"#100#2#3$}%
  \fi}
\endgroup
\AtBeginDocument{\ifx\text\@undefined\else \omfcclvi@patch@mathhexbox \fi}

%% all done
\endinput