{"version":3,"file":"js/mathjax.5578c9c8.bundle.js","mappings":"wEAeAA,OAAOC,QAAU,CACfC,OAAQ,CACNC,MAAO,CAELC,QAVN,WACE,MAAMC,EAAO,sBAEb,OADiBC,KAAKC,MAAMC,SAASC,gBAAgBC,QAAQC,YAC1C,UAASN,IAAU,GAAEO,OAAOC,KAAKC,QAAQT,GAC9D,CAMeU,KAGbC,QAAS,CACPC,SAAS,EACTC,SAAU,IAEZC,QAAS,CACPC,YAAY,EACZC,YAAa,CACXC,SAAU,CACRC,KAAM,OACNC,MAAM,EACNC,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,OAAQ,OACRC,UAAU,IAGdC,aAAc,CAAC,SAAU,WAAY,QAAS,WAAY,MAAO,QACjEC,gBAAiB,uBACjBC,iBAAkB,wBAClBC,YAAa,CACXC,MAAO,CACLC,KAAM,OACNC,QAAS,OACTC,OAAQ,OACRC,OAAQ,QAEVC,cAAe,CACbC,MAAM,EACNC,OAAO,EACPC,QAAQ,EACRC,MAAM,EACNC,YAAY,EACZC,MAAM,KAIZC,IAAK,CACHC,SAAU,CACR,MAAO,CAAC,MAAO,QACf,MAAO,CAAC,UAAW,aAErBC,WAAY,CAAC,CAAC,IAAK,MACnBC,YAAa,CAAC,CAAC,KAAM,OACrBC,gBAAgB,EAChBC,qBAAqB,EACrBC,aAAa,EACbC,QAAS,QACTC,UAAW,OACXC,cAAe,MACfC,KAAM,OACNC,aAAa,IAUjBC,EAAQ,OAMR,MAAM,OAACC,GAAUD,EAAQ,OACzBC,EAAOC,QACL,SACA,UACA,OACA,iBACA,YACA,aACA,eACA,4BACA,UACA,WAOFF,EAAQ,OAERA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,MAMRA,EAAQ,OAERA,EAAQ,M,cCjHR,WACE,IAAIG,EAAa,CAAC,CAAC,IAAK,KAAM,CAAC,KAAM,OAErC7D,OAAO8D,gBAAkB,WACvB,IAEIC,EAAQC,EAAOC,EAAKC,EAAMC,EAC1BC,EAHAC,EAAW,KASXC,EAAQ,0EAUZ,SAASC,EAAYC,EAAGC,GAOtB,IANA,IAAIC,EAAQX,EACTY,MAAMH,EAAGC,EAAI,GACbG,KAAK,IACLC,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACVJ,EAAID,GACTT,EAAOU,GAAK,GACZA,IAEFV,EAAOS,GAAK,KAAOJ,EAAKU,OAAS,KACjCV,EAAKW,KAAKL,GACVV,EAAQC,EAAMC,EAAO,IACvB,CASA,SAASc,EAAWC,GAClBjB,EAAQC,EAAMC,EAAO,KACrBE,EAAO,GAGP,IAAK,IAAII,EAAI,EAAGU,GADhBnB,EAASkB,EAAKJ,QAAQ,SAAU,MAAMM,MAAMb,IACjBQ,OAAQN,EAAIU,EAAGV,GAAK,EAAG,CAChD,IAAIE,EAAQX,EAAOS,GACK,MAApBE,EAAMU,OAAO,IAKfrB,EAAOS,GAAK,KAAOJ,EAAKU,OAAS,KACjCV,EAAKW,KAAKL,IACDV,EAMLU,IAAUT,EACRE,EACFD,EAAOM,EAEPD,EAAYP,EAAOQ,GAEZE,EAAMW,MAAM,WACjBnB,GAEFK,EAAYP,EADZQ,EAAIN,GAGNF,EAAQC,EAAMC,EAAO,KACrBC,EAAS,GACU,MAAVO,EACTP,IACmB,MAAVO,GAAiBP,GAC1BA,IAOEO,IAAUb,EAAW,GAAG,IAAMa,IAAUb,EAAW,GAAG,IACxDG,EAAQQ,EACRP,EAAMS,EACNP,EAAS,GACuB,UAAvBO,EAAMY,OAAO,EAAG,KACzBtB,EAAQQ,EACRP,EAAM,QAAUS,EAAMY,OAAO,GAC7BnB,EAAS,EAGf,CAIA,OAHID,GACFK,EAAYP,EAAOE,GAEdH,EAAOa,KAAK,GACrB,CAMA,SAASW,EAAYN,GAKnB,OAJAA,EAAOA,EAAKJ,QAAQ,cAAc,SAASQ,EAAOG,GAChD,OAAOpB,EAAKoB,EACd,IACApB,EAAO,KACAa,CACT,CAcAQ,eAAexE,EAAQyE,GACrB,QAA+BC,IAA3BD,EAAKhF,QAAQkF,UAQjB,OAHA3F,QAAQe,QAAQ6E,QAAU5F,QAAQe,QAAQ6E,QACvCC,MAAK,IAAM7F,QAAQ8F,eAAe,CAACL,MACnCM,OAAMC,GAAOC,QAAQC,IAAK,6BAA4BF,EAAIG,aACtDnG,QAAQe,QAAQ6E,OACzB,CAEA,SAASQ,EAAcX,EAAMY,GAC3B,IAAIC,EAAkBD,EAAaE,eAInC,SAASC,KAzBX,SAAkBf,EAAMgB,QACSf,IAA3BD,EAAKhF,QAAQkF,UACfc,IAEAzF,EAAQoD,EAASsC,IAAI,IAAIb,KAAKY,EAElC,CAoBIE,CAASlB,GAAM,WACb,IAAImB,EAAaxC,EAASyC,cACxBC,EAAW1C,EAAS2C,QAAQ,uBAC5BC,EAAW5C,EAAS6C,GAAG,UAEzBH,EAASI,YAAY,QAASF,GAC1BA,EACFF,EAASK,IAAI,SAAU,IAEvBL,EAASK,IAAI,SAAUP,GAGzBxC,EAASgD,UAAUR,EACrB,GACF,CAlBAN,EAAgBe,MAAMC,MAAM,gBAAiBvC,GAC7CuB,EAAgBe,MAAMC,MAAM,iBAAkBhC,GAmB9Ce,EAAagB,MAAMC,MAAM,mBAAoBd,GAC7CxG,QAAQe,QAAQ6E,QAAQC,KAAKW,EAC/B,CAmCA,MAAO,CACLe,QALF,SAAiB9B,GACf,OAAOzE,EAAQyE,EACjB,EAIE+B,aAnCF,SAAsB/B,GACpB,IAAIgC,EAAaC,EAAEjC,GAAMsB,QAAQ,mBACjC3C,EAAWqD,EAAWE,KAAK,gBAE3B,IAAIC,EAAUH,EAAW7E,KAAK,WAC5BiF,EAAYC,SAASC,yBAEvBF,EAAUR,MAAMC,MAAM,iBAAiB,SAAuBtC,EAAMgD,GAClE,OAAOhD,EAAKJ,QAAQ,6CAA6C,SAASqD,EAAOC,GAC/E,MAAO,eAAiBF,EAAIE,GAAS,iBACvC,GACF,IAEA,IAAIC,EAAS,IAAIL,SAASM,OAAOP,EAAW,MAAQD,EAAS,CAC3DS,WAAY,CACVC,QAAS,WACP,OAAO,CACT,GAEFC,QAAS,CACPC,YACE,yFAINpC,EAAcX,EAAM0C,GACpBA,EAAOM,KACT,EAUF,EAEA,IAAIC,EAAK7E,kBAET9D,OAAOwH,QAAUmB,EAAGnB,QAAQoB,KAAKD,GAEjChB,EAAEkB,GAAGrB,QAAU,WAIb,OAHAG,EAAEmB,MAAMC,MAAK,WACXJ,EAAGnB,QAAQsB,KACb,IACOA,IACT,EAEAnB,EAAEkB,GAAGG,SAAW,WAOdrB,EAAEmB,MAAMC,MAAK,SAASvE,EAAGkB,IANzB,SAAmBA,GACjB,MAAMuD,EAAanF,kBACnB4B,EAAK7C,KAAK,WAAYoG,GACtBA,EAAWxB,aAAa/B,EAAKiB,IAAI,GACnC,CAGEuC,CAAUvB,EAAEjC,GACd,GACF,CACD,CArOD,E,w5BCuEIzF,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,OAAQ,EAAAC,QAAS,SAG/C,IAAAC,oBAAmB,CAACC,EAAG,CACrBC,SAAU,CACRC,YAAa,EACbC,eAAgB,GAElBC,WAAY,CACVC,OAAQ,GAEVC,KAAM,CACJC,WAAY,EACZC,SAAU,EACVC,QAAS,EACTC,YAAa,EACbC,SAAU,EACVC,aAAc,EACdC,SAAU,EACVC,SAAU,EACVC,QAAS,CACPC,WAAY,EACZC,IAAK,EACLC,cAAe,EACfC,WAAY,EACZC,QAAS,EACTC,SAAU,CACRC,QAAS,EACTC,QAAS,EACTC,YAAa,EACbC,WAAY,EACZ3G,KAAM,EACN4G,WAAY,EACZC,SAAU,EACVC,OAAQ,EACRC,QAAS,EACTC,MAAO,EACPC,OAAQ,EACRC,GAAI,EACJC,cAAe,EACfC,GAAI,EACJC,GAAIA,EACJC,QAAS,EACTC,SAAU,EACVC,MAAO,EACPC,KAAM,EACNC,GAAI,EACJC,OAAQ,EACRC,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,OAAQ,EACRC,IAAK,EACLC,MAAO,EACPC,IAAK,EACLC,WAAY,EACZC,UAAW,GAEbC,WAAY,EACZC,mBAAoB,EACpBC,qBAAsB,GAExBC,UAAW,EACXC,KAAM,CACJC,QAAS,GACTC,KAAM,GACNC,YAAa,GACbC,QAAS,GACTC,QAAS,GACTC,eAAgB,KAGpBC,SAAU,CACRC,QAAS,GACTC,KAAM,CACJC,aAAc,GACdC,eAAgB,GAChBC,YAAa,GACbC,aAAc,GACdC,aAAc,KAGlBvN,QAAS,GACPwN,KAAM,CACNC,UAAW,GACXC,KAAM,GACNC,SAAU,GACVC,SAAU,GACVC,aAAc,GACdC,WAAY,GACZC,QAAS,GACTC,gBAAiB,GACjBC,QAAS,GACTC,UAAW,GACXC,OAAQ,GACRC,QAAS,GACTC,QAAS,GACTC,OAAQ,OC9KRzO,QAAQe,UACVf,QAAQe,QAAQ2N,oBAAoB,cAAelB,GAAAA,aACnDxN,QAAQe,QAAQ2N,oBAAoB,iBAAkBlF,EAAAA,gBACtDxJ,QAAQe,QAAQ4N,WAAW,eAC3B3O,QAAQe,QAAQ6N,WAAW,mBAEzB5O,QAAQC,SACVD,QAAQqJ,EAAElJ,QAAQA,QAAQ0O,UAAaC,GAAQ9O,QAAQC,OAAO8O,KAAKD,G,iTCcjE9O,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,iBAAkB,EAAAC,QAAS,UAGzD,IAAAC,oBAAmB,CAACC,EAAG,CACrB2F,MAAO,CACLC,OAAQ,EACRpM,IAAK,CACHqM,cAAe,EACfC,WAAY,EACZC,QAAS,EACTC,WAAY,EACZtC,YAAa,EACbuC,SAAU,EACVC,aAAc,EACdC,aAAc,EACdC,UAAW,EACXC,MAAO,EACPC,UAAW,EACXC,iBAAkB,EAClBC,OAAQ,EACRC,UAAW,EACXC,KAAM,EACNC,aAAc,EACdC,SAAU,EACVC,UAAW,EACXC,KAAM,CACJC,kBAAmB,EACnBC,UAAW,EACXC,YAAa,Q,gBCrDd,SAAqBC,EAAc,GAAI1N,GAAM,GAClD,GAAI7C,QAAQe,QAAS,CACf8B,IACF7C,QAAQe,QAAQ2N,oBAAoB,MAAO1O,QAAQqJ,EAAE2F,MAAMC,OAAOuB,KAClExQ,QAAQe,QAAQ0P,SAAS,QAEtBzQ,QAAQ0Q,OAAO7N,MAClB7C,QAAQ0Q,OAAO7N,IAAM,CAAC,GAExB,IAAIC,EAAW9C,QAAQ0Q,OAAO7N,IAAIC,SAClC9C,QAAQ0Q,OAAO7N,IAAIC,SAAWyN,EAC1BzN,IACF,IAAA6N,QAAO3Q,QAAQ0Q,OAAO7N,IAAK,CAACC,YAEhC,CACF,CCbA8N,CAAY,CAAC,Q,gGCGT5Q,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,YAAa,EAAAC,QAAS,kBAGpD,IAAAC,oBAAmB,CAACC,EAAG,CACrB2F,MAAO,CACLnM,IAAK,CACHgO,IAAK,CACHC,iBAAkB,EAClBC,SAAU,EACVC,WAAY,O,sFCXhBhR,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,aAAc,EAAAC,QAAS,kBAGrD,IAAAC,oBAAmB,CAACC,EAAG,CACrB2F,MAAO,CACLnM,IAAK,CACHwK,KAAM,CACJ4D,kBAAmB,EACnBC,YAAa,O,qwBCqDjBlR,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,eAAgB,EAAAC,QAAS,WAGvD,IAAAC,oBAAmB,CAACC,EAAG,CACrB8H,OAAQ,CACNC,SAAU,EACVC,MAAO,CACLC,SAAU,EACVC,SAAU,EACVC,MAAO,EACPvE,QAAS,EACTC,eAAgB,EAChBuE,YAAa,EACbC,SAAU,CACR/G,QAAS,EACTgH,SAAU,EACV/G,QAAS,EACTzG,KAAM,EACN6G,SAAU,EACVE,QAAS,EACTC,MAAO,EACPC,OAAQ,EACRC,GAAI,EACJC,cAAe,EACfC,GAAI,EACJC,GAAIA,EACJC,QAAS,EACTE,MAAO,EACPC,KAAM,EACNC,GAAI,EACJC,OAAQ,EACRC,MAAO,EACPE,QAAS,EACTC,OAAQ,EACRC,IAAK,EACLC,MAAO,EACPC,IAAK,EACLC,WAAY,EACZsF,WAAY,EACZrF,UAAW,IAGfsF,OAAQ,CACNP,SAAU,EACVC,SAAU,EACV5E,UAAW,EACXM,QAAS,EACTC,eAAgB,EAChBwE,SAAU,CACR/G,QAAS,EACTgH,SAAU,EACV/G,QAAS,EACTzG,KAAM,EACN6G,SAAU,EACVE,QAAS,EACTC,MAAO,EACPC,OAAQ,EACRC,GAAI,EACJC,cAAe,EACfC,GAAI,EACJC,GAAI,GACJC,QAAS,GACTE,MAAO,GACPC,KAAM,GACNC,GAAI,GACJC,OAAQ,GACRC,MAAO,GACPE,QAAS,GACTC,OAAQ,GACRC,IAAK,GACLC,MAAO,GACPC,IAAK,GACLC,WAAY,GACZsF,WAAY,GACZrF,UAAW,SC1IfvM,QAAQC,SACV,IAAA6R,iBAAgB9R,QAAQ0Q,OAAOzQ,OAAQ,eAAgB,CACrD8R,WAAU,IACD/R,QAAQC,OAAO8O,KAAK,4BAK7B/O,QAAQe,UACVf,QAAQe,QAAQ2N,oBAAoB,QAAS,EAAAsD,OAC7ChS,QAAQe,QAAQkR,UAAU,S,mhBCgCxBjS,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,yBAA0B,EAAAC,QAAS,eAGjE,IAAAC,oBAAmB,CAACC,EAAG,CACrB8H,OAAQ,CACNE,MAAO,CACLa,MAAO,CACLjD,OAAQ,EACRpM,IAAK,CACH,cAAe,EACfsP,KAAM,EACN,eAAgB,EAChBC,QAAS,EACTC,OAAQ,EACRC,QAAS,EACTC,UAAW,EACXC,OAAQ,EACR,yBAA0B,EAC1B,kBAAmB,EACnB,oBAAqB,EACrB,aAAc,EACdC,QAAS,EACT,wBAAyB,EACzB,YAAa,EACb,YAAa,EACb,cAAe,KAIrBZ,OAAQ,CACNK,MAAO,CACLrP,IAAK,CACH,cAAe,EACfsP,KAAM,EACNO,WAAY,EACZ,gBAAiB,EACjB,eAAgB,EAChBN,QAAS,EACTC,OAAQ,EACRC,QAAS,EACTC,UAAW,EACXC,OAAQ,EACR,yBAA0B,EAC1B,kBAAmB,EACnB,oBAAqB,EACrB,aAAc,EACd,cAAe,EACfG,OAAQ,EACRF,QAAS,EACT,wBAAyB,EACzB,mBAAoB,EACpB,aAAc,EACd,oBAAqB,EACrB,eAAgB,EAChB,YAAa,EACb,YAAa,EACb,cAAe,S,0BCjGzB,GAAIzS,QAAQe,QAAS,EACnB,IAAA+Q,iBAAgB9R,QAAQ0Q,OAAQ,QAAS,CACvCkC,QAAS,EAAAC,QAAQC,YAAY,8BAA8B,KAE7D,MAAM5R,GAAU,IAAA6R,uBAAsB/S,QAAQ0Q,OAAOW,OAAS,CAAC,EAAG,EAAA2B,QAAQC,UAC1E,IAAAnB,iBAAgB9R,QAAQ0Q,OAAQ,QAAS,CAACwC,KAAM,IAAI,EAAAF,QAAQ9R,IAC9D,C,iGCNIlB,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,UAAW,EAAAC,QAAS,YAGlD,IAAAC,oBAAmB,CAACC,EAAG,CACrBI,WAAY,CACVxJ,OAAQ,EACRkT,QAAS,EACTpS,QAAS,K,8DCEN,MAAMqS,EAAe,CAC1B,uBAAwB,CAAC,YAAa,YACtC,kBAAmB,CAAC,wBACpB,gBAAiB,CAAC,uBAAwB,WAC1C,aAAc,CAAC,aACf,qBAAsB,CAAC,kBACvB,eAAgB,CAAC,iBAAkB,oBACnC,iBAAkB,CAAC,iBAAkB,iBACrC,YAAa,CAAC,kBACd,cAAe,CAAC,kBAChB,aAAc,CAAC,iBAAkB,YAAa,oBAC9C,mBAAoB,CAAC,kBACrB,eAAgB,CAAC,kBACjB,mBAAoB,CAAC,kBACrB,eAAgB,CAAC,iBAAkB,iBACnC,kBAAmB,CAAC,kBACpB,cAAe,CAAC,kBAChB,gBAAiB,CAAC,kBAClB,iBAAkB,CAAC,iBAAkB,eACrC,qBAAsB,CAAC,iBAAkB,oBACzC,gBAAiB,CAAC,kBAClB,iBAAkB,CAAC,iBAAkB,mBAAoB,aACzD,aAAc,CAAC,kBACf,kBAAmB,CAAC,iBAAkB,mBAAoB,aAC1D,eAAgB,CAAC,iBAAkB,aACnC,mBAAoB,CAAC,kBACrB,iBAAkB,CAAC,kBACnB,oBAAqB,CAAC,kBACtB,gBAAiB,CAAC,kBAClB,gBAAiB,CAAC,kBAClB,mBAAoB,CAAC,kBACrB,kBAAmB,CAAC,kBACpB,iBAAkB,CAAC,iBAAkB,oBACrC,mBAAoB,CAAC,kBACrB,gBAAiB,CAAC,kBAClB,aAAc,CAAC,kBACf,cAAe,CAAC,gBAChB,eAAgB,CAAC,iBAAkB,cAS/BC,EAAcC,MAAMC,KAAKC,OAAOC,KAAKL,IACpCM,QAAO5E,GAA6B,UAArBA,EAAKzJ,OAAO,EAAE,IACb,mBAATyJ,GACS,kBAATA,GACS,uBAATA,IAED6E,EAAW,CACtB,QAAW,CAAC,UACZ,YAAa,CACX,iBACA,YACA,mBACA,oBACA,gBACA,iBACA,sBAEF,iBAAkB,CAChB,iBACA,wBACGN,GAEL,qBAAsBA,IChFxB,IAAAvB,iBAAgB9R,QAAQ0Q,OAAOzQ,OAAQ,eAAgBmT,IACvD,IAAAtB,iBAAgB9R,QAAQ0Q,OAAOzQ,OAAQ,QDmDlB,CACnB4C,IAAK,iCACL+Q,IAAK,iCACLC,IAAK,4BCrDP,IAAA/B,iBAAgB9R,QAAQ0Q,OAAOzQ,OAAQ,WAAY0T,IACnD,IAAA7B,iBAAgB9R,QAAQ0Q,OAAOzQ,OAAQ,SDmFV,CAC3B,cAAe,cACf,gBAAiB,gBACjB,qBAAsB,qBACtB,kBAAmB,oB,eE5FrB,EAAAyD,OAAOC,QAAQ,UAEf,EAAAD,OAAOqL,QAAQ,EAAA+E,OAAO/E,MACflJ,MAAK,IAAM,EAAAiO,OAAOC,UAClBhO,OAAMiO,GAAS,EAAAF,OAAOG,OAAOD,I,sHCEhChU,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,UAAW,EAAAC,QAAS,OAGlD,IAAAC,oBAAmB,CAACC,EAAG,CACrB6K,GAAI,CACFC,KAAM,CACJC,cAAe,EACfC,KAAM,EACNC,YAAa,EACb9H,WAAY,EACZ+H,eAAgB,OChBlBvU,QAAQe,SAA6B,oBAAXhB,QAC5BC,QAAQe,QAAQyT,eAAclM,IAAW,EAAAgM,EAAAA,aAAYhM,IAAU,G,gGCE7DtI,QAAQC,QACVD,QAAQC,OAAOiJ,aAAa,UAAW,EAAAC,QAAS,OAGlD,IAAAC,oBAAmB,CAACC,EAAG,CACrB6K,GAAI,CACFO,KAAM,CACJC,YAAa,EACbC,YAAa,EACbF,KAAM,OCZRzU,QAAQe,SAA6B,oBAAXhB,QAC5BC,QAAQe,QAAQyT,eAAclM,IAAW,EAAAoM,EAAAA,aAAYpM,I,4BCJvDkL,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIC,EAAW,IAAIC,IACnBH,EAAA,QAAkBE,C,qCCFlB,IAAIE,EAAmBpM,MAAQA,KAAKoM,kBAAqBzB,OAAO0B,OAAS,SAAUC,EAAGlQ,EAAGmQ,EAAGC,QAC7E3P,IAAP2P,IAAkBA,EAAKD,GAC3B,IAAIE,EAAO9B,OAAO+B,yBAAyBtQ,EAAGmQ,GACzCE,KAAS,QAASA,GAAQrQ,EAAEuQ,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMjP,IAAK,WAAa,OAAOzB,EAAEmQ,EAAI,IAE5D5B,OAAOoB,eAAeO,EAAGE,EAAIC,EAChC,EAAI,SAAUH,EAAGlQ,EAAGmQ,EAAGC,QACT3P,IAAP2P,IAAkBA,EAAKD,GAC3BD,EAAEE,GAAMpQ,EAAEmQ,EACb,GACGQ,EAAsB/M,MAAQA,KAAK+M,qBAAwBpC,OAAO0B,OAAS,SAAUC,EAAGU,GACxFrC,OAAOoB,eAAeO,EAAG,UAAW,CAAEQ,YAAY,EAAMb,MAAOe,GAClE,EAAI,SAASV,EAAGU,GACbV,EAAW,QAAIU,CACnB,GACIC,EAAgBjN,MAAQA,KAAKiN,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIP,WAAY,OAAOO,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIX,KAAKW,EAAe,YAANX,GAAmB5B,OAAOyC,UAAUC,eAAeC,KAAKJ,EAAKX,IAAIH,EAAgBe,EAAQD,EAAKX,GAEtI,OADAQ,EAAmBI,EAAQD,GACpBC,CACX,EACII,EAAavN,MAAQA,KAAKuN,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAU9B,GAAS,IAAM+B,EAAKL,EAAUM,KAAKhC,GAAS,CAAE,MAAOiC,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAASlC,GAAS,IAAM+B,EAAKL,EAAiB,MAAE1B,GAAS,CAAE,MAAOiC,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKb,GAJlB,IAAelB,EAIakB,EAAOiB,KAAOP,EAAQV,EAAOlB,QAJ1CA,EAIyDkB,EAAOlB,MAJhDA,aAAiByB,EAAIzB,EAAQ,IAAIyB,GAAE,SAAUG,GAAWA,EAAQ5B,EAAQ,KAIjBjP,KAAK+Q,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUU,MAAMb,EAASC,GAAc,KAAKQ,OAClE,GACJ,EACIK,EAAetO,MAAQA,KAAKsO,aAAgB,SAAUd,EAASe,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GnO,EAAI,CAAEoO,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPH,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGI,KAAM,GAAIC,IAAK,IAChG,OAAOJ,EAAI,CAAEV,KAAMe,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXhI,SAA0B2H,EAAE3H,OAAOiI,UAAY,WAAa,OAAOjP,IAAM,GAAI2O,EACvJ,SAASK,EAAKtS,GAAK,OAAO,SAAUsQ,GAAK,OACzC,SAAckC,GACV,GAAIV,EAAG,MAAM,IAAIW,UAAU,mCAC3B,KAAO3O,OACH,GAAIgO,EAAI,EAAGC,IAAMC,EAAY,EAARQ,EAAG,GAAST,EAAU,OAAIS,EAAG,GAAKT,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEpB,KAAKmB,GAAI,GAAKA,EAAER,SAAWS,EAAIA,EAAEpB,KAAKmB,EAAGS,EAAG,KAAKd,KAAM,OAAOM,EAE3J,OADID,EAAI,EAAGC,IAAGQ,EAAK,CAAS,EAARA,EAAG,GAAQR,EAAEzC,QACzBiD,EAAG,IACP,KAAK,EAAG,KAAK,EAAGR,EAAIQ,EAAI,MACxB,KAAK,EAAc,OAAX1O,EAAEoO,QAAgB,CAAE3C,MAAOiD,EAAG,GAAId,MAAM,GAChD,KAAK,EAAG5N,EAAEoO,QAASH,EAAIS,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAK1O,EAAEuO,IAAIK,MAAO5O,EAAEsO,KAAKM,MAAO,SACxC,QACI,KAAMV,EAAIlO,EAAEsO,MAAMJ,EAAIA,EAAE1S,OAAS,GAAK0S,EAAEA,EAAE1S,OAAS,KAAkB,IAAVkT,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAE1O,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAV0O,EAAG,MAAcR,GAAMQ,EAAG,GAAKR,EAAE,IAAMQ,EAAG,GAAKR,EAAE,IAAM,CAAElO,EAAEoO,MAAQM,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAY1O,EAAEoO,MAAQF,EAAE,GAAI,CAAElO,EAAEoO,MAAQF,EAAE,GAAIA,EAAIQ,EAAI,KAAO,CACpE,GAAIR,GAAKlO,EAAEoO,MAAQF,EAAE,GAAI,CAAElO,EAAEoO,MAAQF,EAAE,GAAIlO,EAAEuO,IAAI9S,KAAKiT,GAAK,KAAO,CAC9DR,EAAE,IAAIlO,EAAEuO,IAAIK,MAChB5O,EAAEsO,KAAKM,MAAO,SAEtBF,EAAKX,EAAKjB,KAAKE,EAAShN,EAC5B,CAAE,MAAO0N,GAAKgB,EAAK,CAAC,EAAGhB,GAAIO,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARQ,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEjD,MAAOiD,EAAG,GAAKA,EAAG,QAAK,EAAQd,MAAM,EAC9E,CAtBgDJ,CAAK,CAACtR,EAAGsQ,GAAK,CAAG,CAuBrE,EACIqC,EAAmBrP,MAAQA,KAAKqP,iBAAoB,SAAUnC,GAC9D,OAAQA,GAAOA,EAAIP,WAAcO,EAAM,CAAE,QAAWA,EACxD,EACAvC,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQsD,SAAWtD,EAAQuD,SAAM,EACjC,IASIA,EATAC,EAAMvC,EAAa,EAAQ,QAC3BwC,EAAgBxC,EAAa,EAAQ,QACrCyC,EAAyBzC,EAAa,EAAQ,QAC9C0C,EAAc1C,EAAa,EAAQ,QACnC2C,EAAcP,EAAgB,EAAQ,QACtCQ,EAA8B,EAAQ,OACtCC,EAAqB7C,EAAa,EAAQ,QAC1C8C,EAAiB,EAAQ,OACzBC,EAAgBX,EAAgB,EAAQ,QAE5C,SAAWE,GACPA,EAAIU,QAAUF,EAAeG,UAAUC,QACvCZ,EAAID,SAAWE,EAAIY,YACnBb,EAAIc,YAAcb,EAAIa,YACtBd,EAAIe,YAAcd,EAAIc,YACtBf,EAAIgB,WAAaf,EAAIe,WACrBhB,EAAIiB,SAAWhB,EAAIgB,SACnBjB,EAAIkB,sBAAwBZ,EAA4Ba,sBACxDnB,EAAIoB,eAAiBb,EAAmBc,YACxCrB,EAAIsB,mBAAqBnB,EAAuB/B,UAChD4B,EAAIuB,UAAYrB,EAAcsB,OAC9BxB,EAAIyB,gBAAkB,WAClB,OAAOrB,EAAYsB,iBAA6B,UACpD,EACA1B,EAAI2B,eAAiB,SAAUC,GAC3B,OAAO5D,EAAUvN,UAAM,OAAQ,GAAQ,WACnC,IAAIoR,EACJ,OAAO9C,EAAYtO,MAAM,SAAUqR,GAE/B,MAAO,CAAC,GADRD,EAAOpB,EAAcsB,QAAQzT,IAAIsT,IACf,IAAIvD,SAAQ,SAAU2D,EAAKC,GAAQ,OAAOD,EAAI/Z,KAAKia,UAAUL,GAAQ,IAC/E5B,EAAIkC,cAAJlC,CAAmB2B,GAC/B,GACJ,GACJ,CACH,CAxBD,CAwBG5B,EAAMvD,EAAQuD,MAAQvD,EAAQuD,IAAM,CAAC,IACxCvD,EAAQsD,SAAWC,EAAID,SACvBM,EAAY0B,QAAQK,cAAcC,OAAQ,EAC1C5F,EAAA,QAAkBuD,C,qCCrGlB,IACQsC,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEAE,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQtL,iBAAc,EACtB,IACIA,EAAe,SAAU+R,GAEzB,SAAS/R,EAAYxJ,GACjB,IAAIwb,EAAQD,EAAOnF,KAAKtN,KAAM9I,EAAOQ,WAAasI,KAGlD,OAFA0S,EAAMxb,OAASA,EACfwb,EAAMC,OAAS,IAAIzb,EAAO0b,UACnBF,CACX,CAwNA,OA9NAZ,EAAUpR,EAAa+R,GAOvB/R,EAAY0M,UAAU3V,MAAQ,SAAU0E,EAAM0W,GAE1C,YADe,IAAXA,IAAqBA,EAAS,aAC3B7S,KAAK2S,OAAOG,gBAAgB3W,EAAM0W,EAC7C,EACAnS,EAAY0M,UAAUf,OAAS,SAAU0G,EAAMC,GAC3C,OAAQA,EACJhT,KAAKtI,SAASub,gBAAgBD,EAAID,GAClC/S,KAAKtI,SAASwb,cAAcH,EACpC,EACArS,EAAY0M,UAAUjR,KAAO,SAAUA,GACnC,OAAO6D,KAAKtI,SAASyb,eAAehX,EACxC,EACAuE,EAAY0M,UAAUgG,KAAO,SAAUC,GACnC,OAAOA,EAAID,MAAQC,CACvB,EACA3S,EAAY0M,UAAUmB,KAAO,SAAU8E,GACnC,OAAOA,EAAI9E,MAAQ8E,CACvB,EACA3S,EAAY0M,UAAUkG,KAAO,SAAUD,GACnC,OAAOA,EAAI1b,iBAAmB0b,CAClC,EACA3S,EAAY0M,UAAUmG,QAAU,SAAUF,GACtC,OAAQA,EAAIE,QAAU,aAAaC,OAAOH,EAAIE,QAAQtN,KAAM,KAAO,EACvE,EACAvF,EAAY0M,UAAU1S,KAAO,SAAU+Y,EAAMxN,EAAM+M,QACpC,IAAPA,IAAiBA,EAAK,MAC1B,IAAIU,EAASV,EAAKS,EAAKE,uBAAuBX,EAAI/M,GAAQwN,EAAKG,qBAAqB3N,GACpF,OAAOwE,MAAMC,KAAKgJ,EACtB,EACAhT,EAAY0M,UAAUyG,YAAc,SAAUH,EAAOI,GACjD,IAAIC,EAAK1C,EACL2C,EAAa,GACjB,IACI,IAAK,IAAIC,EAAU1B,EAASmB,GAAQQ,EAAYD,EAAQhG,QAASiG,EAAU9F,KAAM8F,EAAYD,EAAQhG,OAAQ,CACzG,IAAIwF,EAAOS,EAAUjI,MACC,iBAAX,EACP+H,EAAaA,EAAWR,OAAO/I,MAAMC,KAAK1K,KAAKtI,SAASyc,iBAAiBV,KAEpEhJ,MAAM2J,QAAQX,IAGdA,aAAgBzT,KAAK9I,OAAOmd,UAAYZ,aAAgBzT,KAAK9I,OAAOod,eAFzEN,EAAaA,EAAWR,OAAO/I,MAAMC,KAAK+I,IAM1CO,EAAW/X,KAAKwX,EAExB,CACJ,CACA,MAAOc,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQL,IAAcA,EAAU9F,OAASiD,EAAK4C,EAAQO,SAASnD,EAAG/D,KAAK2G,EACvE,CACA,QAAU,GAAIF,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,OAAO6I,CACX,EACAtT,EAAY0M,UAAUqH,SAAW,SAAUC,EAAWjB,GAClD,OAAOiB,EAAUD,SAAShB,EAC9B,EACA/S,EAAY0M,UAAUuH,OAAS,SAAUlB,GACrC,OAAOA,EAAKmB,UAChB,EACAlU,EAAY0M,UAAUyH,OAAS,SAAUpB,EAAMqB,GAC3C,OAAOrB,EAAKsB,YAAYD,EAC5B,EACApU,EAAY0M,UAAUtF,OAAS,SAAUkN,EAAQC,GAC7C,OAAOjV,KAAK2U,OAAOM,GAAQC,aAAaF,EAAQC,EACpD,EACAvU,EAAY0M,UAAU+H,OAAS,SAAUL,GACrC,OAAO9U,KAAK2U,OAAOG,GAAOM,YAAYN,EAC1C,EACApU,EAAY0M,UAAUrR,QAAU,SAAUsZ,EAAOC,GAC7C,OAAOtV,KAAK2U,OAAOW,GAAOC,aAAaF,EAAOC,EAClD,EACA5U,EAAY0M,UAAUoI,MAAQ,SAAU/B,GACpC,OAAOA,EAAKgC,WAAU,EAC1B,EACA/U,EAAY0M,UAAU/Q,MAAQ,SAAUoX,EAAM/W,GAC1C,OAAO+W,EAAKiC,UAAUhZ,EAC1B,EACAgE,EAAY0M,UAAUa,KAAO,SAAUwF,GACnC,OAAOA,EAAKkC,WAChB,EACAjV,EAAY0M,UAAUwI,SAAW,SAAUnC,GACvC,OAAOA,EAAKoC,eAChB,EACAnV,EAAY0M,UAAU0I,WAAa,SAAUrC,GACzC,OAAOA,EAAKqC,UAChB,EACApV,EAAY0M,UAAU2I,UAAY,SAAUtC,GACxC,OAAOA,EAAKsC,SAChB,EACArV,EAAY0M,UAAU4I,WAAa,SAAUvC,GACzC,OAAOhJ,MAAMC,KAAK+I,EAAKuC,WAC3B,EACAtV,EAAY0M,UAAU6I,UAAY,SAAUxC,EAAM/X,GAC9C,OAAO+X,EAAKuC,WAAWta,EAC3B,EACAgF,EAAY0M,UAAU2F,KAAO,SAAUU,GACnC,IAAI/W,EAAI+W,EAAKyC,SACb,OAAc,IAANxZ,GAAiB,IAANA,GAAiB,IAANA,EAAU+W,EAAK0C,SAASC,cAAgB,EAC1E,EACA1V,EAAY0M,UAAUnB,MAAQ,SAAUwH,GACpC,OAAOA,EAAK4C,WAAa,EAC7B,EACA3V,EAAY0M,UAAUkJ,YAAc,SAAU7C,GAC1C,OAAOA,EAAK6C,WAChB,EACA5V,EAAY0M,UAAUmJ,UAAY,SAAU9C,GACxC,OAAOA,EAAK8C,SAChB,EACA7V,EAAY0M,UAAUoJ,UAAY,SAAU/C,GACxC,OAAOA,EAAK+C,SAChB,EACA9V,EAAY0M,UAAUqJ,aAAe,SAAUhD,GAE3C,OADiB,IAAIzT,KAAK9I,OAAOwf,eACfC,kBAAkBlD,EACxC,EACA/S,EAAY0M,UAAUwJ,aAAe,SAAUnD,EAAMxN,EAAMgG,EAAO+G,GAE9D,YADW,IAAPA,IAAiBA,EAAK,MACrBA,GAGL/M,EAAO+M,EAAGjX,QAAQ,OAAQ,IAAM,IAAMkK,EAAKlK,QAAQ,OAAQ,IACpD0X,EAAKoD,eAAe7D,EAAI/M,EAAMgG,IAH1BwH,EAAKmD,aAAa3Q,EAAMgG,EAIvC,EACAvL,EAAY0M,UAAU0J,aAAe,SAAUrD,EAAMxN,GACjD,OAAOwN,EAAKqD,aAAa7Q,EAC7B,EACAvF,EAAY0M,UAAU2J,gBAAkB,SAAUtD,EAAMxN,GACpD,OAAOwN,EAAKsD,gBAAgB9Q,EAChC,EACAvF,EAAY0M,UAAU4J,aAAe,SAAUvD,EAAMxN,GACjD,OAAOwN,EAAKuD,aAAa/Q,EAC7B,EACAvF,EAAY0M,UAAU6J,cAAgB,SAAUxD,GAC5C,OAAOhJ,MAAMC,KAAK+I,EAAKyD,YAAYC,KAAI,SAAUC,GAC7C,MAAO,CAAEnR,KAAMmR,EAAEnR,KAAMgG,MAAOmL,EAAEnL,MACpC,GACJ,EACAvL,EAAY0M,UAAUiK,SAAW,SAAU5D,EAAMxN,GACzCwN,EAAK6D,UACL7D,EAAK6D,UAAUC,IAAItR,GAGnBwN,EAAK+D,WAAa/D,EAAK+D,UAAY,IAAMvR,GAAMwR,MAEvD,EACA/W,EAAY0M,UAAUsK,YAAc,SAAUjE,EAAMxN,GAC5CwN,EAAK6D,UACL7D,EAAK6D,UAAUnC,OAAOlP,GAGtBwN,EAAK+D,UAAY/D,EAAK+D,UAAUnb,MAAM,KAAKwO,QAAO,SAAU8M,GAAK,OAAOA,IAAM1R,CAAM,IAAGnK,KAAK,IAEpG,EACA4E,EAAY0M,UAAUwK,SAAW,SAAUnE,EAAMxN,GAC7C,OAAIwN,EAAK6D,UACE7D,EAAK6D,UAAU7C,SAASxO,GAE5BwN,EAAK+D,UAAUnb,MAAM,KAAKwb,QAAQ5R,IAAS,CACtD,EACAvF,EAAY0M,UAAU0K,SAAW,SAAUrE,EAAMxN,EAAMgG,GACnDwH,EAAKsE,MAAM9R,GAAQgG,CACvB,EACAvL,EAAY0M,UAAU4K,SAAW,SAAUvE,EAAMxN,GAC7C,OAAOwN,EAAKsE,MAAM9R,EACtB,EACAvF,EAAY0M,UAAU6K,UAAY,SAAUxE,GACxC,OAAOA,EAAKsE,MAAMG,OACtB,EACAxX,EAAY0M,UAAU+K,YAAc,SAAU1E,EAAM2E,GAChD,IAAIC,EAAKhH,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAAS6F,EAAMG,WAAYC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAIwK,EAAOD,EAAGvM,MACd,IACIwH,EAAKiF,MAAMC,WAAWF,EAAM,EAChC,CACA,MAAOvK,GACH9Q,QAAQwb,KAAK,mCAAmCpF,OAAOiF,EAAM,OAAOjF,OAAOtF,EAAE5Q,SACjF,CACJ,CACJ,CACA,MAAOub,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQL,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACJ,EACAzK,EAAY0M,UAAU0L,SAAW,SAAUrF,GACvC,IAAIsE,EAAQ/X,KAAK9I,OAAO6hB,iBAAiBtF,GACzC,OAAOuF,WAAWjB,EAAMe,SAC5B,EACApY,EAAY0M,UAAU6L,WAAa,SAAUxF,GAEzC,OADYzT,KAAK9I,OAAO6hB,iBAAiBtF,GAC5BwF,YAAc,EAC/B,EACAvY,EAAY0M,UAAU8L,SAAW,SAAUzF,EAAM0F,EAAIC,GAGjD,QAFW,IAAPD,IAAiBA,EAAK,QACZ,IAAVC,IAAoBA,GAAQ,GAC5BA,GAAS3F,EAAK4F,QAAS,CACvB,IAAIhI,EAAKoC,EAAK4F,UACd,MAAO,CAD0BhI,EAAGiI,MACpBH,EADoC9H,EAAGkI,OAC1BJ,EACjC,CACA,MAAO,CAAC1F,EAAK+F,YAAcL,EAAI1F,EAAKgG,aAAeN,EACvD,EACAzY,EAAY0M,UAAUsM,SAAW,SAAUjG,GACvC,IAAIpC,EAAKoC,EAAKkG,wBACd,MAAO,CAAEC,KADqCvI,EAAGuI,KAC5BC,MAD0CxI,EAAGwI,MAC/BC,IAD4CzI,EAAGyI,IACrCC,OADmD1I,EAAG0I,OAEvG,EACOrZ,CACX,CAhOkB,CADI,EAAQ,OAiOZsZ,oBAClBhO,EAAQtL,YAAcA,C,+BC9PtBiK,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQrL,oBAAiB,EACzB,IAAIsZ,EAAmB,EAAQ,OAI/BjO,EAAQrL,eAHR,WACI,OAAO,IAAIsZ,EAAiBvZ,YAAYxJ,OAC5C,C,qCCLA,IAAIqb,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ7U,QAAU6U,EAAQzL,mBAAqByL,EAAQ/C,gBAAkB+C,EAAQkO,cAAgBlO,EAAQmO,cAAW,EACpH,IAAIC,EAAe,EAAQ,OAC3B,SAASD,EAAS/C,GACd,MAAoB,iBAANA,GAAwB,OAANA,CACpC,CAEA,SAAS8C,EAAcG,EAAKC,GACxB,IAAIvG,EAAK1C,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAAS5H,OAAOC,KAAK0P,IAAO9B,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAChF,IAAIsM,EAAK/B,EAAGvM,MACD,eAAPsO,KAEAJ,EAASE,EAAIE,MAAQJ,EAASG,EAAIC,KAChCD,EAAIC,aAAe3M,QAGJ,OAAZ0M,EAAIC,SAA4B1d,IAAZyd,EAAIC,KAC7BF,EAAIE,GAAMD,EAAIC,IAHdL,EAAcG,EAAIE,GAAKD,EAAIC,IAKnC,CACJ,CACA,MAAOhG,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,OAAOkP,CACX,CAzBArO,EAAQmO,SAAWA,EA0BnBnO,EAAQkO,cAAgBA,EA2BxBlO,EAAQ/C,gBA1BR,SAASA,EAAgBoR,EAAKpU,EAAMqU,GAChC,IAAIjC,EAAKhH,EACJgJ,EAAIpU,KACLoU,EAAIpU,GAAQ,CAAC,GAEjBoU,EAAMA,EAAIpU,GACV,IACI,IAAK,IAAIqS,EAAK/F,EAAS5H,OAAOC,KAAK0P,IAAO9B,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAChF,IAAIsM,EAAK/B,EAAGvM,MACRkO,EAASE,EAAIE,KAAQJ,EAASG,EAAIC,IAClCtR,EAAgBoR,EAAKE,EAAID,EAAIC,IAEb,MAAXF,EAAIE,IAA0B,MAAXD,EAAIC,KAC5BF,EAAIE,GAAMD,EAAIC,GAEtB,CACJ,CACA,MAAO1B,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQL,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACA,OAAOkP,CACX,EAKArO,EAAQzL,mBAHR,SAA4BsH,GACxB,OAAOqS,EAAclO,EAAQ7U,QAAS0Q,EAC1C,OAE8B,IAAnB,EAAA8G,EAAOxX,UACd,EAAAwX,EAAOxX,QAAU,CAAC,GAEjB,EAAAwX,EAAOxX,QAAQqjB,UAChB,EAAA7L,EAAOxX,QAAU,CACbqjB,QAASJ,EAAa9Z,QACtBE,EAAG,CAAC,EACJqH,OAAQ,EAAA8G,EAAOxX,UAGvB6U,EAAQ7U,QAAU,EAAAwX,EAAOxX,O,yCC1ErB4c,EAAK1C,EAXLkB,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EAEA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQf,OAASe,EAAQ7U,QAAU6U,EAAQnR,OAASmR,EAAQyO,YAAczO,EAAQ0O,aAAe1O,EAAQhC,aAAU,EACnH,IAAI2Q,EAAc,EAAQ,OACtBC,EAAe,EAAQ,OACvBC,EAAe,EAAQ,OAC3BlQ,OAAOoB,eAAeC,EAAS,UAAW,CAAEc,YAAY,EAAMjP,IAAK,WAAc,OAAOgd,EAAa7Q,OAAS,IAC9GW,OAAOoB,eAAeC,EAAS,eAAgB,CAAEc,YAAY,EAAMjP,IAAK,WAAc,OAAOgd,EAAaH,YAAc,IACxH,IA4BI7f,EA5BAigB,EAAoB,EAAQ,OA+JhC,GA9JA9O,EAAQyO,YAAc,CAClBM,OAAQ,SAAUhhB,GAId,OAHIiS,EAAQf,OAAO8P,OAAO1N,eAAetT,EAAKkM,QAC1ClM,EAAKkM,KAAO+F,EAAQf,OAAO8P,OAAOhhB,EAAKkM,QAEpC,CACX,EACA+U,UAAW,SAAUjhB,GACjB,IAAIkM,EAAOlM,EAAKkM,KAOhB,OANKA,EAAK1J,MAAM,oCACZxC,EAAKkM,KAAO,aAAeA,EAAKlK,QAAQ,QAAS,KAEjDhC,EAAKkhB,eAAiBhV,EAAK1J,MAAM,eACjCxC,EAAKkM,MAAQ,QAEV,CACX,EACAiV,OAAQ,SAAUnhB,GAEd,IADA,IAAIwC,GACIA,EAAQxC,EAAKkM,KAAK1J,MAAM,mBACvByP,EAAQf,OAAO5T,MAAMgW,eAAe9Q,EAAM,KAE/CxC,EAAKkM,KAAO+F,EAAQf,OAAO5T,MAAMkF,EAAM,IAAMxC,EAAKkM,KAAKzJ,OAAOD,EAAM,GAAGP,QAE3E,OAAO,CACX,GAGJ,SAAWnB,GACP,IAAIyF,EAAUqa,EAAYxjB,QAAQqjB,QAClC3f,EAAOsgB,SAAW,IAAIhP,IA2BtBtR,EAAOqQ,MA1BP,WAGI,IAFA,IAAImN,EAAKhH,EACL+J,EAAQ,GACHC,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpCD,EAAMC,GAAMC,UAAUD,GAEL,IAAjBD,EAAMpf,SACNof,EAAQ3Q,MAAMC,KAAKkQ,EAAa5Q,QAAQ/P,SAAS2Q,SAErD,IAAI2Q,EAAW,GACf,IACI,IAAK,IAAIC,EAAUjJ,EAAS6I,GAAQK,EAAYD,EAAQvN,QAASwN,EAAUrN,KAAMqN,EAAYD,EAAQvN,OAAQ,CACzG,IAAIyN,EAASD,EAAUxP,MACnB0P,EAAYf,EAAa5Q,QAAQ/P,SAAS4D,IAAI6d,IAAW,IAAId,EAAa5Q,QAAQ0R,GAAQ,GAC9FH,EAAStf,KAAK0f,EAAU5e,QAC5B,CACJ,CACA,MAAO8b,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQ4C,IAAcA,EAAUrN,OAASiD,EAAKmK,EAAQhH,SAASnD,EAAG/D,KAAKkO,EACvE,CACA,QAAU,GAAInD,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACA,OAAOyC,QAAQgO,IAAIL,EACvB,EA2CA1gB,EAAOqL,KAzCP,WAGI,IAFA,IAAI2V,EAAKxK,EACL+J,EAAQ,GACHC,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpCD,EAAMC,GAAMC,UAAUD,GAE1B,GAAqB,IAAjBD,EAAMpf,OACN,OAAO4R,QAAQC,UAEnB,IAAI0N,EAAW,GACXO,EAAU,SAAUC,GACpB,IAAIJ,EAAYf,EAAa5Q,QAAQ/P,SAAS4D,IAAIke,GAC7CJ,IACDA,EAAY,IAAIf,EAAa5Q,QAAQ+R,IAC3BjR,SAASkB,EAAQf,OAAOH,SAASiR,IAE/CJ,EAAUK,cACVT,EAAStf,KAAK0f,EAAU5e,QAAQC,MAAK,WAC5BgP,EAAQf,OAAOgR,iBAEhBN,EAAUO,WAAarhB,EAAOsgB,SAASgB,IAAIvB,EAAa5Q,QAAQC,YAAY8R,KAC5E3e,QAAQwb,KAAK,kDAAkDpF,OAAOuI,GAE9E,IACJ,EACA,IACI,IAAK,IAAIK,EAAU7J,EAAS6I,GAAQiB,EAAYD,EAAQnO,QAASoO,EAAUjO,KAAMiO,EAAYD,EAAQnO,OAAQ,CAEzG6N,EADaO,EAAUpQ,MAE3B,CACJ,CACA,MAAOqQ,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQD,IAAcA,EAAUjO,OAASiD,EAAK+K,EAAQ5H,SAASnD,EAAG/D,KAAK8O,EACvE,CACA,QAAU,GAAIP,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CAEA,OADAyP,EAAa5Q,QAAQuS,UACd3O,QAAQgO,IAAIL,EACvB,EA2BA1gB,EAAOC,QAzBP,WAGI,IAFA,IAAI0hB,EAAKnL,EACL+J,EAAQ,GACHC,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpCD,EAAMC,GAAMC,UAAUD,GAE1B,IACI,IAAK,IAAIoB,EAAUlK,EAAS6I,GAAQsB,EAAYD,EAAQxO,QAASyO,EAAUtO,KAAMsO,EAAYD,EAAQxO,OAAQ,CACzG,IAAI0O,EAASD,EAAUzQ,MACnB0P,EAAYf,EAAa5Q,QAAQ/P,SAAS4D,IAAI8e,GAC7ChB,IACDA,EAAY,IAAIf,EAAa5Q,QAAQ2S,GAAQ,IACnC7R,SAASkB,EAAQf,OAAOH,SAAS6R,IAE/ChB,EAAUiB,QACd,CACJ,CACA,MAAOC,GAASL,EAAM,CAAErR,MAAO0R,EAAS,CACxC,QACI,IACQH,IAAcA,EAAUtO,OAASiD,EAAKoL,EAAQjI,SAASnD,EAAG/D,KAAKmP,EACvE,CACA,QAAU,GAAID,EAAK,MAAMA,EAAIrR,KAAO,CACxC,CACJ,EAOAtQ,EAAOiiB,aALP,gBAC2C,IAA5B9Q,EAAQ7U,QAAQe,SACvB8T,EAAQ7U,QAAQ0Q,OAAO3P,QAAQgT,OAEvC,EAYArQ,EAAOkiB,QAVP,WACI,IAAIzJ,EAAO0J,cACX,GAAwB,oBAAbtlB,SAA0B,CACjC,IAAIoS,EAASpS,SAASulB,eAAiBvlB,SAASwlB,eAAe,kBAC3DpT,IACAwJ,EAAOxJ,EAAOwQ,IAAIve,QAAQ,YAAa,IAE/C,CACA,OAAOuX,CACX,EAUAzY,EAAOwF,aARP,SAAsB4F,EAAMuU,EAAS2C,GAEjC,OADAtiB,EAAOsgB,SAASiC,IAAIxC,EAAa5Q,QAAQC,YAAYhE,GAAO3F,MACxD0L,EAAQf,OAAOgR,iBAAmBzB,IAAYla,KAC9ClD,QAAQwb,KAAK,aAAapF,OAAOvN,EAAM,UAAUuN,OAAOgH,EAAS,mCAAmChH,OAAOlT,KACpG,EAGf,EAEAzF,EAAOwiB,YAAc,IAAIvC,EAAkB3V,aAC3CtK,EAAOwiB,YAAY9F,IAAIvL,EAAQyO,YAAYM,OAAQ,GACnDlgB,EAAOwiB,YAAY9F,IAAIvL,EAAQyO,YAAYO,UAAW,IACtDngB,EAAOwiB,YAAY9F,IAAIvL,EAAQyO,YAAYS,OAAQ,GACtD,CAhID,CAgIGrgB,EAASmR,EAAQnR,SAAWmR,EAAQnR,OAAS,CAAC,IACjDmR,EAAQ7U,QAAUwjB,EAAYxjB,aACQ,IAA3B6U,EAAQ7U,QAAQC,OAAwB,EAC/C,EAAIujB,EAAY1R,iBAAiB+C,EAAQ7U,QAAQ0Q,OAAQ,SAAU,CAC/DxQ,MAAO,CACHC,QAASuD,EAAOkiB,WAEpBhC,OAAQ,CAAC,EACTxQ,aAAc,CAAC,EACfO,SAAU,CAAC,EACX5E,KAAM,GACNgF,MAAOrQ,EAAOiiB,aAAahd,KAAKjF,GAChCuQ,OAAQ,SAAUD,GAAS,OAAO/N,QAAQC,IAAI,WAAWmW,OAAOrI,EAAMb,SAAW,IAAK,OAAOkJ,OAAOrI,EAAM7N,SAAW,EACrH1C,QAAS,KACTyiB,YAAa,GACbpB,iBAAiB,KAErB,EAAItB,EAAYpa,oBAAoB,CAChCnJ,OAAQyD,IAEZ,IACI,IAAK,IAAIyd,EAAK/F,EAASvG,EAAQ7U,QAAQ0Q,OAAOzQ,OAAOimB,aAAc7E,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACzG,IAAIpD,EAAS2N,EAAGvM,MACZxB,MAAM2J,QAAQvJ,GACdhQ,EAAOwiB,YAAY9F,IAAI1M,EAAO,GAAIA,EAAO,IAGzChQ,EAAOwiB,YAAY9F,IAAI1M,EAE/B,CACJ,CACA,MAAO0J,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACJ,CACAa,EAAQf,OAASe,EAAQ7U,QAAQ0Q,OAAOzQ,M,qCCvNxC,IACQya,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEAE,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACI8K,EAAUtd,MAAQA,KAAKsd,QAAW,SAAUhR,EAAG5P,GAC/C,IAAIN,EAAsB,mBAAX4K,QAAyBsF,EAAEtF,OAAOiI,UACjD,IAAK7S,EAAG,OAAOkQ,EACf,IAAmBiR,EAAYrP,EAA3BxS,EAAIU,EAAEkR,KAAKhB,GAAOkR,EAAK,GAC3B,IACI,WAAc,IAAN9gB,GAAgBA,KAAM,MAAQ6gB,EAAI7hB,EAAEuS,QAAQG,MAAMoP,EAAGvhB,KAAKshB,EAAEtR,MACxE,CACA,MAAOd,GAAS+C,EAAI,CAAE/C,MAAOA,EAAS,CACtC,QACI,IACQoS,IAAMA,EAAEnP,OAAShS,EAAIV,EAAU,SAAIU,EAAEkR,KAAK5R,EAClD,CACA,QAAU,GAAIwS,EAAG,MAAMA,EAAE/C,KAAO,CACpC,CACA,OAAOqS,CACX,EACIC,EAAiBzd,MAAQA,KAAKyd,eAAkB,SAAUC,EAAIhT,EAAMiT,GACpE,GAAIA,GAA6B,IAArBrC,UAAUtf,OAAc,IAAK,IAA4BwhB,EAAxB9hB,EAAI,EAAGkiB,EAAIlT,EAAK1O,OAAYN,EAAIkiB,EAAGliB,KACxE8hB,GAAQ9hB,KAAKgP,IACR8S,IAAIA,EAAK/S,MAAM2C,UAAUvR,MAAMyR,KAAK5C,EAAM,EAAGhP,IAClD8hB,EAAG9hB,GAAKgP,EAAKhP,IAGrB,OAAOgiB,EAAGlK,OAAOgK,GAAM/S,MAAM2C,UAAUvR,MAAMyR,KAAK5C,GACtD,EACAC,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQhC,QAAUgC,EAAQ0O,kBAAe,EACzC,IAAImD,EAAc,EAAQ,OACtBnD,EAAgB,SAAUjI,GAE1B,SAASiI,EAAapd,EAAS2I,GAC3B,IAAIyM,EAAQD,EAAOnF,KAAKtN,KAAM1C,IAAY0C,KAE1C,OADA0S,EAAMpI,QAAUrE,EACTyM,CACX,CACA,OANAZ,EAAU4I,EAAcjI,GAMjBiI,CACX,CARmB,CAQjBoD,OACF9R,EAAQ0O,aAAeA,EACvB,IAAI1Q,EAAW,WACX,SAASA,EAAQ/D,EAAM8X,QACJ,IAAXA,IAAqBA,GAAS,GAClC/d,KAAKkc,UAAW,EAChBlc,KAAKge,WAAY,EACjBhe,KAAKie,WAAY,EACjBje,KAAKke,WAAa,GAClBle,KAAKuK,aAAe,GACpBvK,KAAKme,gBAAkB,EACvBne,KAAKoe,SAAW,GAChBpe,KAAKiG,KAAOA,EACZjG,KAAK+d,OAASA,EACd/T,EAAQ/P,SAASmjB,IAAInX,EAAMjG,MAC3BA,KAAKjD,QAAUiD,KAAKqe,YAAYre,KAAKse,mBACzC,CAoOA,OAnOA3T,OAAOoB,eAAe/B,EAAQoD,UAAW,UAAW,CAChDvP,IAAK,WACD,OAAgC,IAAzBmC,KAAKme,kBAA0Bne,KAAK+d,SAAW/d,KAAKge,YAAche,KAAKie,SAClF,EACAnR,YAAY,EACZD,cAAc,IAElB7C,EAAQC,YAAc,SAAUhE,EAAMgV,QACb,IAAjBA,IAA2BA,GAAe,GAC9C,IAAIlhB,EAAO,CAAEkM,KAAMA,EAAMsY,SAAUtY,EAAMgV,aAAcA,GAEvD,OADA4C,EAAYhjB,OAAOwiB,YAAYmB,QAAQzkB,GAChCA,EAAKkM,IAChB,EACA+D,EAAQuS,QAAU,WACd,IAAIxI,EAAK1C,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAASvS,KAAK/F,SAASwkB,UAAWjG,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACtF,IAAI0N,EAAYnD,EAAGvM,MACf0P,EAAU+C,SACV/C,EAAUzV,MAElB,CACJ,CACA,MAAOqO,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACJ,EACAnB,EAAQoD,UAAUkR,iBAAmB,WACjC,IAAIjG,EAAKhH,EACLkK,EAAW,GACXpE,EAAMnN,EAAQ/P,SACd8jB,EAAS/d,KAAK+d,OACd9X,EAAOjG,KAAKiG,KACZsE,EAAe,GACfsT,EAAY5S,OAAOV,aAAa8C,eAAepH,GAC/CsE,EAAatO,KAAKoS,MAAM9D,EAAckT,EAAc,GAAIH,EAAOO,EAAY5S,OAAOV,aAAatE,KAAQ,IAEzF,SAATA,GACLsE,EAAatO,KAAK,QAEtB,IACI,IAAK,IAAI0iB,EAAiBpM,EAAShI,GAAeqU,EAAmBD,EAAe1Q,QAAS2Q,EAAiBxQ,KAAMwQ,EAAmBD,EAAe1Q,OAAQ,CAC1J,IAAI4Q,EAAYD,EAAiB3S,MAC7B0P,EAAYxE,EAAItZ,IAAIghB,IAAc,IAAI7U,EAAQ6U,EAAWd,GACzD/d,KAAKuK,aAAasN,QAAQ8D,GAAa,IACvCA,EAAUmD,aAAa9e,KAAM+d,GAC7B/d,KAAKuK,aAAatO,KAAK0f,GAClBA,EAAUO,WACXlc,KAAKme,kBACL5C,EAAStf,KAAK0f,EAAU5e,UAGpC,CACJ,CACA,MAAO8b,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQ+F,IAAqBA,EAAiBxQ,OAASiD,EAAKsN,EAAenK,SAASnD,EAAG/D,KAAKqR,EAC5F,CACA,QAAU,GAAItG,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACA,OAAOoQ,CACX,EACAvR,EAAQoD,UAAUiR,YAAc,SAAU9C,GACtC,IAAI7I,EAAQ1S,KACRjD,EAAU,IAAI6Q,SAAQ,SAAWC,EAASC,GAC1C4E,EAAM7E,QAAUA,EAChB6E,EAAM5E,OAASA,CAClB,IACGjG,EAAUgW,EAAY5S,OAAOjL,KAAKiG,OAAS,CAAC,EAWhD,OAVI4B,EAAOqD,QACPnO,EAAUA,EAAQC,MAAK,SAAU+hB,GAAS,OAAOlX,EAAOqD,MAAMwH,EAAMzM,KAAO,KAE3EsV,EAASvf,SACTuf,EAAStf,KAAKc,GACdA,EAAU6Q,QAAQgO,IAAIL,GAAUve,MAAK,SAAUoe,GAAS,OAAOA,EAAMtf,KAAK,KAAO,KAEjF+L,EAAOuD,QACPrO,EAAQG,OAAM,SAAUI,GAAW,OAAOuK,EAAOuD,OAAO,IAAIsP,EAAapd,EAASoV,EAAMzM,MAAQ,IAE7FlJ,CACX,EACAiN,EAAQoD,UAAUlH,KAAO,WACrB,IAAKlG,KAAKkc,WAAalc,KAAKge,YAAche,KAAK+d,OAAQ,CACnD/d,KAAKge,WAAY,EACjB,IAAIgB,EAAMhV,EAAQC,YAAYjK,KAAKiG,MAC/B4X,EAAY5S,OAAOrQ,QACnBoF,KAAKif,WAAWD,GAGhBhf,KAAKkf,WAAWF,EAExB,CACJ,EACAhV,EAAQoD,UAAU6R,WAAa,SAAUD,GACrC,IAAItM,EAAQ1S,KACZ,IACI,IAAImN,EAAS0Q,EAAY5S,OAAOrQ,QAAQokB,GACpC7R,aAAkBS,QAClBT,EAAOnQ,MAAK,WAAc,OAAO0V,EAAMyM,WAAa,IAC/CjiB,OAAM,SAAUC,GAAO,OAAOuV,EAAMtH,OAAO,gBAAkB4T,EAAM,MAAQ7hB,EAAIG,QAAQma,OAAS,IAGrGzX,KAAKmf,WAEb,CACA,MAAOhiB,GACH6C,KAAKoL,OAAOjO,EAAIG,QACpB,CACJ,EACA0M,EAAQoD,UAAU8R,WAAa,SAAUF,GACrC,IAAItM,EAAQ1S,KACR8J,EAASpS,SAASwb,cAAc,UACpCpJ,EAAOwQ,IAAM0E,EACblV,EAAOsV,QAAU,QACjBtV,EAAOuV,OAAS,SAAUC,GAAU,OAAO5M,EAAMyM,WAAa,EAC9DrV,EAAOyV,QAAU,SAAUD,GAAU,OAAO5M,EAAMtH,OAAO,gBAAkB4T,EAAM,IAAM,EACvFtnB,SAAS0b,KAAK2B,YAAYjL,EAC9B,EACAE,EAAQoD,UAAUwP,OAAS,WACvB,IAAIf,EAAKxK,EAAImL,EAAKlE,EAClBtY,KAAKkc,UAAW,EAChBlc,KAAKge,WAAY,EACjB,IACI,IAAK,IAAIxF,EAAKjG,EAASvS,KAAKke,YAAasB,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,CAC/DuR,EAAGvT,MACTwT,sBACd,CACJ,CACA,MAAOnD,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQkD,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIqD,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CACA,IACI,IAAK,IAAIuU,EAAKnN,EAASvS,KAAKoe,UAAWuB,EAAKD,EAAGzR,QAAS0R,EAAGvR,KAAMuR,EAAKD,EAAGzR,OAAQ,CAC9D0R,EAAG1T,MACT2Q,QACb,CACJ,CACA,MAAOC,GAASL,EAAM,CAAErR,MAAO0R,EAAS,CACxC,QACI,IACQ8C,IAAOA,EAAGvR,OAASkK,EAAKoH,EAAGlL,SAAS8D,EAAGhL,KAAKoS,EACpD,CACA,QAAU,GAAIlD,EAAK,MAAMA,EAAIrR,KAAO,CACxC,CACAnL,KAAK6N,QAAQ7N,KAAKiG,KACtB,EACA+D,EAAQoD,UAAUhC,OAAS,SAAU9N,GACjC0C,KAAKie,WAAY,EACjBje,KAAKge,WAAY,EACjBhe,KAAK8N,OAAO,IAAI4M,EAAapd,EAAS0C,KAAKiG,MAC/C,EACA+D,EAAQoD,UAAU+R,UAAY,WAC1B,IAAIzM,EAAQ1S,OACE6d,EAAY5S,OAAOjL,KAAKiG,OAAS,CAAC,GACxBiD,YAAc,WAAe,OAAO0E,QAAQC,SAAY,KACnE7Q,MAAK,WAAc,OAAO0V,EAAMkK,QAAU,IAClD1f,OAAM,SAAUI,GAAW,OAAOoV,EAAMtH,OAAO9N,EAAU,GAClE,EACA0M,EAAQoD,UAAUqS,qBAAuB,WACjCzf,KAAKme,kBACLne,KAAKme,kBACDne,KAAK0e,SACL1e,KAAKkG,OAGjB,EACA8D,EAAQoD,UAAUtC,SAAW,SAAUsQ,GACnC,IAAIwE,EAAKvO,OACK,IAAV+J,IAAoBA,EAAQ,IAChC,IACI,IAAK,IAAII,EAAUjJ,EAAS6I,GAAQK,EAAYD,EAAQvN,QAASwN,EAAUrN,KAAMqN,EAAYD,EAAQvN,OAAQ,CACzG,IAAIyN,EAASD,EAAUxP,MACnBmS,EAAWpU,EAAQ/P,SAAS4D,IAAI6d,GAC/B0C,IACIP,EAAY5S,OAAOV,aAAamR,KACjCmC,EAAY5S,OAAOV,aAAamR,GAAU,IAE9CmC,EAAY5S,OAAOV,aAAamR,GAAQzf,KAAKyf,IAC7C0C,EAAW,IAAIpU,EAAQ0R,GAAQ,IACtBsC,WAAY,GAEzBhe,KAAKoe,SAASniB,KAAKmiB,EACvB,CACJ,CACA,MAAOyB,GAASD,EAAM,CAAEzU,MAAO0U,EAAS,CACxC,QACI,IACQpE,IAAcA,EAAUrN,OAASiD,EAAKmK,EAAQhH,SAASnD,EAAG/D,KAAKkO,EACvE,CACA,QAAU,GAAIoE,EAAK,MAAMA,EAAIzU,KAAO,CACxC,CACJ,EACAnB,EAAQoD,UAAU0R,aAAe,SAAUnD,EAAWoC,GAClD/d,KAAKke,WAAWjiB,KAAK0f,GAChBoC,GACD/d,KAAKgc,aAEb,EACAhS,EAAQoD,UAAU4O,YAAc,WAC5B,IAAI8D,EAAKzO,EACT,GAAIrR,KAAK+d,OAAQ,CACb/d,KAAK+d,QAAS,EACd,IACI,IAAK,IAAIzF,EAAK/F,EAASvS,KAAKuK,cAAeiO,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAChEuK,EAAGvM,MACT+P,aACf,CACJ,CACA,MAAO+D,GAASD,EAAM,CAAE3U,MAAO4U,EAAS,CACxC,QACI,IACQvH,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIwH,EAAK,MAAMA,EAAI3U,KAAO,CACxC,CACJ,CACJ,EACAnB,EAAQ/P,SAAW,IAAIkS,IAChBnC,CACX,CAnPc,GAoPdgC,EAAQhC,QAAUA,C,qCCpTlB,IAAIgW,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACI/I,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACI8K,EAAUtd,MAAQA,KAAKsd,QAAW,SAAUhR,EAAG5P,GAC/C,IAAIN,EAAsB,mBAAX4K,QAAyBsF,EAAEtF,OAAOiI,UACjD,IAAK7S,EAAG,OAAOkQ,EACf,IAAmBiR,EAAYrP,EAA3BxS,EAAIU,EAAEkR,KAAKhB,GAAOkR,EAAK,GAC3B,IACI,WAAc,IAAN9gB,GAAgBA,KAAM,MAAQ6gB,EAAI7hB,EAAEuS,QAAQG,MAAMoP,EAAGvhB,KAAKshB,EAAEtR,MACxE,CACA,MAAOd,GAAS+C,EAAI,CAAE/C,MAAOA,EAAS,CACtC,QACI,IACQoS,IAAMA,EAAEnP,OAAShS,EAAIV,EAAU,SAAIU,EAAEkR,KAAK5R,EAClD,CACA,QAAU,GAAIwS,EAAG,MAAMA,EAAE/C,KAAO,CACpC,CACA,OAAOqS,CACX,EACIC,EAAiBzd,MAAQA,KAAKyd,eAAkB,SAAUC,EAAIhT,EAAMiT,GACpE,GAAIA,GAA6B,IAArBrC,UAAUtf,OAAc,IAAK,IAA4BwhB,EAAxB9hB,EAAI,EAAGkiB,EAAIlT,EAAK1O,OAAYN,EAAIkiB,EAAGliB,KACxE8hB,GAAQ9hB,KAAKgP,IACR8S,IAAIA,EAAK/S,MAAM2C,UAAUvR,MAAMyR,KAAK5C,EAAM,EAAGhP,IAClD8hB,EAAG9hB,GAAKgP,EAAKhP,IAGrB,OAAOgiB,EAAGlK,OAAOgK,GAAM/S,MAAM2C,UAAUvR,MAAMyR,KAAK5C,GACtD,EACAC,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQf,OAASe,EAAQ7U,QAAU6U,EAAQkU,aAAU,EACrD,IAGIA,EAHAvF,EAAc,EAAQ,OACtBwF,EAAuB,EAAQ,OAC/BC,EAAe,EAAQ,QAE3B,SAAWF,GACP,IACIG,EACA/oB,EAFAgpB,EAAa,IAAIH,EAAqB7a,gBAyB1C,SAASib,EAAM9M,GACX,OAAO4M,EAAQG,UAAU/M,EAAMyM,EAAQxoB,SAC3C,CAsDA,SAAS+oB,IACLJ,EAAU,IAAIrU,EAAQ7U,QAAQqJ,EAAEM,KAAKS,QAAQsC,qBAAqBA,qBAClEvM,EAAU0U,EAAQ7U,QAAQqJ,EAAElJ,QAAQA,QACpC4oB,EAAQ/Z,MAAQua,IAChBR,EAAQ5X,OAASqY,IACjBT,EAAQU,QAAUC,IACdX,EAAQzgB,SACRnI,EAAQgN,SAASwc,WAAWZ,EAAQzgB,SAExCygB,EAAQzgB,QAAUshB,IACdb,EAAQzgB,UACRnI,EAAQgN,SAAS0c,SAASd,EAAQzgB,SAClCygB,EAAQxoB,SAAWupB,IAE3B,CAEA,SAASC,IACL,IAAInN,EAAK1C,EACL6O,EAAQ/Z,OAAS+Z,EAAQ5X,QACzB6Y,IAEJ,IAAIC,EAASlB,EAAQ5X,OAAS4X,EAAQ5X,OAAOrC,KAAKmQ,cAAgB,GAClE,IACI,IAAK,IAAIiL,EAAU9O,EAAS2N,EAAQ/Z,OAAQmb,EAAYD,EAAQpT,QAASqT,EAAUlT,KAAMkT,EAAYD,EAAQpT,OAAQ,CACjH,IAAIsT,EAAMD,EAAUrV,MAChBuV,EAAQD,EAAItb,KAAKmQ,cACrBqL,EAAeD,EAAOD,GACtBG,EAAgBF,EAAOD,GACnBrB,EAAQ5X,QACRqZ,EAAkBH,EAAOJ,EAAOG,EAExC,CACJ,CACA,MAAOhN,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQ+M,IAAcA,EAAUlT,OAASiD,EAAKgQ,EAAQ7M,SAASnD,EAAG/D,KAAK+T,EACvE,CACA,QAAU,GAAItN,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACJ,CAEA,SAASgW,IACLnV,EAAQ7U,QAAQgB,QAAU,SAAUC,QACf,IAAbA,IAAuBA,EAAW,MACtC8nB,EAAQxoB,SAASW,QAAQD,SAAWA,EACpC8nB,EAAQxoB,SAASkqB,QACjB1B,EAAQxoB,SAASmqB,QACrB,EACA7V,EAAQ7U,QAAQ8F,eAAiB,SAAU7E,GAIvC,YAHiB,IAAbA,IAAuBA,EAAW,MACtC8nB,EAAQxoB,SAASW,QAAQD,SAAWA,EACpC8nB,EAAQxoB,SAASkqB,QACVtqB,EAAQwqB,kBAAiB,WAC5B5B,EAAQxoB,SAASmqB,QACrB,GACJ,EACA7V,EAAQ7U,QAAQ4qB,aAAe,SAAU3pB,QACpB,IAAbA,IAAuBA,EAAW,MAClCA,EACA8nB,EAAQxoB,SAASsqB,qBAAqB5pB,GAGtC8nB,EAAQxoB,SAASuqB,OAEzB,CACJ,CAEA,SAASN,EAAkBH,EAAOJ,EAAOjb,GACrC,IAAIF,EAAOub,EAAQ,IAAMJ,EACzBpV,EAAQ7U,QAAQ8O,GACZ,SAAU3K,EAAMjD,GAGZ,YAFgB,IAAZA,IAAsBA,EAAU,CAAC,GACrCA,EAAQwa,OAAS1M,EAAMF,KAChBia,EAAQxoB,SAASwqB,QAAQ5mB,EAAMjD,EAC1C,EACJ2T,EAAQ7U,QAAQ8O,EAAO,WACnB,SAAU3K,EAAMjD,GAGZ,YAFgB,IAAZA,IAAsBA,EAAU,CAAC,GACrCA,EAAQwa,OAAS1M,EAAMF,KAChB3O,EAAQwqB,kBAAiB,WAAc,OAAO5B,EAAQxoB,SAASwqB,QAAQ5mB,EAAMjD,EAAU,GAClG,EACJ2T,EAAQ7U,QAAQiqB,EAAQ,cAAgB,WAAc,OAAOlB,EAAQ5X,OAAO6Z,WAAWjC,EAAQxoB,SAAW,EACtG,kBAAmBwoB,EAAQ5X,SAC3B0D,EAAQ7U,QAAQirB,cAAgB,SAAU3O,EAAM4O,GAC5C,OAAOnC,EAAQ5X,OAAO8Z,cAAc3O,EAAM4O,EAC9C,EAER,CAEA,SAASZ,EAAexb,EAAME,GAC1B,IAAImc,EAAQtW,EAAQ7U,QAAQqJ,EAAEM,KAAKO,SAASihB,MAC5CtW,EAAQ7U,QAAQ8O,EAAO,QACnB,SAAU3K,EAAMjD,GAIZ,YAHgB,IAAZA,IAAsBA,EAAU,CAAC,GACrCA,EAAQ8C,IAAMmnB,EAAMC,QACpBlqB,EAAQwa,OAAS1M,EAAMF,KAChBsa,EAAML,EAAQxoB,SAASwqB,QAAQ5mB,EAAMjD,GAChD,EACJ2T,EAAQ7U,QAAQ8O,EAAO,eACnB,SAAU3K,EAAMjD,GAIZ,YAHgB,IAAZA,IAAsBA,EAAU,CAAC,GACrCA,EAAQ8C,IAAMmnB,EAAMC,QACpBlqB,EAAQwa,OAAS1M,EAAMF,KAChB3O,EAAQwqB,kBAAiB,WAAc,OAAOvB,EAAML,EAAQxoB,SAASwqB,QAAQ5mB,EAAMjD,GAAW,GACzG,CACR,CAEA,SAASqpB,EAAgBzb,EAAME,GAC3B6F,EAAQ7U,QAAQ8O,EAAO,SAAW,WAE9B,IADA,IAAIuc,EAAO,GACFnH,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpCmH,EAAKnH,GAAMC,UAAUD,GAEzB,OAAOlV,EAAMyb,MAAMvT,MAAMlI,EAAOsX,EAAc,GAAIH,EAAOkF,IAAO,GACpE,CACJ,CAEA,SAAS9B,IACL,IAAIrI,EAAKhH,EACLkQ,EAAM,GACV,IACI,IAAK,IAAIjJ,EAAK/F,EAASvG,EAAQf,OAAO9E,OAAQqS,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACpF,IAAIyN,EAASlD,EAAGvM,MACZwW,EAAavC,EAAQwC,aAAahH,GACtC,IAAI+G,EAIA,MAAM3E,MAAM,cAAgBpC,EAAS,0CAHrC6F,EAAItlB,KAAK,IAAIwmB,EAAWzW,EAAQ7U,QAAQ0Q,OAAO6T,IAKvD,CACJ,CACA,MAAO7C,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQL,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACA,OAAOoW,CACX,CAEA,SAASZ,IACL,IAAI1a,EAAO+F,EAAQf,OAAO3C,OAC1B,IAAKrC,EACD,OAAO,KACX,IAAI0c,EAAczC,EAAQwC,aAAazc,GACvC,IAAK0c,EACD,MAAM7E,MAAM,eAAiB7X,EAAO,0CAExC,OAAO,IAAI0c,EAAY3W,EAAQ7U,QAAQ0Q,OAAO5B,GAClD,CAEA,SAAS4a,IACL,IAAI5a,EAAO+F,EAAQf,OAAO2V,QAC1B,IAAK3a,GAAiB,SAATA,EACT,OAAO,KACX,IAAI2a,EAAUV,EAAQwC,aAAazc,GACnC,IAAK2a,EACD,MAAM9C,MAAM,eAAiB7X,EAAO,0CAExC,OAAO2a,EAAQ5U,EAAQ7U,QAAQ0Q,OAAO5B,GAC1C,CAEA,SAAS8a,IACL,IAAIlF,EAAKxK,EACLpL,EAAO+F,EAAQf,OAAOxL,QAC1B,IAAKwG,GAAiB,SAATA,IAAoBia,EAAQU,QACrC,OAAO,KACX,IAAIgC,EAAe1C,EAAQwC,aAAazc,GACxC,IAAK2c,EACD,MAAM9E,MAAM,YAAc7X,EAAO,0CAErC,IAAIxG,EAAU,IAAImjB,EAAa1C,EAAQU,QAAS,GAChD,IACI,IAAK,IAAIiC,EAAetQ,EAAS+N,GAAawC,EAAiBD,EAAa5U,QAAS6U,EAAe1U,KAAM0U,EAAiBD,EAAa5U,OAAQ,CAE5IxO,EADaqjB,EAAe7W,MACX8W,KAAKtjB,EAC1B,CACJ,CACA,MAAO6c,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQwG,IAAmBA,EAAe1U,OAASiD,EAAKwR,EAAarO,SAASnD,EAAG/D,KAAKuV,EACtF,CACA,QAAU,GAAIhH,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CACA,OAAO1L,CACX,CAEA,SAASwhB,EAAY3N,GAEjB,YADa,IAATA,IAAmBA,EAAO,MACvBhc,EAAQI,SAAS4b,GAAQtH,EAAQf,OAAOvT,SAAUsoB,EAASA,EAAS,CAAC,EAAGhU,EAAQ7U,QAAQ0Q,OAAOxP,SAAU,CAAE8I,SAAU+e,EAAQ/Z,MAAOrC,UAAWoc,EAAQ5X,SAClK,CAhRA4X,EAAQwC,aAAe,CAAC,EACxBxC,EAAQ/Z,MAAQ,GAChB+Z,EAAQ5X,OAAS,KACjB4X,EAAQzgB,QAAU,KAClBygB,EAAQU,QAAU,KAClBV,EAAQ9nB,SAAW,KACnB8nB,EAAQxoB,SAAW,KACnBwoB,EAAQnjB,QAAU,IAAI6Q,SAAQ,SAAUC,EAASC,GAC7CoS,EAAQ8C,eAAiBnV,EACzBqS,EAAQ+C,cAAgBnV,CAC5B,IACAoS,EAAQgD,YAAc,IAAItV,SAAQ,SAAUC,EAASsV,GACjD,IAAI9P,EAAM,EAAA1E,EAAOjX,SACjB,GAAK2b,GAAQA,EAAI+P,YAAiC,aAAnB/P,EAAI+P,YAAgD,gBAAnB/P,EAAI+P,WAG/D,CACD,IAAIC,EAAW,WAAc,OAAOxV,GAAW,EAC/CwF,EAAIiQ,YAAYC,iBAAiB,OAAQF,GAAU,GACnDhQ,EAAIiQ,YAAYC,iBAAiB,mBAAoBF,GAAU,EACnE,MANIxV,GAOR,IAIAqS,EAAQK,MAAQA,EAIhBL,EAAQra,oBAHR,SAA6BI,EAAMqM,GAC/B4N,EAAQwC,aAAazc,GAAQqM,CACjC,EAQA4N,EAAQpa,WANR,SAAoBG,EAAMud,QACR,IAAVA,IAAoBA,GAAQ,GAC3BxX,EAAQf,OAAOxL,UAAW+jB,IAC3BxX,EAAQf,OAAOxL,QAAUwG,EAEjC,EAQAia,EAAQna,WANR,SAAoBE,EAAMud,QACR,IAAVA,IAAoBA,GAAQ,GAC3BxX,EAAQf,OAAO2V,UAAW4C,IAC3BxX,EAAQf,OAAO2V,QAAU3a,EAEjC,EAQAia,EAAQtY,SANR,SAAkB3B,EAAMud,QACN,IAAVA,IAAoBA,GAAQ,GAC3BC,IAAkBD,GACnBxX,EAAQf,OAAO9E,MAAMlK,KAAKgK,EAElC,EAQAia,EAAQ9W,UANR,SAAmBnD,EAAMud,QACP,IAAVA,IAAoBA,GAAQ,GAC3BxX,EAAQf,OAAO3C,SAAUkb,IAC1BxX,EAAQf,OAAO3C,OAASrC,EAEhC,EAMAia,EAAQvU,cAJR,SAAuB+X,EAAQC,QACV,IAAbA,IAAuBA,EAAW,IACtCrD,EAAW/I,IAAImM,EAAQC,EAC3B,EAUAzD,EAAQpD,aARR,WACI2D,IACAS,IACAhB,EAAQgD,YACHlmB,MAAK,WAAc,OAAOgP,EAAQf,OAAO2Y,WAAa,IACtD5mB,MAAK,WAAc,OAAOkjB,EAAQ8C,gBAAkB,IACpD9lB,OAAM,SAAUC,GAAO,OAAO+iB,EAAQ+C,cAAc9lB,EAAM,GACnE,EAOA+iB,EAAQ2D,iBALR,WACI,OAAQ7X,EAAQf,OAAO9S,SAAW6T,EAAQ7U,QAAQ8F,eAC9C+O,EAAQ7U,QAAQ8F,eAAe+O,EAAQf,OAAO7S,UAC9CwV,QAAQC,SAChB,EAiBAqS,EAAQO,cAAgBA,EA0BxBP,EAAQgB,YAAcA,EA0BtBhB,EAAQiB,mBAAqBA,EAsB7BjB,EAAQyB,kBAAoBA,EAkB5BzB,EAAQuB,eAAiBA,EAUzBvB,EAAQwB,gBAAkBA,EAyB1BxB,EAAQQ,YAAcA,EAWtBR,EAAQS,aAAeA,EAWvBT,EAAQW,WAAaA,EA0BrBX,EAAQa,WAAaA,EAKrBb,EAAQe,YAAcA,CACzB,CAtRD,CAsRGf,EAAUlU,EAAQkU,UAAYlU,EAAQkU,QAAU,CAAC,IACpDlU,EAAQ7U,QAAUwjB,EAAYxjB,aACW,IAA9B6U,EAAQ7U,QAAQqJ,EAAEtI,WACzB,EAAIyiB,EAAY1R,iBAAiB+C,EAAQ7U,QAAQ0Q,OAAQ,UAAW,CAChE1B,MAAO,GACPmC,OAAQ,GACR7I,QAAS,KACTmhB,QAAS,KACTlpB,SAA+B,oBAAbA,SAA2B,GAAKA,SAClDU,SAAU,KACVD,SAAS,EACT+S,MAAOgV,EAAQpD,aAAahd,KAAKogB,GACjC0D,UAAW1D,EAAQ2D,iBAAiB/jB,KAAKogB,MAE7C,EAAIvF,EAAYpa,oBAAoB,CAChCrI,QAASgoB,EACT7nB,QAAS,CAAC,IAEV2T,EAAQ7U,QAAQ0Q,OAAO3P,QAAQ4rB,gBAC/B1D,EAAahW,QAAQ0Z,cAAgB9X,EAAQ7U,QAAQ0Q,OAAO3P,QAAQ4rB,eAEpE9X,EAAQ7U,QAAQ0Q,OAAO3P,QAAQ6rB,cAC/B3D,EAAahW,QAAQ2Z,YAAc/X,EAAQ7U,QAAQ0Q,OAAO3P,QAAQ6rB,cAG1E/X,EAAQf,OAASe,EAAQ7U,QAAQ0Q,OAAO3P,QACxC,IAAIurB,EAAiD,IAAhCzX,EAAQf,OAAO9E,MAAMnK,M,6BCrW1C2O,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ1L,aAAU,EAClB0L,EAAQ1L,QAAU,O,mCCFlB,IAAIiS,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgO,wBAAqB,EAC7B,IAAIA,EAAsB,WACtB,SAASA,EAAmBtiB,QACP,IAAbA,IAAuBA,EAAW,MACtCsI,KAAKtI,SAAWA,CACpB,CAmFA,OAlFAsiB,EAAmB5M,UAAUqG,KAAO,SAAUV,EAAMiR,EAAKC,EAAUjR,GAC/D,IAAIe,EAAK1C,OACG,IAAR2S,IAAkBA,EAAM,CAAC,QACZ,IAAbC,IAAuBA,EAAW,IACtC,IAAIxQ,EAAOzT,KAAKqM,OAAO0G,EAAMC,GAC7BhT,KAAKkkB,cAAczQ,EAAMuQ,GACzB,IACI,IAAK,IAAIG,EAAa5R,EAAS0R,GAAWG,EAAeD,EAAWlW,QAASmW,EAAahW,KAAMgW,EAAeD,EAAWlW,OAAQ,CAC9H,IAAI6G,EAAQsP,EAAanY,MACzBjM,KAAK6U,OAAOpB,EAAMqB,EACtB,CACJ,CACA,MAAOP,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQ6P,IAAiBA,EAAahW,OAASiD,EAAK8S,EAAW3P,SAASnD,EAAG/D,KAAK6W,EAChF,CACA,QAAU,GAAIpQ,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,OAAOsI,CACX,EACAuG,EAAmB5M,UAAU8W,cAAgB,SAAUzQ,EAAMuQ,GACzD,IAAI3L,EAAKhH,EAAIwK,EAAKvD,EAAIkE,EAAKhE,EAC3B,GAAIwL,EAAIjM,OAAgC,iBAAfiM,EAAS,MAC9B,IACI,IAAK,IAAIxE,EAAKjN,EAAS5H,OAAOC,KAAKoZ,EAAIjM,QAAS2H,EAAKF,EAAGvR,QAASyR,EAAGtR,KAAMsR,EAAKF,EAAGvR,OAAQ,CACtF,IAAIoW,EAAM3E,EAAGzT,MACbjM,KAAK8X,SAASrE,EAAM4Q,EAAItoB,QAAQ,aAAa,SAAUuoB,EAAI3M,GAAK,OAAOA,EAAE4M,aAAe,IAAIP,EAAIjM,MAAMsM,GAC1G,CACJ,CACA,MAAOxL,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQ6G,IAAOA,EAAGtR,OAASiD,EAAKmO,EAAGhL,SAASnD,EAAG/D,KAAKkS,EACpD,CACA,QAAU,GAAInH,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CAEJ,GAAI6Y,EAAIQ,WACJ,IACI,IAAK,IAAI7E,EAAKpN,EAAS5H,OAAOC,KAAKoZ,EAAIQ,aAAcC,EAAK9E,EAAG1R,QAASwW,EAAGrW,KAAMqW,EAAK9E,EAAG1R,OAAQ,CAE3FwF,EADI4Q,EAAMI,EAAGxY,OACD+X,EAAIQ,WAAWH,EAC/B,CACJ,CACA,MAAO/H,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQmI,IAAOA,EAAGrW,OAASkK,EAAKqH,EAAGnL,SAAS8D,EAAGhL,KAAKqS,EACpD,CACA,QAAU,GAAI9D,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CAEJ,IACI,IAAK,IAAIuZ,EAAKnS,EAAS5H,OAAOC,KAAKoZ,IAAOW,EAAKD,EAAGzW,QAAS0W,EAAGvW,KAAMuW,EAAKD,EAAGzW,OAAQ,CAEnE,WADToW,EAAMM,EAAG1Y,QACkC,iBAAf+X,EAAS,OAA2B,eAARK,GACxDrkB,KAAK4W,aAAanD,EAAM4Q,EAAKL,EAAIK,GAEzC,CACJ,CACA,MAAOxH,GAASL,EAAM,CAAErR,MAAO0R,EAAS,CACxC,QACI,IACQ8H,IAAOA,EAAGvW,OAASoK,EAAKkM,EAAGlQ,SAASgE,EAAGlL,KAAKoX,EACpD,CACA,QAAU,GAAIlI,EAAK,MAAMA,EAAIrR,KAAO,CACxC,CACJ,EACA6O,EAAmB5M,UAAUrR,QAAU,SAAUsZ,EAAOC,GAGpD,OAFAtV,KAAK8H,OAAOuN,EAAOC,GACnBtV,KAAKmV,OAAOG,GACLA,CACX,EACA0E,EAAmB5M,UAAU6I,UAAY,SAAUxC,EAAM/X,GACrD,OAAOsE,KAAKgW,WAAWvC,GAAM/X,EACjC,EACAse,EAAmB5M,UAAUwX,WAAa,SAAUnR,GAChD,IAAIna,EAAU0G,KAAK8W,aAAarD,EAAM,SACtC,OAASna,EACLA,EAAQyC,QAAQ,OAAQ,KAAKA,QAAQ,KAAM,IAAIA,QAAQ,KAAM,IAAIM,MAAM,KADxD,EAEvB,EACO2d,CACX,CAxFyB,GAyFzBhO,EAAQgO,mBAAqBA,C,+BCtG7BrP,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ6Y,sBAAmB,EAC3B,IAAIzE,EAAe,EAAQ,OACvByE,EAAoB,WACpB,SAASA,EAAiBxsB,GACtB,IAAIysB,EAAQ9kB,KAAKsS,YACjBtS,KAAK3H,SAAU,EAAI+nB,EAAa2E,cAAa,EAAI3E,EAAa4E,gBAAgB,CAAC,EAAGF,EAAM1a,SAAU/R,EACtG,CAEA,OADAwsB,EAAiBza,QAAU,CAAC,EACrBya,CACX,CAPuB,GAQvB7Y,EAAQ6Y,iBAAmBA,C,qCCX3B,IACQhT,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEJ1H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQiZ,qBAAkB,EAC1B,IACIC,EAAuB,SAAUzS,GAEjC,SAASyS,IACL,OAAkB,OAAXzS,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CACA,OAJA8R,EAAUoT,EAAqBzS,GAIxByS,CACX,CAN0B,CADF,EAAQ,OAOZC,sBAChBF,EAAmB,WACnB,SAASA,EAAgBrE,EAAS+C,QACb,IAAbA,IAAuBA,EAAW,GACtC3jB,KAAKolB,cAAgBF,EACrBllB,KAAK4gB,QAAUA,EACf5gB,KAAK2jB,SAAWA,CACpB,CAeA,OAdAhZ,OAAOoB,eAAekZ,EAAgB7X,UAAW,OAAQ,CACrDvP,IAAK,WACD,OAAOmC,KAAKsS,YAAY+S,IAC5B,EACAvY,YAAY,EACZD,cAAc,IAElBoY,EAAgB7X,UAAUkY,gBAAkB,SAAUxR,GAClD,OAAO,CACX,EACAmR,EAAgB7X,UAAUf,OAAS,SAAU3U,EAAUW,GACnD,OAAO,IAAI2H,KAAKolB,cAAc1tB,EAAUsI,KAAK4gB,QAASvoB,EAC1D,EACA4sB,EAAgBI,KAAO,UAChBJ,CACX,CAtBsB,GAuBtBjZ,EAAQiZ,gBAAkBA,C,qCChD1B,IACQpT,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEAE,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ9K,iBAAc,EACtB,IACIA,EAAe,SAAUuR,GAEzB,SAASvR,IACL,OAAkB,OAAXuR,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CA+BA,OAlCA8R,EAAU5Q,EAAauR,GAIvBvR,EAAYkM,UAAU4T,SAAW,SAAUvhB,GACvC,OAAOO,KAAKuX,IAAI9X,EAASA,EAAQkkB,SACrC,EACAziB,EAAYkM,UAAU0T,WAAa,SAAUrhB,GACzCO,KAAKmV,OAAO1V,EAChB,EACAyB,EAAYkM,UAAUkY,gBAAkB,SAAU5tB,GAC9C,IAAIqc,EAAK1C,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAASvS,MAAOwY,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACpE,IACIxO,EADO+Y,EAAGvM,MACK8W,KACnB,GAAItjB,EAAQ6lB,gBAAgB5tB,GACxB,OAAO+H,CAEf,CACJ,CACA,MAAO8U,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,MAAM,IAAI2S,MAAM,kCACpB,EACA5c,EAAYkM,UAAU1V,SAAW,SAAUA,EAAUW,GAEjD,YADgB,IAAZA,IAAsBA,EAAU,MAC7B2H,KAAKslB,gBAAgB5tB,GAAU2U,OAAO3U,EAAUW,EAC3D,EACO6I,CACX,CApCkB,CADS,EAAQ,OAqCZoE,iBACvB0G,EAAQ9K,YAAcA,C,+BClEtByJ,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQuZ,sBAAmB,EAC3B,IAAInF,EAAe,EAAQ,OACvBtF,EAAoB,EAAQ,OAC5ByK,EAAoB,WACpB,SAASA,EAAiBltB,QACN,IAAZA,IAAsBA,EAAU,CAAC,GACrC2H,KAAK4gB,QAAU,KACf5gB,KAAKwlB,WAAa,KAClB,IAAIV,EAAQ9kB,KAAKsS,YACjBtS,KAAK3H,SAAU,EAAI+nB,EAAa2E,cAAa,EAAI3E,EAAa4E,gBAAgB,CAAC,EAAGF,EAAM1a,SAAU/R,GAClG2H,KAAKylB,WAAa,IAAI3K,EAAkB3V,aACxCnF,KAAK0lB,YAAc,IAAI5K,EAAkB3V,YAC7C,CAuCA,OAtCAwF,OAAOoB,eAAewZ,EAAiBnY,UAAW,OAAQ,CACtDvP,IAAK,WACD,OAAOmC,KAAKsS,YAAY+S,IAC5B,EACAvY,YAAY,EACZD,cAAc,IAElB0Y,EAAiBnY,UAAUuY,WAAa,SAAU/E,GAC9C5gB,KAAK4gB,QAAUA,CACnB,EACA2E,EAAiBnY,UAAUwY,cAAgB,SAAUJ,GACjDxlB,KAAKwlB,WAAaA,CACtB,EACAD,EAAiBnY,UAAUyY,WAAa,WACxC,EACAN,EAAiBnY,UAAUwU,MAAQ,WAE/B,IADA,IAAIkE,EAAQ,GACHzK,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpCyK,EAAMzK,GAAMC,UAAUD,EAE9B,EACA1Q,OAAOoB,eAAewZ,EAAiBnY,UAAW,iBAAkB,CAChEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElB0Y,EAAiBnY,UAAU2Y,SAAW,SAAUC,EAAOC,GACnD,MAAO,EACX,EACAV,EAAiBnY,UAAU8Y,eAAiB,SAAUC,EAAS7qB,EAAM5D,EAAUqC,GAC3E,IAAIyoB,EAAO,CAAElnB,KAAMA,EAAM5D,SAAUA,EAAUqC,KAAMA,GAEnD,OADAosB,EAAQ3H,QAAQgE,GACTA,EAAKzoB,IAChB,EACAwrB,EAAiBF,KAAO,UACxBE,EAAiBnb,QAAU,CAAC,EACrBmb,CACX,CAjDuB,GAkDvBvZ,EAAQuZ,iBAAmBA,C,qCCtD3B,IACQ1T,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEAE,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACI8K,EAAUtd,MAAQA,KAAKsd,QAAW,SAAUhR,EAAG5P,GAC/C,IAAIN,EAAsB,mBAAX4K,QAAyBsF,EAAEtF,OAAOiI,UACjD,IAAK7S,EAAG,OAAOkQ,EACf,IAAmBiR,EAAYrP,EAA3BxS,EAAIU,EAAEkR,KAAKhB,GAAOkR,EAAK,GAC3B,IACI,WAAc,IAAN9gB,GAAgBA,KAAM,MAAQ6gB,EAAI7hB,EAAEuS,QAAQG,MAAMoP,EAAGvhB,KAAKshB,EAAEtR,MACxE,CACA,MAAOd,GAAS+C,EAAI,CAAE/C,MAAOA,EAAS,CACtC,QACI,IACQoS,IAAMA,EAAEnP,OAAShS,EAAIV,EAAU,SAAIU,EAAEkR,KAAK5R,EAClD,CACA,QAAU,GAAIwS,EAAG,MAAMA,EAAE/C,KAAO,CACpC,CACA,OAAOqS,CACX,EACIC,EAAiBzd,MAAQA,KAAKyd,eAAkB,SAAUC,EAAIhT,EAAMiT,GACpE,GAAIA,GAA6B,IAArBrC,UAAUtf,OAAc,IAAK,IAA4BwhB,EAAxB9hB,EAAI,EAAGkiB,EAAIlT,EAAK1O,OAAYN,EAAIkiB,EAAGliB,KACxE8hB,GAAQ9hB,KAAKgP,IACR8S,IAAIA,EAAK/S,MAAM2C,UAAUvR,MAAMyR,KAAK5C,EAAM,EAAGhP,IAClD8hB,EAAG9hB,GAAKgP,EAAKhP,IAGrB,OAAOgiB,EAAGlK,OAAOgK,GAAM/S,MAAM2C,UAAUvR,MAAMyR,KAAK5C,GACtD,EACAC,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQmZ,qBAAuBnZ,EAAQoa,gBAAkBpa,EAAQqa,aAAera,EAAQsa,gBAAa,EACrG,IAAIlG,EAAe,EAAQ,OACvBmG,EAAgB,EAAQ,OACxBC,EAAiB,EAAQ,OACzBC,EAAgB,EAAQ,OACxBC,EAAgB,EAAQ,OACxBC,EAAkB,EAAQ,OAC1BC,EAAgB,EAAQ,OAExBN,EAAc,SAAU7T,GAExB,SAAS6T,IACL,OAAkB,OAAX7T,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAwIA,OA3IA8R,EAAUwU,EAAY7T,GAItB6T,EAAWja,OAAS,SAAUwa,GAC1B,IAAI9S,EAAK1C,EACLyV,EAAO,IAAI9mB,KACf,IACI,IAAK,IAAIsY,EAAK/F,EAAS5H,OAAOC,KAAKic,IAAWrO,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACpF,IAAIsM,EAAK/B,EAAGvM,MACRuT,EAAKlC,EAAOtd,KAAK+mB,OAAOxM,EAAIsM,EAAQtM,IAAM,GAAIwM,EAASvH,EAAG,GAAImE,EAAWnE,EAAG,GAC5EmE,GACAmD,EAAKvP,IAAIwP,EAAQpD,EAEzB,CACJ,CACA,MAAOpP,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,OAAO2b,CACX,EACAR,EAAWS,OAAS,SAAUxM,EAAIwM,GAC9B,IAAI1V,EAAIiH,EAAIE,EAAIgH,EACZwH,EAAWC,EACX/E,GAAU,EACVyB,EAAWoD,EAAO,GACtB,GAAsB,IAAlBA,EAAO/qB,QAAqC,kBAAd+qB,EAAO,GACnB,IAAlBA,EAAO/qB,SAAiBkmB,EAAU6E,EAAO,IACDC,GAAxC3V,EAAKiM,EAAOtd,KAAKknB,cAAc3M,GAAK,IAAmB,GAAI0M,EAAa5V,EAAG,QAE1E,GAAyB,iBAAd0V,EAAO,GACnB,GAAyB,iBAAdA,EAAO,GAAiB,CACb,IAAlBA,EAAO/qB,SAAiBkmB,EAAU6E,EAAO,IACzC,IAAIrH,EAAKpC,EAAOyJ,EAAOlrB,MAAM,GAAI,GAAIsrB,EAAUzH,EAAG,GAAI0H,EAAU1H,EAAG,GACbsH,GAAtD1O,EAAKgF,EAAOtd,KAAKknB,cAAcC,EAASC,GAAU,IAAmB,GAAIH,EAAa3O,EAAG,EAC7F,MAEsB,IAAlByO,EAAO/qB,SAAiBkmB,EAAU6E,EAAO,IACMC,GAA/CxO,EAAK8E,EAAOtd,KAAKknB,cAAcH,EAAO,IAAK,IAAmB,GAAIE,EAAazO,EAAG,QAIpE,IAAlBuO,EAAO/qB,SAAiBkmB,EAAU6E,EAAO,IACRC,GAAjCxH,EAAKlC,EAAOyJ,EAAOlrB,MAAM,GAAI,IAAmB,GAAIorB,EAAazH,EAAG,GAExE,MAAO,CAAC,CAAEjF,GAAIA,EAAIyM,UAAWA,EAAWC,WAAYA,EAAY/E,QAASA,GAAWyB,EACxF,EACA2C,EAAWY,cAAgB,SAAUC,EAASC,GAE1C,YADgB,IAAZA,IAAsBA,EAAUD,GAC7B,CACH,SAAUzvB,GAA4C,OAAhCyvB,GAAWzvB,EAASyvB,MAAmB,CAAO,EACpE,SAAU7rB,EAAM5D,GAAgD,OAApC0vB,GAAW9rB,EAAK8rB,GAAS1vB,IAAkB,CAAO,EAEtF,EACA4uB,EAAWlZ,UAAU4Z,UAAY,SAAUtvB,EAAUwD,GACjD,IAAImd,EAAKhH,OACK,IAAVnW,IAAoBA,EAAQwrB,EAAcpE,MAAM+E,aACpD,IACI,IAAK,IAAI/O,EAAK/F,EAASvS,KAAKsnB,OAAQ9O,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC1E,IAAI8U,EAAOvK,EAAGvM,MACd,GAAI8W,EAAKY,UAAYzoB,GACb6nB,EAAKA,KAAKiE,UAAUtvB,GACpB,MAEZ,CACJ,CACA,MAAOmhB,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQL,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACJ,EACAmb,EAAWlZ,UAAU6Z,WAAa,SAAU3rB,EAAM5D,EAAUwD,GACxD,IAAI2gB,EAAKxK,OACK,IAAVnW,IAAoBA,EAAQwrB,EAAcpE,MAAM+E,aACpD,IACI,IAAK,IAAI/O,EAAK/F,EAASvS,KAAKsnB,OAAQ9O,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC1E,IAAI8U,EAAOvK,EAAGvM,MACd,GAAI8W,EAAKY,UAAYzoB,GACb6nB,EAAKA,KAAKkE,WAAW3rB,EAAM5D,GAC3B,MAEZ,CACJ,CACA,MAAO4kB,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQ9D,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIuD,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CACJ,EACAmb,EAAWlZ,UAAUma,cAAgB,SAAUjsB,EAAM5D,EAAUyD,GAC3D,IAAIqhB,EAAKnL,OACG,IAARlW,IAAkBA,EAAMurB,EAAcpE,MAAMkF,MAChD,IACI,IAAK,IAAIlP,EAAK/F,EAASvS,KAAKsnB,OAAQ9O,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC1E,IAAI8U,EAAOvK,EAAGvM,MACd,GAAI8W,EAAKY,SAAWxoB,EAChB,OACJ,GAAI4nB,EAAKA,KAAKb,SACNa,EAAKA,KAAKkE,WAAW3rB,EAAM5D,GAC3B,MAEZ,CACJ,CACA,MAAOmlB,GAASL,EAAM,CAAErR,MAAO0R,EAAS,CACxC,QACI,IACQrE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIkE,EAAK,MAAMA,EAAIrR,KAAO,CACxC,CACJ,EACAmb,EAAWlZ,UAAUqa,OAAS,SAAUlN,GACpC,IAAIqF,EAAKvO,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAASvS,KAAKsnB,OAAQ9O,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC1E,IAAI8U,EAAOvK,EAAGvM,MACd,GAAI8W,EAAKA,KAAKxI,KAAOA,EACjB,OAAOwI,EAAKA,IAEpB,CACJ,CACA,MAAOlD,GAASD,EAAM,CAAEzU,MAAO0U,EAAS,CACxC,QACI,IACQrH,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIsH,EAAK,MAAMA,EAAIzU,KAAO,CACxC,CACA,OAAO,IACX,EACOmb,CACX,CA7IiB,CADU,EAAQ,OA8IZhhB,iBACvB0G,EAAQsa,WAAaA,EACrBta,EAAQqa,aAAe,CACnBzK,KAAK,EACL8L,WAAW,EACXC,SAAU,KACVC,UAAW,MAEf5b,EAAQoa,gBAAkB,CACtBxK,KAAK,EACL8L,WAAW,EACXC,SAAU,GACVC,UAAW,IAEf,IAAIC,EAAmB,SAAUpV,GAE7B,SAASoV,IACL,OAAkB,OAAXpV,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAIA,OAPA8R,EAAU+V,EAAiBpV,GAI3BoV,EAAgBza,UAAU0a,QAAU,SAAUC,GAC1C,OAAO,IACX,EACOF,CACX,CATsB,CASpBtB,EAAchB,kBACZyC,EAAoB,SAAUvV,GAE9B,SAASuV,IACL,OAAkB,OAAXvV,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAQA,OAXA8R,EAAUkW,EAAkBvV,GAI5BuV,EAAiB5a,UAAUjV,QAAU,SAAU4vB,EAAOjU,GAElD,YADkB,IAAdA,IAAwBA,EAAY,MACjC,IACX,EACAkU,EAAiB5a,UAAU6a,QAAU,SAAUF,EAAOjU,GAClD,OAAO,IACX,EACOkU,CACX,CAbuB,CAarBxB,EAAe0B,mBACbC,EAAmB,SAAU1V,GAE7B,SAAS0V,IACL,OAAkB,OAAX1V,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CACA,OAJA8R,EAAUqW,EAAiB1V,GAIpB0V,CACX,CANsB,CAMpB1B,EAAc2B,kBACZC,EAAmB,SAAU5V,GAE7B,SAAS4V,IACL,OAAkB,OAAX5V,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CACA,OAJA8R,EAAUuW,EAAiB5V,GAIpB4V,CACX,CANsB,CAMpB3B,EAAc4B,kBACZnD,EAAwB,WACxB,SAASA,EAAqBztB,EAAUkpB,EAASvoB,GAC7C,IAAIqa,EAAQ1S,KACR8kB,EAAQ9kB,KAAKsS,YACjBtS,KAAKtI,SAAWA,EAChBsI,KAAK3H,SAAU,EAAI+nB,EAAa2E,cAAa,EAAI3E,EAAa4E,gBAAgB,CAAC,EAAGF,EAAM1a,SAAU/R,GAClG2H,KAAK1E,KAAO,IAAK0E,KAAK3H,QAAkB,UAAK8vB,GAC7CnoB,KAAKuoB,cAAgBjC,EAAWja,OAAOrM,KAAK3H,QAAuB,eACnE2H,KAAK0nB,UAAY,IAAIvC,EAAqBqD,YAC1CxoB,KAAK4nB,UAAY5nB,KAAK3H,QAAmB,WAAK,IAAI2vB,EAClD,IAAIL,EAAW3nB,KAAK3H,QAAkB,UAAK,CAAC,IAAIwvB,GAC3Cpd,MAAM2J,QAAQuT,KACfA,EAAW,CAACA,IAEhB3nB,KAAK2nB,SAAWA,EAChB3nB,KAAK4gB,QAAUA,EACf5gB,KAAK4nB,UAAUjC,WAAW/E,GAC1B5gB,KAAK2nB,SAASxQ,KAAI,SAAUoK,GAAO,OAAOA,EAAIoE,WAAW/E,EAAU,IACnE5gB,KAAKwlB,WAAaxlB,KAAK3H,QAAoB,YAAK,IAAIsuB,EAAgBhlB,WACpE3B,KAAK2nB,SAASxQ,KAAI,SAAUoK,GAAO,OAAOA,EAAIqE,cAAclT,EAAM8S,WAAa,IAC/ExlB,KAAK4nB,UAAU/B,aACf7lB,KAAK2nB,SAASxQ,KAAI,SAAUoK,GAAO,OAAOA,EAAIsE,YAAc,GAChE,CAqUA,OApUAlb,OAAOoB,eAAeoZ,EAAqB/X,UAAW,OAAQ,CAC1DvP,IAAK,WACD,OAAOmC,KAAKsS,YAAYmW,IAC5B,EACA3b,YAAY,EACZD,cAAc,IAElBsY,EAAqB/X,UAAUsb,gBAAkB,SAAUnO,GAEvD,IADA,IAAIwM,EAAS,GACJ1L,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpC0L,EAAO1L,EAAK,GAAKC,UAAUD,GAE/B,IAAIhK,EAAKiM,EAAOgJ,EAAWS,OAAOxM,EAAIwM,GAAS,GAAIhnB,EAAKsR,EAAG,GAAIc,EAAId,EAAG,GACtErR,KAAKuoB,cAAchR,IAAIxX,EAAIoS,EAC/B,EACAgT,EAAqB/X,UAAUub,mBAAqB,SAAUpO,GAC1D,IAAIwM,EAAS/mB,KAAKuoB,cAAcd,OAAOlN,GACnCwM,GACA/mB,KAAKuoB,cAAcpT,OAAO4R,EAElC,EACA5B,EAAqB/X,UAAUyU,OAAS,WAEpC,OADA7hB,KAAKuoB,cAAcvB,UAAUhnB,MACtBA,IACX,EACAmlB,EAAqB/X,UAAUwb,SAAW,SAAU1tB,GAIhD,YAHc,IAAVA,IAAoBA,EAAQwrB,EAAcpE,MAAMuG,UACpD7oB,KAAK8oB,MAAM5tB,EAAQ,GACnB8E,KAAK6hB,SACE7hB,IACX,EACAmlB,EAAqB/X,UAAU8U,QAAU,SAAU5mB,EAAMjD,QACrC,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIgZ,GAAK,EAAI+O,EAAa2E,aAAa,CACnClS,OAAQ7S,KAAK2nB,SAAS,GAAG1hB,KAAMoc,SAAS,EAAMlnB,IAAKurB,EAAcpE,MAAMkF,KACvErO,GAAI,GAAI4P,GAAI,EAAGC,eAAgB,KAAMC,UAAW,IAASC,MAAO,EAAGC,OAAQ,IAC5E9wB,GAAUwa,EAASxB,EAAGwB,OAAQwP,EAAUhR,EAAGgR,QAASlnB,EAAMkW,EAAGlW,IAAK4tB,EAAK1X,EAAG0X,GAAI5P,EAAK9H,EAAG8H,GAAI6P,EAAiB3X,EAAG2X,eAAgBC,EAAY5X,EAAG4X,UAAWC,EAAQ7X,EAAG6X,MAAOC,EAAS9X,EAAG8X,OAClK,OAAnBH,IACAA,EAAiB,GAAKD,GAE1B,IAAIxH,EAAMvhB,KAAK2nB,SAASyB,QAAO,SAAU7H,EAAK8H,GAAQ,OAAQA,EAAKpjB,OAAS4M,EAASwW,EAAO9H,CAAM,GAAG,MACjG+H,EAAQ,IAAItpB,KAAK3H,QAAQgJ,SAAS/F,EAAMimB,EAAKc,GAUjD,OATAiH,EAAMpuB,MAAMuY,KAAOzT,KAAK4gB,QAAQrS,KAAKvO,KAAKtI,UAC1C4xB,EAAMC,WAAWpQ,EAAI4P,EAAIC,EAAgBC,EAAWC,GAChDlpB,KAAK4nB,UAAUvvB,QAAQmxB,mBACvBF,EAAMG,WAAWC,YAAcP,GAE/BnpB,KAAK4nB,UAAUvvB,QAAQsxB,oBACvBL,EAAMG,WAAWG,aAAeT,GAEpCG,EAAMpH,QAAQliB,KAAM7E,GACZmuB,EAAMO,aAAeP,EAAMhW,IACvC,EACA6R,EAAqB/X,UAAU2Y,SAAW,SAAUE,GAGhD,YAFiB,IAAbA,IAAuBA,EAAW,MACtCjmB,KAAK0nB,UAAUtK,IAAI,YACZpd,IACX,EACAmlB,EAAqB/X,UAAU0a,QAAU,WACrC,IAAIhI,EAAKzO,EAAIyY,EAAKxR,EAClB,IAAKtY,KAAK0nB,UAAUqC,MAAM,WAAY,CAClC,IAAIC,EAAY,GAChB,IACI,IAAK,IAAIxR,EAAKjG,EAASvS,KAAK1E,MAAOkkB,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,CACzE,IAAI3S,EAAOkkB,EAAGvT,MACdjM,KAAKiqB,YAAY3uB,QACgBuB,IAA7BvB,EAAK4uB,UAAUF,WACfA,EAAU/tB,KAAKX,EAEvB,CACJ,CACA,MAAOykB,GAASD,EAAM,CAAE3U,MAAO4U,EAAS,CACxC,QACI,IACQP,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIsH,EAAK,MAAMA,EAAI3U,KAAO,CACxC,CACA,IACI,IAAK,IAAIgf,EAAc5X,EAASyX,GAAYI,EAAgBD,EAAYlc,QAASmc,EAAchc,KAAMgc,EAAgBD,EAAYlc,OAAQ,CACrI,IACIlU,GADAuB,EAAO8uB,EAAcne,OACTie,UAAUF,UAC1B1uB,EAAKwtB,MAAM/uB,EAAK+uB,OAChBxtB,EAAK4uB,UAAUF,UAAYjwB,EAC3BiG,KAAKiqB,YAAY3uB,EACrB,CACJ,CACA,MAAO+uB,GAASP,EAAM,CAAE3e,MAAOkf,EAAS,CACxC,QACI,IACQD,IAAkBA,EAAchc,OAASkK,EAAK6R,EAAY3V,SAAS8D,EAAGhL,KAAK6c,EACnF,CACA,QAAU,GAAIL,EAAK,MAAMA,EAAI3e,KAAO,CACxC,CACAnL,KAAK0nB,UAAUtK,IAAI,UACvB,CACA,OAAOpd,IACX,EACAmlB,EAAqB/X,UAAU6c,YAAc,SAAU3uB,GACnD,IACIA,EAAKwsB,QAAQ9nB,KACjB,CACA,MAAO7C,GACH,GAAIA,EAAImtB,OAASntB,EAAIotB,QACjB,MAAMptB,EAEV6C,KAAK3H,QAAsB,aAAE2H,KAAM1E,EAAM6B,GACzC7B,EAAK4uB,UAAiB,MAAI/sB,CAC9B,CACJ,EACAgoB,EAAqB/X,UAAUod,aAAe,SAAUlvB,EAAM6B,GAC1D7B,EAAKgY,KAAOtT,KAAKwlB,WAAWnZ,OAAO,OAAQ,KAAM,CAC7CrM,KAAKwlB,WAAWnZ,OAAO,SAAU,CAAE,iBAAkBlP,EAAIG,QAASmtB,MAAOttB,EAAIG,SAAW,CACpF0C,KAAKwlB,WAAWnZ,OAAO,QAAS,KAAM,CAClCrM,KAAKwlB,WAAWnZ,OAAO,QAAQqe,QAAQ,0BAI/CpvB,EAAK+mB,SACL/mB,EAAKgY,KAAK4D,WAAWkG,IAAI,UAAW,SAExC9hB,EAAK4uB,UAAU/e,MAAQhO,EAAIG,OAC/B,EACA6nB,EAAqB/X,UAAUjV,QAAU,WACrC,IAAIwyB,EAAKtZ,EACT,IAAKrR,KAAK0nB,UAAUqC,MAAM,WAAY,CAClC,IACI,IAAK,IAAIzR,EAAK/F,EAASvS,KAAK1E,MAAOkd,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACzE,IAAI3S,EAAOkd,EAAGvM,MACd,IACI3Q,EAAKnD,QAAQ6H,KACjB,CACA,MAAO7C,GACH,GAAIA,EAAImtB,OAASntB,EAAIotB,QACjB,MAAMptB,EAEV6C,KAAK3H,QAAsB,aAAE2H,KAAM1E,EAAM6B,GACzC7B,EAAKmuB,WAAkB,MAAItsB,CAC/B,CACJ,CACJ,CACA,MAAOytB,GAASD,EAAM,CAAExf,MAAOyf,EAAS,CACxC,QACI,IACQpS,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIqS,EAAK,MAAMA,EAAIxf,KAAO,CACxC,CACAnL,KAAK0nB,UAAUtK,IAAI,UACvB,CACA,OAAOpd,IACX,EACAmlB,EAAqB/X,UAAUyd,aAAe,SAAUvvB,EAAM6B,GAC1D7B,EAAKuuB,YAAc7pB,KAAK4gB,QAAQnN,KAAK,gBAAiB,CAClDqX,MAAO,2BACPvJ,IAAKvhB,KAAK4nB,UAAU3hB,MACrB,CACCjG,KAAK4gB,QAAQnN,KAAK,OAAQ,CACtB,iBAAkBtW,EAAIG,QACtBmtB,MAAOttB,EAAIG,QACXya,MAAO,CACHgT,MAAO,MACP,mBAAoB,SACpB,cAAe,WAEpB,CACC/qB,KAAK4gB,QAAQzkB,KAAK,yBAGtBb,EAAK+mB,SACLriB,KAAK4gB,QAAQsD,cAAc5oB,EAAKuuB,YAAa,CACzC9R,MAAO,CACHsK,QAAS,QACT2I,OAAQ,QACR,aAAc,YAI1B1vB,EAAKmuB,WAAWte,MAAQhO,EAAIG,OAChC,EACA6nB,EAAqB/X,UAAU6d,WAAa,WAKxC,OAJKjrB,KAAK0nB,UAAUqC,MAAM,gBACtB/pB,KAAK4nB,UAAUqD,WAAWjrB,MAC1BA,KAAK0nB,UAAUtK,IAAI,eAEhBpd,IACX,EACAmlB,EAAqB/X,UAAU8d,eAAiB,WAC5C,IAAIC,EAAK9Z,EACT,IAAKrR,KAAK0nB,UAAUqC,MAAM,kBAAmB,CACzC,IACI,IAAK,IAAIzR,EAAK/F,EAASvS,KAAK1E,KAAK8vB,YAAa5S,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACzEuK,EAAGvM,MACTif,eAAelrB,KACxB,CACJ,CACA,MAAOqrB,GAASF,EAAM,CAAEhgB,MAAOkgB,EAAS,CACxC,QACI,IACQ7S,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAI6S,EAAK,MAAMA,EAAIhgB,KAAO,CACxC,CACAnL,KAAK0nB,UAAUtK,IAAI,iBACvB,CACA,OAAOpd,IACX,EACAmlB,EAAqB/X,UAAUke,mBAAqB,SAAUC,GAE1D,YADiB,IAAbA,IAAuBA,GAAW,GAC/BvrB,IACX,EACAmlB,EAAqB/X,UAAU0b,MAAQ,SAAUA,EAAO0C,GACpD,IAAIC,EAAMpa,OACM,IAAZma,IAAsBA,GAAU,GACpC,IACI,IAAK,IAAIlT,EAAK/F,EAASvS,KAAK1E,MAAOkd,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC9DuK,EAAGvM,MACT6c,MAAMA,EAAO0C,EACtB,CACJ,CACA,MAAOE,GAAUD,EAAO,CAAEtgB,MAAOugB,EAAU,CAC3C,QACI,IACQlT,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAImT,EAAM,MAAMA,EAAKtgB,KAAO,CAC1C,CAWA,OAVI2d,EAAQpC,EAAcpE,MAAMqJ,UAC5B3rB,KAAK0nB,UAAUzF,MAAM,kBAErB6G,EAAQpC,EAAcpE,MAAMsJ,UAC5B5rB,KAAK0nB,UAAUzF,MAAM,WACrBjiB,KAAK0nB,UAAUzF,MAAM,eAErB6G,EAAQpC,EAAcpE,MAAMuJ,UAC5B7rB,KAAK0nB,UAAUzF,MAAM,WAElBjiB,IACX,EACAmlB,EAAqB/X,UAAUwU,MAAQ,SAAUvpB,GAC7C,IAAIgZ,EAOJ,YANgB,IAAZhZ,IAAsBA,EAAU,CAAEqvB,WAAW,KACjDrvB,GAAU,EAAI+nB,EAAa2E,aAAapa,OAAOsV,OAAO,CAAC,EAAGjU,EAAQqa,cAAehuB,IACzEujB,KAAOjR,OAAOsV,OAAO5nB,EAAS2T,EAAQoa,iBAC9C/tB,EAAQqvB,WAAa1nB,KAAK0nB,UAAU9F,QACpCvpB,EAAQsvB,UAAY3nB,KAAK2nB,SAASmE,SAAQ,SAAUvK,GAAO,OAAOA,EAAIK,MAAMvT,MAAMkT,EAAK9D,EAAc,GAAIH,EAAOjlB,EAAQsvB,WAAW,GAAS,IAC5ItvB,EAAQuvB,YAAcvW,EAAKrR,KAAK4nB,WAAWhG,MAAMvT,MAAMgD,EAAIoM,EAAc,GAAIH,EAAOjlB,EAAQuvB,YAAY,IACjG5nB,IACX,EACAmlB,EAAqB/X,UAAU6U,MAAQ,WAGnC,OAFAjiB,KAAK4hB,QACL5hB,KAAK1E,KAAK2mB,QACHjiB,IACX,EACAmlB,EAAqB/X,UAAUoG,OAAS,SAAUsT,GAE9C,OADA9mB,KAAK1E,KAAKywB,MAAMjF,GACT9mB,IACX,EACAmlB,EAAqB/X,UAAU4U,qBAAuB,SAAUhO,GAC5D,IAAI3C,EACAiW,EAAQtnB,KAAKgsB,mBAAmBhY,GAEpC,OADC3C,EAAKrR,KAAK1E,MAAM6Z,OAAO9G,MAAMgD,EAAIoM,EAAc,GAAIH,EAAOgK,IAAQ,IAC5DA,CACX,EACAnC,EAAqB/X,UAAU4e,mBAAqB,SAAU5zB,GAC1D,IAAI6zB,EAAM5a,EAAI6a,EAAM5T,EACf7N,MAAM2J,QAAQhc,KACfA,EAAW,CAACA,IAEhB,IAAIwoB,EAAU5gB,KAAK4gB,QACf0G,EAAQ,GACRtT,EAAa4M,EAAQ/M,YAAYzb,EAAU4H,KAAKtI,UACpD,IACIy0B,EAAO,IAAK,IAAI3T,EAAKjG,EAASvS,KAAK1E,MAAOkkB,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,CAChF,IAAI8U,EAAOvD,EAAGvT,MACd,IACI,IAAK,IAAImgB,GAAgBF,OAAO,EAAQ3Z,EAASyB,IAAcqY,EAAiBD,EAAane,QAASoe,EAAeje,KAAMie,EAAiBD,EAAane,OAAQ,CAC7J,IAAIyG,EAAY2X,EAAepgB,MAC/B,GAAI8W,EAAK7nB,MAAMuY,MAAQmN,EAAQnM,SAASC,EAAWqO,EAAK7nB,MAAMuY,MAAO,CACjE6T,EAAMrrB,KAAK8mB,GACX,SAASoJ,CACb,CACJ,CACJ,CACA,MAAOG,GAAUJ,EAAO,CAAE/gB,MAAOmhB,EAAU,CAC3C,QACI,IACQD,IAAmBA,EAAeje,OAASkK,EAAK8T,EAAa5X,SAAS8D,EAAGhL,KAAK8e,EACtF,CACA,QAAU,GAAIF,EAAM,MAAMA,EAAK/gB,KAAO,CAC1C,CACJ,CACJ,CACA,MAAOohB,GAAUN,EAAO,CAAE9gB,MAAOohB,EAAU,CAC3C,QACI,IACQ/M,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIyT,EAAM,MAAMA,EAAK9gB,KAAO,CAC1C,CACA,OAAOmc,CACX,EACAnC,EAAqBsD,KAAO,eAC5BtD,EAAqB/a,QAAU,CAC3BtG,UAAW,KACX3C,SAAU,KACVQ,WAAY,KACZL,SAAU6mB,EACV9mB,SAAUgnB,EACVmC,aAAc,SAAUnX,EAAK/X,EAAM6B,GAC/BkW,EAAImX,aAAalvB,EAAM6B,EAC3B,EACA0tB,aAAc,SAAUxX,EAAK/X,EAAM6B,GAC/BkW,EAAIwX,aAAavvB,EAAM6B,EAC3B,EACAorB,eAAe,EAAInI,EAAaoM,YAAY,CACxC1tB,KAAM,CAAC4nB,EAAcpE,MAAMmK,SAAU,WAAY,IAAI,GACrD3E,QAAS,CAACpB,EAAcpE,MAAMuJ,UAC9Ba,QAAS,CAAChG,EAAcpE,MAAMqK,QAAS,aAAc,IAAI,GACzDx0B,QAAS,CAACuuB,EAAcpE,MAAMsJ,SAC9BgB,OAAQ,CAAClG,EAAcpE,MAAMqJ,SAAU,kBAAkB,MAGjExG,EAAqBqD,aAAc,EAAI5B,EAAciG,eAAe,WAAY,UAAW,aAAc,UAAW,kBAC7G1H,CACX,CA5V2B,GA6V3BnZ,EAAQmZ,qBAAuBA,C,6BC3lB/Bxa,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ8gB,SAAW9gB,EAAQsW,MAAQtW,EAAQsc,iBAAmBtc,EAAQ+gB,eAAY,EAOlF/gB,EAAQ+gB,UANR,SAAmBC,EAAM1xB,EAAM2xB,EAAOvwB,EAAGxB,EAAOC,EAAKknB,GAIjD,YAHgB,IAAZA,IAAsBA,EAAU,MACzB,CAAE2K,KAAMA,EAAM1xB,KAAMA,EAAM2xB,MAAOA,EACxCvwB,EAAMxB,MAAO,CAAEwB,EAAGxB,GAASC,IAAK,CAAEuB,EAAGvB,GAAOknB,QAASA,EAE7D,EAEA,IAAIiG,EAAoB,WACpB,SAASA,EAAiBhtB,EAAMimB,EAAKc,EAASnnB,EAAOC,QACjC,IAAZknB,IAAsBA,GAAU,QACtB,IAAVnnB,IAAoBA,EAAQ,CAAEQ,EAAG,EAAGgB,EAAG,EAAGwwB,MAAO,UACzC,IAAR/xB,IAAkBA,EAAM,CAAEO,EAAG,EAAGgB,EAAG,EAAGwwB,MAAO,KACjDltB,KAAKsT,KAAO,KACZtT,KAAK6pB,YAAc,KACnB7pB,KAAK0sB,QAAU,CAAC,EAChB1sB,KAAKkqB,UAAY,CAAC,EAClBlqB,KAAKypB,WAAa,CAAC,EACnBzpB,KAAKmtB,OAASnhB,EAAQsW,MAAM+E,YAC5BrnB,KAAK1E,KAAOA,EACZ0E,KAAK2nB,SAAWpG,EAChBvhB,KAAKqiB,QAAUA,EACfriB,KAAK9E,MAAQA,EACb8E,KAAK7E,IAAMA,EACX6E,KAAKsT,KAAO,KACZtT,KAAK6pB,YAAc,KACnB7pB,KAAK0sB,QAAU,CAAC,EAChB1sB,KAAKkqB,UAAY,CAAC,EAClBlqB,KAAKypB,WAAa,CAAC,CACvB,CAmEA,OAlEA9e,OAAOoB,eAAeuc,EAAiBlb,UAAW,YAAa,CAC3DvP,IAAK,WACD,OAAwB,OAAjBmC,KAAKqiB,OAChB,EACAvV,YAAY,EACZD,cAAc,IAElByb,EAAiBlb,UAAUyU,OAAS,SAAUnqB,GAC1CA,EAAS6wB,cAActB,WAAWjnB,KAAMtI,EAC5C,EACA4wB,EAAiBlb,UAAUwb,SAAW,SAAUlxB,EAAUwD,QACxC,IAAVA,IAAoBA,EAAQ8Q,EAAQsW,MAAMuG,UAC1C7oB,KAAK8oB,SAAW5tB,GAChB8E,KAAK8oB,MAAM5tB,EAAQ,GAEvBxD,EAAS6wB,cAActB,WAAWjnB,KAAMtI,EAAUwD,EACtD,EACAotB,EAAiBlb,UAAU8U,QAAU,SAAUxqB,EAAUyD,QACzC,IAARA,IAAkBA,EAAM6Q,EAAQsW,MAAMkF,MAC1C9vB,EAAS6wB,cAAchB,cAAcvnB,KAAMtI,EAAUyD,EACzD,EACAmtB,EAAiBlb,UAAU0a,QAAU,SAAUpwB,GACvCsI,KAAK8oB,QAAU9c,EAAQsW,MAAMuJ,WAC7B7rB,KAAKsT,KAAOtT,KAAK2nB,SAASG,QAAQ9nB,KAAMtI,GACxCsI,KAAK8oB,MAAM9c,EAAQsW,MAAMuJ,UAEjC,EACAvD,EAAiBlb,UAAUjV,QAAU,SAAUT,GACvCsI,KAAK8oB,QAAU9c,EAAQsW,MAAMsJ,UAC7B5rB,KAAK6pB,YAAcnyB,EAASkwB,UAAU5nB,KAAKotB,UAAY,UAAY,WAAWptB,KAAMtI,GACpFsI,KAAK8oB,MAAM9c,EAAQsW,MAAMsJ,SAEjC,EACAtD,EAAiBlb,UAAU8d,eAAiB,SAAUpX,GAAa,EACnEwU,EAAiBlb,UAAUke,mBAAqB,SAAUC,QACrC,IAAbA,IAAuBA,GAAW,EAC1C,EACAjD,EAAiBlb,UAAUmc,WAAa,SAAUpQ,EAAI4P,EAAIsE,EAAQC,EAAQpE,GACtElpB,KAAK0sB,QAAU,CACXvT,GAAIA,EAAI4P,GAAIA,EACZC,eAAgBqE,EAChBpE,UAAWqE,EACXpE,MAAOA,EAEf,EACAZ,EAAiBlb,UAAU0b,MAAQ,SAAUA,EAAO0C,GAehD,YAdc,IAAV1C,IAAoBA,EAAQ,WAChB,IAAZ0C,IAAsBA,GAAU,GACvB,MAAT1C,IACIA,EAAQ9c,EAAQsW,MAAMqJ,UAAY3rB,KAAKmtB,QAAUnhB,EAAQsW,MAAMqJ,UAC/D3rB,KAAKsrB,mBAAmBE,GAExB1C,EAAQ9c,EAAQsW,MAAMsJ,SAAW5rB,KAAKmtB,QAAUnhB,EAAQsW,MAAMsJ,UAC9D5rB,KAAKypB,WAAa,CAAC,GAEnBX,EAAQ9c,EAAQsW,MAAMuJ,UAAY7rB,KAAKmtB,QAAUnhB,EAAQsW,MAAMuJ,WAC/D7rB,KAAKkqB,UAAY,CAAC,GAEtBlqB,KAAKmtB,OAASrE,GAEX9oB,KAAKmtB,MAChB,EACA7E,EAAiBlb,UAAUwU,MAAQ,SAAU4J,QACzB,IAAZA,IAAsBA,GAAU,GACpCxrB,KAAK8oB,MAAM9c,EAAQsW,MAAM+E,YAAamE,EAC1C,EACOlD,CACX,CAzFuB,GA0FvBtc,EAAQsc,iBAAmBA,EAC3Btc,EAAQsW,MAAQ,CACZ+E,YAAa,EACboF,SAAU,GACVZ,SAAU,GACVtJ,QAAS,IACToK,QAAS,IACT9D,SAAU,IACV+C,QAAS,IACTD,SAAU,IACVnE,KAAM,KAQVxb,EAAQ8gB,SANR,SAAkB7mB,EAAM6iB,GACpB,GAAI7iB,KAAQ+F,EAAQsW,MAChB,MAAMxE,MAAM,SAAW7X,EAAO,mBAElC+F,EAAQsW,MAAMrc,GAAQ6iB,CAC1B,C,qCCpHA,IACQjX,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEJ1H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQoc,sBAAmB,EAC3B,IACIA,EAAoB,SAAU3V,GAE9B,SAAS2V,IACL,OAAkB,OAAX3V,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAIA,OAPA8R,EAAUsW,EAAkB3V,GAI5B2V,EAAiBhb,UAAUmgB,SAAW,SAAUC,EAAGxb,GAC/C,OAAQwb,EAAEtyB,MAAMQ,EAAIsW,EAAE9W,MAAMQ,GAAM8xB,EAAEtyB,MAAMQ,IAAMsW,EAAE9W,MAAMQ,GAAK8xB,EAAEtyB,MAAMwB,EAAIsV,EAAE9W,MAAMwB,CACrF,EACO0rB,CACX,CATuB,CADD,EAAQ,OAUZhjB,YAClB4G,EAAQoc,iBAAmBA,C,mCC5B3B,IAAI7V,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQxK,WAAawK,EAAQyhB,aAAU,EACvCzhB,EAAQyhB,QAAU,YAClB,IAAIjsB,EAAc,WACd,SAASA,EAAWksB,EAAU7sB,GAC1Bb,KAAKa,OAASA,EACdb,KAAK0tB,SAAW/iB,OAAO0B,OAAOxL,GAC9Bb,KAAK2tB,UAAYhjB,OAAO0B,OAAOrM,KAAK0tB,UACpC1tB,KAAKkX,WAAavM,OAAO0B,OAAOrM,KAAK2tB,WACrChjB,OAAOsV,OAAOjgB,KAAK0tB,SAAUA,EACjC,CAiFA,OAhFAlsB,EAAW4L,UAAUgQ,IAAM,SAAUnX,EAAMgG,GACvCjM,KAAKkX,WAAWjR,GAAQgG,CAC5B,EACAzK,EAAW4L,UAAUwgB,QAAU,SAAU9G,GACrCnc,OAAOsV,OAAOjgB,KAAKkX,WAAY4P,EACnC,EACAtlB,EAAW4L,UAAUvP,IAAM,SAAUoI,GACjC,IAAIgG,EAAQjM,KAAKkX,WAAWjR,GAI5B,OAHIgG,IAAUD,EAAQyhB,UAClBxhB,EAAQjM,KAAKa,OAAOoF,IAEjBgG,CACX,EACAzK,EAAW4L,UAAUygB,YAAc,SAAU5nB,GACzC,GAAKjG,KAAKkX,WAAW7J,eAAepH,GAGpC,OAAOjG,KAAKkX,WAAWjR,EAC3B,EACAzE,EAAW4L,UAAU0gB,QAAU,WAG3B,IAFA,IAAI/Z,EAAK1C,EACL+J,EAAQ,GACHC,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpCD,EAAMC,GAAMC,UAAUD,GAE1B,IAAIoD,EAAS,CAAC,EACd,IACI,IAAK,IAAIjD,EAAUjJ,EAAS6I,GAAQK,EAAYD,EAAQvN,QAASwN,EAAUrN,KAAMqN,EAAYD,EAAQvN,OAAQ,CACzG,IAAIyN,EAASD,EAAUxP,MACvBwS,EAAO/C,GAAU1b,KAAKnC,IAAI6d,EAC9B,CACJ,CACA,MAAOnH,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQkH,IAAcA,EAAUrN,OAASiD,EAAKmK,EAAQhH,SAASnD,EAAG/D,KAAKkO,EACvE,CACA,QAAU,GAAIzH,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,OAAOsT,CACX,EACAjd,EAAW4L,UAAU2gB,aAAe,SAAU9nB,EAAMgG,GAChDjM,KAAK2tB,UAAU1nB,GAAQgG,CAC3B,EACAzK,EAAW4L,UAAU4gB,aAAe,SAAU/nB,GAC1C,OAAOjG,KAAK2tB,UAAU1nB,EAC1B,EACAzE,EAAW4L,UAAU6gB,WAAa,SAAUhoB,GACxC,OAAOjG,KAAK0tB,SAASznB,EACzB,EACAzE,EAAW4L,UAAU2c,MAAQ,SAAU9jB,GACnC,OAAOjG,KAAKkX,WAAW7J,eAAepH,IAASjG,KAAK2tB,UAAUtgB,eAAepH,EACjF,EACAzE,EAAW4L,UAAU8gB,WAAa,SAAUjoB,GACxC,OAAQA,KAAQjG,KAAK0tB,QACzB,EACAlsB,EAAW4L,UAAU+gB,iBAAmB,WACpC,OAAOxjB,OAAOC,KAAK5K,KAAKkX,WAC5B,EACA1V,EAAW4L,UAAUghB,kBAAoB,WACrC,OAAOzjB,OAAOC,KAAK5K,KAAK2tB,UAC5B,EACAnsB,EAAW4L,UAAUihB,gBAAkB,WACnC,OAAO1jB,OAAOC,KAAK5K,KAAK0tB,SAC5B,EACAlsB,EAAW4L,UAAUkhB,eAAiB,WAClC,OAAO3jB,OAAOC,KAAK5K,KAAKa,OAC5B,EACAW,EAAW4L,UAAUmhB,iBAAmB,WACpC,OAAOvuB,KAAKkX,UAChB,EACA1V,EAAW4L,UAAUohB,gBAAkB,WACnC,OAAOxuB,KAAK2tB,SAChB,EACAnsB,EAAW4L,UAAUqhB,eAAiB,WAClC,OAAOzuB,KAAK0tB,QAChB,EACAlsB,EAAW4L,UAAUshB,cAAgB,WACjC,OAAO1uB,KAAKa,MAChB,EACOW,CACX,CAzFiB,GA0FjBwK,EAAQxK,WAAaA,C,8BCxGrB,IAAI6P,EACJ1G,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQvK,SAAM,EACd,IAAIktB,EAAe,EAAQ,OACvBC,EAAY,EAAQ,OACpBC,EAAU,EAAQ,OAClBC,EAAU,EAAQ,OAClBC,EAAU,EAAQ,OAClBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OACtBC,EAAU,EAAQ,OAClBC,EAAY,EAAQ,MACpBC,EAAa,EAAQ,OACrBC,EAAa,EAAQ,OACrBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OACtBC,EAAc,EAAQ,OACtBC,EAAe,EAAQ,OACvBC,EAAgB,EAAQ,OACxBC,EAAe,EAAQ,OACvBC,EAAgB,EAAQ,OACxBC,EAAe,EAAQ,OACvBC,EAAe,EAAQ,OACvBC,EAAkB,EAAQ,OAC1BC,EAAqB,EAAQ,OAC7BC,EAAc,EAAQ,OACtBC,EAAW,EAAQ,OACnBC,EAAW,EAAQ,OACnBC,EAAmB,EAAQ,OAC3BC,EAAkB,EAAQ,OAC1BC,EAAc,EAAQ,MACtBC,EAAiB,EAAQ,OACzBC,EAAe,EAAQ,OACvBC,EAAkB,EAAQ,OAC9BzkB,EAAQvK,MAAO4P,EAAK,CAAC,GACdud,EAAU8B,QAAQtjB,UAAU2F,MAAQ6b,EAAU8B,QACjDrf,EAAGwd,EAAQ8B,MAAMvjB,UAAU2F,MAAQ8b,EAAQ8B,MAC3Ctf,EAAGyd,EAAQ8B,MAAMxjB,UAAU2F,MAAQ+b,EAAQ8B,MAC3Cvf,EAAG0d,EAAQ8B,MAAMzjB,UAAU2F,MAAQgc,EAAQ8B,MAC3Cxf,EAAG2d,EAAW8B,SAAS1jB,UAAU2F,MAAQic,EAAW8B,SACpDzf,EAAG4d,EAAY8B,UAAU3jB,UAAU2F,MAAQkc,EAAY8B,UACvD1f,EAAG6d,EAAQ8B,MAAM5jB,UAAU2F,MAAQmc,EAAQ8B,MAC3C3f,EAAG8d,EAAU8B,QAAQ7jB,UAAU2F,MAAQoc,EAAU8B,QACjD5f,EAAG8d,EAAU+B,gBAAgB9jB,UAAU2F,MAAQoc,EAAU+B,gBACzD7f,EAAG+d,EAAW+B,SAAS/jB,UAAU2F,MAAQqc,EAAW+B,SACpD9f,EAAGge,EAAW+B,SAAShkB,UAAU2F,MAAQsc,EAAW+B,SACpD/f,EAAGie,EAAW+B,SAASjkB,UAAU2F,MAAQuc,EAAW+B,SACpDhgB,EAAGke,EAAY+B,UAAUlkB,UAAU2F,MAAQwc,EAAY+B,UACvDjgB,EAAGme,EAAY+B,UAAUnkB,UAAU2F,MAAQyc,EAAY+B,UACvDlgB,EAAGoe,EAAa+B,WAAWpkB,UAAU2F,MAAQ0c,EAAa+B,WAC1DngB,EAAGqe,EAAc+B,YAAYrkB,UAAU2F,MAAQ2c,EAAc+B,YAC7DpgB,EAAGse,EAAa+B,WAAWtkB,UAAU2F,MAAQ4c,EAAa+B,WAC1DrgB,EAAGue,EAAc+B,YAAYvkB,UAAU2F,MAAQ6c,EAAc+B,YAC7DtgB,EAAGwe,EAAa+B,WAAWxkB,UAAU2F,MAAQ8c,EAAa+B,WAC1DvgB,EAAGye,EAAa+B,QAAQzkB,UAAU2F,MAAQ+c,EAAa+B,QACvDxgB,EAAGye,EAAagC,QAAQ1kB,UAAU2F,MAAQ+c,EAAagC,QACvDzgB,EAAGye,EAAaiC,WAAW3kB,UAAU2F,MAAQ+c,EAAaiC,WAC1D1gB,EAAG0e,EAAgBiC,UAAU5kB,UAAU2F,MAAQgd,EAAgBiC,UAC/D3gB,EAAG0e,EAAgBkC,SAAS7kB,UAAU2F,MAAQgd,EAAgBkC,SAC9D5gB,EAAG0e,EAAgBmC,cAAc9kB,UAAU2F,MAAQgd,EAAgBmC,cACnE7gB,EAAG2e,EAAmBmC,iBAAiB/kB,UAAU2F,MAAQid,EAAmBmC,iBAC5E9gB,EAAG2e,EAAmBoC,eAAehlB,UAAU2F,MAAQid,EAAmBoC,eAC1E/gB,EAAG2e,EAAmBqC,QAAQjlB,UAAU2F,MAAQid,EAAmBqC,QACnEhhB,EAAG4e,EAAYqC,UAAUllB,UAAU2F,MAAQkd,EAAYqC,UACvDjhB,EAAG6e,EAASqC,cAAcnlB,UAAU2F,MAAQmd,EAASqC,cACrDlhB,EAAG6e,EAASsC,OAAOplB,UAAU2F,MAAQmd,EAASsC,OAC9CnhB,EAAG8e,EAASsC,OAAOrlB,UAAU2F,MAAQod,EAASsC,OAC9CphB,EAAG+e,EAAiBsC,eAAetlB,UAAU2F,MAAQqd,EAAiBsC,eACtErhB,EAAGgf,EAAgBsC,cAAcvlB,UAAU2F,MAAQsd,EAAgBsC,cACnEthB,EAAGif,EAAYsC,UAAUxlB,UAAU2F,MAAQud,EAAYsC,UACvDvhB,EAAGkf,EAAesC,aAAazlB,UAAU2F,MAAQwd,EAAesC,aAChExhB,EAAGkf,EAAeuC,cAAc1lB,UAAU2F,MAAQwd,EAAeuC,cACjEzhB,EAAGkf,EAAewC,iBAAiB3lB,UAAU2F,MAAQwd,EAAewC,iBACpE1hB,EAAGmf,EAAa1uB,QAAQsL,UAAU2F,MAAQyd,EAAa1uB,QACvDuP,EAAGof,EAAgBuC,WAAW5lB,UAAU2F,MAAQ0d,EAAgBuC,WAChE3hB,EAAGsd,EAAa7lB,SAASsE,UAAU2F,MAAQ4b,EAAa7lB,SACxDuI,EAAGsd,EAAasE,QAAQ7lB,UAAU2F,MAAQ4b,EAAasE,QACvD5hB,E,qCC7EJ,IACQQ,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEAE,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQtK,mBAAgB,EACxB,IACIA,EAAiB,SAAU+Q,GAE3B,SAAS/Q,IACL,IAAIgR,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAMhb,SAAW,KACVgb,CACX,CAmEA,OAxEAZ,EAAUpQ,EAAe+Q,GAMzB/Q,EAAc0L,UAAUoT,UAAY,SAAU/M,EAAM/b,GAChDsI,KAAKtI,SAAWA,EAChB,IAAI4b,EAAO5b,EAASwb,cAAc,OAGlC,OAFAlT,KAAKkzB,UAAUzf,EAAMH,GACrBtT,KAAKtI,SAAW,KACT4b,EAAKwC,UAChB,EACApU,EAAc0L,UAAU+lB,cAAgB,SAAU1f,EAAMkB,GACpDA,EAAOI,YAAY/U,KAAKtI,SAASyb,eAAeM,EAAK2f,WACzD,EACA1xB,EAAc0L,UAAUimB,aAAe,SAAU5f,EAAMkB,GACnDA,EAAOI,YAAYtB,EAAK6f,SAAS7d,WAAU,GAC/C,EACA/T,EAAc0L,UAAUmmB,sBAAwB,SAAU9f,EAAMkB,GAC5D,IAAIZ,EAAK1C,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAASkB,EAAKuC,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACfjM,KAAKkzB,UAAUpe,EAAOH,EAC1B,CACJ,CACA,MAAOJ,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACJ,EACAzJ,EAAc0L,UAAUomB,aAAe,SAAU/f,EAAMkB,GACnD,IAAI0D,EAAKhH,EACLtG,EAAM/K,KAAKtI,SAASwb,cAAcO,EAAKV,MAC3C/S,KAAKyzB,cAAchgB,EAAM1I,GACzB,IACI,IAAK,IAAIuN,EAAK/F,EAASkB,EAAKuC,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACfjM,KAAKkzB,UAAUpe,EAAO/J,EAC1B,CACJ,CACA,MAAO8N,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQL,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACAwJ,EAAOI,YAAYhK,EACvB,EACArJ,EAAc0L,UAAUqmB,cAAgB,SAAUhgB,EAAM1I,GACpD,IAAI8Q,EAAKxK,EACL6F,EAAazD,EAAKyD,WAClBkE,EAAQlE,EAAWiX,mBACvB,IACI,IAAK,IAAI3S,EAAUjJ,EAAS6I,GAAQK,EAAYD,EAAQvN,QAASwN,EAAUrN,KAAMqN,EAAYD,EAAQvN,OAAQ,CACzG,IAAIyN,EAASD,EAAUxP,MACvBlB,EAAI6L,aAAa8E,EAAQxE,EAAW2W,YAAYnS,GAAQgY,WAC5D,CACJ,CACA,MAAOpX,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQb,IAAcA,EAAUrN,OAASiD,EAAKmK,EAAQhH,SAASnD,EAAG/D,KAAKkO,EACvE,CACA,QAAU,GAAIK,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CACJ,EACOzJ,CACX,CA1EoB,CADE,EAAQ,OA2EZiC,YAClBqI,EAAQtK,cAAgBA,C,qCCxGxB,IACQmQ,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEJ1H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQrK,gBAAa,EACrB,IAAIgyB,EAAmB,EAAQ,OAC3BC,EAAW,EAAQ,MACnBjyB,EAAc,SAAU8Q,GAExB,SAAS9Q,IACL,OAAkB,OAAX8Q,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CASA,OAZA8R,EAAUnQ,EAAY8Q,GAItB9H,OAAOoB,eAAepK,EAAWyL,UAAW,MAAO,CAC/CvP,IAAK,WACD,OAAOmC,KAAKyT,IAChB,EACA3G,YAAY,EACZD,cAAc,IAElBlL,EAAWkyB,aAAeD,EAASnyB,IAC5BE,CACX,CAdiB,CAcfgyB,EAAiBG,qBACnB9nB,EAAQrK,WAAaA,C,qCClCrB,IACQkQ,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACI/I,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACI8K,EAAUtd,MAAQA,KAAKsd,QAAW,SAAUhR,EAAG5P,GAC/C,IAAIN,EAAsB,mBAAX4K,QAAyBsF,EAAEtF,OAAOiI,UACjD,IAAK7S,EAAG,OAAOkQ,EACf,IAAmBiR,EAAYrP,EAA3BxS,EAAIU,EAAEkR,KAAKhB,GAAOkR,EAAK,GAC3B,IACI,WAAc,IAAN9gB,GAAgBA,KAAM,MAAQ6gB,EAAI7hB,EAAEuS,QAAQG,MAAMoP,EAAGvhB,KAAKshB,EAAEtR,MACxE,CACA,MAAOd,GAAS+C,EAAI,CAAE/C,MAAOA,EAAS,CACtC,QACI,IACQoS,IAAMA,EAAEnP,OAAShS,EAAIV,EAAU,SAAIU,EAAEkR,KAAK5R,EAClD,CACA,QAAU,GAAIwS,EAAG,MAAMA,EAAE/C,KAAO,CACpC,CACA,OAAOqS,CACX,EACA7S,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQinB,QAAUjnB,EAAQlD,SAAWkD,EAAQ+nB,qBAAuB/nB,EAAQgoB,oBAAsBhoB,EAAQioB,sBAAwBjoB,EAAQkoB,qBAAuBloB,EAAQmoB,gBAAkBnoB,EAAQooB,iBAAmBpoB,EAAQqoB,cAAgBroB,EAAQsoB,cAAW,EACjQ,IAAIC,EAAkB,EAAQ,OAC1BC,EAAY,EAAQ,OACxBxoB,EAAQsoB,SAAW,CACfG,IAAK,EACLC,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,QAAS,EACTC,MAAO,GAEXlpB,EAAQqoB,cAAgB,CAAC,MAAO,KAAM,MAAO,MAAO,OAAQ,QAAS,QAAS,QAAS,WACvF,IAAIc,EAAiB,CAAC,GAAI,gBAAiB,kBAAmB,kBAC1DC,EAAW,CACX,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACvB,EAAE,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACtB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACtB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACtB,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACvB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACtB,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAE3BppB,EAAQooB,iBAAmB,CACvB,cAAe,mBACf,cAAe,oBAEnB,IAAID,EAAmB,SAAU1hB,GAE7B,SAAS0hB,EAAgBkB,EAASne,EAAY+M,QACvB,IAAf/M,IAAyBA,EAAa,CAAC,QAC1B,IAAb+M,IAAuBA,EAAW,IACtC,IAAIvR,EAAQD,EAAOnF,KAAKtN,KAAMq1B,IAAYr1B,KAW1C,OAVA0S,EAAM4iB,UAAY,KAClB5iB,EAAM6iB,UAAY,KAClB7iB,EAAM8iB,SAAW,KACb9iB,EAAM+iB,MAAQ,IACd/iB,EAAMsD,WAAa,CAACqf,EAAQhpB,OAAO,iBACnCqG,EAAMsD,WAAW,GAAGrB,OAASjC,GAEjCA,EAAMgjB,YAAYzR,GAClBvR,EAAMwE,WAAa,IAAIqd,EAAgB/yB,WAAW6zB,EAAQM,aAAajjB,EAAMK,MAAM2a,SAAU2H,EAAQM,aAAa,QAAQjI,UAC1Hhb,EAAMwE,WAAW0W,QAAQ1W,GAClBxE,CACX,CAocA,OApdAZ,EAAUqiB,EAAiB1hB,GAiB3B0hB,EAAgB/mB,UAAUwoB,KAAO,SAAUC,GACvC,IAAI9hB,EAAK1C,EAAIgH,EAAKC,OACF,IAAZud,IAAsBA,GAAU,GACpC,IAAIpiB,EAAOzT,KAAKq1B,QAAQhpB,OAAOrM,KAAK+S,MAEpC,GADAU,EAAK+Q,WAAaxE,EAAS,CAAC,EAAGhgB,KAAKwkB,YAChCxkB,KAAKkX,WAAY,CACjB,IAAIA,EAAalX,KAAKkX,WAAWqX,mBACjC,IACI,IAAK,IAAI/V,EAAKjG,EAAS5H,OAAOC,KAAKsM,IAAcsI,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,CACvF,IAAIyN,EAAS8D,EAAGvT,OACD,OAAXyP,GAAmBma,IACnBpiB,EAAKyD,WAAWkG,IAAI1B,EAAQxE,EAAWwE,GAE/C,CACJ,CACA,MAAOnH,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiL,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIzE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACJ,CACA,GAAInL,KAAKgW,YAAchW,KAAKgW,WAAWha,OAAQ,CAC3C,IAAIioB,EAAWjkB,KAAKgW,WACI,IAApBiO,EAASjoB,QAAgBioB,EAAS,GAAG6R,aACrC7R,EAAWA,EAAS,GAAGjO,YAE3B,IACI,IAAK,IAAImO,EAAa5R,EAAS0R,GAAWG,EAAeD,EAAWlW,QAASmW,EAAahW,KAAMgW,EAAeD,EAAWlW,OAAQ,CAC9H,IAAI6G,EAAQsP,EAAanY,MACrB6I,EACArB,EAAKsB,YAAYD,EAAM8gB,QAGvBniB,EAAKuC,WAAW/Z,KAAK,KAE7B,CACJ,CACA,MAAO4c,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQuL,IAAiBA,EAAahW,OAASkK,EAAK6L,EAAW3P,SAAS8D,EAAGhL,KAAK6W,EAChF,CACA,QAAU,GAAI9L,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACJ,CACA,OAAOsI,CACX,EACA9I,OAAOoB,eAAeooB,EAAgB/mB,UAAW,WAAY,CACzDvP,IAAK,WACD,OAAOmC,KAAKw1B,QAChB,EACApY,IAAK,SAAU2Y,GACX/1B,KAAKw1B,SAAWO,CACpB,EACAjpB,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,UAAW,CACxDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,gBAAiB,CAC9DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,cAAe,CAC5DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,qBAAsB,CACnEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,aAAc,CAC3DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,QAAS,CACtDvP,IAAK,WACD,OAAOm4B,GACX,EACAlpB,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,aAAc,CAC3DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,SAAU,CACvDvP,IAAK,WAED,IADA,IAAI8W,EAAS3U,KAAK2U,OACXA,GAAUA,EAAOshB,WACpBthB,EAASA,EAAOuhB,OAEpB,OAAOvhB,CACX,EACA7H,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeooB,EAAgB/mB,UAAW,YAAa,CAC1DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBsnB,EAAgB/mB,UAAUsoB,YAAc,SAAUzR,GAC9C,OAAIjkB,KAAKy1B,MAAQ,EACNz1B,KAAKgW,WAAW,GAAG0f,YAAYzR,GAEnCxR,EAAOrF,UAAUsoB,YAAYpoB,KAAKtN,KAAMikB,EACnD,EACAkQ,EAAgB/mB,UAAU2H,YAAc,SAAUD,GAC9C,IAAI+G,EAAKxK,EACLqB,EAAQ1S,KACZ,GAAIA,KAAKy1B,MAAQ,EAEb,OADAz1B,KAAKgW,WAAW,GAAGjB,YAAYD,GACxBA,EAEX,GAAIA,EAAMghB,WAAY,CAClB,GAAI91B,KAAKy1B,QAAUO,IAEf,OADAlhB,EAAMkB,WAAW8V,SAAQ,SAAUrY,GAAQ,OAAOhB,EAAOrF,UAAU2H,YAAYzH,KAAKoF,EAAOe,EAAO,IAC3FqB,EAEX,IAAIyJ,EAAWzJ,GACfA,EAAQ9U,KAAKq1B,QAAQhpB,OAAO,SACtBqpB,YAAYnX,EAASvI,YAC3BlB,EAAMoC,WAAaqH,EAASrH,WAC5B,IACI,IAAK,IAAIoB,EAAK/F,EAASgM,EAAS4X,oBAAqB3d,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC3F,IAAI8N,EAASvD,EAAGvM,MAChB6I,EAAMshB,YAAYra,EAAQwC,EAAS8X,YAAYta,GACnD,CACJ,CACA,MAAOO,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQ9D,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIuD,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CACJ,CACA,OAAOsH,EAAOrF,UAAU2H,YAAYzH,KAAKtN,KAAM8U,EACnD,EACAqf,EAAgB/mB,UAAUmI,aAAe,SAAU+gB,EAAUC,GACzD,OAAIv2B,KAAKy1B,MAAQ,GACbz1B,KAAKgW,WAAW,GAAGT,aAAa+gB,EAAUC,GACnCD,GAEJ7jB,EAAOrF,UAAUmI,aAAajI,KAAKtN,KAAMs2B,EAAUC,EAC9D,EACApC,EAAgB/mB,UAAUtM,KAAO,WAC7B,OAAOd,IACX,EACAm0B,EAAgB/mB,UAAUopB,OAAS,WAC/B,OAAOx2B,IACX,EACAm0B,EAAgB/mB,UAAUqpB,UAAY,WAClC,OAAO,CACX,EACAtC,EAAgB/mB,UAAUspB,cAAgB,WAItC,IAHA,IAAIla,EAAKnL,EACLyD,EAAQ9U,KACR2U,EAASG,EAAMH,OACZA,GAAUA,EAAOshB,WACpBnhB,EAAQH,EACRA,EAASA,EAAOA,OAEpB,GAAIA,EAAQ,CACR,IAAIjZ,EAAI,EACR,IACI,IAAK,IAAI4c,EAAK/F,EAASoC,EAAOqB,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAEjF,GADWuK,EAAGvM,QACD6I,EACT,OAAOpZ,EAEXA,GACJ,CACJ,CACA,MAAOmhB,GAASL,EAAM,CAAErR,MAAO0R,EAAS,CACxC,QACI,IACQrE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIkE,EAAK,MAAMA,EAAIrR,KAAO,CACxC,CACJ,CACA,OAAO,IACX,EACAgpB,EAAgB/mB,UAAUupB,YAAc,SAAUC,GAE9C,OADA52B,KAAK62B,aAAaD,GACO,MAAjB52B,KAAK+1B,SAAmB/1B,KAAO42B,CAC3C,EACAzC,EAAgB/mB,UAAU0pB,eAAiB,SAAUh2B,GAC7CA,IACAd,KAAKs1B,UAAYx0B,EAAKw0B,UACtBt1B,KAAKu1B,UAAYz0B,EAAKy0B,UACtBz0B,EAAKw0B,UAAYx0B,EAAKy0B,UAAY,KAClCv1B,KAAK+1B,SAAWj1B,EAAKi1B,SAE7B,EACA5B,EAAgB/mB,UAAUypB,aAAe,SAAUD,GAC3CA,IACA52B,KAAKs1B,UAAYsB,EAAKb,SACtB/1B,KAAKu1B,UAAYqB,EAAK1f,WAAWrZ,IAAI,eAE7C,EACAs2B,EAAgB/mB,UAAU2pB,WAAa,WACnC,IAAIzB,EAA+B,MAAlBt1B,KAAKs1B,UAAoBt1B,KAAKs1B,UAAYtpB,EAAQsoB,SAASY,KACxEa,EAAW/1B,KAAK+1B,UAAY/pB,EAAQsoB,SAASG,IACjD,GAAIa,IAActpB,EAAQsoB,SAASY,MAAQa,IAAa/pB,EAAQsoB,SAASY,KACrE,MAAO,GAEPI,IAActpB,EAAQsoB,SAASW,UAC/BK,EAAYtpB,EAAQsoB,SAASG,KAE7BsB,IAAa/pB,EAAQsoB,SAASW,UAC9Bc,EAAW/pB,EAAQsoB,SAASG,KAEhC,IAAIuC,EAAQ5B,EAASE,GAAWS,GAChC,OAAK/1B,KAAKu1B,UAAY,GAAKv1B,KAAKkX,WAAWrZ,IAAI,eAAiB,IAAMm5B,GAAS,EACpE,GAEJ7B,EAAe8B,KAAKC,IAAIF,GACnC,EACA7C,EAAgB/mB,UAAU+pB,qBAAuB,WAC7C,OAAOn3B,KAAKo3B,eAAiBp3B,KAAKw2B,SAASW,sBAC/C,EACAhD,EAAgB/mB,UAAUiqB,uBAAyB,SAAUngB,EAAYmL,EAASiV,EAAOC,GACrF,IAAI3X,EAAKvO,OACU,IAAf6F,IAAyBA,EAAa,CAAC,QAC3B,IAAZmL,IAAsBA,GAAU,QACtB,IAAViV,IAAoBA,EAAQ,QAClB,IAAVC,IAAoBA,GAAQ,GAChC,IAAI7J,EAAW1tB,KAAKkX,WAAWuX,iBAC/B,IACI,IAAK,IAAInW,EAAK/F,EAAS5H,OAAOC,KAAKsM,IAAcsB,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACvF,IAAIoW,EAAM7L,EAAGvM,MACb,GAAIyhB,EAASrgB,eAAegX,IAAQ8P,EAAgBqD,cAAcnqB,eAAegX,GAAM,CACnF,IAAI7E,EAAKlC,EAAOpG,EAAWmN,GAAM,GAAI5Q,EAAO+L,EAAG,GAAIvT,EAAQuT,EAAG,KAC7C2U,EAAgBsD,UAAUhkB,IAAS,CAAC,GAAGzT,KAAK+S,OAAS,CAAC,GACxDsR,IACXrkB,KAAKkX,WAAW6W,aAAa1J,EAAKpY,EAE1C,CACJ,CACJ,CACA,MAAO4T,GAASD,EAAM,CAAEzU,MAAO0U,EAAS,CACxC,QACI,IACQrH,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIsH,EAAK,MAAMA,EAAIzU,KAAO,CACxC,MAEqBtO,IADFmD,KAAKkX,WAAW2W,YAAY,iBAE3C7tB,KAAKkX,WAAW6W,aAAa,eAAgB1L,QAG7BxlB,IADFmD,KAAKkX,WAAW2W,YAAY,gBAE1C7tB,KAAKkX,WAAW6W,aAAa,cAAeuJ,GAE5CC,GACAv3B,KAAKo2B,YAAY,gBAAiBmB,GAEtC,IAAI9B,EAAQz1B,KAAKy1B,MACjB,GAAIA,GAAS,GAAKA,IAAUO,MAAwB,IAAVP,GAA0C,IAA3Bz1B,KAAKgW,WAAWha,QAC1D,IAAVy5B,GAAez1B,KAAKgW,WAAWha,SAAWy5B,GAC3C,GAAIA,EAAQz1B,KAAKgW,WAAWha,OACxBgE,KAAKgW,WAAahW,KAAKgW,WAAWna,MAAM,EAAG45B,QAG3C,KAAOz1B,KAAKgW,WAAWha,OAASy5B,GAC5Bz1B,KAAK+U,YAAY/U,KAAKq1B,QAAQhpB,OAAO,SAIjDrM,KAAK03B,4BAA4BxgB,EAAYmL,EAASiV,EAAOC,EACjE,EACApD,EAAgB/mB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GAC1F,IAAIzX,EAAKzO,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACnEuK,EAAGvM,MACTorB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,EAC7D,CACJ,CACA,MAAOxX,GAASD,EAAM,CAAE3U,MAAO4U,EAAS,CACxC,QACI,IACQvH,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIwH,EAAK,MAAMA,EAAI3U,KAAO,CACxC,CACJ,EACAgpB,EAAgB/mB,UAAUuqB,uBAAyB,SAAUC,EAAS1gB,GAClE,IAAI4S,EAAKzY,EACLwmB,EAAU7X,EAAS,CAAC,EAAG4X,GAC3B,IACI,IAAK,IAAItf,EAAK/F,EAAS5H,OAAOC,KAAKsM,IAAcsB,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACvF,IAAI0O,EAASnE,EAAGvM,MACD,iBAAX0Q,GAAwC,gBAAXA,GAAuC,UAAXA,IACzDkb,EAAQlb,GAAU,CAAC3c,KAAK+S,KAAMmE,EAAWyF,IAEjD,CACJ,CACA,MAAO0N,GAASP,EAAM,CAAE3e,MAAOkf,EAAS,CACxC,QACI,IACQ7R,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIwR,EAAK,MAAMA,EAAI3e,KAAO,CACxC,CACA,OAAO0sB,CACX,EACA1D,EAAgB/mB,UAAU0qB,sBAAwB,SAAUrkB,GACxD,IAAIyD,EAAazD,EAAKyD,WAClBmL,EAAUnL,EAAWrZ,IAAI,gBACzBk6B,EAAc7gB,EAAWrZ,IAAI,eAC7B6vB,EAAaxW,EAAW6S,MAAM,YAAmB,CACjDiO,SAAU,CAAC,OAAQ9gB,EAAWrZ,IAAI,cADU,CAAC,EAG7C05B,EAAQ9jB,EAAK4iB,YAAY,mBAAoB,EACjDr2B,KAAKq3B,uBAAuB3J,EAAUrL,EAAS0V,EAAaR,EAChE,EACApD,EAAgB/mB,UAAU6qB,WAAa,SAAU5/B,GAE7C,QADgB,IAAZA,IAAsBA,EAAU,MACpB,OAAZA,EAAJ,CAGA2H,KAAKk4B,iBAAiB7/B,GACtB,IAAIo9B,EAAQz1B,KAAKy1B,MACbp9B,EAAoB,YAChBo9B,GAAS,GAAKA,IAAUO,MACZ,IAAVP,GAA0C,IAA3Bz1B,KAAKgW,WAAWha,QAClB,IAAVy5B,GAAez1B,KAAKgW,WAAWha,SAAWy5B,IAC/Cz1B,KAAKm4B,OAAO,iCAAmCn4B,KAAK+S,KAAO,SAAU1a,GAAS,GAGtF2H,KAAKo4B,eAAe//B,EAVpB,CAWJ,EACA87B,EAAgB/mB,UAAU8qB,iBAAmB,SAAU7/B,GACnD,IAAIsyB,EAAKtZ,EACT,GAAIhZ,EAAyB,gBAAG,CAC5B,IAAI6e,EAAalX,KAAKkX,WAClBmhB,EAAM,GACV,IACI,IAAK,IAAI/f,EAAK/F,EAAS2E,EAAWiX,oBAAqB3V,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC7F,IAAIqqB,EAAS9f,EAAGvM,MACY,UAAxBqsB,EAAO97B,OAAO,EAAG,SAAoDK,IAAlCqa,EAAW+W,WAAWqK,IACxDA,EAAO/7B,MAAM,yCACd87B,EAAIp8B,KAAKq8B,EAEjB,CACJ,CACA,MAAO1N,GAASD,EAAM,CAAExf,MAAOyf,EAAS,CACxC,QACI,IACQpS,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIqS,EAAK,MAAMA,EAAIxf,KAAO,CACxC,CACIktB,EAAIr8B,QACJgE,KAAKm4B,OAAO,0BAA4Bn4B,KAAK+S,KAAO,UAAYslB,EAAIv8B,KAAK,MAAOzD,EAExF,CACJ,EACA87B,EAAgB/mB,UAAUgrB,eAAiB,SAAU//B,GACjD,IAAI8yB,EAAK9Z,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACnEuK,EAAGvM,MACTgsB,WAAW5/B,EACrB,CACJ,CACA,MAAOgzB,GAASF,EAAM,CAAEhgB,MAAOkgB,EAAS,CACxC,QACI,IACQ7S,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAI6S,EAAK,MAAMA,EAAIhgB,KAAO,CACxC,CACJ,EACAgpB,EAAgB/mB,UAAU+qB,OAAS,SAAU76B,EAASjF,EAASkgC,GAE3D,QADc,IAAVA,IAAoBA,GAAQ,GAC5Bv4B,KAAK2U,QAAU3U,KAAK2U,OAAO6jB,OAAO,UAClC,OAAO,KAEX,IAAIp2B,EAASpC,KAAKq1B,QAAQhpB,OAAO,UAEjC,GADAjK,EAAO8U,WAAWkG,IAAI,mBAAoB9f,GACtCjF,EAAoB,YAAKkgC,EAAO,CAChC,IAAIh1B,EAAQvD,KAAKq1B,QAAQhpB,OAAO,SAC5BlQ,EAAO6D,KAAKq1B,QAAQhpB,OAAO,QAC/BlQ,EAAKuuB,QAAQryB,EAAoB,WAAIiF,EAAU0C,KAAK+S,MACpDxP,EAAMwR,YAAY5Y,GAClBiG,EAAO2S,YAAYxR,GACnBvD,KAAK2U,OAAOY,aAAanT,EAAQpC,KACrC,MAEIA,KAAK2U,OAAOY,aAAanT,EAAQpC,MACjCoC,EAAO2S,YAAY/U,MAEvB,OAAOoC,CACX,EACA+xB,EAAgBzG,SAAW,CACvB+K,eAAgBlE,EAAgB9G,QAChCiL,UAAWnE,EAAgB9G,QAC3BuK,SAAUzD,EAAgB9G,QAC1BkL,IAAKpE,EAAgB9G,SAEzB0G,EAAgBsD,UAAY,CACxBt0B,OAAQ,CACJP,QAAS,CAAE0W,OAAO,EAAMC,QAAQ,EAAMqf,OAAO,EAAMC,QAAQ,EAAMC,SAAS,GAC1Ez1B,OAAQ,CAAEiW,OAAO,EAAMC,QAAQ,EAAMqf,OAAO,EAAMG,OAAO,IAE7D/2B,YAAa,CACTe,KAAM,CAAEi2B,YAAY,GACpB31B,OAAQ,CAAE21B,YAAY,KAG9B7E,EAAgBqD,cAAgB,CAC5ByB,eAAe,EACfC,sBAAsB,GAE1B/E,EAAgBgF,eAAiB,CAC7BC,YAAY,EACZC,iBAAiB,EACjBC,YAAY,EACZC,kBAAkB,EAClBC,YAAY,GAETrF,CACX,CAtdsB,CAsdpBK,EAAUiF,cACZztB,EAAQmoB,gBAAkBA,EAC1B,IAAID,EAAwB,SAAUzhB,GAElC,SAASyhB,IACL,OAAkB,OAAXzhB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAmEA,OAtEA8R,EAAUoiB,EAAsBzhB,GAIhC9H,OAAOoB,eAAemoB,EAAqB9mB,UAAW,UAAW,CAC7DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBqnB,EAAqB9mB,UAAUgmB,QAAU,WACrC,IAAI3H,EAAMpa,EACNlV,EAAO,GACX,IACI,IAAK,IAAImc,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACX6I,aAAiBhM,IACjB3M,GAAQ2Y,EAAMse,UAEtB,CACJ,CACA,MAAO1H,GAAUD,EAAO,CAAEtgB,MAAOugB,EAAU,CAC3C,QACI,IACQlT,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAImT,EAAM,MAAMA,EAAKtgB,KAAO,CAC1C,CACA,OAAOhP,CACX,EACA+3B,EAAqB9mB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GAC/F,IAAItL,EAAM5a,EACV,IACI,IAAK,IAAIiH,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACX6I,aAAiBqf,GACjBrf,EAAMuiB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,EAEjE,CACJ,CACA,MAAOhL,GAAUN,EAAO,CAAE9gB,MAAOohB,EAAU,CAC3C,QACI,IACQ/T,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAI2T,EAAM,MAAMA,EAAK9gB,KAAO,CAC1C,CACJ,EACA+oB,EAAqB9mB,UAAUssB,SAAW,SAAUC,EAAM5/B,GACtD,IAAImyB,EAAM7a,EACVsoB,EAAK35B,KAAMjG,GACX,IACI,IAAK,IAAIue,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACX6I,aAAiBqf,GACjBrf,EAAM4kB,SAASC,EAAM5/B,EAE7B,CACJ,CACA,MAAOuyB,GAAUJ,EAAO,CAAE/gB,MAAOmhB,EAAU,CAC3C,QACI,IACQ9T,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAI4T,EAAM,MAAMA,EAAK/gB,KAAO,CAC1C,CACA,OAAOpR,CACX,EACAm6B,EAAqBxG,SAAW1N,EAASA,EAAS,CAAC,EAAGmU,EAAgBzG,UAAW,CAAEkM,YAAa,SAAU5B,SAAUzD,EAAgB9G,UAC7HyG,CACX,CAxE2B,CAwEzBC,GACFnoB,EAAQkoB,qBAAuBA,EAC/B,IAAID,EAAyB,SAAUxhB,GAEnC,SAASwhB,IACL,OAAkB,OAAXxhB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAkCA,OArCA8R,EAAUmiB,EAAuBxhB,GAIjC9H,OAAOoB,eAAekoB,EAAsB7mB,UAAW,cAAe,CAClEvP,IAAK,WACD,OAAOmC,KAAKgW,WAAW,GAAG6jB,WAC9B,EACA/sB,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAekoB,EAAsB7mB,UAAW,gBAAiB,CACpEvP,IAAK,WACD,OAAOmC,KAAKgW,WAAW,GAAGohB,aAC9B,EACAtqB,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAekoB,EAAsB7mB,UAAW,QAAS,CAC5DvP,IAAK,WACD,OAAQ,CACZ,EACAiP,YAAY,EACZD,cAAc,IAElBonB,EAAsB7mB,UAAUtM,KAAO,WACnC,OAAOd,KAAKgW,WAAW,EAC3B,EACAie,EAAsB7mB,UAAUopB,OAAS,WACrC,OAAOx2B,KAAKgW,WAAW,GAAGwgB,QAC9B,EACAvC,EAAsB7mB,UAAUupB,YAAc,SAAUC,GAGpD,OAFAA,EAAO52B,KAAKgW,WAAW,GAAG2gB,YAAYC,GACtC52B,KAAK82B,eAAe92B,KAAKgW,WAAW,IAC7B4gB,CACX,EACA3C,EAAsBvG,SAAWyG,EAAgBzG,SAC1CuG,CACX,CAvC4B,CAuC1BE,GACFnoB,EAAQioB,sBAAwBA,EAChC,IAAID,EAAuB,SAAUvhB,GAEjC,SAASuhB,IACL,OAAkB,OAAXvhB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAkDA,OArDA8R,EAAUkiB,EAAqBvhB,GAI/B9H,OAAOoB,eAAeioB,EAAoB5mB,UAAW,gBAAiB,CAClEvP,IAAK,WACD,OAAOmC,KAAKgW,WAAW,GAAGohB,aAC9B,EACAtqB,YAAY,EACZD,cAAc,IAElBmnB,EAAoB5mB,UAAUtM,KAAO,WACjC,OAAOd,KAAKgW,WAAW,EAC3B,EACAge,EAAoB5mB,UAAUopB,OAAS,WACnC,OAAOx2B,KAAKgW,WAAW,GAAGwgB,QAC9B,EACAxC,EAAoB5mB,UAAUupB,YAAc,SAAUC,GAClD,IAAIkD,EAAMzoB,EACVrR,KAAK62B,aAAaD,GAClB52B,KAAK+1B,SAAW/pB,EAAQsoB,SAASG,IACjC,IAAIntB,EAAOtH,KAAKgW,WAAW,GACvB1O,EACItH,KAAKo3B,eAAiB9vB,EAAKkxB,OAAO,OAClC5B,EAAOtvB,EAAKqvB,YAAYC,GACxB52B,KAAK82B,eAAe92B,KAAKc,UAGzBwG,EAAKqvB,YAAY,MACjBC,EAAO52B,MAIX42B,EAAO52B,KAEX,IACI,IAAK,IAAIsY,EAAK/F,EAASvS,KAAKgW,WAAWna,MAAM,IAAK2c,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACxF,IAAI6G,EAAQ0D,EAAGvM,MACX6I,GACAA,EAAM6hB,YAAY,KAE1B,CACJ,CACA,MAAOoD,GAAUD,EAAO,CAAE3uB,MAAO4uB,EAAU,CAC3C,QACI,IACQvhB,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIwhB,EAAM,MAAMA,EAAK3uB,KAAO,CAC1C,CACA,OAAOyrB,CACX,EACA5C,EAAoBtG,SAAWyG,EAAgBzG,SACxCsG,CACX,CAvD0B,CAuDxBG,GACFnoB,EAAQgoB,oBAAsBA,EAC9B,IAAID,EAAwB,SAAUthB,GAElC,SAASshB,IACL,OAAkB,OAAXthB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAwHA,OA3HA8R,EAAUiiB,EAAsBthB,GAIhC9H,OAAOoB,eAAegoB,EAAqB3mB,UAAW,UAAW,CAC7DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,gBAAiB,CACnEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,cAAe,CACjEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,qBAAsB,CACxEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,aAAc,CAChEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,QAAS,CAC3DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,aAAc,CAChEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,YAAa,CAC/DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,SAAU,CAC5DvP,IAAK,WACD,OAAOmC,KAAK2U,MAChB,EACA7H,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,WAAY,CAC9DvP,IAAK,WACD,OAAOmO,EAAQsoB,SAASY,IAC5B,EACApoB,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,YAAa,CAC/DvP,IAAK,WACD,OAAOmO,EAAQsoB,SAASY,IAC5B,EACApoB,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegoB,EAAqB3mB,UAAW,YAAa,CAC/DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBknB,EAAqB3mB,UAAU+pB,qBAAuB,WAClD,OAAO,CACX,EACAxsB,OAAOoB,eAAegoB,EAAqB3mB,UAAW,aAAc,CAChEvP,IAAK,WACD,OAAO,IACX,EACAiP,YAAY,EACZD,cAAc,IAElBknB,EAAqB3mB,UAAUtM,KAAO,WAClC,OAAOd,IACX,EACA+zB,EAAqB3mB,UAAUopB,OAAS,WACpC,OAAOx2B,IACX,EACA+zB,EAAqB3mB,UAAUqpB,UAAY,WACvC,OAAO,CACX,EACA1C,EAAqB3mB,UAAUspB,cAAgB,WAC3C,OAAO,CACX,EACA3C,EAAqB3mB,UAAUupB,YAAc,SAAUC,GACnD,OAAOA,CACX,EACA7C,EAAqB3mB,UAAU2pB,WAAa,WACxC,MAAO,EACX,EACAhD,EAAqB3mB,UAAUiqB,uBAAyB,SAAU2C,EAAaC,EAAUC,EAAQC,GAAU,EAC3GpG,EAAqB3mB,UAAU0qB,sBAAwB,SAAU9R,GAAS,EAC1E+N,EAAqB3mB,UAAU6qB,WAAa,SAAUhS,GAAY,EAClE8N,EAAqB3mB,UAAU+qB,OAAS,SAAUiC,EAAUnU,EAAUoU,GAElE,YADe,IAAXA,IAAqBA,GAAS,GAC3B,IACX,EACOtG,CACX,CA7H2B,CA6HzBS,EAAU8F,mBACZtuB,EAAQ+nB,qBAAuBA,EAC/B,IAAIjrB,EAAY,SAAU2J,GAEtB,SAAS3J,IACL,IAAI4J,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAMvW,KAAO,GACNuW,CACX,CAqBA,OA1BAZ,EAAUhJ,EAAU2J,GAMpB9H,OAAOoB,eAAejD,EAASsE,UAAW,OAAQ,CAC9CvP,IAAK,WACD,MAAO,MACX,EACAiP,YAAY,EACZD,cAAc,IAElB/D,EAASsE,UAAUgmB,QAAU,WACzB,OAAOpzB,KAAK7D,IAChB,EACA2M,EAASsE,UAAUsd,QAAU,SAAUvuB,GAEnC,OADA6D,KAAK7D,KAAOA,EACL6D,IACX,EACA8I,EAASsE,UAAUwoB,KAAO,WACtB,OAAO51B,KAAKq1B,QAAQhpB,OAAOrM,KAAK+S,MAAM2X,QAAQ1qB,KAAKozB,UACvD,EACAtqB,EAASsE,UAAUsmB,SAAW,WAC1B,OAAO1zB,KAAK7D,IAChB,EACO2M,CACX,CA5Be,CA4BbirB,GACF/nB,EAAQlD,SAAWA,EACnB,IAAImqB,EAAW,SAAUxgB,GAErB,SAASwgB,IACL,IAAIvgB,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAGhE,OAFA0S,EAAM6nB,IAAM,KACZ7nB,EAAMkO,QAAU,KACTlO,CACX,CA0BA,OAhCAZ,EAAUmhB,EAASxgB,GAOnB9H,OAAOoB,eAAeknB,EAAQ7lB,UAAW,OAAQ,CAC7CvP,IAAK,WACD,MAAO,KACX,EACAiP,YAAY,EACZD,cAAc,IAElBomB,EAAQ7lB,UAAUkmB,OAAS,WACvB,OAAOtzB,KAAKu6B,GAChB,EACAtH,EAAQ7lB,UAAUotB,OAAS,SAAUD,EAAK3Z,GAItC,YAHgB,IAAZA,IAAsBA,EAAU,MACpC5gB,KAAKu6B,IAAMA,EACXv6B,KAAK4gB,QAAUA,EACR5gB,IACX,EACAizB,EAAQ7lB,UAAUqtB,iBAAmB,WACjC,OAAOz6B,KAAK4gB,QAAQnK,aAAazW,KAAKu6B,IAC1C,EACAtH,EAAQ7lB,UAAUwoB,KAAO,WACrB,OAAO51B,KAAKq1B,QAAQhpB,OAAOrM,KAAK+S,MAAMynB,OAAOx6B,KAAK4gB,QAAQpL,MAAMxV,KAAKu6B,KACzE,EACAtH,EAAQ7lB,UAAUsmB,SAAW,WACzB,MAAO,UACX,EACOT,CACX,CAlCc,CAkCZc,GACF/nB,EAAQinB,QAAUA,C,qCCz5BlB,IACQphB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQlK,aAAU,EAClB,IAAI6sB,EAAe,EAAQ,OACvBI,EAAU,EAAQ,OAClBjtB,EAAW,SAAU2Q,GAErB,SAAS3Q,EAAQuzB,EAASne,EAAY+M,GAClC,IAAIvR,EAAQD,EAAOnF,KAAKtN,KAAMq1B,EAASne,EAAY+M,IAAajkB,KAGhE,OAFA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IACvC/hB,EAAM0jB,YAAY,WAAY1jB,EAAMqjB,UAC7BrjB,CACX,CA8BA,OApCAZ,EAAUhQ,EAAS2Q,GAOnB9H,OAAOoB,eAAejK,EAAQsL,UAAW,OAAQ,CAC7CvP,IAAK,WACD,MAAO,SACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAejK,EAAQsL,UAAW,QAAS,CAC9CvP,IAAK,WACD,OAAQ,CACZ,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAejK,EAAQsL,UAAW,YAAa,CAClDvP,IAAK,WACD,OAAOmC,KAAKgW,WAAW,IAA+C,IAAzChW,KAAKgW,WAAW,GAAGA,WAAWha,MAC/D,EACA8Q,YAAY,EACZD,cAAc,IAElB/K,EAAQsL,UAAUupB,YAAc,SAAUC,GAEtC,OADA52B,KAAKgW,WAAW,GAAG2gB,YAAY,MACxB32B,KAAK06B,eAAe9D,EAC/B,EACA90B,EAAQsL,UAAUstB,eAAiB,SAAU9D,GACzC,OAAOA,CACX,EACA90B,EAAQ4rB,SAAW1N,EAAS,CAAC,EAAG2O,EAAaqF,oBAAoBtG,UAC1D5rB,CACX,CAtCc,CAsCZ6sB,EAAaqF,qBACfhoB,EAAQlK,QAAUA,EAClBA,EAAQsL,UAAUstB,eAAiB3L,EAAQ8B,MAAMzjB,UAAUstB,c,qCCtE3D,IACQ7oB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ4lB,gBAAa,EACrB,IAAIjD,EAAe,EAAQ,OACvBiD,EAAc,SAAUnf,GAExB,SAASmf,IACL,OAAkB,OAAXnf,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAqEA,OAxEA8R,EAAU8f,EAAYnf,GAItB9H,OAAOoB,eAAe6lB,EAAWxkB,UAAW,OAAQ,CAChDvP,IAAK,WACD,MAAO,SACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe6lB,EAAWxkB,UAAW,QAAS,CACjDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe6lB,EAAWxkB,UAAW,WAAY,CACpDvP,IAAK,WACD,IAAI88B,EAAY36B,KAAKkX,WAAWrZ,IAAI,aAChCnC,EAAIu7B,KAAK2D,IAAI,EAAG3D,KAAK4D,IAAI76B,KAAKgW,WAAWha,OAAQ2+B,IAAc,EACnE,OAAO36B,KAAKgW,WAAWta,IAAMsE,KAAKq1B,QAAQhpB,OAAO,OACrD,EACAS,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe6lB,EAAWxkB,UAAW,gBAAiB,CACzDvP,IAAK,WACD,OAAOmC,KAAK86B,SAAS1D,aACzB,EACAtqB,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe6lB,EAAWxkB,UAAW,cAAe,CACvDvP,IAAK,WACD,OAAOmC,KAAK86B,SAASjB,WACzB,EACA/sB,YAAY,EACZD,cAAc,IAElB+kB,EAAWxkB,UAAUtM,KAAO,WACxB,OAAOd,KAAK86B,SAASh6B,MACzB,EACA8wB,EAAWxkB,UAAUopB,OAAS,WAC1B,OAAOx2B,KAAK86B,SAAStE,QACzB,EACA5E,EAAWxkB,UAAU8qB,iBAAmB,SAAU7/B,IAC9Coa,EAAOrF,UAAU8qB,iBAAiB5qB,KAAKtN,KAAM3H,GACH,WAAtC2H,KAAKkX,WAAWrZ,IAAI,oBACyBhB,IAA7CmD,KAAKkX,WAAW2W,YAAY,sBACX7tB,KAAKkX,WAAWqX,mBACfoM,SAE1B,EACA/I,EAAWxkB,UAAUupB,YAAc,SAAUC,GACC,YAAtC52B,KAAKkX,WAAWrZ,IAAI,eAA+BmC,KAAKgW,WAAW,IACnEhW,KAAKgW,WAAW,GAAG2gB,YAAY,MAEnC,IAAImE,EAAW96B,KAAK86B,SAGpB,OAFAlE,EAAOkE,EAASnE,YAAYC,GAC5B52B,KAAK82B,eAAegE,GACblE,CACX,EACAhF,EAAWxkB,UAAU2tB,oBAAsB,WACvC,IAAIJ,EAAY1D,KAAK2D,IAAI,EAAG56B,KAAKkX,WAAWrZ,IAAI,aAAe,GAC3D88B,EAAY36B,KAAKgW,WAAWha,SAC5B2+B,EAAY,GAEhB36B,KAAKkX,WAAWkG,IAAI,YAAaud,EACrC,EACA/I,EAAWlE,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UAAW,CAAEsN,WAAY,SAAUL,UAAW,IAChH/I,CACX,CA1EiB,CA0EfjD,EAAawF,iBACfnoB,EAAQ4lB,WAAaA,C,qCCxGrB,IACQ/f,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ0mB,oBAAiB,EACzB,IAAI/D,EAAe,EAAQ,OACvB4F,EAAkB,EAAQ,OAC1B7B,EAAkB,SAAUjgB,GAE5B,SAASigB,IACL,OAAkB,OAAXjgB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAoBA,OAvBA8R,EAAU4gB,EAAgBjgB,GAI1B9H,OAAOoB,eAAe2mB,EAAetlB,UAAW,OAAQ,CACpDvP,IAAK,WACD,MAAO,aACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe2mB,EAAetlB,UAAW,cAAe,CAC3DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElB6lB,EAAetlB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GACzFrgB,EAAalX,KAAK23B,uBAAuBzgB,EAAYlX,KAAKkX,WAAWqX,oBACrE9b,EAAOrF,UAAUsqB,4BAA4BpqB,KAAKtN,KAAMkX,EAAYmL,EAASiV,EAAOC,EACxF,EACA7E,EAAehF,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAasF,sBAAsBvG,UAAW,CAAEsL,WAAYzE,EAAgB9G,UACrHiF,CACX,CAzBqB,CAyBnB/D,EAAasF,uBACfjoB,EAAQ0mB,eAAiBA,C,qCCxDzB,IACQ7gB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ2mB,mBAAgB,EACxB,IAAIhE,EAAe,EAAQ,OACvBgE,EAAiB,SAAUlgB,GAE3B,SAASkgB,IACL,OAAkB,OAAXlgB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAuBA,OA1BA8R,EAAU6gB,EAAelgB,GAIzB9H,OAAOoB,eAAe4mB,EAAcvlB,UAAW,OAAQ,CACnDvP,IAAK,WACD,MAAO,YACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe4mB,EAAcvlB,UAAW,QAAS,CACpDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe4mB,EAAcvlB,UAAW,cAAe,CAC1DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElB8lB,EAAcjF,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UAAW,CAAEuN,KAAM,SACxFtI,CACX,CA5BoB,CA4BlBhE,EAAawF,iBACfnoB,EAAQ2mB,cAAgBA,C,qCC1DxB,IACQ9gB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ0kB,aAAU,EAClB,IAAI/B,EAAe,EAAQ,OACvB+B,EAAW,SAAUje,GAErB,SAASie,IACL,OAAkB,OAAXje,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CA4BA,OA/BA8R,EAAU4e,EAASje,GAInB9H,OAAOoB,eAAe2kB,EAAQtjB,UAAW,OAAQ,CAC7CvP,IAAK,WACD,MAAO,MACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe2kB,EAAQtjB,UAAW,qBAAsB,CAC3DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElB6jB,EAAQtjB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GAC9C,YAAhCv3B,KAAKkX,WAAWrZ,IAAI,SACpBmC,KAAKkX,WAAW6W,aAAa,UAAW,SAE5C7W,EAAalX,KAAK23B,uBAAuBzgB,EAAYlX,KAAKkX,WAAWqX,oBACrElM,IAAariB,KAAKkX,WAAWrZ,IAAI,kBAC3BmC,KAAKkX,WAAWrZ,IAAI,iBAAsD,UAAnCmC,KAAKkX,WAAWrZ,IAAI,WACjEmC,KAAKkX,WAAW6W,aAAa,eAAgB1L,GAC7CiV,EAASt3B,KAAKkX,WAAWrZ,IAAI,gBACzBmC,KAAKsS,YAAYob,SAAsB,YAC3Cjb,EAAOrF,UAAUsqB,4BAA4BpqB,KAAKtN,KAAMkX,EAAYmL,EAASiV,EAAOC,EACxF,EACA7G,EAAQhD,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAasF,sBAAsBvG,UAAW,CAAEkM,YAAa,SAAU5B,SAAU,SAAUU,UAAW,GAAID,eAAgB,cAAeE,IAAK,MAAOZ,YAAa,EAAGmD,cAAc,EAAO7Y,QAAS,SAAU8Y,SAAU,GAAIC,SAAU,YAAaC,OAAQ,GAAI,eAAgB,GAAI,gBAAiB,GAAI,gBAAiB,GAAIC,QAAS,GAAIC,QAAS,GAAIrC,qBAAsB,EAAIjC,KAAKuE,KAAK,GAAIvC,cAAe,MAAOwC,oBAAqB,SAAUC,YAAa,MAAOC,kBAAmB,IAAUC,YAAa,OAAQC,YAAa,OAAQC,aAAc,GAAIC,iBAAkB,cAAeC,iBAAkB,cAAeC,gBAAiB,cAAeC,gBAAiB,gBACrrBxL,CACX,CAjCc,CAiCZ/B,EAAasF,uBACfjoB,EAAQ0kB,QAAUA,C,qCC/DlB,IACQ7e,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgnB,gBAAa,EACrB,IAAIrE,EAAe,EAAQ,OACvBqE,EAAc,SAAUvgB,GAExB,SAASugB,IACL,OAAkB,OAAXvgB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CA6BA,OAhCA8R,EAAUkhB,EAAYvgB,GAItB9H,OAAOoB,eAAeinB,EAAW5lB,UAAW,OAAQ,CAChDvP,IAAK,WACD,MAAO,YACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeinB,EAAW5lB,UAAW,QAAS,CACjDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeinB,EAAW5lB,UAAW,YAAa,CACrDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBmmB,EAAW5lB,UAAUiqB,uBAAyB,SAAUngB,EAAYmL,EAASiV,EAAOC,GAChF,IAAIoD,EAAatY,EAAU,EAAI4U,KAAK2D,IAAI,EAAG3D,KAAK4D,IAAIvD,EAAO,IAAM,EAC7DxiB,EAAQ9U,KAAKgW,WAAW2kB,IAAc36B,KAAKq1B,QAAQhpB,OAAO,QAC9DrM,KAAK2U,OAAOY,aAAaT,EAAO9U,MAChC8U,EAAMuiB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,EAC7D,EACAvE,EAAWtF,SAAW1N,EAAS,CAAC,EAAG2O,EAAaqF,oBAAoBtG,UAC7DsF,CACX,CAlCiB,CAkCfrE,EAAaqF,qBACfhoB,EAAQgnB,WAAaA,C,qCChErB,IACQnhB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ2lB,iBAAc,EACtB,IAAIhD,EAAe,EAAQ,OACvBgD,EAAe,SAAUlf,GAEzB,SAASkf,IACL,IAAIjf,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CA4BA,OAjCAZ,EAAU6f,EAAalf,GAMvB9H,OAAOoB,eAAe4lB,EAAYvkB,UAAW,OAAQ,CACjDvP,IAAK,WACD,MAAO,UACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe4lB,EAAYvkB,UAAW,QAAS,CAClDvP,IAAK,WACD,OAAQ,CACZ,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe4lB,EAAYvkB,UAAW,sBAAuB,CAChEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElB8kB,EAAYvkB,UAAUupB,YAAc,SAAUC,GAG1C,OAFAA,EAAO52B,KAAKgW,WAAW,GAAG2gB,YAAYC,GACtC52B,KAAK82B,eAAe92B,KAAKgW,WAAW,IAC7B4gB,CACX,EACAjF,EAAYjE,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UAAW,CAAEyO,SAAU,YAC1FxK,CACX,CAnCkB,CAmChBhD,EAAawF,iBACfnoB,EAAQ2lB,YAAcA,C,qCCjEtB,IACQ9f,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQulB,eAAY,EACpB,IAAI5C,EAAe,EAAQ,OACvB4C,EAAa,SAAU9e,GAEvB,SAAS8e,IACL,IAAI7e,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CAuBA,OA5BAZ,EAAUyf,EAAW9e,GAMrB9H,OAAOoB,eAAewlB,EAAUnkB,UAAW,OAAQ,CAC/CvP,IAAK,WACD,MAAO,QACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAewlB,EAAUnkB,UAAW,QAAS,CAChDvP,IAAK,WACD,OAAQ,CACZ,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAewlB,EAAUnkB,UAAW,qBAAsB,CAC7DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElB0kB,EAAU7D,SAAW1N,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UACxD6D,CACX,CA9BgB,CA8Bd5C,EAAawF,iBACfnoB,EAAQulB,UAAYA,C,qCC5DpB,IACQ1f,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACI/I,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ0lB,gBAAa,EACrB,IAAI/C,EAAe,EAAQ,OACvB+C,EAAc,SAAUjf,GAExB,SAASif,IACL,IAAIhf,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAKhE,OAJA0S,EAAM8iB,SAAW7G,EAAa2F,SAASU,MACvCtiB,EAAM0pB,WAAa,GACnB1pB,EAAMsa,KAAO,KACbta,EAAMua,MAAQ,KACPva,CACX,CA8FA,OAtGAZ,EAAU4f,EAAYjf,GAStB9H,OAAOoB,eAAe2lB,EAAWtkB,UAAW,OAAQ,CAChDvP,IAAK,WACD,MAAO,SACX,EACAiP,YAAY,EACZD,cAAc,IAElB6kB,EAAWtkB,UAAUupB,YAAc,SAAUC,GACzC52B,KAAK62B,aAAaD,GACd52B,KAAKgtB,OACL4J,EAAO52B,KAAKgtB,KAAK2J,YAAYC,IAE7B52B,KAAKgW,WAAW,KAChB4gB,EAAO52B,KAAKgW,WAAW,GAAG2gB,YAAYC,IAE1C,IAAK,IAAIl7B,EAAI,EAAGU,EAAI4D,KAAKgW,WAAWha,OAAQN,EAAIU,EAAGV,IAC3CsE,KAAKo8B,WAAW1gC,EAAI,KACpBk7B,EAAO52B,KAAKo8B,WAAW1gC,EAAI,GAAGi7B,YAAYC,IAE1C52B,KAAKgW,WAAWta,KAChBk7B,EAAO52B,KAAKgW,WAAWta,GAAGi7B,YAAYC,IAO9C,OAJI52B,KAAKitB,QACL2J,EAAO52B,KAAKitB,MAAM0J,YAAYC,IAElC52B,KAAK82B,eAAe92B,KAAKgtB,MAClB4J,CACX,EACAlF,EAAWtkB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GACrF,IAAIxjB,EAAK1C,EACTrR,KAAKq8B,eACL,IACI,IAAK,IAAI/jB,EAAK/F,EAAS,CAACvS,KAAKgtB,KAAMhtB,KAAKitB,OAAOzZ,OAAOxT,KAAKo8B,aAAc5jB,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/G,IAAI6G,EAAQ0D,EAAGvM,MACX6I,GACAA,EAAMuiB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,EAEjE,CACJ,CACA,MAAOhjB,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACAsH,EAAOrF,UAAUsqB,4BAA4BpqB,KAAKtN,KAAMkX,EAAYmL,EAASiV,EAAOC,EACxF,EACA7F,EAAWtkB,UAAUivB,aAAe,WAChC,IAAIhkB,EAAKhH,EACLiH,EAAKtY,KAAKkX,WAAW4W,QAAQ,OAAQ,QAAS,cAAed,EAAO1U,EAAG0U,KAAMC,EAAQ3U,EAAG2U,MAAOmP,EAAa9jB,EAAG8jB,WAOnH,GANApP,EAAOA,EAAKjxB,QAAQ,aAAc,IAClCkxB,EAAQA,EAAMlxB,QAAQ,aAAc,IACpCqgC,EAAaA,EAAWrgC,QAAQ,aAAc,IAC1CixB,IACAhtB,KAAKgtB,KAAOhtB,KAAKs8B,SAAStP,EAAM,CAAEuP,OAAO,EAAMC,KAAM,UAAY7N,EAAa2F,SAASO,OAEvFuH,EAAY,CACZ,KAAOA,EAAWpgC,OAASgE,KAAKgW,WAAWha,OAAS,GAChDogC,GAAcA,EAAW9/B,OAAO8/B,EAAWpgC,OAAS,GAExD,IAAIN,EAAI,EACR,IACI,IAAK,IAAI8c,EAAKjG,EAASvS,KAAKgW,WAAWna,MAAM,IAAK2jB,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,CAC5EuR,EAAGvT,OAEXjM,KAAKo8B,WAAWngC,KAAK+D,KAAKs8B,SAASF,EAAW9/B,OAAOZ,MAE7D,CACJ,CACA,MAAOmd,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQ2G,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIH,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACJ,CACI8hB,IACAjtB,KAAKitB,MAAQjtB,KAAKs8B,SAASrP,EAAO,CAAEsP,OAAO,EAAMC,KAAM,WAAa7N,EAAa2F,SAASQ,OAElG,EACApD,EAAWtkB,UAAUkvB,SAAW,SAAU3kB,EAAG6M,EAAYuR,QAClC,IAAfvR,IAAyBA,EAAa,CAAC,QAC1B,IAAbuR,IAAuBA,EAAW,MACtC,IAAI55B,EAAO6D,KAAKq1B,QAAQhpB,OAAO,QAAQqe,QAAQ/S,GAC3ClE,EAAOzT,KAAKq1B,QAAQhpB,OAAO,KAAMmY,EAAY,CAACroB,IAGlD,OAFAsX,EAAKsiB,SAAWA,EAChBtiB,EAAKkB,OAAS3U,KACPyT,CACX,EACAie,EAAWhE,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UAAW,CAAEV,KAAM,IAAKC,MAAO,IAAKmP,WAAY,MAClH1K,CACX,CAxGiB,CAwGf/C,EAAawF,iBACfnoB,EAAQ0lB,WAAaA,C,qCCjJrB,IACQ7f,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACI/I,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQmlB,cAAW,EACnB,IAAIxC,EAAe,EAAQ,OACvBwC,EAAY,SAAU1e,GAEtB,SAAS0e,IACL,OAAkB,OAAX1e,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAgDA,OAnDA8R,EAAUqf,EAAU1e,GAIpB9H,OAAOoB,eAAeolB,EAAS/jB,UAAW,OAAQ,CAC9CvP,IAAK,WACD,MAAO,OACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeolB,EAAS/jB,UAAW,QAAS,CAC/CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeolB,EAAS/jB,UAAW,qBAAsB,CAC5DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBskB,EAAS/jB,UAAUupB,YAAc,SAAUC,GACvC,IAAI7iB,EAAK1C,EACTrR,KAAK62B,aAAaD,GAClB,IACI,IAAK,IAAIte,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACnEuK,EAAGvM,MACT0qB,YAAY,KACtB,CACJ,CACA,MAAOpiB,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,OAAOnL,IACX,EACAmxB,EAAS/jB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,KAC9ElV,GAAWiV,EAAQ,IACpBA,IAEJt3B,KAAKgW,WAAW,GAAGqhB,uBAAuBngB,GAAY,EAAOogB,EAAOC,GACpEv3B,KAAKgW,WAAW,GAAGqhB,uBAAuBngB,GAAY,EAAOogB,GAAO,EACxE,EACAnG,EAASzD,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAaqF,oBAAoBtG,UAAW,CAAE+O,cAAe,SAAUC,SAAU,SAAUC,WAAY,SAAUC,UAAU,IAC9JzL,CACX,CArDe,CAqDbxC,EAAaqF,qBACfhoB,EAAQmlB,SAAWA,C,oCC9FnB,IACQtf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ4mB,eAAY,EACpB,IAAIjE,EAAe,EAAQ,OACvBiE,EAAa,SAAUngB,GAEvB,SAASmgB,IACL,IAAIlgB,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CAkBA,OAvBAZ,EAAU8gB,EAAWngB,GAMrB9H,OAAOoB,eAAe6mB,EAAUxlB,UAAW,OAAQ,CAC/CvP,IAAK,WACD,MAAO,QACX,EACAiP,YAAY,EACZD,cAAc,IAElB+lB,EAAUxlB,UAAU8qB,iBAAmB,SAAU7/B,GAC7C,IAAIgZ,EAAKrR,KAAKkX,WAAW4W,QAAQ,MAAO,aAAc,SAAUxT,EAAMjJ,EAAGiJ,IAAKuiB,EAAaxrB,EAAGwrB,WAAYC,EAAQzrB,EAAGyrB,MACzG,KAARxiB,GAA8B,KAAfuiB,GAA+B,KAAVC,EAIpCrqB,EAAOrF,UAAU8qB,iBAAiB5qB,KAAKtN,KAAM3H,GAH7C2H,KAAKm4B,OAAO,iEAAkE9/B,GAAS,EAK/F,EACAu6B,EAAUlF,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAauF,qBAAqBxG,UAAW,CAAE/0B,IAAK,GAAI2hB,IAAK,GAAIwiB,MAAO,GAAIxjB,MAAO,OAAQC,OAAQ,OAAQwjB,OAAQ,QACvJnK,CACX,CAzBgB,CAyBdjE,EAAauF,sBACfloB,EAAQ4mB,UAAYA,C,qCCvDpB,IACQ/gB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ2kB,WAAQ,EAChB,IAAIhC,EAAe,EAAQ,OACvBgC,EAAS,SAAUle,GAEnB,SAASke,IACL,IAAIje,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CAkCA,OAvCAZ,EAAU6e,EAAOle,GAMjB9H,OAAOoB,eAAe4kB,EAAMvjB,UAAW,OAAQ,CAC3CvP,IAAK,WACD,MAAO,IACX,EACAiP,YAAY,EACZD,cAAc,IAElB8jB,EAAMvjB,UAAUiqB,uBAAyB,SAAUngB,EAAYmL,EAASiV,EAAOC,QACxD,IAAfrgB,IAAyBA,EAAa,CAAC,QAC3B,IAAZmL,IAAsBA,GAAU,QACtB,IAAViV,IAAoBA,EAAQ,QAClB,IAAVC,IAAoBA,GAAQ,GAChC9kB,EAAOrF,UAAUiqB,uBAAuB/pB,KAAKtN,KAAMkX,EAAYmL,EAASiV,EAAOC,GACpEv3B,KAAKozB,UACP72B,MAAMo0B,EAAMqM,mBAAqB9lB,EAAW0iB,aACjD55B,KAAKkX,WAAW6W,aAAa,cAAe,SAEpD,EACA4C,EAAMvjB,UAAUupB,YAAc,SAAUC,GACpC52B,KAAK62B,aAAaD,GAClB,IAAI3wB,EAAOjG,KAAKozB,UAQhB,OAPIntB,EAAKjK,OAAS,GAAKiK,EAAK1J,MAAMo0B,EAAMsM,eACG,WAAvCj9B,KAAKkX,WAAWrZ,IAAI,qBACWhB,IAA/BmD,KAAKq2B,YAAY,gBACgBx5B,IAAjCmD,KAAKq2B,YAAY,cACjBr2B,KAAK+1B,SAAWpH,EAAa2F,SAASI,GACtC10B,KAAKo2B,YAAY,UAAU,IAExBp2B,IACX,EACA2wB,EAAMjD,SAAW1N,EAAS,CAAC,EAAG2O,EAAauF,qBAAqBxG,UAChEiD,EAAMsM,aAAe,oBACrBtM,EAAMqM,gBAAkB,6EACjBrM,CACX,CAzCY,CAyCVhC,EAAauF,sBACfloB,EAAQ2kB,MAAQA,C,qCCvEhB,IACQ9e,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQqmB,QAAUrmB,EAAQomB,eAAiBpmB,EAAQmmB,sBAAmB,EACtE,IAAIxD,EAAe,EAAQ,OACvBmB,EAAe,EAAQ,OACvBqC,EAAoB,SAAU1f,GAE9B,SAAS0f,IACL,OAAkB,OAAX1f,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAiEA,OApEA8R,EAAUqgB,EAAkB1f,GAI5B9H,OAAOoB,eAAeomB,EAAiB/kB,UAAW,OAAQ,CACtDvP,IAAK,WACD,MAAO,eACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeomB,EAAiB/kB,UAAW,QAAS,CACvDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBslB,EAAiB/kB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GAC3Fv3B,KAAKgW,WAAW,GAAGqhB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,GAEtE,IADA,IAAI2F,GAAa,EACRxhC,EAAI,EAAGgB,EAAI,EAAGhB,EAAIsE,KAAKgW,WAAWha,OAAQN,IAAK,CACpD,IAAIoZ,EAAQ9U,KAAKgW,WAAWta,GAC5B,GAAIoZ,EAAM0jB,OAAO,gBACb,IAAK0E,IACDA,GAAa,EACTxhC,EAAI,GAAM,GAAG,CACb,IAAIqH,EAAO/C,KAAKq1B,QAAQhpB,OAAO,QAC/BrM,KAAKgW,WAAWmnB,OAAOzhC,EAAG,EAAGqH,GAC7BA,EAAK4R,OAAS3U,KACdtE,GACJ,MAGH,CACD,IAAI0hC,EAAa7F,GAAU76B,EAAI,GAAM,EACrCoY,EAAMuiB,uBAAuBngB,GAAY,EAAOogB,EAAQ,EAAG8F,GAC3D1gC,GACJ,CACJ,CACIsD,KAAKgW,WAAWha,OAAS,IAAOkhC,EAAa,EAAI,KACjDl9B,KAAK+U,YAAY/U,KAAKq1B,QAAQhpB,OAAO,SACrCrM,KAAKgW,WAAWhW,KAAKgW,WAAWha,OAAS,GAAGq7B,uBAAuBngB,GAAY,EAAOogB,EAAQ,EAAGC,GAEzG,EACApF,EAAiB/kB,UAAUgrB,eAAiB,SAAU//B,GAGlD,IAFA,IAAI6kC,GAAa,EACbG,EAAMhlC,EAA0B,iBAC3BqD,EAAI,EAAGA,EAAIsE,KAAKgW,WAAWha,OAAQN,IAAK,CAC7C,IAAIoZ,EAAQ9U,KAAKgW,WAAWta,GACxBoZ,EAAM0jB,OAAO,iBACT0E,EACApoB,EAAMqjB,OAAOrjB,EAAM/B,KAAO,4BAA8B/S,KAAK+S,KAAM1a,GAAS,IAG5E6kC,GAAa,EACTxhC,EAAI,GAAM,GAAM2hC,GAChBr9B,KAAKm4B,OAAO,2DAA4D9/B,IAIxF,CACI2H,KAAKgW,WAAWha,OAAS,IAAOkhC,EAAa,EAAI,IAAOG,GACxDr9B,KAAKm4B,OAAO,wDAAyD9/B,GAEzEoa,EAAOrF,UAAUgrB,eAAe9qB,KAAKtN,KAAM3H,EAC/C,EACA85B,EAAiBzE,SAAW1N,EAAS,CAAC,EAAG8P,EAAaiC,WAAWrE,UAC1DyE,CACX,CAtEuB,CAsErBrC,EAAaiC,YACf/lB,EAAQmmB,iBAAmBA,EAC3B,IAAIC,EAAkB,SAAU3f,GAE5B,SAAS2f,IACL,OAAkB,OAAX3f,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAsBA,OAzBA8R,EAAUsgB,EAAgB3f,GAI1B9H,OAAOoB,eAAeqmB,EAAehlB,UAAW,OAAQ,CACpDvP,IAAK,WACD,MAAO,aACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeqmB,EAAehlB,UAAW,QAAS,CACrDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBulB,EAAehlB,UAAU6qB,WAAa,SAAU5/B,GAC5Coa,EAAOrF,UAAU6qB,WAAW3qB,KAAKtN,KAAM3H,GACnC2H,KAAK2U,SAAW3U,KAAK2U,OAAO6jB,OAAO,kBACnCx4B,KAAKm4B,OAAOn4B,KAAK+S,KAAO,oCAAqC1a,GAAS,EAE9E,EACA+5B,EAAe1E,SAAW1N,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UAC7D0E,CACX,CA3BqB,CA2BnBzD,EAAawF,iBACfnoB,EAAQomB,eAAiBA,EACzB,IAAIC,EAAW,SAAU5f,GAErB,SAAS4f,IACL,OAAkB,OAAX5f,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAsBA,OAzBA8R,EAAUugB,EAAS5f,GAInB9H,OAAOoB,eAAesmB,EAAQjlB,UAAW,OAAQ,CAC7CvP,IAAK,WACD,MAAO,MACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAesmB,EAAQjlB,UAAW,QAAS,CAC9CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBwlB,EAAQjlB,UAAU6qB,WAAa,SAAU5/B,GACrCoa,EAAOrF,UAAU6qB,WAAW3qB,KAAKtN,KAAM3H,GACnC2H,KAAK2U,SAAW3U,KAAK2U,OAAO6jB,OAAO,kBACnCx4B,KAAKm4B,OAAOn4B,KAAK+S,KAAO,oCAAqC1a,GAAS,EAE9E,EACAg6B,EAAQ3E,SAAW1N,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UACtD2E,CACX,CA3Bc,CA2BZ1D,EAAawF,iBACfnoB,EAAQqmB,QAAUA,C,qCC/JlB,IACQxgB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ4kB,WAAQ,EAChB,IAAIjC,EAAe,EAAQ,OACvBiC,EAAS,SAAUne,GAEnB,SAASme,IACL,IAAIle,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CASA,OAdAZ,EAAU8e,EAAOne,GAMjB9H,OAAOoB,eAAe6kB,EAAMxjB,UAAW,OAAQ,CAC3CvP,IAAK,WACD,MAAO,IACX,EACAiP,YAAY,EACZD,cAAc,IAElB+jB,EAAMlD,SAAW1N,EAAS,CAAC,EAAG2O,EAAauF,qBAAqBxG,UACzDkD,CACX,CAhBY,CAgBVjC,EAAauF,sBACfloB,EAAQ4kB,MAAQA,C,qCC9ChB,IACQ/e,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACIgC,EAAUtd,MAAQA,KAAKsd,QAAW,SAAUhR,EAAG5P,GAC/C,IAAIN,EAAsB,mBAAX4K,QAAyBsF,EAAEtF,OAAOiI,UACjD,IAAK7S,EAAG,OAAOkQ,EACf,IAAmBiR,EAAYrP,EAA3BxS,EAAIU,EAAEkR,KAAKhB,GAAOkR,EAAK,GAC3B,IACI,WAAc,IAAN9gB,GAAgBA,KAAM,MAAQ6gB,EAAI7hB,EAAEuS,QAAQG,MAAMoP,EAAGvhB,KAAKshB,EAAEtR,MACxE,CACA,MAAOd,GAAS+C,EAAI,CAAE/C,MAAOA,EAAS,CACtC,QACI,IACQoS,IAAMA,EAAEnP,OAAShS,EAAIV,EAAU,SAAIU,EAAEkR,KAAK5R,EAClD,CACA,QAAU,GAAIwS,EAAG,MAAMA,EAAE/C,KAAO,CACpC,CACA,OAAOqS,CACX,EACIjL,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ6kB,WAAQ,EAChB,IAAIlC,EAAe,EAAQ,OACvB2O,EAA0B,EAAQ,KAClCC,EAAc,EAAQ,OACtB1M,EAAS,SAAUpe,GAEnB,SAASoe,IACL,IAAIne,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAIhE,OAHA0S,EAAM8qB,UAAY,KAClB9qB,EAAMmmB,OAAS,EAAI,GACnBnmB,EAAM+qB,OAAS,EAAI,GACZ/qB,CACX,CAwTA,OA/TAZ,EAAU+e,EAAOpe,GAQjB9H,OAAOoB,eAAe8kB,EAAMzjB,UAAW,WAAY,CAC/CvP,IAAK,WACD,GAAuB,OAAnBmC,KAAKw9B,UAAoB,CACzB,IAAI76B,EAAK3C,KAAKozB,UACV/hB,EAAKiM,EAAOtd,KAAK09B,mBAAmB19B,KAAK29B,YAAa,GAAIC,EAAQvsB,EAAG,GAAIwsB,EAAQxsB,EAAG,GAAIysB,EAAQzsB,EAAG,GACnG0sB,EAAY/9B,KAAKsS,YAAY0rB,QAC7Bha,EAAM+Z,EAAUH,GAAOj7B,IAAOo7B,EAAUF,GAAOl7B,IAAOo7B,EAAUD,GAAOn7B,GAC3E,OAAOqhB,EAAMA,EAAI,GAAK2K,EAAa2F,SAASM,GAChD,CACA,OAAO50B,KAAKw9B,SAChB,EACApgB,IAAK,SAAUnR,GACXjM,KAAKw9B,UAAYvxB,CACrB,EACAa,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe8kB,EAAMzjB,UAAW,OAAQ,CAC3CvP,IAAK,WACD,MAAO,IACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe8kB,EAAMzjB,UAAW,gBAAiB,CACpDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe8kB,EAAMzjB,UAAW,aAAc,CACjDvP,IAAK,WACD,MAA4C,YAArCmC,KAAKkX,WAAWrZ,IAAI,YAC/B,EACAiP,YAAY,EACZD,cAAc,IAElBgkB,EAAMzjB,UAAU6wB,WAAa,WAIzB,IAHA,IAAIC,EAAcl+B,KACd2U,EAAS3U,KACT1E,EAAO0E,KAAKq1B,QAAQM,aAAa,QAC9BhhB,GAAUA,EAAOyiB,eAAiBziB,EAAO6hB,WAAax2B,QAAU2U,aAAkBrZ,IACrF4iC,EAAcvpB,EACdA,EAASA,EAAOA,OAEpB,OAAOupB,CACX,EACArN,EAAMzjB,UAAU+wB,SAAW,SAAUxpB,GACjC,IAAKA,EACD,MAAO,GAEX,GAAIA,EAAOyiB,cACP,OAAOziB,EAAO6hB,SAASpD,UAE3B,OAAUze,EAAO6jB,OAAO,SACnB7jB,EAAO6jB,OAAO,YAAc7jB,EAAOohB,WAAapH,EAAa2F,SAASW,SACvEtgB,EAAO6jB,OAAO,WACd7jB,EAAO6jB,OAAO,cAA6C,IAA7B7jB,EAAOqB,WAAWha,QAChD2Y,EAAO6jB,OAAO,gBAAkB7jB,EAAOqB,WAAW,IAClDrB,EAASA,EAAOqB,WAAW,GAE/B,OAAQrB,EAAOypB,QAAUzpB,EAAOye,UAAY,EAChD,EACAvC,EAAMzjB,UAAU+pB,qBAAuB,WACnC,OAAOn3B,KAAKkX,WAAW6S,MAAM,WACzB/pB,KAAKkX,WAAW6S,MAAM,SAC9B,EACApf,OAAOoB,eAAe8kB,EAAMzjB,UAAW,WAAY,CAC/CvP,IAAK,WACD,IAAIwgC,GAAS,EACT5qB,EAAOzT,KAAKi+B,aAAatpB,OAC7B,GAAIlB,EAAM,CACN,IAAI4Q,EAAO5Q,EAAK+kB,OAAO,SAClB/kB,EAAKuC,WAAWvC,EAAK6qB,MAAM9H,SACxB,SAAW,GACf/iB,EAAK+kB,OAAO,UACP/kB,EAAKuC,WAAWvC,EAAK8qB,OAAO/H,SACzB,cAAgB,GACpB/iB,EAAK+kB,OAAO,cACPx4B,OAASyT,EAAKuC,WAAWvC,EAAK6qB,MAAM9H,SACjC,SACAx2B,OAASyT,EAAKuC,WAAWvC,EAAK8qB,OAAO/H,SACjC,cAAgB,GACxB,GACZ,GAAInS,EAEAga,OAAoBxhC,IADR4W,EAAKyD,WAAW2W,YAAYxJ,GACRga,EAASr+B,KAAKkX,WAAWrZ,IAAI,SAErE,CACA,OAAOwgC,CACX,EACAvxB,YAAY,EACZD,cAAc,IAElBgkB,EAAMzjB,UAAUupB,YAAc,SAAUC,GACpC,IAAIvlB,EAAKrR,KAAKkX,WAAW4W,QAAQ,OAAQ,SAAU0O,EAAOnrB,EAAGmrB,KAAMD,EAAQlrB,EAAGkrB,MAC9E,YAAqC1/B,IAAjCmD,KAAKq2B,YAAY,cAChBr2B,KAAKkX,WAAW6S,MAAM,WAAa/pB,KAAKkX,WAAW6S,MAAM,WACnD,MAEPwS,GAASv8B,KAAK+1B,WAAapH,EAAa2F,SAASM,MACpC,WAAT4H,IACAx8B,KAAK+1B,SAAWpH,EAAa2F,SAASO,MAE7B,YAAT2H,IACAx8B,KAAK+1B,SAAWpH,EAAa2F,SAASQ,QAGvC90B,KAAK06B,eAAe9D,GAC/B,EACA/F,EAAMzjB,UAAUstB,eAAiB,SAAU9D,GACvC,IAAIb,EAAW/1B,KAAK+1B,SAChBT,EAAYt1B,KAAKs1B,UACrB,GAAIS,IAAapH,EAAa2F,SAASY,KACnC,OAAO0B,EAYX,GAVIA,IACIA,EAAKP,YAAY,WAAcN,IAAapH,EAAa2F,SAASK,KAAOoB,IAAapH,EAAa2F,SAASM,MAC5GU,EAAYsB,EAAKb,SAAWpH,EAAa2F,SAASG,KAEtDa,EAAYt1B,KAAKs1B,UAAasB,EAAKb,UAAYpH,EAAa2F,SAASG,IACrEz0B,KAAKu1B,UAAYv1B,KAAKkX,WAAW8W,aAAa,gBAG9CsH,EAAYt1B,KAAKs1B,UAAY3G,EAAa2F,SAASY,KAEnDa,IAAapH,EAAa2F,SAASK,KAClCW,IAAc3G,EAAa2F,SAASY,MAAQI,IAAc3G,EAAa2F,SAASK,KAAOW,IAAc3G,EAAa2F,SAASI,IACxHY,IAAc3G,EAAa2F,SAASM,KAAOU,IAAc3G,EAAa2F,SAASO,MAAQS,IAAc3G,EAAa2F,SAASS,MAG9H,GAAIO,IAAc3G,EAAa2F,SAASK,KACxCoB,IAAapH,EAAa2F,SAASM,KAAOmB,IAAapH,EAAa2F,SAASQ,OAASiB,IAAapH,EAAa2F,SAASS,OAGzH,GAAIgB,IAAapH,EAAa2F,SAASK,IAAK,CAG7C,IAFA,IAAI7f,EAAQ9U,KACRw+B,EAAWx+B,KAAK2U,OACb6pB,GAAYA,EAAS7pB,QAAU6pB,EAASpH,gBACX,IAA/BoH,EAASxoB,WAAWha,SACfwiC,EAAShG,OAAO,SAAWgG,EAAS19B,SAAWgU,IACrDA,EAAQ0pB,EACRA,EAAWA,EAAS7pB,OAEpB6pB,EAASxoB,WAAWwoB,EAASxoB,WAAWha,OAAS,KAAO8Y,IACxD9U,KAAK+1B,SAAWpH,EAAa2F,SAASG,IAE9C,OAdImC,EAAKb,SAAW/1B,KAAKs1B,UAAY3G,EAAa2F,SAASG,SAJvDz0B,KAAK+1B,SAAWpH,EAAa2F,SAASG,IAmB1C,OAAOz0B,IACX,EACA6wB,EAAMzjB,UAAUiqB,uBAAyB,SAAUngB,EAAYmL,EAASiV,EAAOC,QACxD,IAAfrgB,IAAyBA,EAAa,CAAC,QAC3B,IAAZmL,IAAsBA,GAAU,QACtB,IAAViV,IAAoBA,EAAQ,QAClB,IAAVC,IAAoBA,GAAQ,GAChC9kB,EAAOrF,UAAUiqB,uBAAuB/pB,KAAKtN,KAAMkX,EAAYmL,EAASiV,EAAOC,GAC/E,IAAI50B,EAAK3C,KAAKozB,UACdpzB,KAAKy+B,mBAAmB97B,GACxB3C,KAAK0+B,mBAAmB/7B,GACxB3C,KAAK2+B,YAAYh8B,GACjB3C,KAAK4+B,gBAAgBj8B,EACzB,EACAkuB,EAAMzjB,UAAUqxB,mBAAqB,SAAU97B,GAC3C,IAAIoR,EAAK1C,EACLiH,EAAKgF,EAAOtd,KAAK09B,mBAAmB19B,KAAK29B,YAAa,GAAIC,EAAQtlB,EAAG,GAAIulB,EAAQvlB,EAAG,GAAIwlB,EAAQxlB,EAAG,GACvGtY,KAAKkX,WAAW6W,aAAa,OAAQ6P,GACrC,IAAII,EAAUh+B,KAAKsS,YAAY0rB,QAC3Bha,EAAMga,EAAQJ,GAAOj7B,IAAOq7B,EAAQH,GAAOl7B,IAAOq7B,EAAQF,GAAOn7B,GACrE,GAAIqhB,EAAK,MACgCnnB,IAAjCmD,KAAKq2B,YAAY,cACjBr2B,KAAK+1B,SAAW/R,EAAI,IAExB,IACI,IAAK,IAAIxL,EAAKjG,EAAS5H,OAAOC,KAAKoZ,EAAI,IAAM,CAAC,IAAKxE,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,CACzF,IAAIyN,EAAS8D,EAAGvT,MAChBjM,KAAKkX,WAAW6W,aAAarS,EAAQsI,EAAI,GAAGtI,GAChD,CACJ,CACA,MAAOnH,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiL,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIzE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACAnL,KAAK64B,QAAU7U,EAAI,GAAK,GAAK,GAC7BhkB,KAAKy9B,QAAUzZ,EAAI,GAAK,GAAK,EACjC,KACK,CACD,IAAI6a,GAAQ,EAAIvB,EAAwBwB,UAAUn8B,GAClD,GAAIk8B,EAAO,MAC8BhiC,IAAjCmD,KAAKq2B,YAAY,cACjBr2B,KAAK+1B,SAAW8I,EAAM,IAE1B,IAAIE,EAAU/+B,KAAKsS,YAAY0sB,WAAWH,EAAM,IAChD7+B,KAAK64B,QAAUkG,EAAQ,GAAK,GAAK,GACjC/+B,KAAKy9B,QAAUsB,EAAQ,GAAK,GAAK,EACrC,CACJ,CACJ,EACAlO,EAAMzjB,UAAUuwB,SAAW,WAIvB,IAHA,IAAI78B,EAAOd,KACP2U,EAAS3U,KAAK2U,OACduhB,EAASl2B,KAAKk2B,OACXA,GAAUA,EAAOkB,eACpBt2B,EAAO6T,EACPA,EAASuhB,EAAOvhB,OAChBuhB,EAASA,EAAOA,OAEpB,GAAIvhB,GAAUA,EAAO6jB,OAAO,SAAuC,IAA5B7jB,EAAOsqB,iBAAwB,CAClE,GAAItqB,EAAOuqB,kBAAoBp+B,EAC3B,MAAO,CAAC,SAAU,QAAS,WAE/B,GAAI6T,EAAOwqB,iBAAmBr+B,EAC1B,MAAO,CAAC,UAAW,QAAS,SAEpC,CACA,MAAO,CAAC,QAAS,SAAU,UAC/B,EACA+vB,EAAMzjB,UAAUswB,mBAAqB,SAAU0B,GAC3C,GAAIp/B,KAAKkX,WAAW6S,MAAM,QAAS,CAC/B,IAAIsV,EAASr/B,KAAKkX,WAAWrZ,IAAI,QACjCuhC,EAAQ,CAACC,GAAQ7rB,OAAO4rB,EAAMv0B,QAAO,SAAU5E,GAAQ,OAAQA,IAASo5B,CAAS,IACrF,CACA,OAAOD,CACX,EACAvO,EAAMzjB,UAAUsxB,mBAAqB,SAAU/7B,GAC3C,IAAI28B,EAAgBt/B,KAAKsS,YAAYitB,cACrC,GAAK58B,EAAGpG,MAAM+iC,GAAd,CAEA,IAAI3qB,EAAS3U,KAAKi+B,aAAa/H,OAC3BsJ,GAAY7qB,KAAYA,EAAO6jB,OAAO,aAAe7jB,EAAO6jB,OAAO,SACvEx4B,KAAKo2B,YAAY,eAAgBoJ,GAC7BA,IACAx/B,KAAKkX,WAAW6W,aAAa,SAAU,GACvC/tB,KAAKkX,WAAW6W,aAAa,SAAU,GANjC,CAQd,EACA8C,EAAMzjB,UAAUuxB,YAAc,SAAUh8B,GACpC,IAAI88B,EAASz/B,KAAKsS,YAAYotB,OAC9B,GAAK/8B,EAAGpG,MAAMkjC,GAAd,CAEA,IAAIE,EAAQ3/B,KAAKsS,YAAYstB,YACzBF,GAAS,EAAInC,EAAYsC,gBAAe,EAAItC,EAAYuC,cAAcn9B,GAAIwU,KAAI,SAAUQ,GAAK,OAAOgoB,EAAMhoB,EAAI,KAClH3X,KAAKo2B,YAAY,SAAUsJ,EAHjB,CAId,EACA7O,EAAMzjB,UAAUwxB,gBAAkB,SAAUj8B,GACxC,IAAIgS,EAAS3U,KAAKk2B,OAClB,QAAuCr5B,IAAnCmD,KAAKq2B,YAAY,eAAgC1hB,GAAWA,EAAO6jB,OAAO,cAA9E,CAEA,IAAIlxB,EAAOqN,EAAOqB,WAAW,GAC7B,IAAI1O,EAAK8vB,eAAiB9vB,EAAKkvB,WAAax2B,KAA5C,CAEA,IAAI+/B,EAAa//B,KAAKsS,YAAY0tB,YAC9Br9B,EAAGpG,MAAMwjC,IACT//B,KAAKo2B,YAAY,cAAc,EAHzB,CAHA,CAQd,EACAvF,EAAMnD,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAauF,qBAAqBxG,UAAW,CAAE8O,KAAM,QAASD,OAAO,EAAO0D,WAAW,EAAOpH,OAAQ,iBAAkB4E,OAAQ,iBAAkByC,UAAU,EAAOC,WAAW,EAAOC,QAAS,WAAYC,QAAS,MAAO52B,SAAS,EAAO62B,eAAe,EAAOjC,QAAQ,EAAOkC,UAAW,OAAQ7E,YAAa,MAAO8E,eAAgB,SAAU3E,YAAa,OAAQD,YAAa,IAAKE,aAAc,GAAIC,iBAAkB,cAAeC,iBAAkB,cAAeC,gBAAiB,cAAeC,gBAAiB,gBACniBrL,EAAMmO,WAAa1B,EAAwB0B,WAC3CnO,EAAMmN,QAAUV,EAAwBU,QACxCnN,EAAM0O,cAAgB,IAAIkB,OAAO,CAC7B,UACA,IACA,IACA,MACA,IACA,IACA,MACA,OACA,KACA,MACA,MACA,OACF3kC,KAAK,KACP+0B,EAAM6O,OAAS,IAAIe,OAAO,CACtB,SACA,MACA,OACF3kC,KAAK,KACP+0B,EAAM+O,YAAc,CAChB,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,MAEZ/O,EAAMmP,YAAc,IAAIS,OAAO,CAC3B,KACA,MACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,KACA,KACA,IACA,IACA,MACF3kC,KAAK,KACA+0B,CACX,CAjUY,CAiUVlC,EAAauF,sBACfloB,EAAQ6kB,MAAQA,C,qCC5XhB,IACQhf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQwlB,gBAAa,EACrB,IAAI7C,EAAe,EAAQ,OACvB6C,EAAc,SAAU/e,GAExB,SAAS+e,IACL,OAAkB,OAAX/e,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CASA,OAZA8R,EAAU0f,EAAY/e,GAItB9H,OAAOoB,eAAeylB,EAAWpkB,UAAW,OAAQ,CAChDvP,IAAK,WACD,MAAO,SACX,EACAiP,YAAY,EACZD,cAAc,IAElB2kB,EAAW9D,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAasF,sBAAsBvG,UAAW,CAAEpU,MAAO,GAAIC,OAAQ,GAAIqf,MAAO,GAAIC,OAAQ,EAAGC,QAAS,IAC3ItH,CACX,CAdiB,CAcf7C,EAAasF,uBACfjoB,EAAQwlB,WAAaA,C,qCC5CrB,IACQ3f,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQylB,iBAAc,EACtB,IAAI9C,EAAe,EAAQ,OACvB8C,EAAe,SAAUhf,GAEzB,SAASgf,IACL,IAAI/e,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CASA,OAdAZ,EAAU2f,EAAahf,GAMvB9H,OAAOoB,eAAe0lB,EAAYrkB,UAAW,OAAQ,CACjDvP,IAAK,WACD,MAAO,UACX,EACAiP,YAAY,EACZD,cAAc,IAElB4kB,EAAY/D,SAAW1N,EAAS,CAAC,EAAG2O,EAAasF,sBAAsBvG,UAChE+D,CACX,CAhBkB,CAgBhB9C,EAAasF,uBACfjoB,EAAQylB,YAAcA,C,qCC9CtB,IACQ5f,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQqlB,cAAW,EACnB,IAAI1C,EAAe,EAAQ,OACvB0C,EAAY,SAAU5e,GAEtB,SAAS4e,IACL,IAAI3e,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CA0BA,OA/BAZ,EAAUuf,EAAU5e,GAMpB9H,OAAOoB,eAAeslB,EAASjkB,UAAW,OAAQ,CAC9CvP,IAAK,WACD,MAAO,OACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeslB,EAASjkB,UAAW,QAAS,CAC/CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBwkB,EAASjkB,UAAUupB,YAAc,SAAUC,GAIvC,OAHA52B,KAAK62B,aAAaD,GAClB52B,KAAKgW,WAAW,GAAG2gB,YAAY,MAC/B32B,KAAKgW,WAAW,GAAG2gB,YAAY,MACxB32B,IACX,EACAqxB,EAASjkB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GACnFv3B,KAAKgW,WAAW,GAAGqhB,uBAAuBngB,EAAYmL,EAASiV,GAAO,GACtEt3B,KAAKgW,WAAW,GAAGqhB,uBAAuBngB,GAAY,EAAOogB,EAAQ,EAAGC,EAC5E,EACAlG,EAAS3D,SAAW1N,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UACvD2D,CACX,CAjCe,CAiCb1C,EAAawF,iBACfnoB,EAAQqlB,SAAWA,C,oCC/DnB,IACQxf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACI/I,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQklB,gBAAkBllB,EAAQilB,aAAU,EAC5C,IAAItC,EAAe,EAAQ,OACvBsC,EAAW,SAAUxe,GAErB,SAASwe,IACL,IAAIve,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAMguB,MAAQ,KACPhuB,CACX,CA0KA,OA/KAZ,EAAUmf,EAASxe,GAMnB9H,OAAOoB,eAAeklB,EAAQ7jB,UAAW,OAAQ,CAC7CvP,IAAK,WACD,MAAO,MACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeklB,EAAQ7jB,UAAW,cAAe,CACpDvP,IAAK,WACD,IAAIkW,EAAK1C,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAE/E,IADYuK,EAAGvM,MACJ4tB,YACP,OAAO,CAEf,CACJ,CACA,MAAOtlB,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIvE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,OAAO,CACX,EACA2B,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeklB,EAAQ7jB,UAAW,gBAAiB,CACtDvP,IAAK,WACD,IAAIwa,EAAKhH,EACL6sB,GAAc,EACdxiC,EAAI,EACR,IACI,IAAK,IAAI4c,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACf,GAAI6I,EACA,GAAIA,EAAMsiB,cAAe,CACrB,GAAI8G,EACA,OAAO,EAEXA,GAAc,EACdl+B,KAAK0gC,MAAQhlC,CACjB,MACK,IAAKoZ,EAAM+kB,YACZ,OAAO,EAGfn+B,GACJ,CACJ,CACA,MAAOmd,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQL,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACA,OAAO+yB,CACX,EACApxB,YAAY,EACZD,cAAc,IAElBokB,EAAQ7jB,UAAUtM,KAAO,WACrB,OAAKd,KAAKo3B,eAA+B,MAAdp3B,KAAK0gC,MAGzB1gC,KAAKgW,WAAWhW,KAAK0gC,OAFjB1gC,IAGf,EACAixB,EAAQ7jB,UAAUopB,OAAS,WACvB,OAAKx2B,KAAKo3B,eAA+B,MAAdp3B,KAAK0gC,MAGzB1gC,KAAKgW,WAAWhW,KAAK0gC,OAAOlK,SAFxBx2B,IAGf,EACAixB,EAAQ7jB,UAAU6xB,eAAiB,WAC/B,IAAIpjB,EAAKxK,EACL3U,EAAI,EACR,IACI,IAAK,IAAI4b,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACX6I,IAAUA,EAAM+kB,aAChBn9B,GAER,CACJ,CACA,MAAO4f,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQ9D,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIuD,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CACA,OAAOzO,CACX,EACAu0B,EAAQ7jB,UAAU8xB,cAAgB,WAC9B,IAAI1iB,EAAKnL,EACT,IACI,IAAK,IAAIiH,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACf,GAAI6I,IAAUA,EAAM+kB,YAChB,OAAO/kB,CAEf,CACJ,CACA,MAAO+H,GAASL,EAAM,CAAErR,MAAO0R,EAAS,CACxC,QACI,IACQrE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIkE,EAAK,MAAMA,EAAIrR,KAAO,CACxC,CACA,OAAO,IACX,EACA8lB,EAAQ7jB,UAAU+xB,aAAe,WAE7B,IADA,IAAIzjC,EAAIsE,KAAKgW,WAAWha,SACfN,GAAK,GAAG,CACb,IAAIoZ,EAAQ9U,KAAKgW,WAAWta,GAC5B,GAAIoZ,IAAUA,EAAM+kB,YAChB,OAAO/kB,CAEf,CACA,OAAO,IACX,EACAmc,EAAQ7jB,UAAUupB,YAAc,SAAUC,GACtC,IAAIhX,EAAKvO,EAAIyO,EAAKxH,EAClB,GAAgC,MAA5BtY,KAAKq2B,YAAY,SAAgD,MAA7Br2B,KAAKq2B,YAAY,SAAkB,CACvEr2B,KAAK62B,aAAaD,GAClBA,EAAO,KACP,IACI,IAAK,IAAIpe,EAAKjG,EAASvS,KAAKgW,YAAawJ,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,CAE/E2oB,EADYpX,EAAGvT,MACF0qB,YAAYC,EAC7B,CACJ,CACA,MAAO/W,GAASD,EAAM,CAAEzU,MAAO0U,EAAS,CACxC,QACI,IACQL,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIoH,EAAK,MAAMA,EAAIzU,KAAO,CACxC,CACqB,MAAjBnL,KAAK+1B,WACL/1B,KAAK+1B,SAAWpH,EAAa2F,SAASU,MAE9C,KACK,CACD,IACI,IAAK,IAAItV,EAAKnN,EAASvS,KAAKgW,YAAa2J,EAAKD,EAAGzR,QAAS0R,EAAGvR,KAAMuR,EAAKD,EAAGzR,OAAQ,CAE/E2oB,EADYjX,EAAG1T,MACF0qB,YAAYC,EAC7B,CACJ,CACA,MAAO7W,GAASD,EAAM,CAAE3U,MAAO4U,EAAS,CACxC,QACI,IACQJ,IAAOA,EAAGvR,OAASkK,EAAKoH,EAAGlL,SAAS8D,EAAGhL,KAAKoS,EACpD,CACA,QAAU,GAAII,EAAK,MAAMA,EAAI3U,KAAO,CACxC,CACInL,KAAKgW,WAAW,IAChBhW,KAAK82B,eAAe92B,KAAKgW,WAAW,GAE5C,CACA,OAAO4gB,CACX,EACA3F,EAAQvD,SAAW1N,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UACtDuD,CACX,CAjLc,CAiLZtC,EAAawF,iBACfnoB,EAAQilB,QAAUA,EAClB,IAAIC,EAAmB,SAAUze,GAE7B,SAASye,IACL,OAAkB,OAAXze,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CA0BA,OA7BA8R,EAAUof,EAAiBze,GAI3B9H,OAAOoB,eAAemlB,EAAgB9jB,UAAW,OAAQ,CACrDvP,IAAK,WACD,MAAO,cACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAemlB,EAAgB9jB,UAAW,aAAc,CAC3DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAemlB,EAAgB9jB,UAAW,YAAa,CAC1DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBqkB,EAAgB9jB,UAAUsmB,SAAW,WACjC,MAAO,IAAM1zB,KAAKgW,WAAWla,KAAK,KAAO,GAC7C,EACAo1B,EAAgBxD,SAAWuD,EAAQvD,SAC5BwD,CACX,CA/BsB,CA+BpBD,GACFjlB,EAAQklB,gBAAkBA,C,qCC3P1B,IACQrf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQglB,WAAQ,EAChB,IAAIrC,EAAe,EAAQ,OACvBqC,EAAS,SAAUve,GAEnB,SAASue,IACL,IAAIte,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CASA,OAdAZ,EAAUkf,EAAOve,GAMjB9H,OAAOoB,eAAeilB,EAAM5jB,UAAW,OAAQ,CAC3CvP,IAAK,WACD,MAAO,IACX,EACAiP,YAAY,EACZD,cAAc,IAElBmkB,EAAMtD,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAauF,qBAAqBxG,UAAW,CAAEiT,OAAQ,IAAKC,OAAQ,MACpG5P,CACX,CAhBY,CAgBVrC,EAAauF,sBACfloB,EAAQglB,MAAQA,C,qCC9ChB,IACQnf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ+kB,eAAY,EACpB,IAAIpC,EAAe,EAAQ,OACvBoC,EAAa,SAAUte,GAEvB,SAASse,IACL,IAAIre,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASY,KAChCxiB,CACX,CAmCA,OAxCAZ,EAAUif,EAAWte,GAMrBse,EAAU3jB,UAAUupB,YAAc,SAAUC,GACxC,OAAOA,CACX,EACAjsB,OAAOoB,eAAeglB,EAAU3jB,UAAW,OAAQ,CAC/CvP,IAAK,WACD,MAAO,QACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeglB,EAAU3jB,UAAW,QAAS,CAChDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeglB,EAAU3jB,UAAW,cAAe,CACtDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeglB,EAAU3jB,UAAW,aAAc,CACrDvP,IAAK,WACD,IAAIqZ,EAAalX,KAAKkX,WACtB,OAA2C,MAAnCA,EAAW2W,YAAY,UAAwD,MAApC3W,EAAW2W,YAAY,WACnC,MAAnC3W,EAAW2W,YAAY,UAAoD,YAAhC3W,EAAWrZ,IAAI,YAClE,EACAiP,YAAY,EACZD,cAAc,IAElBkkB,EAAUrD,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAauF,qBAAqBxG,UAAW,CAAEpU,MAAO,MAAOC,OAAQ,MAAOqf,MAAO,MAAO2H,UAAW,SACzIxP,CACX,CA1CgB,CA0CdpC,EAAauF,sBACfloB,EAAQ+kB,UAAYA,C,qCCxEpB,IACQlf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQolB,cAAW,EACnB,IAAIzC,EAAe,EAAQ,OACvByC,EAAY,SAAU3e,GAEtB,SAAS2e,IACL,IAAI1e,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CA+BA,OApCAZ,EAAUsf,EAAU3e,GAMpB9H,OAAOoB,eAAeqlB,EAAShkB,UAAW,OAAQ,CAC9CvP,IAAK,WACD,MAAO,OACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeqlB,EAAShkB,UAAW,QAAS,CAC/CvP,IAAK,WACD,OAAQ,CACZ,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeqlB,EAAShkB,UAAW,qBAAsB,CAC5DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBukB,EAAShkB,UAAUupB,YAAc,SAAUC,GAGvC,OAFA52B,KAAK62B,aAAaD,GAClB52B,KAAKgW,WAAW,GAAG2gB,YAAY,MACxB32B,IACX,EACAoxB,EAAShkB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAO6C,GACnFn6B,KAAKgW,WAAW,GAAGqhB,uBAAuBngB,EAAYmL,EAASiV,GAAO,EAC1E,EACAlG,EAAS1D,SAAW1N,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UACvD0D,CACX,CAtCe,CAsCbzC,EAAawF,iBACfnoB,EAAQolB,SAAWA,C,qCCpEnB,IACQvf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQslB,eAAY,EACpB,IAAI3C,EAAe,EAAQ,OACvB4F,EAAkB,EAAQ,OAC1BjD,EAAa,SAAU7e,GAEvB,SAAS6e,IACL,OAAkB,OAAX7e,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAwCA,OA3CA8R,EAAUwf,EAAW7e,GAIrB9H,OAAOoB,eAAeulB,EAAUlkB,UAAW,OAAQ,CAC/CvP,IAAK,WACD,MAAO,QACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeulB,EAAUlkB,UAAW,YAAa,CACpDvP,IAAK,WACD,OAAOmC,KAAKgW,WAAW,IAA+C,IAAzChW,KAAKgW,WAAW,GAAGA,WAAWha,MAC/D,EACA8Q,YAAY,EACZD,cAAc,IAElBykB,EAAUlkB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GACpF,IAAIQ,EAAc/3B,KAAKkX,WAAW2W,YAAY,eAC3B,MAAfkK,KACAA,EAAcA,EAAYrE,YACVn3B,MAAM,YAClB+6B,GAASuJ,SAAS9I,GAGlBT,EAAQuJ,SAAS9I,GAErBR,GAAQ,GAEZ,IAAI2D,EAAel7B,KAAKkX,WAAW2W,YAAY,gBAC3B,MAAhBqN,IACA7Y,GAA4B,IAAjB6Y,EACX3D,GAAQ,GAEZ,IAAIuJ,EAAU9gC,KAAKkX,WAAW2W,YAAY,gBAC3B,MAAXiT,IACAvJ,EAAQuJ,GAEZ5pB,EAAalX,KAAK23B,uBAAuBzgB,EAAYlX,KAAKkX,WAAWqX,oBACrEvuB,KAAKgW,WAAW,GAAGqhB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,EAC1E,EACAjG,EAAU5D,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAasF,sBAAsBvG,UAAW,CAAEqK,YAAaxD,EAAgB9G,QAASyN,aAAc3G,EAAgB9G,QAASyL,qBAAsB,EAAIjC,KAAKuE,KAAK,GAAIvC,cAAe,MAAOR,eAAgBlE,EAAgB9G,QAASiL,UAAWnE,EAAgB9G,QAASkL,IAAKpE,EAAgB9G,QAASgO,oBAAqB,WAC/VnK,CACX,CA7CgB,CA6Cd3C,EAAasF,uBACfjoB,EAAQslB,UAAYA,C,qCC5EpB,IACQzf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ8lB,QAAU9lB,EAAQ6lB,QAAU7lB,EAAQ+lB,gBAAa,EACzD,IAAIpD,EAAe,EAAQ,OACvBoD,EAAc,SAAUtf,GAExB,SAASsf,IACL,OAAkB,OAAXtf,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CA8CA,OAjDA8R,EAAUigB,EAAYtf,GAItB9H,OAAOoB,eAAegmB,EAAW3kB,UAAW,OAAQ,CAChDvP,IAAK,WACD,MAAO,SACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegmB,EAAW3kB,UAAW,QAAS,CACjDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegmB,EAAW3kB,UAAW,OAAQ,CAChDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegmB,EAAW3kB,UAAW,MAAO,CAC/CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAegmB,EAAW3kB,UAAW,MAAO,CAC/CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBklB,EAAW3kB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GACrF,IAAI7jB,EAAQ1T,KAAKgW,WACjBtC,EAAM,GAAG2jB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,GAC5D7jB,EAAM,GAAG2jB,uBAAuBngB,GAAY,EAAOogB,EAAQ,EAAGC,GAAsB,IAAbv3B,KAAK+gC,KACvErtB,EAAM,IAGXA,EAAM,GAAG2jB,uBAAuBngB,GAAY,EAAOogB,EAAQ,EAAGC,GAAsB,IAAbv3B,KAAK+gC,IAChF,EACAhP,EAAWrE,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAaqF,oBAAoBtG,UAAW,CAAEsT,eAAgB,GAAIC,iBAAkB,KACzHlP,CACX,CAnDiB,CAmDfpD,EAAaqF,qBACfhoB,EAAQ+lB,WAAaA,EACrB,IAAIF,EAAW,SAAUpf,GAErB,SAASof,IACL,OAAkB,OAAXpf,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAgBA,OAnBA8R,EAAU+f,EAASpf,GAInB9H,OAAOoB,eAAe8lB,EAAQzkB,UAAW,OAAQ,CAC7CvP,IAAK,WACD,MAAO,MACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe8lB,EAAQzkB,UAAW,QAAS,CAC9CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBglB,EAAQnE,SAAW1N,EAAS,CAAC,EAAG+R,EAAWrE,UACpCmE,CACX,CArBc,CAqBZE,GACF/lB,EAAQ6lB,QAAUA,EAClB,IAAIC,EAAW,SAAUrf,GAErB,SAASqf,IACL,OAAkB,OAAXrf,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CA8BA,OAjCA8R,EAAUggB,EAASrf,GAInB9H,OAAOoB,eAAe+lB,EAAQ1kB,UAAW,OAAQ,CAC7CvP,IAAK,WACD,MAAO,MACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe+lB,EAAQ1kB,UAAW,QAAS,CAC9CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe+lB,EAAQ1kB,UAAW,MAAO,CAC5CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe+lB,EAAQ1kB,UAAW,MAAO,CAC5CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBilB,EAAQpE,SAAW1N,EAAS,CAAC,EAAG+R,EAAWrE,UACpCoE,CACX,CAnCc,CAmCZC,GACF/lB,EAAQ8lB,QAAUA,C,qCC7IlB,IACQjgB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACI/I,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQsmB,eAAY,EACpB,IAAI3D,EAAe,EAAQ,OACvB4O,EAAc,EAAQ,OACtBjL,EAAa,SAAU7f,GAEvB,SAAS6f,IACL,IAAI5f,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAKhE,OAJA0S,EAAM8R,WAAa,CACf0c,WAAW,GAEfxuB,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CA8HA,OAtIAZ,EAAUwgB,EAAW7f,GASrB9H,OAAOoB,eAAeumB,EAAUllB,UAAW,OAAQ,CAC/CvP,IAAK,WACD,MAAO,QACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeumB,EAAUllB,UAAW,qBAAsB,CAC7DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBylB,EAAUllB,UAAUiqB,uBAAyB,SAAUngB,EAAYmL,EAASiV,EAAOC,GAC/E,IAAIxjB,EAAK1C,EACT,IACI,IAAK,IAAI8vB,EAAqB5uB,EAASoc,EAAayF,kBAAmBgN,EAAuBD,EAAmBlzB,QAASmzB,EAAqBhzB,KAAMgzB,EAAuBD,EAAmBlzB,OAAQ,CACnM,IAAIyN,EAAS0lB,EAAqBn1B,MAC9BiL,EAAWwE,IACX1b,KAAKkX,WAAW6W,aAAarS,EAAQxE,EAAWwE,GAAQ,SAEhB7e,IAAxCmD,KAAKkX,WAAW2W,YAAYnS,WACpB1b,KAAKkX,WAAWqX,mBAAoB7S,EAEpD,CACJ,CACA,MAAOnH,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQ6sB,IAAyBA,EAAqBhzB,OAASiD,EAAK8vB,EAAmB3sB,SAASnD,EAAG/D,KAAK6zB,EACxG,CACA,QAAU,GAAIptB,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACAsH,EAAOrF,UAAUiqB,uBAAuB/pB,KAAKtN,KAAMkX,EAAYmL,EAASiV,EAAOC,EACnF,EACAjF,EAAUllB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAO6C,GACpF,IAAI9hB,EAAKhH,EAAIwK,EAAKvD,EAClB,IACI,IAAK,IAAIE,EAAKjG,EAASvS,KAAKgW,YAAawJ,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,EAC3E6G,EAAQ0K,EAAGvT,OACJusB,OAAO,QACdx4B,KAAKuV,aAAavV,KAAKq1B,QAAQhpB,OAAO,OAAQyI,GACzCC,YAAYD,EAEzB,CACJ,CACA,MAAO+D,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQ2G,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIH,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACAmsB,EAAQt3B,KAAKq2B,YAAY,gBAAkBiB,EAC3CjV,KAAariB,KAAKkX,WAAW2W,YAAY,kBAAmB7tB,KAAKkX,WAAW+W,WAAW,iBACvF/W,EAAalX,KAAK23B,uBAAuBzgB,EAAY,CACjDmqB,YAAarhC,KAAKkX,WAAWrZ,IAAI,eACjCyjC,SAAU,WAEd,IAAIR,EAAU9gC,KAAKkX,WAAW2W,YAAY,gBACtC0T,GAAS,EAAIhE,EAAYlhC,OAAO2D,KAAKkX,WAAWrZ,IAAI,aACxD,IACI,IAAK,IAAI6hB,EAAKnN,EAASvS,KAAKgW,YAAa2J,EAAKD,EAAGzR,QAAS0R,EAAGvR,KAAMuR,EAAKD,EAAGzR,OAAQ,CAC/E,IAAI6G,EAAQ6K,EAAG1T,MACfiL,EAAWoqB,SAAS,GAAKC,EAAO1oC,SAAWqe,EAAWoqB,SAAS,GAC/DxsB,EAAMuiB,uBAAuBngB,EAAYmL,EAASiV,IAASwJ,EAC/D,CACJ,CACA,MAAOxkB,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQqD,IAAOA,EAAGvR,OAASkK,EAAKoH,EAAGlL,SAAS8D,EAAGhL,KAAKoS,EACpD,CACA,QAAU,GAAI7D,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CACJ,EACAmnB,EAAUllB,UAAUgrB,eAAiB,SAAU//B,GAG3C,IAFA,IAAImL,EAAM,KACN6xB,EAAUr1B,KAAKq1B,QACV35B,EAAI,EAAGA,EAAIsE,KAAKgW,WAAWha,OAAQN,IAAK,CAC7C,IAAIoZ,EAAQ9U,KAAKgW,WAAWta,GAC5B,GAAIoZ,EAAM0jB,OAAO,OACbh1B,EAAM,SAEL,CACD,IAAIg+B,EAAQ1sB,EAAM0jB,OAAO,OASzB,GARIh1B,GACAxD,KAAKoV,YAAYN,GACjBpZ,KAGA8H,EAAMxD,KAAKuV,aAAa8f,EAAQhpB,OAAO,OAAQyI,GAEnDtR,EAAIuR,YAAYysB,EAAQ1sB,EAAQugB,EAAQhpB,OAAO,MAAO,CAAC,EAAG,CAACyI,MACtDzc,EAAoB,WAAG,CACxByc,EAAMH,OAAOS,YAAYN,GACzBA,EAAMH,OAAS3U,KACfwhC,GAASh+B,EAAIuR,YAAYsgB,EAAQhpB,OAAO,QACxC,IAAIjK,EAAS0S,EAAMqjB,OAAO,eAAiBn4B,KAAK+S,KAAO,6BAA8B1a,EAASmpC,GAC9Fh+B,EAAIwS,WAAWxS,EAAIwS,WAAWha,OAAS,GAAG+Y,YAAY3S,EAC1D,CACJ,CACJ,CACAqQ,EAAOrF,UAAUgrB,eAAe9qB,KAAKtN,KAAM3H,EAC/C,EACAi6B,EAAUllB,UAAUupB,YAAc,SAAUC,GACxC,IAAIpa,EAAKnL,EACTrR,KAAK62B,aAAaD,GAClB,IACI,IAAK,IAAIte,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACnEuK,EAAGvM,MACT0qB,YAAY,KACtB,CACJ,CACA,MAAO9Z,GAASL,EAAM,CAAErR,MAAO0R,EAAS,CACxC,QACI,IACQrE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIkE,EAAK,MAAMA,EAAIrR,KAAO,CACxC,CACA,OAAOnL,IACX,EACAsyB,EAAU5E,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UAAW,CAAEqL,MAAO,OAAQuI,SAAU,WAAYD,YAAa,SAAUrI,WAAY,SAAUyI,gBAAgB,EAAMC,YAAa,OAAQpoB,MAAO,OAAQqoB,WAAY,MAAOC,cAAe,OAAQC,SAAU,OAAQC,YAAa,OAAQC,MAAO,OAAQC,aAAc,cAAeC,WAAW,EAAOC,cAAc,EAAOhH,cAAc,EAAOiH,KAAM,QAASC,gBAAiB,UACnb9P,CACX,CAxIgB,CAwId3D,EAAawF,iBACfnoB,EAAQsmB,UAAYA,C,qCClLpB,IACQzgB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQymB,YAAS,EACjB,IAAI9D,EAAe,EAAQ,OACvB4F,EAAkB,EAAQ,OAC1B9B,EAAU,SAAUhgB,GAEpB,SAASggB,IACL,OAAkB,OAAXhgB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAmCA,OAtCA8R,EAAU2gB,EAAQhgB,GAIlB9H,OAAOoB,eAAe0mB,EAAOrlB,UAAW,OAAQ,CAC5CvP,IAAK,WACD,MAAO,KACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe0mB,EAAOrlB,UAAW,QAAS,CAC7CvP,IAAK,WACD,OAAQ,CACZ,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe0mB,EAAOrlB,UAAW,qBAAsB,CAC1DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElB4lB,EAAOrlB,UAAUgrB,eAAiB,SAAU//B,IACpC2H,KAAK2U,QAAW3U,KAAK2U,OAAO6jB,OAAO,OAIvC/lB,EAAOrF,UAAUgrB,eAAe9qB,KAAKtN,KAAM3H,GAHvC2H,KAAKm4B,OAAOn4B,KAAK+S,KAAO,+CAAgD1a,GAAS,EAIzF,EACAo6B,EAAOrlB,UAAUupB,YAAc,SAAUC,GAGrC,OAFA52B,KAAK62B,aAAaD,GAClB52B,KAAKgW,WAAW,GAAG2gB,YAAY,MACxB32B,IACX,EACAyyB,EAAO/E,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAaqF,oBAAoBtG,UAAW,CAAE2U,QAAS,EAAGC,WAAY,EAAGhB,SAAU/M,EAAgB9G,QAAS4T,YAAa9M,EAAgB9G,QAASuL,WAAYzE,EAAgB9G,UAC/MgF,CACX,CAxCa,CAwCX9D,EAAaqF,qBACfhoB,EAAQymB,OAASA,C,qCCvEjB,IACQ5gB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ8kB,cAAW,EACnB,IAAInC,EAAe,EAAQ,OACvBmC,EAAY,SAAUre,GAEtB,SAASqe,IACL,IAAIpe,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAEhE,OADA0S,EAAM8iB,SAAW7G,EAAa2F,SAASG,IAChC/hB,CACX,CAgBA,OArBAZ,EAAUgf,EAAUre,GAMpB9H,OAAOoB,eAAe+kB,EAAS1jB,UAAW,OAAQ,CAC9CvP,IAAK,WACD,MAAO,OACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe+kB,EAAS1jB,UAAW,cAAe,CACrDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBikB,EAASpD,SAAW1N,EAAS,CAAC,EAAG2O,EAAauF,qBAAqBxG,UAC5DoD,CACX,CAvBe,CAuBbnC,EAAauF,sBACfloB,EAAQ8kB,SAAWA,C,qCCrDnB,IACQjf,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACI/I,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQumB,cAAgBvmB,EAAQwmB,YAAS,EACzC,IAAI7D,EAAe,EAAQ,OACvB4F,EAAkB,EAAQ,OAC1BgJ,EAAc,EAAQ,OACtB/K,EAAU,SAAU/f,GAEpB,SAAS+f,IACL,OAAkB,OAAX/f,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAsGA,OAzGA8R,EAAU0gB,EAAQ/f,GAIlB9H,OAAOoB,eAAeymB,EAAOplB,UAAW,OAAQ,CAC5CvP,IAAK,WACD,MAAO,KACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeymB,EAAOplB,UAAW,qBAAsB,CAC1DvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElB2lB,EAAOplB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GACjF,IAAIxjB,EAAK1C,EAAIgH,EAAKC,EAClB,IACI,IAAK,IAAIE,EAAKjG,EAASvS,KAAKgW,YAAawJ,EAAKhH,EAAGvK,QAASuR,EAAGpR,KAAMoR,EAAKhH,EAAGvK,OAAQ,EAC3E6G,EAAQ0K,EAAGvT,OACJusB,OAAO,QACdx4B,KAAKuV,aAAavV,KAAKq1B,QAAQhpB,OAAO,OAAQyI,GACzCC,YAAYD,EAEzB,CACJ,CACA,MAAOP,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQiL,IAAOA,EAAGpR,OAASiD,EAAKmH,EAAGhE,SAASnD,EAAG/D,KAAKkL,EACpD,CACA,QAAU,GAAIzE,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,IAAIo3B,GAAS,EAAIhF,EAAYlhC,OAAO2D,KAAKkX,WAAWrZ,IAAI,gBACrC,IAAfmC,KAAKy1B,OACL8M,EAAOC,QAAQxiC,KAAK2U,OAAOuC,WAAWrZ,IAAI,SAE9CqZ,EAAalX,KAAK23B,uBAAuBzgB,EAAY,CACjDoqB,SAAUthC,KAAKkX,WAAWrZ,IAAI,YAC9BwjC,YAAa,WAEjB,IACI,IAAK,IAAI3hB,EAAKnN,EAASvS,KAAKgW,YAAa2J,EAAKD,EAAGzR,QAAS0R,EAAGvR,KAAMuR,EAAKD,EAAGzR,OAAQ,CAC/E,IAAI6G,EAAQ6K,EAAG1T,MACfiL,EAAWmqB,YAAY,GAAKkB,EAAO1pC,SAAWqe,EAAWmqB,YAAY,GACrEvsB,EAAMuiB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,EAC7D,CACJ,CACA,MAAO1e,GAASR,EAAM,CAAElN,MAAO0N,EAAS,CACxC,QACI,IACQ8G,IAAOA,EAAGvR,OAASkK,EAAKoH,EAAGlL,SAAS8D,EAAGhL,KAAKoS,EACpD,CACA,QAAU,GAAIrH,EAAK,MAAMA,EAAIlN,KAAO,CACxC,CACJ,EACAqnB,EAAOplB,UAAUgrB,eAAiB,SAAU//B,GACxC,IAAIwjB,EAAKxK,EACT,IAAIrR,KAAK2U,QAAW3U,KAAK2U,OAAO6jB,OAAO,UAAvC,CAIA,IACI,IAAK,IAAIlgB,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CAC/E,IAAI6G,EAAQ0D,EAAGvM,MACf,IAAK6I,EAAM0jB,OAAO,OACJx4B,KAAKuV,aAAavV,KAAKq1B,QAAQhpB,OAAO,OAAQyI,GACpDC,YAAYD,GACXzc,EAAoB,YACrByc,EAAMqjB,OAAO,eAAiBn4B,KAAK+S,KAAO,eAAgB1a,EAGtE,CACJ,CACA,MAAOikB,GAAST,EAAM,CAAE1Q,MAAOmR,EAAS,CACxC,QACI,IACQ9D,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIuD,EAAK,MAAMA,EAAI1Q,KAAO,CACxC,CACAsH,EAAOrF,UAAUgrB,eAAe9qB,KAAKtN,KAAM3H,EApB3C,MAFI2H,KAAKm4B,OAAOn4B,KAAK+S,KAAO,oCAAqC1a,GAAS,EAuB9E,EACAm6B,EAAOplB,UAAUupB,YAAc,SAAUC,GACrC,IAAIpa,EAAKnL,EACTrR,KAAK62B,aAAaD,GAClB,IACI,IAAK,IAAIte,EAAK/F,EAASvS,KAAKgW,YAAawC,EAAKF,EAAGrK,QAASuK,EAAGpK,KAAMoK,EAAKF,EAAGrK,OAAQ,CACnEuK,EAAGvM,MACT0qB,YAAY,KACtB,CACJ,CACA,MAAO9Z,GAASL,EAAM,CAAErR,MAAO0R,EAAS,CACxC,QACI,IACQrE,IAAOA,EAAGpK,OAASiD,EAAKiH,EAAG9D,SAASnD,EAAG/D,KAAKgL,EACpD,CACA,QAAU,GAAIkE,EAAK,MAAMA,EAAIrR,KAAO,CACxC,CACA,OAAOnL,IACX,EACAwyB,EAAO9E,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UAAW,CAAE4T,SAAU/M,EAAgB9G,QAAS4T,YAAa9M,EAAgB9G,QAASuL,WAAYzE,EAAgB9G,UAChL+E,CACX,CA3Ga,CA2GX7D,EAAawF,iBACfnoB,EAAQwmB,OAASA,EACjB,IAAID,EAAiB,SAAU9f,GAE3B,SAAS8f,IACL,OAAkB,OAAX9f,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAeA,OAlBA8R,EAAUygB,EAAe9f,GAIzB9H,OAAOoB,eAAewmB,EAAcnlB,UAAW,OAAQ,CACnDvP,IAAK,WACD,MAAO,YACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAewmB,EAAcnlB,UAAW,QAAS,CACpDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAEX0lB,CACX,CApBoB,CAoBlBC,GACFxmB,EAAQumB,cAAgBA,C,qCC5KxB,IACQ1gB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQimB,SAAWjmB,EAAQgmB,UAAYhmB,EAAQkmB,mBAAgB,EAC/D,IAAIvD,EAAe,EAAQ,OACvBuD,EAAiB,SAAUzf,GAE3B,SAASyf,IACL,OAAkB,OAAXzf,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CA0EA,OA7EA8R,EAAUogB,EAAezf,GAIzB9H,OAAOoB,eAAemmB,EAAc9kB,UAAW,OAAQ,CACnDvP,IAAK,WACD,MAAO,YACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAemmB,EAAc9kB,UAAW,QAAS,CACpDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAemmB,EAAc9kB,UAAW,OAAQ,CACnDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAemmB,EAAc9kB,UAAW,QAAS,CACpDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAemmB,EAAc9kB,UAAW,OAAQ,CACnDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAemmB,EAAc9kB,UAAW,qBAAsB,CACjEvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBqlB,EAAc9kB,UAAUsqB,4BAA8B,SAAUxgB,EAAYmL,EAASiV,EAAOC,GACxF,IAAI7jB,EAAQ1T,KAAKgW,WACjBtC,EAAM,GAAG2jB,uBAAuBngB,EAAYmL,EAASiV,EAAOC,KAAW7jB,EAAM1T,KAAKs+B,OAClF,IAAI9a,IAAYnB,IAAW3O,EAAM,GAAG8iB,SAAStf,WAAWrZ,IAAI,kBACxD4kC,EAAUziC,KAAKsS,YAAYmwB,QAC/B/uB,EAAM,GAAG2jB,uBAAuBngB,GAAY,EAAOlX,KAAK0iC,eAAeD,EAAQ,GAAIjf,EAAO8T,GAAQC,GAAwB,IAAfv3B,KAAKu+B,OAChHv+B,KAAK2iC,mBAAmB,EAAGF,EAAQ,GAAIpgB,EAASiV,EAAOC,EAAO/T,GACzD9P,EAAM,KAGXA,EAAM,GAAG2jB,uBAAuBngB,GAAY,EAAOlX,KAAK0iC,eAAeD,EAAQ,GAAIjf,EAAO8T,GAAQC,GAAwB,IAAfv3B,KAAKu+B,OAChHv+B,KAAK2iC,mBAAmB,EAAGF,EAAQ,GAAIpgB,EAASiV,EAAOC,EAAO/T,GAClE,EACA0O,EAAc9kB,UAAUs1B,eAAiB,SAAUrE,EAAQ7a,EAAO8T,GAI9D,OAHI9T,GAAUxjB,KAAKkX,WAAWrZ,IAAIwgC,IAC9B/G,IAEGA,CACX,EACApF,EAAc9kB,UAAUu1B,mBAAqB,SAAUjmC,EAAG2hC,EAAQhc,EAASiV,EAAOC,EAAO/T,GACrF,IAAI/P,EAAOzT,KAAKgW,WAAWtZ,GAC3B,GAA2C,MAAvCsD,KAAKkX,WAAW2W,YAAYwQ,IAAmB5qB,EAAK2jB,cAAe,CACnE,IAAInrB,EAAQwH,EAAK+iB,SAAStf,WAAWrZ,IAAI,UACzCmC,KAAKkX,WAAW6W,aAAasQ,EAAQpyB,GACjCA,IAAUjM,KAAKkX,WAAW+W,WAAWoQ,IACrC5qB,EAAK4jB,uBAAuB,CAAC,EAAGhV,EAASriB,KAAK0iC,eAAerE,EAAQ7a,EAAO8T,GAAQC,EAE5F,CACJ,EACArF,EAAcxE,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAaqF,oBAAoBtG,UAAW,CAAE2Q,QAAQ,EAAOuE,aAAa,EAAO7J,MAAO,WACvI7G,EAAcuQ,QAAU,CAAC,GAAI,cAAe,UACrCvQ,CACX,CA/EoB,CA+ElBvD,EAAaqF,qBACfhoB,EAAQkmB,cAAgBA,EACxB,IAAIF,EAAa,SAAUvf,GAEvB,SAASuf,IACL,OAAkB,OAAXvf,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAgBA,OAnBA8R,EAAUkgB,EAAWvf,GAIrB9H,OAAOoB,eAAeimB,EAAU5kB,UAAW,OAAQ,CAC/CvP,IAAK,WACD,MAAO,QACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAeimB,EAAU5kB,UAAW,QAAS,CAChDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBmlB,EAAUtE,SAAW1N,EAAS,CAAC,EAAGkS,EAAcxE,UACzCsE,CACX,CArBgB,CAqBdE,GACFlmB,EAAQgmB,UAAYA,EACpB,IAAIC,EAAY,SAAUxf,GAEtB,SAASwf,IACL,OAAkB,OAAXxf,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CA+BA,OAlCA8R,EAAUmgB,EAAUxf,GAIpB9H,OAAOoB,eAAekmB,EAAS7kB,UAAW,OAAQ,CAC9CvP,IAAK,WACD,MAAO,OACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAekmB,EAAS7kB,UAAW,QAAS,CAC/CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAekmB,EAAS7kB,UAAW,OAAQ,CAC9CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAekmB,EAAS7kB,UAAW,QAAS,CAC/CvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBolB,EAASvE,SAAW1N,EAAS,CAAC,EAAGkS,EAAcxE,UAC/CuE,EAASwQ,QAAU,CAAC,GAAI,SAAU,eAC3BxQ,CACX,CApCe,CAoCbC,GACFlmB,EAAQimB,SAAWA,C,qCC1KnB,IACQpgB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEA2N,EAAYhgB,MAAQA,KAAKggB,UAAa,WAStC,OARAA,EAAWrV,OAAOsV,QAAU,SAASvR,GACjC,IAAK,IAAI8D,EAAG9W,EAAI,EAAGgB,EAAI4e,UAAUtf,OAAQN,EAAIgB,EAAGhB,IAE5C,IAAK,IAAIyW,KADTK,EAAI8I,UAAU5f,GACOiP,OAAOyC,UAAUC,eAAeC,KAAKkF,EAAGL,KACzDzD,EAAEyD,GAAKK,EAAEL,IAEjB,OAAOzD,CACX,EACOsR,EAAS3R,MAAMrO,KAAMsb,UAChC,EACA3Q,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ8mB,cAAgB9mB,EAAQ+mB,iBAAmB/mB,EAAQ6mB,kBAAe,EAC1E,IAAIlE,EAAe,EAAQ,OACvBkE,EAAgB,SAAUpgB,GAE1B,SAASogB,IACL,OAAkB,OAAXpgB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAuBA,OA1BA8R,EAAU+gB,EAAcpgB,GAIxB9H,OAAOoB,eAAe8mB,EAAazlB,UAAW,OAAQ,CAClDvP,IAAK,WACD,MAAO,WACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe8mB,EAAazlB,UAAW,QAAS,CACnDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBlC,OAAOoB,eAAe8mB,EAAazlB,UAAW,YAAa,CACvDvP,IAAK,WACD,OAAO,CACX,EACAiP,YAAY,EACZD,cAAc,IAElBgmB,EAAanF,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAaqF,oBAAoBtG,UAAW,CAAEmV,cAAe,KAAMC,SAAU,OACpHjQ,CACX,CA5BmB,CA4BjBlE,EAAaqF,qBACfhoB,EAAQ6mB,aAAeA,EACvB,IAAIE,EAAoB,SAAUtgB,GAE9B,SAASsgB,IACL,OAAkB,OAAXtgB,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,IAC/D,CAUA,OAbA8R,EAAUihB,EAAkBtgB,GAI5B9H,OAAOoB,eAAegnB,EAAiB3lB,UAAW,OAAQ,CACtDvP,IAAK,WACD,MAAO,gBACX,EACAiP,YAAY,EACZD,cAAc,IAElBkmB,EAAiB3lB,UAAUsqB,4BAA8B,WAAc,EACvE3E,EAAiBrF,SAAW1N,EAASA,EAAS,CAAC,EAAG2O,EAAawF,gBAAgBzG,UAAW,CAAEmV,cAAe,KAAMC,SAAU,KAAMC,GAAI,aAAc98B,KAAM,GAAIqU,IAAK,OAC3JyY,CACX,CAfuB,CAerBpE,EAAawF,iBACfnoB,EAAQ+mB,iBAAmBA,EAC3B,IAAID,EAAiB,SAAUrgB,GAE3B,SAASqgB,IACL,IAAIpgB,EAAmB,OAAXD,GAAmBA,EAAOpE,MAAMrO,KAAMsb,YAActb,KAIhE,OAHA0S,EAAM8R,WAAa,CACfwe,SAAS,GAENtwB,CACX,CASA,OAhBAZ,EAAUghB,EAAergB,GAQzB9H,OAAOoB,eAAe+mB,EAAc1lB,UAAW,OAAQ,CACnDvP,IAAK,WACD,MAAO,YACX,EACAiP,YAAY,EACZD,cAAc,IAElBimB,EAAcpF,SAAW1N,EAAS,CAAC,EAAG+S,EAAiBrF,UAChDoF,CACX,CAlBoB,CAkBlBC,GACF/mB,EAAQ8mB,cAAgBA,C,qCC/FxB,IACQjhB,EADJC,EAAa9R,MAAQA,KAAK8R,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgBlH,OAAOsH,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOrH,OAAOyC,UAAUC,eAAeC,KAAK0E,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FN,EAAcE,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7C,UAAU,uBAAyBiD,OAAOJ,GAAK,iCAE7D,SAASK,IAAOrS,KAAKsS,YAAcP,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAE3E,UAAkB,OAAN4E,EAAarH,OAAO0B,OAAO2F,IAAMK,EAAGjF,UAAY4E,EAAE5E,UAAW,IAAIiF,EACnF,GAEJ1H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQrI,gBAAa,EACrB,IAAIgjB,EAAkB,EAAQ,OAE1BhjB,EAAc,SAAU8O,GAExB,SAAS9O,EAAW0xB,GAKhB,YAJgB,IAAZA,IAAsBA,EAAU,MAC/BA,IACDA,EAAU,IAAI1O,EAAgBhlB,YAE3B8Q,EAAOnF,KAAKtN,KAAMq1B,IAAYr1B,IACzC,CAaA,OApBA8R,EAAUnO,EAAY8O,GAQtB9O,EAAWyJ,UAAU+lB,cAAgB,SAAUnN,GAE3C,IADA,IAAIF,EAAQ,GACHzK,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpCyK,EAAMzK,EAAK,GAAKC,UAAUD,EAElC,EACA1X,EAAWyJ,UAAUimB,aAAe,SAAUrN,GAE1C,IADA,IAAIF,EAAQ,GACHzK,EAAK,EAAGA,EAAKC,UAAUtf,OAAQqf,IACpCyK,EAAMzK,EAAK,GAAKC,UAAUD,EAElC,EACO1X,CACX,CAtBiB,CADE,EAAQ,OAuBZs/B,iBACfj3B,EAAQrI,WAAaA,C,mCC1CrB,IAAI4O,EAAYvS,MAAQA,KAAKuS,UAAa,SAASjG,GAC/C,IAAIkG,EAAsB,mBAAXxL,QAAyBA,OAAOiI,SAAU7S,EAAIoW,GAAKlG,EAAEkG,GAAI9W,EAAI,EAC5E,GAAIU,EAAG,OAAOA,EAAEkR,KAAKhB,GACrB,GAAIA,GAAyB,iBAAbA,EAAEtQ,OAAqB,MAAO,CAC1CiS,KAAM,WAEF,OADI3B,GAAK5Q,GAAK4Q,EAAEtQ,SAAQsQ,OAAI,GACrB,CAAEL,MAAOK,GAAKA,EAAE5Q,KAAM0S,MAAO9B,EACxC,GAEJ,MAAM,IAAI6C,UAAUqD,EAAI,0BAA4B,kCACxD,EACA7H,OAAOoB,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgyB,QAAUhyB,EAAQgzB,WAAahzB,EAAQ8yB,SAAW9yB,EAAQk3B,OAASl3B,EAAQm3B,GAAKn3B,EAAQo3B,WAAQ,EACxG,IAAIzU,EAAe,EAAQ,OAC3B,SAASyU,EAAMvK,EAAQ4E,EAAQ1H,EAAUvR,GAGrC,YAFiB,IAAbuR,IAAuBA,EAAWpH,EAAa2F,SAASK,UACzC,IAAfnQ,IAAyBA,EAAa,MACnC,CAACqU,EAAQ4E,EAAQ1H,EAAUvR,EACtC,CACAxY,EAAQo3B,MAAQA,EAChBp3B,EAAQm3B,GAAK,CACT1O,IAAK2O,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,KACvC4O,MAAOD,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,KACzC6O,MAAOF,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,KACzC8O,MAAOH,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,KACzC+O,MAAOJ,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,KACzCS,KAAMkO,EAAM,EAAG,EAAGzU,EAAa2F,SAASY,MACxCR,GAAI0O,EAAM,EAAG,EAAGzU,EAAa2F,SAASI,GAAI,CAAEjrB,SAAS,EAAM62B,eAAe,EAAMH,WAAW,IAC3FsD,QAASL,EAAM,EAAG,EAAGzU,EAAa2F,SAASI,GAAI,CAAEjrB,SAAS,EAAM62B,eAAe,IAC/EoD,SAAUN,EAAM,EAAG,EAAGzU,EAAa2F,SAASI,GAAI,CAAEjrB,SAAS,EAAM02B,WAAW,IAC5EwD,UAAWP,EAAM,EAAG,EAAGzU,EAAa2F,SAASI,GAAI,CAAEjrB,SAAS,EAAM02B,WAAW,IAC7EyD,KAAMR,EAAM,EAAG,EAAGzU,EAAa2F,SAASK,KACxCkP,KAAMT,EAAM,EAAG,EAAGzU,EAAa2F,SAASK,KACxCmP,MAAOV,EAAM,EAAG,EAAGzU,EAAa2F,SAASK,KACzCoP,KAAMX,EAAM,EAAG,EAAGzU,EAAa2F,SAASK,KACxCqP,QAASZ,EAAM,EAAG,EAAGzU,EAAa2F,SAASK,IAAK,CAAEuL,UAAU,IAC5D+D,MAAOb,EAAM,EAAG,EAAGzU,EAAa2F,SAASK,IAAK,CAAElrB,SAAS,EAAM62B,eAAe,IAC9E1L,IAAKwO,EAAM,EAAG,EAAGzU,EAAa2F,SAASM,KACvCsP,KAAMd,EAAM,EAAG,EAAGzU,EAAa2F,SAASM,IAAK,CAAEsL,UAAU,IACzDiE,KAAMf,EAAM,EAAG,EAAGzU,EAAa2F,SAASM,KACxCwP,WAAYhB,EAAM,EAAG,EAAGzU,EAAa2F,SAASM,IAAK,CAAEsL,UAAU,IAC/DmE,UAAWjB,EAAM,EAAG,EAAGzU,EAAa2F,SAASM,IAAK,CAAEyJ,QAAQ,IAC5DiG,QAASlB,EAAM,EAAG,EAAGzU,EAAa2F,SAASM,IAAK,CAAEyJ,QAAQ,EAAM6B,UAAU,IAC1ErL,KAAMuO,EAAM,EAAG,EAAGzU,EAAa2F,SAASO,KAAM,CAAE0H,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IACxFrL,MAAOsO,EAAM,EAAG,EAAGzU,EAAa2F,SAASQ,MAAO,CAAEyH,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IAC1FnL,MAAOoO,EAAM,EAAG,EAAGzU,EAAa2F,SAASU,OACzCD,MAAOqO,EAAM,EAAG,EAAGzU,EAAa2F,SAASS,OACzCwP,OAAQnB,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,IAAK,CAAE4J,QAAQ,IACzDmG,WAAYpB,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,IAAK,CAAE4J,QAAQ,EAAM6B,UAAU,KAEjFl0B,EAAQk3B,OAAS,CACb,CAAC,GAAQ,IAAQvU,EAAa2F,SAASM,IAAK,MAC5C,CAAC,IAAQ,IAAQjG,EAAa2F,SAASG,IAAK,MAC5C,CAAC,IAAQ,IAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,IAAQ,IAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,IAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASM,IAAK,MAC5C,CAAC,KAAQ,KAAQjG,EAAa2F,SAASK,IAAK,MAC5C,CAAC,KAAQ,KAAQhG,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,KAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,KAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASM,IAAK,MAC5C,CAAC,MAAQ,MAAQjG,EAAa2F,SAASG,IAAK,SAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASM,IAAK,MAC5C,CAAC,MAAQ,MAAQjG,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASK,IAAK,MAC5C,CAAC,MAAQ,MAAQhG,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASM,IAAK,MAC5C,CAAC,MAAQ,MAAQjG,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,KAAM,UAClD,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,KAAM,UAClD,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,KAAM,UAClD,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAQ9F,EAAa2F,SAASG,IAAK,MAC5C,CAAC,MAAQ,MAAS9F,EAAa2F,SAASG,IAAK,MAC7C,CAAC,MAAS,MAAS9F,EAAa2F,SAASG,IAAK,MAC9C,CAAC,MAAS,MAAS9F,EAAa2F,SAASG,IAAK,KAAM,UACpD,CAAC,MAAS,MAAS9F,EAAa2F,SAASG,IAAK,MAC9C,CAAC,MAAS,OAAS9F,EAAa2F,SAASG,IAAK,KAAM,UACpD,CAAC,OAAS,OAAS9F,EAAa2F,SAASG,IAAK,MAC9C,CAAC,OAAS,OAAS9F,EAAa2F,SAASG,IAAK,MAC9C,CAAC,OAAS,OAAS9F,EAAa2F,SAASG,IAAK,MAC9C,CAAC,OAAS,OAAS9F,EAAa2F,SAASG,IAAK,MAC9C,CAAC,OAAS,OAAS9F,EAAa2F,SAASG,IAAK,MAC9C,CAAC,OAAS,OAAS9F,EAAa2F,SAASM,IAAK,MAC9C,CAAC,OAAS,OAASjG,EAAa2F,SAASG,IAAK,MAC9C,CAAC,OAAS,OAAS9F,EAAa2F,SAASG,IAAK,KAAM,YAyBxDzoB,EAAQ8yB,SAvBR,SAAkB3iC,GACd,IAAI4X,EAAK1C,EACL3U,EAAIP,EAAKsoC,YAAY,GACzB,IACI,IAAK,IAAIC,EAAWnyB,EAASvG,EAAQk3B,QAASyB,EAAaD,EAASz2B,QAAS02B,EAAWv2B,KAAMu2B,EAAaD,EAASz2B,OAAQ,CACxH,IAAI4wB,EAAQ8F,EAAW14B,MACvB,GAAIvP,GAAKmiC,EAAM,GAAI,CACf,GAAIniC,GAAKmiC,EAAM,GACX,OAAOA,EAEX,KACJ,CACJ,CACJ,CACA,MAAOtqB,GAASR,EAAM,CAAE5I,MAAOoJ,EAAS,CACxC,QACI,IACQowB,IAAeA,EAAWv2B,OAASiD,EAAKqzB,EAASlwB,SAASnD,EAAG/D,KAAKo3B,EAC1E,CACA,QAAU,GAAI3wB,EAAK,MAAMA,EAAI5I,KAAO,CACxC,CACA,OAAO,IACX,EAEAa,EAAQgzB,WAAa,CACjB,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,IAERhzB,EAAQgyB,QAAU,CACd9iB,OAAQ,CACJ,IAAKlP,EAAQm3B,GAAGtO,KAChB,IAAK7oB,EAAQm3B,GAAGW,MAChB,IAAK93B,EAAQm3B,GAAGW,MAChB,IAAK93B,EAAQm3B,GAAGtO,KAChB,IAAK7oB,EAAQm3B,GAAGtO,KAChB,IAAK7oB,EAAQm3B,GAAGtO,KAChB,KAAM,CAAC,EAAG,EAAGlG,EAAa2F,SAASK,IAAK,CAAE4H,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IAClF,MAAO,CAAC,EAAG,EAAGxR,EAAa2F,SAASG,IAAK,CAAE8H,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IACnF,IAAUn0B,EAAQm3B,GAAGG,MACrB,IAAUt3B,EAAQm3B,GAAGW,MACrB,IAAU,CAAC,EAAG,EAAGnV,EAAa2F,SAASG,IAAK,CAAE8H,OAAO,EAAM2D,UAAU,IACrE,IAAU,CAAC,EAAG,EAAGvR,EAAa2F,SAASO,KAAM,CAAE0H,OAAO,IACtD,IAAU,CAAC,EAAG,EAAG5N,EAAa2F,SAASO,KAAM,CAAE0H,OAAO,IACtD,EAAUvwB,EAAQm3B,GAAGG,MACrB,EAAUF,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,KAC5C,IAAUzoB,EAAQm3B,GAAGG,MACrB,IAAUt3B,EAAQm3B,GAAGG,MACrB,IAAUt3B,EAAQm3B,GAAGG,MACrB,IAAUt3B,EAAQm3B,GAAGG,MACrB,IAAUt3B,EAAQm3B,GAAGG,MACrB,IAAUt3B,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGW,MACrB,IAAU93B,EAAQm3B,GAAGW,MACrB,IAAU,CAAC,EAAG,EAAGnV,EAAa2F,SAASG,IAAK,CAAEyL,UAAU,IACxD,IAAUl0B,EAAQm3B,GAAGE,MACrB,IAAUr3B,EAAQm3B,GAAGE,MACrB,IAAUr3B,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU,CAAC,EAAG,EAAGlG,EAAa2F,SAASG,IAAK,CAAE8H,OAAO,EAAM2D,UAAU,IACrE,IAAUl0B,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGtO,KACrB,IAAU7oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGO,SACrB,IAAU13B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGQ,UACrB,IAAU33B,EAAQm3B,GAAGzO,GACrB,IAAU1oB,EAAQm3B,GAAGzO,IAEzBkQ,QAAS,CACL,KAAMxB,EAAM,EAAG,GACf,IAAK,CAAC,EAAG,EAAGzU,EAAa2F,SAASQ,MAAO,MACzC,IAAK9oB,EAAQm3B,GAAGoB,OAChB,IAAKv4B,EAAQm3B,GAAG1O,IAChB,IAAKzoB,EAAQm3B,GAAGrO,MAChB,KAAMsO,EAAM,EAAG,GACf,KAAMA,EAAM,EAAG,GACf,KAAMA,EAAM,EAAG,GACf,MAAOp3B,EAAQm3B,GAAG1O,IAClB,IAAMzoB,EAAQm3B,GAAGoB,OACjB,IAAKv4B,EAAQm3B,GAAGrO,MAChB,IAAK9oB,EAAQm3B,GAAGqB,WAChB,EAAKx4B,EAAQm3B,GAAGqB,WAChB,IAAKx4B,EAAQm3B,GAAGoB,OAChB,IAAKv4B,EAAQm3B,GAAGrO,MAChB,IAAK9oB,EAAQm3B,GAAGrO,MAChB,IAAK9oB,EAAQm3B,GAAGqB,WAChB,KAAM,CAAC,EAAG,EAAG7V,EAAa2F,SAASK,IAAK,CAAE4H,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IAClF,MAAO,CAAC,EAAG,EAAGxR,EAAa2F,SAASG,IAAK,CAAE8H,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IACnF,IAAUn0B,EAAQm3B,GAAGoB,OACrB,EAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,EAAUv4B,EAAQm3B,GAAGoB,OACrB,EAAUv4B,EAAQm3B,GAAGqB,WACrB,EAAUx4B,EAAQm3B,GAAGqB,WACrB,EAAUx4B,EAAQm3B,GAAGqB,WACrB,EAAUx4B,EAAQm3B,GAAGoB,OACrB,EAAUv4B,EAAQm3B,GAAGoB,OACrB,EAAUv4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGvO,IACrB,IAAU,CAAC,EAAG,EAAGjG,EAAa2F,SAASG,IAAK,CAAE8H,OAAO,EAAM2D,UAAU,IACrE,IAAU,CAAC,EAAG,EAAGvR,EAAa2F,SAASQ,MAAO,CAAEyH,OAAO,IACvD,IAAUvwB,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAU,CAAC,EAAG,EAAG5V,EAAa2F,SAASQ,MAAO,CAAEyH,OAAO,IACvD,IAAUvwB,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGI,MACrB,IAAUv3B,EAAQm3B,GAAGI,MACrB,IAAUv3B,EAAQm3B,GAAGI,MACrB,IAAUv3B,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU,CAAC,EAAG,EAAGnG,EAAa2F,SAASG,IAAK,CAAE8H,OAAO,EAAM2D,UAAU,IACrE,IAAUl0B,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,MACrB,IAAU9oB,EAAQm3B,GAAGrO,OAEzB+P,MAAO,CACH,KAAM74B,EAAQm3B,GAAGU,KACjB,IAAK73B,EAAQm3B,GAAG1O,IAChB,EAAKzoB,EAAQm3B,GAAG1O,IAChB,IAAK,CAAC,EAAG,EAAG9F,EAAa2F,SAASG,IAAK,MACvC,KAAMzoB,EAAQm3B,GAAGU,KACjB,GAAI73B,EAAQm3B,GAAG1O,IACf,IAAKzoB,EAAQm3B,GAAGS,KAChB,KAAMR,EAAM,EAAG,GACf,KAAMp3B,EAAQm3B,GAAGU,KACjB,IAAK73B,EAAQm3B,GAAGU,KAChB,KAAM73B,EAAQm3B,GAAGU,KACjB,IAAK,CAAC,EAAG,EAAGlV,EAAa2F,SAASS,MAAO,CAAEyL,eAAgB,QAASP,WAAW,IAC/E,IAAKj0B,EAAQm3B,GAAGU,KAChB,KAAM73B,EAAQm3B,GAAGU,KACjB,KAAM73B,EAAQm3B,GAAGY,KACjB,IAAK,CAAC,EAAG,EAAGpV,EAAa2F,SAASS,MAAO,CAAEkL,WAAW,IACtD,IAAKj0B,EAAQm3B,GAAGE,MAChB,KAAMD,EAAM,EAAG,GACf,KAAMp3B,EAAQm3B,GAAGU,KACjB,IAAK,CAAC,EAAG,EAAGlV,EAAa2F,SAASM,IAAK,MACvC,KAAM5oB,EAAQm3B,GAAGU,KACjB,IAAK,CAAC,EAAG,EAAGlV,EAAa2F,SAASS,MAAO,CAAEyL,eAAgB,QAASP,WAAW,IAC/E,IAAKj0B,EAAQm3B,GAAGvO,IAChB,KAAM5oB,EAAQm3B,GAAGY,KACjB,KAAMX,EAAM,EAAG,GACf,IAAKp3B,EAAQm3B,GAAGvO,IAChB,KAAM5oB,EAAQm3B,GAAGU,KACjB,IAAK73B,EAAQm3B,GAAGvO,IAChB,KAAM5oB,EAAQm3B,GAAGY,KACjB,IAAK,CAAC,EAAG,EAAGpV,EAAa2F,SAASQ,MAAO,MACzC,IAAK9oB,EAAQm3B,GAAGE,MAChB,KAAMr3B,EAAQm3B,GAAG1O,IACjB,IAAKzoB,EAAQm3B,GAAGE,MAChB,EAAKr3B,EAAQm3B,GAAGE,MAChB,IAAK,CAAC,EAAG,EAAG1U,EAAa2F,SAASG,IAAK,CAAE8H,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IACjF,KAAM,CAAC,EAAG,EAAGxR,EAAa2F,SAASK,IAAK,CAAE4H,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IAClF,MAAO,CAAC,EAAG,EAAGxR,EAAa2F,SAASG,IAAK,CAAE8H,OAAO,EAAM2D,UAAU,EAAMC,WAAW,IACnF,IAAUn0B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,EAAU73B,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGoB,OACrB,IAAUv4B,EAAQm3B,GAAGqB,WACrB,IAAUx4B,EAAQm3B,GAAGgB,KACrB,IAAU,CAAC,EAAG,EAAGxV,EAAa2F,SAASG,IAAK,CAAEyL,UAAU,IACxD,IAAU,CAAC,EAAG,EAAGvR,EAAa2F,SAASG,IAAK,CAAEyL,UAAU,IACxD,IAAUl0B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGnO,MACrB,IAAUhpB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGa,QACrB,IAAUh4B,EAAQm3B,GAAGjO,KACrB,IAAUlpB,EAAQm3B,GAAGjO,KACrB,IAAU,CAAC,EAAG,EAAGvG,EAAa2F,SAASY,KAAM,CAAEsL,eAAgB,QAASP,WAAW,IACnF,IAAUj0B,EAAQm3B,GAAGjO,KACrB,IAAUlpB,EAAQm3B,GAAGoB,OACrB,EAAUv4B,EAAQm3B,GAAG1O,IACrB,EAAUzoB,EAAQm3B,GAAG1O,IACrB,EAAUzoB,EAAQm3B,GAAG1O,IACrB,EAAUzoB,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGiB,WACrB,IAAUp4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUt4B,EAAQm3B,GAAGmB,QACrB,IAAUlB,EAAM,EAAG,EAAGzU,EAAa2F,SAASG,KAC5C,IAAUzoB,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGa,QACrB,IAAUh4B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAG1O,IACrB,IAAUzoB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGS,KAC3B,IAAU53B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU7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,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GAAGkB,UACrB,IAAUr4B,EAAQm3B,GA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ACrB,IAAU53B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGS,KACrB,IAAU53B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGU,KACrB,IAAU73B,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,KAAgB5oB,EAAQm3B,GAAGvO,IAC3B,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGvO,IACrB,IAAU5oB,EAAQm3B,GAAGU,KACrB,IAAU73B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ACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEmJ,EAAG,eACb,KAAQ,CAAEA,EAAG,SAAUnJ,EAAG,KAC1B,KAAQ,CAAEmJ,EAAG,eACb,KAAQ,CAAEnJ,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEmJ,EAAG,eACb,KAAQ,CAAEnJ,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEmJ,EAAG,eACb,KAAQ,CAAEnJ,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEmJ,EAAG,eACb,KAAQ,CAAEA,EAAG,eACb,KAAQ,CAAEnJ,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEmJ,EAAG,eACb,KAAQ,CAAEA,EAAG,eACb,KAAQ,CAAEnJ,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEmJ,EAAG,eACb,KAAQ,CAAEA,EAAG,eACb,KAAQ,CAAEnJ,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG,KACb,KAAQ,CAAEA,EAAG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AS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,SAAUnJ,EAAG,KAC3B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,UACd,OAAS,CAAEA,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,SAAUnJ,EAAG,KAC3B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,KAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,SAAUnJ,EAAG,KAC3B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,SAAUnJ,EAAG,KAC3B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,MAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,QAASnJ,EAAG,OAC1B,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,MACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,OACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,KACtB,OAAS,CAAEmJ,EAAG,IAAKnJ,EAAG,M,+BClgC1B7D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KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,IAAK,KAAM,MACpB,KAAQ,CAAC,IAAK,KAAM,MACpB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,IAAK,IAAK,MACnB,KAAQ,CAAC,IAAK,IAAK,MACnB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,KAAM,MACrB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,IAAK,KAAM,MACpB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG,MAClB,KAAQ,CAAC,KAAM,EAAG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KD,GAGzBE,EAAS,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,EAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAG7CC,EAAiB,CACnB,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KAERC,EAAiB,CACnB,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KAERC,EAAazzK,OAAOC,KAAKszK,GACzBG,EAAc1zK,OAAO8T,OAAOy/J,GAClCG,EAAYpiL,KAAK,KACjB,MAAMqiL,EAAY3zK,OAAOC,KAAKuzK,GACxBI,EAAe5zK,OAAO8T,OAAO0/J,GAC7BK,EAAgB,CAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,EAAe,CAAC,IAAK,IAAK,IAAK,KAC/BC,EAAe,CACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,EAAa,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,EAAwB,CAC1B,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,EAAsB,CACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,EAAmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAiB,CACnB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAqB,CACvB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAyB,CAC3B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAuB,CACzB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAqB,CACvB,KACA,IACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEEC,EAAmB,CACrB,KACA,KACA,KACA,KACA,IACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEEC,EAAyB,CAC3B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAuB,CACzB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAsB,CACxB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEEC,EAAoB,CACtB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAA2B,CAC7B,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEEC,EAAyB,CAC3B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAA0B,CAC5B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAwB,CAC1B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAwB,CAC1B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAsB,CACxB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAA4B,CAC9B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAA0B,CAC5B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAA8B,CAChC,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAA4B,CAC9B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAkC,CACpC,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAgC,CAClC,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAwB,CAC1B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAsB,CACxB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAA0B,CAAC,IAAK,IAAK,IAAK,IAAK,KAC/CC,EAAe,CACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,EAAa,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,EAAmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAiB,CACnB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAqB,CACvB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAyB,CAC3B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAAuB,CACzB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,EAA4B,CAC9B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,GAA0B,CAC5B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,GAAkC,CACpC,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,GAAgC,CAClC,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEEC,GAAoB,CAAC,IAAK,IAAK,IAAK,KACpCC,GAAe,CACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,GAAmB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAClDC,GAAqB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MACpDC,GAA4B,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAC3DC,GAAgB,CAAC,IAAK,IAAK,IAAK,KAChCC,GAAajD,EAAalrK,OAAOmrK,EAAYC,EAAuBC,EAAqBC,EAAkBC,EAAgBC,EAAoBE,EAAwBC,EAAsBF,EAAkBG,EAAoBC,EAAkBC,EAAwBC,EAAsBC,EAAqBC,EAAmBC,EAA0BC,EAAwBC,EAAyBC,EAAuBC,EAAuBC,EAAqBC,EAA2BC,EAAyBC,EAA6BC,EAA2BC,EAAiCC,EAA+BC,EAAuBC,EAAqBC,EAAyBC,EAAcC,EAAYC,EAAkBC,EAAgBC,EAAoBC,EAAkBC,EAAwBC,EAAsBC,EAA2BC,GAAyBG,GAAmBC,GAAcH,GAAiCC,GAA+BG,GAAkBC,GAAoBC,GAA2BC,IACtjC11K,EAAQ6xK,iBAAmB,IAAIp9I,OAAOkhJ,GAAW7lL,KAAK,MACtD,MAAMo6H,GAAY,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEE0rD,GAAiBxvK,OAAOshC,cAAc,MAC5CwiF,GAAUj6H,KAAK2lL,IACf,MAAMC,GAAkB,CACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,GAAkB1vK,OAAOshC,cAAc,MAC7CmuI,GAAgB5lL,KAAK6lL,IACrB,MAyBM/vB,GAAuB3/I,OAAOshC,cAAc,MAm/B5CquI,GA7LY,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KA0KEC,GAtNoB,CACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KA4MmCxuK,OA1Mf,CACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAwBoB,CACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEkB,CAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEsB,CACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAkEEyuK,GA9DyB,CAC3B,MACA,MACA,MACA,MACA,MACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,WA4C2CzuK,OA1CnB,CACxB,OACA,OACA,OACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,WAEuB,CACvB,MACA,MACA,MACA,MACA,MACA,KACA,MAEwB,CACxB,MACA,KACA,KACA,MACA,OACA,MACA,MACA,MACA,KACA,KACA,OAiBE0uK,GAAuB,CACzB,CACI9kK,IAthFoB,CACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAo8EIsiD,KAAM,cACNm8D,KAAM,WAEV,CACIz+G,IAt8EO,CAAC,IAAK,IAAK,IAAK,KAu8EvBsiD,KAAM,cACNm8D,KAAM,SAEV,CACIz+G,IAAK2gK,EACLr+G,KAAM,cACNm8D,KAAM,SAEV,CACIz+G,IA78ES,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KA88EnCsiD,KAAM,cACNm8D,KAAM,YAEV,CACIz+G,IAj9EU,CAAC,IAAK,IAAK,KAk9ErBsiD,KAAM,cACNm8D,KAAM,YAEV,CACIz+G,IAAK4gK,EACLt+G,KAAM,WACNm8D,KAAM,QAEV,CACIz+G,IAAK6gK,EACLv+G,KAAM,WACNm8D,KAAM,SAEV,CACIz+G,IA38EO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KA48ErDsiD,KAAM,cACNm8D,KAAM,SAEV,CACIz+G,IA/8EQ,CAAC,KAg9ETsiD,KAAM,cACNm8D,KAAM,UAEV,CACIz+G,IAAKghK,EACL1+G,KAAM,QACNm8D,KAAM,QAE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IAntBgB,CACpB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MA0sBIsiD,KAAM,SACNm8D,KAAM,UACNxxH,KAAM,cAEV,CACI+S,IA7sBoB,CACxB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAosBIsiD,KAAM,SACNm8D,KAAM,UACNxxH,KAAM,mBAEV,CACI+S,IAvsBgB,CACpB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MA8rBIsiD,KAAM,SACNm8D,KAAM,UACNxxH,KAAM,aAEV,CACI+S,IAAK2kK,GACLriH,KAAM,SACNm8D,KAAM,SAEV,CACIz+G,IAAK4kK,GACLtiH,KAAM,SACNm8D,KAAM,eAEV,CACIz+G,IAAK84G,GACLx2D,KAAM,WACNm8D,KAAM,YAEV,CACIz+G,IAAKykK,GACLniH,KAAM,WACNm8D,KAAM,kBAEV,CACIz+G,IA5gDa,CACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAu/CIsiD,KAAM,WACNm8D,KAAM,eAEV,CACIz+G,IAz/CU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KA0/C9CsiD,KAAM,WACNm8D,KAAM,YAEV,CACIz+G,IA5yBU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KA6yBzCsiD,KAAM,WACNm8D,KAAM,mBAEV,CACIz+G,IAhzBc,CAAC,KAAM,KAAM,KAAM,MAizBjCsiD,KAAM,WACNm8D,KAAM,kBACNxxH,KAAM,QAEV,CACI+S,IArzBgB,CAAC,KAAM,MAszBvBsiD,KAAM,WACNm8D,KAAM,kBACNxxH,KAAM,UAEV,CACI+S,IA1zBuB,CAAC,KAAM,MA2zB9BsiD,KAAM,WACNm8D,KAAM,kBACNxxH,KAAM,mBAEV,CACI+S,IAnhDW,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KA89CIsiD,KAAM,WACNm8D,KAAM,YAEV,CACIz+G,IAh+Ca,CACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAy1CIsiD,KAAM,WACNm8D,KAAM,cAEV,CACIz+G,IA31Ca,CACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAoyCIsiD,KAAM,WACNm8D,KAAM,OAEV,CACIz+G,IAtxCU,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KA2vCIsiD,KAAM,WACNm8D,KAAM,WAEV,CACIz+G,IA7vCO,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KA05BIsiD,KAAM,WACNm8D,KAAM,SAEV,CACIz+G,IAhzCiB,CACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAsyCIsiD,KAAM,WACNm8D,KAAM,WAEV,CACIz+G,IAxyCoB,CAAC,KAyyCrBsiD,KAAM,WACNm8D,KAAM,cAEV,CACIz+G,IA5yCmB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KA6yClDsiD,KAAM,WACNm8D,KAAM,aAEV,CACIz+G,IAhzCsB,CAAC,KAizCvBsiD,KAAM,WACNm8D,KAAM,gBAEV,CACIz+G,IAh7BO,CACX,IACA,IA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","sources":["webpack:///indico/web/client/js/jquery/compat/mathjax.js","webpack:///indico/web/client/js/jquery/utils/pagedown_mathjax.js","webpack:///node_modules/mathjax-full/components/src/core/lib/core.js","webpack:///node_modules/mathjax-full/components/src/core/core.js","webpack:///node_modules/mathjax-full/components/src/input/tex-base/lib/tex-base.js","webpack:///node_modules/mathjax-full/components/src/input/tex/register.js","webpack:///node_modules/mathjax-full/components/src/input/tex-base/tex-base.js","webpack:///node_modules/mathjax-full/components/src/input/tex/extensions/ams/lib/ams.js","webpack:///node_modules/mathjax-full/components/src/input/tex/extensions/html/lib/html.js","webpack:///node_modules/mathjax-full/components/src/output/chtml/lib/chtml.js","webpack:///node_modules/mathjax-full/components/src/output/chtml/chtml.js","webpack:///node_modules/mathjax-full/components/src/output/chtml/fonts/tex/lib/tex.js","webpack:///node_modules/mathjax-full/components/src/output/chtml/fonts/tex/tex.js","webpack:///node_modules/mathjax-full/components/src/startup/lib/startup.js","webpack:///node_modules/mathjax-full/components/src/dependencies.js","webpack:///node_modules/mathjax-full/components/src/startup/init.js","webpack:///node_modules/mathjax-full/components/src/startup/startup.js","webpack:///node_modules/mathjax-full/components/src/ui/menu/lib/menu.js","webpack:///node_modules/mathjax-full/components/src/ui/menu/menu.js","webpack:///node_modules/mathjax-full/components/src/ui/safe/lib/safe.js","webpack:///node_modules/mathjax-full/components/src/ui/safe/safe.js","webpack:///node_modules/mathjax-full/js/a11y/mathmaps.js","webpack:///node_modules/mathjax-full/js/a11y/sre.js","webpack:///node_modules/mathjax-full/js/adaptors/HTMLAdaptor.js","webpack:///node_modules/mathjax-full/js/adaptors/browserAdaptor.js","webpack:///node_modules/mathjax-full/js/components/global.js","webpack:///node_modules/mathjax-full/js/components/loader.js","webpack:///node_modules/mathjax-full/js/components/package.js","webpack:///node_modules/mathjax-full/js/components/startup.js","webpack:///node_modules/mathjax-full/js/components/version.js","webpack:///node_modules/mathjax-full/js/core/DOMAdaptor.js","webpack:///node_modules/mathjax-full/js/core/FindMath.js","webpack:///node_modules/mathjax-full/js/core/Handler.js","webpack:///node_modules/mathjax-full/js/core/HandlerList.js","webpack:///node_modules/mathjax-full/js/core/InputJax.js","webpack:///node_modules/mathjax-full/js/core/MathDocument.js","webpack:///node_modules/mathjax-full/js/core/MathItem.js","webpack:///node_modules/mathjax-full/js/core/MathList.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/Attributes.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MML.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MathMLVisitor.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlFactory.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNode.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/TeXAtom.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/maction.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/maligngroup.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/malignmark.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/math.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mathchoice.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/menclose.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/merror.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mfenced.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mfrac.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mglyph.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mi.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mmultiscripts.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mn.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mo.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mpadded.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mphantom.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mroot.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mrow.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/ms.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mspace.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/msqrt.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mstyle.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/msubsup.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mtable.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mtd.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mtext.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/mtr.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/munderover.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlNodes/semantics.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/MmlVisitor.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/OperatorDictionary.js","webpack:///node_modules/mathjax-full/js/core/MmlTree/SerializedMmlVisitor.js","webpack:///node_modules/mathjax-full/js/core/OutputJax.js","webpack:///node_modules/mathjax-full/js/core/Tree/Factory.js","webpack:///node_modules/mathjax-full/js/core/Tree/Node.js","webpack:///node_modules/mathjax-full/js/core/Tree/NodeFactory.js","webpack:///node_modules/mathjax-full/js/core/Tree/Visitor.js","webpack:///node_modules/mathjax-full/js/core/Tree/Wrapper.js","webpack:///node_modules/mathjax-full/js/core/Tree/WrapperFactory.js","webpack:///node_modules/mathjax-full/js/handlers/html.js","webpack:///node_modules/mathjax-full/js/handlers/html/HTMLDocument.js","webpack:///node_modules/mathjax-full/js/handlers/html/HTMLDomStrings.js","webpack:///node_modules/mathjax-full/js/handlers/html/HTMLHandler.js","webpack:///node_modules/mathjax-full/js/handlers/html/HTMLMathItem.js","webpack:///node_modules/mathjax-full/js/handlers/html/HTMLMathList.js","webpack:///node_modules/mathjax-full/js/input/tex.js","webpack:///node_modules/mathjax-full/js/input/tex/Configuration.js","webpack:///node_modules/mathjax-full/js/input/tex/FilterUtil.js","webpack:///node_modules/mathjax-full/js/input/tex/FindTeX.js","webpack:///node_modules/mathjax-full/js/input/tex/MapHandler.js","webpack:///node_modules/mathjax-full/js/input/tex/NodeFactory.js","webpack:///node_modules/mathjax-full/js/input/tex/NodeUtil.js","webpack:///node_modules/mathjax-full/js/input/tex/ParseMethods.js","webpack:///node_modules/mathjax-full/js/input/tex/ParseOptions.js","webpack:///node_modules/mathjax-full/js/input/tex/ParseUtil.js","webpack:///node_modules/mathjax-full/js/input/tex/Stack.js","webpack:///node_modules/mathjax-full/js/input/tex/StackItem.js","webpack:///node_modules/mathjax-full/js/input/tex/StackItemFactory.js","webpack:///node_modules/mathjax-full/js/input/tex/Symbol.js","webpack:///node_modules/mathjax-full/js/input/tex/SymbolMap.js","webpack:///node_modules/mathjax-full/js/input/tex/Tags.js","webpack:///node_modules/mathjax-full/js/input/tex/TexConstants.js","webpack:///node_modules/mathjax-full/js/input/tex/TexError.js","webpack:///node_modules/mathjax-full/js/input/tex/TexParser.js","webpack:///node_modules/mathjax-full/js/input/tex/ams/AmsConfiguration.js","webpack:///node_modules/mathjax-full/js/input/tex/ams/AmsItems.js","webpack:///node_modules/mathjax-full/js/input/tex/ams/AmsMappings.js","webpack:///node_modules/mathjax-full/js/input/tex/ams/AmsMethods.js","webpack:///node_modules/mathjax-full/js/input/tex/base/BaseConfiguration.js","webpack:///node_modules/mathjax-full/js/input/tex/base/BaseItems.js","webpack:///node_modules/mathjax-full/js/input/tex/base/BaseMappings.js","webpack:///node_modules/mathjax-full/js/input/tex/base/BaseMethods.js","webpack:///node_modules/mathjax-full/js/input/tex/html/HtmlConfiguration.js","webpack:///node_modules/mathjax-full/js/input/tex/html/HtmlMethods.js","webpack:///node_modules/mathjax-full/js/mathjax.js","webpack:///node_modules/mathjax-full/js/output/chtml.js","webpack:///node_modules/mathjax-full/js/output/chtml/FontData.js","webpack:///node_modules/mathjax-full/js/output/chtml/Notation.js","webpack:///node_modules/mathjax-full/js/output/chtml/Usage.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrapper.js","webpack:///node_modules/mathjax-full/js/output/chtml/WrapperFactory.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/TeXAtom.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/TextNode.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/maction.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/math.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/menclose.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mfenced.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mfrac.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mglyph.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mi.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mmultiscripts.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mn.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mo.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mpadded.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mroot.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mrow.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/ms.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mspace.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/msqrt.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/msubsup.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mtable.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mtd.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mtext.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/mtr.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/munderover.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/scriptbase.js","webpack:///node_modules/mathjax-full/js/output/chtml/Wrappers/semantics.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/bold-italic.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/bold.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/double-struck.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/fraktur-bold.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/fraktur.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/italic.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/largeop.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/monospace.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/normal.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/sans-serif-bold-italic.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/sans-serif-bold.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/sans-serif-italic.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/sans-serif.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/script-bold.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/script.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/smallop.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/tex-calligraphic-bold.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/tex-calligraphic.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/tex-mathit.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/tex-oldstyle-bold.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/tex-oldstyle.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/tex-size3.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/tex-size4.js","webpack:///node_modules/mathjax-full/js/output/chtml/fonts/tex/tex-variant.js","webpack:///node_modules/mathjax-full/js/output/common/FontData.js","webpack:///node_modules/mathjax-full/js/output/common/Notation.js","webpack:///node_modules/mathjax-full/js/output/common/OutputJax.js","webpack:///node_modules/mathjax-full/js/output/common/Wrapper.js","webpack:///node_modules/mathjax-full/js/output/common/WrapperFactory.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/TeXAtom.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/TextNode.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/maction.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/math.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/menclose.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mfenced.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mfrac.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mglyph.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mi.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mmultiscripts.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mn.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mo.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mpadded.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mroot.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mrow.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/ms.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mspace.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/msqrt.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/msubsup.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mtable.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mtd.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mtext.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/mtr.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/munderover.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/scriptbase.js","webpack:///node_modules/mathjax-full/js/output/common/Wrappers/semantics.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/bold-italic.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/bold.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/delimiters.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/double-struck.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/fraktur-bold.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/fraktur.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/italic.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/largeop.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/monospace.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/normal.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/sans-serif-bold-italic.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/sans-serif-bold.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/sans-serif-italic.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/sans-serif.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/script-bold.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/script.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/smallop.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/tex-calligraphic-bold.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/tex-calligraphic.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/tex-mathit.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/tex-oldstyle-bold.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/tex-oldstyle.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/tex-size3.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/tex-size4.js","webpack:///node_modules/mathjax-full/js/output/common/fonts/tex/tex-variant.js","webpack:///node_modules/mathjax-full/js/ui/menu/MJContextMenu.js","webpack:///node_modules/mathjax-full/js/ui/menu/Menu.js","webpack:///node_modules/mathjax-full/js/ui/menu/MenuHandler.js","webpack:///node_modules/mathjax-full/js/ui/menu/MmlVisitor.js","webpack:///node_modules/mathjax-full/js/ui/menu/SelectableInfo.js","webpack:///node_modules/mathjax-full/js/ui/safe/SafeHandler.js","webpack:///node_modules/mathjax-full/js/ui/safe/SafeMethods.js","webpack:///node_modules/mathjax-full/js/ui/safe/safe.js","webpack:///node_modules/mathjax-full/js/util/AsyncLoad.js","webpack:///node_modules/mathjax-full/js/util/BBox.js","webpack:///node_modules/mathjax-full/js/util/BitField.js","webpack:///node_modules/mathjax-full/js/util/Entities.js","webpack:///node_modules/mathjax-full/js/util/FunctionList.js","webpack:///node_modules/mathjax-full/js/util/LinkedList.js","webpack:///node_modules/mathjax-full/js/util/Options.js","webpack:///node_modules/mathjax-full/js/util/PrioritizedList.js","webpack:///node_modules/mathjax-full/js/util/Retries.js","webpack:///node_modules/mathjax-full/js/util/StyleList.js","webpack:///node_modules/mathjax-full/js/util/Styles.js","webpack:///node_modules/mathjax-full/js/util/lengths.js","webpack:///node_modules/mathjax-full/js/util/numeric.js","webpack:///node_modules/mathjax-full/js/util/string.js","webpack:///node_modules/mj-context-menu/js/abstract_entry.js","webpack:///node_modules/mj-context-menu/js/abstract_item.js","webpack:///node_modules/mj-context-menu/js/abstract_menu.js","webpack:///node_modules/mj-context-menu/js/abstract_navigatable.js","webpack:///node_modules/mj-context-menu/js/abstract_postable.js","webpack:///node_modules/mj-context-menu/js/abstract_variable_item.js","webpack:///node_modules/mj-context-menu/js/close_button.js","webpack:///node_modules/mj-context-menu/js/context_menu.js","webpack:///node_modules/mj-context-menu/js/css_util.js","webpack:///node_modules/mj-context-menu/js/html_classes.js","webpack:///node_modules/mj-context-menu/js/info.js","webpack:///node_modules/mj-context-menu/js/item_checkbox.js","webpack:///node_modules/mj-context-menu/js/item_combo.js","webpack:///node_modules/mj-context-menu/js/item_command.js","webpack:///node_modules/mj-context-menu/js/item_label.js","webpack:///node_modules/mj-context-menu/js/item_radio.js","webpack:///node_modules/mj-context-menu/js/item_rule.js","webpack:///node_modules/mj-context-menu/js/item_slider.js","webpack:///node_modules/mj-context-menu/js/item_submenu.js","webpack:///node_modules/mj-context-menu/js/key_navigatable.js","webpack:///node_modules/mj-context-menu/js/menu_element.js","webpack:///node_modules/mj-context-menu/js/menu_store.js","webpack:///node_modules/mj-context-menu/js/menu_util.js","webpack:///node_modules/mj-context-menu/js/mouse_navigatable.js","webpack:///node_modules/mj-context-menu/js/parse.js","webpack:///node_modules/mj-context-menu/js/parser_factory.js","webpack:///node_modules/mj-context-menu/js/selection_box.js","webpack:///node_modules/mj-context-menu/js/sub_menu.js","webpack:///node_modules/mj-context-menu/js/variable.js","webpack:///node_modules/mj-context-menu/js/variable_pool.js","webpack:///node_modules/speech-rule-engine/js/audio/abstract_audio_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/acss_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/audio_util.js","webpack:///node_modules/speech-rule-engine/js/audio/auditory_description.js","webpack:///node_modules/speech-rule-engine/js/audio/aural_rendering.js","webpack:///node_modules/speech-rule-engine/js/audio/layout_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/markup_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/punctuation_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/sable_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/span.js","webpack:///node_modules/speech-rule-engine/js/audio/ssml_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/ssml_step_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/string_renderer.js","webpack:///node_modules/speech-rule-engine/js/audio/xml_renderer.js","webpack:///node_modules/speech-rule-engine/js/common/base_util.js","webpack:///node_modules/speech-rule-engine/js/common/browser_util.js","webpack:///node_modules/speech-rule-engine/js/common/debugger.js","webpack:///node_modules/speech-rule-engine/js/common/dom_util.js","webpack:///node_modules/speech-rule-engine/js/common/engine.js","webpack:///node_modules/speech-rule-engine/js/common/engine_const.js","webpack:///node_modules/speech-rule-engine/js/common/engine_setup.js","webpack:///node_modules/speech-rule-engine/js/common/event_util.js","webpack:///node_modules/speech-rule-engine/js/common/file_util.js","webpack:///node_modules/speech-rule-engine/js/common/processor.js","webpack:///node_modules/speech-rule-engine/js/common/processor_factory.js","webpack:///node_modules/speech-rule-engine/js/common/system.js","webpack:///node_modules/speech-rule-engine/js/common/system_external.js","webpack:///node_modules/speech-rule-engine/js/common/variables.js","webpack:///node_modules/speech-rule-engine/js/common/xpath_util.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/abstract_enrich_case.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_binomial.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_double_script.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_embellished.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_limit.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_line.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_multiindex.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_multiscripts.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_proof.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_table.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_tensor.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/case_text.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/enrich.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/enrich_attr.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/enrich_case.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/enrich_case_factory.js","webpack:///node_modules/speech-rule-engine/js/enrich_mathml/enrich_mathml.js","webpack:///node_modules/speech-rule-engine/js/highlighter/abstract_highlighter.js","webpack:///node_modules/speech-rule-engine/js/highlighter/chtml_highlighter.js","webpack:///node_modules/speech-rule-engine/js/highlighter/color_picker.js","webpack:///node_modules/speech-rule-engine/js/highlighter/css_highlighter.js","webpack:///node_modules/speech-rule-engine/js/highlighter/highlighter_factory.js","webpack:///node_modules/speech-rule-engine/js/highlighter/html_highlighter.js","webpack:///node_modules/speech-rule-engine/js/highlighter/mml_css_highlighter.js","webpack:///node_modules/speech-rule-engine/js/highlighter/mml_highlighter.js","webpack:///node_modules/speech-rule-engine/js/highlighter/svg_highlighter.js","webpack:///node_modules/speech-rule-engine/js/highlighter/svg_v3_highlighter.js","webpack:///node_modules/speech-rule-engine/js/indexing/abstract_trie_node.js","webpack:///node_modules/speech-rule-engine/js/indexing/trie.js","webpack:///node_modules/speech-rule-engine/js/indexing/trie_node.js","webpack:///node_modules/speech-rule-engine/js/indexing/trie_node_factory.js","webpack:///node_modules/speech-rule-engine/js/l10n/l10n.js","webpack:///node_modules/speech-rule-engine/js/l10n/locale.js","webpack:///node_modules/speech-rule-engine/js/l10n/locale_util.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_ca.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_da.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_de.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_en.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_es.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_fr.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_hi.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_it.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_nb.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_nemeth.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_nn.js","webpack:///node_modules/speech-rule-engine/js/l10n/locales/locale_sv.js","webpack:///node_modules/speech-rule-engine/js/l10n/messages.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_ca.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_da.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_de.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_en.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_es.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_fr.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_hi.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_it.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_nemeth.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_nn.js","webpack:///node_modules/speech-rule-engine/js/l10n/numbers/numbers_sv.js","webpack:///node_modules/speech-rule-engine/js/l10n/transformers.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/base_rule_store.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/braille_store.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/dynamic_cstr.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/grammar.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/math_compound_store.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/math_simple_store.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/math_store.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/speech_rule.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/speech_rule_context.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/speech_rule_engine.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/speech_rule_functions.js","webpack:///node_modules/speech-rule-engine/js/rule_engine/store_util.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_annotations.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_annotator.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_attr.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_default.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_heuristic.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_heuristic_factory.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_heuristics.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_mathml.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_node.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_node_factory.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_ordering.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_parser.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_pred.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_processor.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_skeleton.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_tree.js","webpack:///node_modules/speech-rule-engine/js/semantic_tree/semantic_util.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/abstract_speech_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/adhoc_speech_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/color_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/direct_speech_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/dummy_speech_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/node_speech_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/speech_generator_factory.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/speech_generator_util.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/summary_speech_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_generator/tree_speech_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/alphabet_generator.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/clearspeak_preferences.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/clearspeak_rules.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/clearspeak_util.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/math_map.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/mathspeak_french_util.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/mathspeak_rules.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/mathspeak_util.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/nemeth_util.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/numbers_util.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/other_rules.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/speech_rule_stores.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/speech_rules.js","webpack:///node_modules/speech-rule-engine/js/speech_rules/unit_util.js","webpack:///node_modules/speech-rule-engine/js/walker/abstract_walker.js","webpack:///node_modules/speech-rule-engine/js/walker/dummy_walker.js","webpack:///node_modules/speech-rule-engine/js/walker/focus.js","webpack:///node_modules/speech-rule-engine/js/walker/levels.js","webpack:///node_modules/speech-rule-engine/js/walker/rebuild_stree.js","webpack:///node_modules/speech-rule-engine/js/walker/semantic_walker.js","webpack:///node_modules/speech-rule-engine/js/walker/syntax_walker.js","webpack:///node_modules/speech-rule-engine/js/walker/table_walker.js","webpack:///node_modules/speech-rule-engine/js/walker/walker.js","webpack:///node_modules/speech-rule-engine/js/walker/walker_factory.js","webpack:///node_modules/speech-rule-engine/js/walker/walker_util.js"],"sourcesContent":["// This file is part of Indico.\n// Copyright (C) 2002 - 2024 CERN\n//\n// Indico is free software; you can redistribute it and/or\n// modify it under the terms of the MIT License; see the\n// LICENSE file for more details.\n\n/* eslint-disable import/unambiguous, import/no-commonjs */\n\nfunction getMathJaxSource() {\n const dist = 'dist/js/mathjax/es5';\n const isStatic = JSON.parse(document.documentElement.dataset.staticSite);\n return isStatic ? `static/${dist}` : `${Indico.Urls.Base}/${dist}`;\n}\n\nwindow.MathJax = {\n loader: {\n paths: {\n // path from which MathJax dynamically loads components at runtime\n mathjax: getMathJaxSource(),\n },\n },\n startup: {\n typeset: false,\n elements: [],\n },\n options: {\n enableMenu: true,\n menuOptions: {\n settings: {\n zoom: 'None',\n ctrl: false,\n alt: false,\n cmd: false,\n shift: false,\n zscale: '200%',\n texHints: true,\n },\n },\n skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],\n ignoreHtmlClass: 'asciimath2jax_ignore',\n processHtmlClass: 'asciimath2jax_process',\n safeOptions: {\n allow: {\n URLs: 'safe',\n classes: 'none',\n cssIDs: 'none',\n styles: 'none',\n },\n safeProtocols: {\n http: true,\n https: true,\n mailto: true,\n file: false,\n javascript: false,\n data: false,\n },\n },\n },\n tex: {\n packages: {\n '[+]': ['ams', 'html'],\n '[-]': ['require', 'autoload'], // Prevent loading packages which we did not explicitly add\n },\n inlineMath: [['$', '$']],\n displayMath: [['$$', '$$']],\n processEscapes: false,\n processEnvironments: true,\n processRefs: true,\n tagSide: 'right',\n tagIndent: '.8em',\n multlineWidth: '85%',\n tags: 'none',\n useLabelIds: true,\n },\n};\n\n// Based on this tutorial:\n// https://github.com/mathjax/MathJax-demos-web/blob/master/custom-component/custom-component.html.md\n\n//\n// Initialize the MathJax startup code\n//\nrequire('mathjax-full/components/src/startup/lib/startup.js');\n\n//\n// Get the loader module and indicate the modules that\n// will be loaded by hand below\n//\nconst {Loader} = require('mathjax-full/js/components/loader.js');\nLoader.preLoad(\n 'loader',\n 'startup',\n 'core',\n 'input/tex-base',\n '[tex]/ams',\n '[tex]/html',\n 'output/chtml',\n 'output/chtml/fonts/tex.js',\n 'ui/menu',\n 'ui/safe' // https://docs.mathjax.org/en/latest/web/typeset.html#typesetting-user-supplied-content\n);\n\n//\n// Load the components that we want to combine into one component\n// (the ones listed in the preLoad() call above)\n//\nrequire('mathjax-full/components/src/core/core.js');\n\nrequire('mathjax-full/components/src/input/tex-base/tex-base.js');\nrequire('mathjax-full/components/src/input/tex/extensions/ams/ams.js');\nrequire('mathjax-full/components/src/input/tex/extensions/html/html.js');\nrequire('mathjax-full/components/src/output/chtml/chtml.js');\nrequire('mathjax-full/components/src/output/chtml/fonts/tex/tex.js');\nrequire('mathjax-full/components/src/ui/menu/menu.js');\nrequire('mathjax-full/components/src/ui/safe/safe.js');\n\n//\n// Loading this component will cause all the normal startup\n// operations to be performed when this component is loaded\n//\nrequire('mathjax-full/components/src/startup/startup.js');\n\nrequire('../utils/pagedown_mathjax');\n","// This file is part of Indico.\n// Copyright (C) 2002 - 2024 CERN\n//\n// Indico is free software; you can redistribute it and/or\n// modify it under the terms of the MIT License; see the\n// LICENSE file for more details.\n\n/* eslint-disable camelcase, one-var, no-lonely-if, import/unambiguous */\n/* global Markdown:false, MathJax:false, PageDownMathJax:false */\n\n(function() {\n var DELIMITERS = [['$', '$'], ['$$', '$$']];\n\n window.PageDownMathJax = function() {\n var $preview = null; // the preview container\n\n var blocks, start, end, last, braces; // used in searching for math\n var math; // stores math until markdone is done\n\n //\n // The pattern for math delimiters and special symbols\n // needed for searching for math in the page.\n //\n var SPLIT = /(\\$\\$?|\\\\(?:begin|end)\\{[a-z]*\\*?\\}|\\\\[\\\\{}$]|[{}]|(?:\\n\\s*)+|@@\\d+@@)/i;\n\n /*\n * The math is in blocks i through j, so\n * collect it into one block and clear the others.\n * Replace &, <, and > by named entities.\n * For IE, put
at the ends of comments since IE removes \\n.\n * Clear the current math positions and store the index of the\n * math, then push the math string onto the storage array.\n */\n function processMath(i, j) {\n var block = blocks\n .slice(i, j + 1)\n .join('')\n .replace(/&/g, '&') // use HTML entity for &\n .replace(//g, '>'); // use HTML entity for >\n while (j > i) {\n blocks[j] = '';\n j--;\n }\n blocks[i] = '@@' + math.length + '@@';\n math.push(block);\n start = end = last = null;\n }\n\n //\n // Break up the text into its component parts and search\n // through them for math delimiters, braces, linebreaks, etc.\n // Math delimiters must match and braces must balance.\n // Don't allow math to pass through a double linebreak\n // (which will be a paragraph).\n //\n function removeMath(text) {\n start = end = last = null; // for tracking math delimiters\n math = []; // stores math strings for latter\n\n blocks = text.replace(/\\r\\n?/g, '\\n').split(SPLIT);\n for (var i = 1, m = blocks.length; i < m; i += 2) {\n var block = blocks[i];\n if (block.charAt(0) === '@') {\n //\n // Things that look like our math markers will get\n // stored and then retrieved along with the math.\n //\n blocks[i] = '@@' + math.length + '@@';\n math.push(block);\n } else if (start) {\n //\n // If we are in math, look for the end delimiter,\n // but don't go past double line breaks, and\n // and balance braces within the math.\n //\n if (block === end) {\n if (braces) {\n last = i;\n } else {\n processMath(start, i);\n }\n } else if (block.match(/\\n.*\\n/)) {\n if (last) {\n i = last;\n processMath(start, i);\n }\n start = end = last = null;\n braces = 0;\n } else if (block === '{') {\n braces++;\n } else if (block === '}' && braces) {\n braces--;\n }\n } else {\n //\n // Look for math start delimiters and when\n // found, set up the end delimiter.\n //\n if (block === DELIMITERS[0][0] || block === DELIMITERS[1][0]) {\n start = i;\n end = block;\n braces = 0;\n } else if (block.substr(1, 5) === 'begin') {\n start = i;\n end = '\\\\end' + block.substr(6);\n braces = 0;\n }\n }\n }\n if (last) {\n processMath(start, last);\n }\n return blocks.join('');\n }\n\n //\n // Put back the math strings that were saved,\n // and clear the math array (no need to keep it around).\n //\n function replaceMath(text) {\n text = text.replace(/@@(\\d+)@@/g, function(match, n) {\n return math[n];\n });\n math = null;\n return text;\n }\n\n //\n // When the preview changes, cancel MathJax and restart,\n // if we haven't done that already.\n //\n function updateMJ(elem, cb) {\n if (elem.dataset.noMathjax !== undefined) {\n cb();\n } else {\n typeset($preview.get(0)).then(cb);\n }\n }\n\n async function typeset(elem) {\n if (elem.dataset.noMathjax !== undefined) {\n return;\n }\n\n // https://docs.mathjax.org/en/latest/web/typeset.html#handling-asynchronous-typesetting\n MathJax.startup.promise = MathJax.startup.promise\n .then(() => MathJax.typesetPromise([elem]))\n .catch(err => console.log(`[MathJax] Typeset failed: ${err.message}`));\n return MathJax.startup.promise;\n }\n\n function createPreview(elem, editorObject) {\n var converterObject = editorObject.getConverter();\n converterObject.hooks.chain('preConversion', removeMath);\n converterObject.hooks.chain('postConversion', replaceMath);\n\n function preview() {\n updateMJ(elem, function() {\n var new_height = $preview.outerHeight(),\n $wrapper = $preview.closest('.md-preview-wrapper'),\n is_empty = $preview.is(':empty');\n\n $wrapper.toggleClass('empty', is_empty);\n if (is_empty) {\n $wrapper.css('height', '');\n } else {\n $wrapper.css('height', new_height);\n }\n\n $preview.scrollTop(new_height);\n });\n }\n\n editorObject.hooks.chain('onPreviewRefresh', preview);\n MathJax.startup.promise.then(preview);\n }\n\n function createEditor(elem) {\n var $container = $(elem).closest('[data-field-id]');\n $preview = $container.find('.wmd-preview');\n\n var fieldId = $container.data('fieldId'),\n converter = Markdown.getSanitizingConverter();\n\n converter.hooks.chain('preBlockGamut', function block_handler(text, rbg) {\n return text.replace(/^ {0,3}\"\"\" *\\n((?:.*?\\n)+?) {0,3}\"\"\" *$/gm, function(whole, inner) {\n return '
' + rbg(inner) + '
\\n';\n });\n });\n\n var editor = new Markdown.Editor(converter, '-f_' + fieldId, {\n helpButton: {\n handler: function() {\n return false;\n },\n },\n strings: {\n imagedialog:\n '

Insert Image

http://example.com/images/diagram.jpg \"optional title\"',\n },\n });\n\n createPreview(elem, editor);\n editor.run();\n }\n\n function mathJax(elem) {\n return typeset(elem);\n }\n\n return {\n mathJax: mathJax,\n createEditor: createEditor,\n };\n };\n\n var pd = PageDownMathJax();\n\n window.mathJax = pd.mathJax.bind(pd);\n\n $.fn.mathJax = function() {\n $(this).each(function() {\n pd.mathJax(this);\n });\n return this;\n };\n\n $.fn.pagedown = function() {\n function _pagedown(elem) {\n const pd_context = PageDownMathJax();\n elem.data('pagedown', pd_context);\n pd_context.createEditor(elem.get(0));\n }\n\n $(this).each(function(i, elem) {\n _pagedown($(elem));\n });\n };\n})();\n","import {combineWithMathJax} from '../../../../js/components/global.js';\nimport {VERSION} from '../../../../js/components/version.js';\n\nimport * as module1 from '../../../../js/adaptors/HTMLAdaptor.js';\nimport * as module2 from '../../../../js/adaptors/browserAdaptor.js';\nimport * as module3 from '../../../../js/components/global.js';\nimport * as module4 from '../../../../js/core/DOMAdaptor.js';\nimport * as module5 from '../../../../js/core/FindMath.js';\nimport * as module6 from '../../../../js/core/Handler.js';\nimport * as module7 from '../../../../js/core/HandlerList.js';\nimport * as module8 from '../../../../js/core/InputJax.js';\nimport * as module9 from '../../../../js/core/MathDocument.js';\nimport * as module10 from '../../../../js/core/MathItem.js';\nimport * as module11 from '../../../../js/core/MathList.js';\nimport * as module12 from '../../../../js/core/MmlTree/Attributes.js';\nimport * as module13 from '../../../../js/core/MmlTree/MML.js';\nimport * as module14 from '../../../../js/core/MmlTree/MathMLVisitor.js';\nimport * as module15 from '../../../../js/core/MmlTree/MmlFactory.js';\nimport * as module16 from '../../../../js/core/MmlTree/MmlNode.js';\nimport * as module17 from '../../../../js/core/MmlTree/MmlNodes/TeXAtom.js';\nimport * as module18 from '../../../../js/core/MmlTree/MmlNodes/maction.js';\nimport * as module19 from '../../../../js/core/MmlTree/MmlNodes/maligngroup.js';\nimport * as module20 from '../../../../js/core/MmlTree/MmlNodes/malignmark.js';\nimport * as module21 from '../../../../js/core/MmlTree/MmlNodes/math.js';\nimport * as module22 from '../../../../js/core/MmlTree/MmlNodes/mathchoice.js';\nimport * as module23 from '../../../../js/core/MmlTree/MmlNodes/menclose.js';\nimport * as module24 from '../../../../js/core/MmlTree/MmlNodes/merror.js';\nimport * as module25 from '../../../../js/core/MmlTree/MmlNodes/mfenced.js';\nimport * as module26 from '../../../../js/core/MmlTree/MmlNodes/mfrac.js';\nimport * as module27 from '../../../../js/core/MmlTree/MmlNodes/mglyph.js';\nimport * as module28 from '../../../../js/core/MmlTree/MmlNodes/mi.js';\nimport * as module29 from '../../../../js/core/MmlTree/MmlNodes/mmultiscripts.js';\nimport * as module30 from '../../../../js/core/MmlTree/MmlNodes/mn.js';\nimport * as module31 from '../../../../js/core/MmlTree/MmlNodes/mo.js';\nimport * as module32 from '../../../../js/core/MmlTree/MmlNodes/mpadded.js';\nimport * as module33 from '../../../../js/core/MmlTree/MmlNodes/mphantom.js';\nimport * as module34 from '../../../../js/core/MmlTree/MmlNodes/mroot.js';\nimport * as module35 from '../../../../js/core/MmlTree/MmlNodes/mrow.js';\nimport * as module36 from '../../../../js/core/MmlTree/MmlNodes/ms.js';\nimport * as module37 from '../../../../js/core/MmlTree/MmlNodes/mspace.js';\nimport * as module38 from '../../../../js/core/MmlTree/MmlNodes/msqrt.js';\nimport * as module39 from '../../../../js/core/MmlTree/MmlNodes/mstyle.js';\nimport * as module40 from '../../../../js/core/MmlTree/MmlNodes/msubsup.js';\nimport * as module41 from '../../../../js/core/MmlTree/MmlNodes/mtable.js';\nimport * as module42 from '../../../../js/core/MmlTree/MmlNodes/mtd.js';\nimport * as module43 from '../../../../js/core/MmlTree/MmlNodes/mtext.js';\nimport * as module44 from '../../../../js/core/MmlTree/MmlNodes/mtr.js';\nimport * as module45 from '../../../../js/core/MmlTree/MmlNodes/munderover.js';\nimport * as module46 from '../../../../js/core/MmlTree/MmlNodes/semantics.js';\nimport * as module47 from '../../../../js/core/MmlTree/MmlVisitor.js';\nimport * as module48 from '../../../../js/core/MmlTree/OperatorDictionary.js';\nimport * as module49 from '../../../../js/core/MmlTree/SerializedMmlVisitor.js';\nimport * as module50 from '../../../../js/core/OutputJax.js';\nimport * as module51 from '../../../../js/core/Tree/Factory.js';\nimport * as module52 from '../../../../js/core/Tree/Node.js';\nimport * as module53 from '../../../../js/core/Tree/NodeFactory.js';\nimport * as module54 from '../../../../js/core/Tree/Visitor.js';\nimport * as module55 from '../../../../js/core/Tree/Wrapper.js';\nimport * as module56 from '../../../../js/core/Tree/WrapperFactory.js';\nimport * as module57 from '../../../../js/handlers/html.js';\nimport * as module58 from '../../../../js/handlers/html/HTMLDocument.js';\nimport * as module59 from '../../../../js/handlers/html/HTMLDomStrings.js';\nimport * as module60 from '../../../../js/handlers/html/HTMLHandler.js';\nimport * as module61 from '../../../../js/handlers/html/HTMLMathItem.js';\nimport * as module62 from '../../../../js/handlers/html/HTMLMathList.js';\nimport * as module63 from '../../../../js/mathjax.js';\nimport * as module64 from '../../../../js/util/AsyncLoad.js';\nimport * as module65 from '../../../../js/util/BBox.js';\nimport * as module66 from '../../../../js/util/BitField.js';\nimport * as module67 from '../../../../js/util/Entities.js';\nimport * as module68 from '../../../../js/util/FunctionList.js';\nimport * as module69 from '../../../../js/util/LinkedList.js';\nimport * as module70 from '../../../../js/util/Options.js';\nimport * as module71 from '../../../../js/util/PrioritizedList.js';\nimport * as module72 from '../../../../js/util/Retries.js';\nimport * as module73 from '../../../../js/util/StyleList.js';\nimport * as module74 from '../../../../js/util/Styles.js';\nimport * as module75 from '../../../../js/util/lengths.js';\nimport * as module76 from '../../../../js/util/numeric.js';\nimport * as module77 from '../../../../js/util/string.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('core', VERSION, 'core');\n}\n\ncombineWithMathJax({_: {\n adaptors: {\n HTMLAdaptor: module1,\n browserAdaptor: module2\n },\n components: {\n global: module3\n },\n core: {\n DOMAdaptor: module4,\n FindMath: module5,\n Handler: module6,\n HandlerList: module7,\n InputJax: module8,\n MathDocument: module9,\n MathItem: module10,\n MathList: module11,\n MmlTree: {\n Attributes: module12,\n MML: module13,\n MathMLVisitor: module14,\n MmlFactory: module15,\n MmlNode: module16,\n MmlNodes: {\n TeXAtom: module17,\n maction: module18,\n maligngroup: module19,\n malignmark: module20,\n math: module21,\n mathchoice: module22,\n menclose: module23,\n merror: module24,\n mfenced: module25,\n mfrac: module26,\n mglyph: module27,\n mi: module28,\n mmultiscripts: module29,\n mn: module30,\n mo: module31,\n mpadded: module32,\n mphantom: module33,\n mroot: module34,\n mrow: module35,\n ms: module36,\n mspace: module37,\n msqrt: module38,\n mstyle: module39,\n msubsup: module40,\n mtable: module41,\n mtd: module42,\n mtext: module43,\n mtr: module44,\n munderover: module45,\n semantics: module46\n },\n MmlVisitor: module47,\n OperatorDictionary: module48,\n SerializedMmlVisitor: module49\n },\n OutputJax: module50,\n Tree: {\n Factory: module51,\n Node: module52,\n NodeFactory: module53,\n Visitor: module54,\n Wrapper: module55,\n WrapperFactory: module56\n }\n },\n handlers: {\n html_ts: module57,\n html: {\n HTMLDocument: module58,\n HTMLDomStrings: module59,\n HTMLHandler: module60,\n HTMLMathItem: module61,\n HTMLMathList: module62\n }\n },\n mathjax: module63,\n util: {\n AsyncLoad: module64,\n BBox: module65,\n BitField: module66,\n Entities: module67,\n FunctionList: module68,\n LinkedList: module69,\n Options: module70,\n PrioritizedList: module71,\n Retries: module72,\n StyleList: module73,\n Styles: module74,\n lengths: module75,\n numeric: module76,\n string: module77\n }\n}});\n","import './lib/core.js';\n\nimport {HTMLHandler} from '../../../js/handlers/html/HTMLHandler.js';\nimport {browserAdaptor} from '../../../js/adaptors/browserAdaptor.js';\n\nif (MathJax.startup) {\n MathJax.startup.registerConstructor('HTMLHandler', HTMLHandler);\n MathJax.startup.registerConstructor('browserAdaptor', browserAdaptor);\n MathJax.startup.useHandler('HTMLHandler');\n MathJax.startup.useAdaptor('browserAdaptor');\n}\nif (MathJax.loader) {\n MathJax._.mathjax.mathjax.asyncLoad = (name => MathJax.loader.load(name));\n}\n","import {combineWithMathJax} from '../../../../../js/components/global.js';\nimport {VERSION} from '../../../../../js/components/version.js';\n\nimport * as module1 from '../../../../../js/input/tex.js';\nimport * as module2 from '../../../../../js/input/tex/Configuration.js';\nimport * as module3 from '../../../../../js/input/tex/FilterUtil.js';\nimport * as module4 from '../../../../../js/input/tex/FindTeX.js';\nimport * as module5 from '../../../../../js/input/tex/MapHandler.js';\nimport * as module6 from '../../../../../js/input/tex/NodeFactory.js';\nimport * as module7 from '../../../../../js/input/tex/NodeUtil.js';\nimport * as module8 from '../../../../../js/input/tex/ParseMethods.js';\nimport * as module9 from '../../../../../js/input/tex/ParseOptions.js';\nimport * as module10 from '../../../../../js/input/tex/ParseUtil.js';\nimport * as module11 from '../../../../../js/input/tex/Stack.js';\nimport * as module12 from '../../../../../js/input/tex/StackItem.js';\nimport * as module13 from '../../../../../js/input/tex/StackItemFactory.js';\nimport * as module14 from '../../../../../js/input/tex/Symbol.js';\nimport * as module15 from '../../../../../js/input/tex/SymbolMap.js';\nimport * as module16 from '../../../../../js/input/tex/Tags.js';\nimport * as module17 from '../../../../../js/input/tex/TexConstants.js';\nimport * as module18 from '../../../../../js/input/tex/TexError.js';\nimport * as module19 from '../../../../../js/input/tex/TexParser.js';\nimport * as module20 from '../../../../../js/input/tex/base/BaseConfiguration.js';\nimport * as module21 from '../../../../../js/input/tex/base/BaseItems.js';\nimport * as module22 from '../../../../../js/input/tex/base/BaseMethods.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('input/tex-base', VERSION, 'input');\n}\n\ncombineWithMathJax({_: {\n input: {\n tex_ts: module1,\n tex: {\n Configuration: module2,\n FilterUtil: module3,\n FindTeX: module4,\n MapHandler: module5,\n NodeFactory: module6,\n NodeUtil: module7,\n ParseMethods: module8,\n ParseOptions: module9,\n ParseUtil: module10,\n Stack: module11,\n StackItem: module12,\n StackItemFactory: module13,\n Symbol: module14,\n SymbolMap: module15,\n Tags: module16,\n TexConstants: module17,\n TexError: module18,\n TexParser: module19,\n base: {\n BaseConfiguration: module20,\n BaseItems: module21,\n BaseMethods: module22\n }\n }\n }\n}});\n","import {insert} from '../../../../js/util/Options.js';\n\nexport function registerTeX(packageList = [], tex = true) {\n if (MathJax.startup) {\n if (tex) {\n MathJax.startup.registerConstructor('tex', MathJax._.input.tex_ts.TeX);\n MathJax.startup.useInput('tex');\n }\n if (!MathJax.config.tex) {\n MathJax.config.tex = {};\n }\n let packages = MathJax.config.tex.packages;\n MathJax.config.tex.packages = packageList;\n if (packages) {\n insert(MathJax.config.tex, {packages});\n }\n }\n}\n","import './lib/tex-base.js';\n\nimport {registerTeX} from '../tex/register.js';\n\nregisterTeX(['base']);\n\n","import {combineWithMathJax} from '../../../../../../../js/components/global.js';\nimport {VERSION} from '../../../../../../../js/components/version.js';\n\nimport * as module1 from '../../../../../../../js/input/tex/ams/AmsConfiguration.js';\nimport * as module2 from '../../../../../../../js/input/tex/ams/AmsItems.js';\nimport * as module3 from '../../../../../../../js/input/tex/ams/AmsMethods.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('[tex]/ams', VERSION, 'tex-extension');\n}\n\ncombineWithMathJax({_: {\n input: {\n tex: {\n ams: {\n AmsConfiguration: module1,\n AmsItems: module2,\n AmsMethods: module3\n }\n }\n }\n}});\n","import {combineWithMathJax} from '../../../../../../../js/components/global.js';\nimport {VERSION} from '../../../../../../../js/components/version.js';\n\nimport * as module1 from '../../../../../../../js/input/tex/html/HtmlConfiguration.js';\nimport * as module2 from '../../../../../../../js/input/tex/html/HtmlMethods.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('[tex]/html', VERSION, 'tex-extension');\n}\n\ncombineWithMathJax({_: {\n input: {\n tex: {\n html: {\n HtmlConfiguration: module1,\n HtmlMethods: module2\n }\n }\n }\n}});\n","import {combineWithMathJax} from '../../../../../js/components/global.js';\nimport {VERSION} from '../../../../../js/components/version.js';\n\nimport * as module1 from '../../../../../js/output/chtml.js';\nimport * as module2 from '../../../../../js/output/chtml/FontData.js';\nimport * as module3 from '../../../../../js/output/chtml/Notation.js';\nimport * as module4 from '../../../../../js/output/chtml/Usage.js';\nimport * as module5 from '../../../../../js/output/chtml/Wrapper.js';\nimport * as module6 from '../../../../../js/output/chtml/WrapperFactory.js';\nimport * as module7 from '../../../../../js/output/chtml/Wrappers.js';\nimport * as module8 from '../../../../../js/output/chtml/Wrappers/TeXAtom.js';\nimport * as module9 from '../../../../../js/output/chtml/Wrappers/TextNode.js';\nimport * as module10 from '../../../../../js/output/chtml/Wrappers/maction.js';\nimport * as module11 from '../../../../../js/output/chtml/Wrappers/math.js';\nimport * as module12 from '../../../../../js/output/chtml/Wrappers/menclose.js';\nimport * as module13 from '../../../../../js/output/chtml/Wrappers/mfenced.js';\nimport * as module14 from '../../../../../js/output/chtml/Wrappers/mfrac.js';\nimport * as module15 from '../../../../../js/output/chtml/Wrappers/mglyph.js';\nimport * as module16 from '../../../../../js/output/chtml/Wrappers/mi.js';\nimport * as module17 from '../../../../../js/output/chtml/Wrappers/mmultiscripts.js';\nimport * as module18 from '../../../../../js/output/chtml/Wrappers/mn.js';\nimport * as module19 from '../../../../../js/output/chtml/Wrappers/mo.js';\nimport * as module20 from '../../../../../js/output/chtml/Wrappers/mpadded.js';\nimport * as module21 from '../../../../../js/output/chtml/Wrappers/mroot.js';\nimport * as module22 from '../../../../../js/output/chtml/Wrappers/mrow.js';\nimport * as module23 from '../../../../../js/output/chtml/Wrappers/ms.js';\nimport * as module24 from '../../../../../js/output/chtml/Wrappers/mspace.js';\nimport * as module25 from '../../../../../js/output/chtml/Wrappers/msqrt.js';\nimport * as module26 from '../../../../../js/output/chtml/Wrappers/msubsup.js';\nimport * as module27 from '../../../../../js/output/chtml/Wrappers/mtable.js';\nimport * as module28 from '../../../../../js/output/chtml/Wrappers/mtd.js';\nimport * as module29 from '../../../../../js/output/chtml/Wrappers/mtext.js';\nimport * as module30 from '../../../../../js/output/chtml/Wrappers/mtr.js';\nimport * as module31 from '../../../../../js/output/chtml/Wrappers/munderover.js';\nimport * as module32 from '../../../../../js/output/chtml/Wrappers/scriptbase.js';\nimport * as module33 from '../../../../../js/output/chtml/Wrappers/semantics.js';\nimport * as module34 from '../../../../../js/output/common/FontData.js';\nimport * as module35 from '../../../../../js/output/common/Notation.js';\nimport * as module36 from '../../../../../js/output/common/OutputJax.js';\nimport * as module37 from '../../../../../js/output/common/Wrapper.js';\nimport * as module38 from '../../../../../js/output/common/WrapperFactory.js';\nimport * as module39 from '../../../../../js/output/common/Wrappers/TeXAtom.js';\nimport * as module40 from '../../../../../js/output/common/Wrappers/TextNode.js';\nimport * as module41 from '../../../../../js/output/common/Wrappers/maction.js';\nimport * as module42 from '../../../../../js/output/common/Wrappers/math.js';\nimport * as module43 from '../../../../../js/output/common/Wrappers/menclose.js';\nimport * as module44 from '../../../../../js/output/common/Wrappers/mfenced.js';\nimport * as module45 from '../../../../../js/output/common/Wrappers/mfrac.js';\nimport * as module46 from '../../../../../js/output/common/Wrappers/mglyph.js';\nimport * as module47 from '../../../../../js/output/common/Wrappers/mi.js';\nimport * as module48 from '../../../../../js/output/common/Wrappers/mmultiscripts.js';\nimport * as module49 from '../../../../../js/output/common/Wrappers/mn.js';\nimport * as module50 from '../../../../../js/output/common/Wrappers/mo.js';\nimport * as module51 from '../../../../../js/output/common/Wrappers/mpadded.js';\nimport * as module52 from '../../../../../js/output/common/Wrappers/mroot.js';\nimport * as module53 from '../../../../../js/output/common/Wrappers/mrow.js';\nimport * as module54 from '../../../../../js/output/common/Wrappers/ms.js';\nimport * as module55 from '../../../../../js/output/common/Wrappers/mspace.js';\nimport * as module56 from '../../../../../js/output/common/Wrappers/msqrt.js';\nimport * as module57 from '../../../../../js/output/common/Wrappers/msubsup.js';\nimport * as module58 from '../../../../../js/output/common/Wrappers/mtable.js';\nimport * as module59 from '../../../../../js/output/common/Wrappers/mtd.js';\nimport * as module60 from '../../../../../js/output/common/Wrappers/mtext.js';\nimport * as module61 from '../../../../../js/output/common/Wrappers/mtr.js';\nimport * as module62 from '../../../../../js/output/common/Wrappers/munderover.js';\nimport * as module63 from '../../../../../js/output/common/Wrappers/scriptbase.js';\nimport * as module64 from '../../../../../js/output/common/Wrappers/semantics.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('output/chtml', VERSION, 'output');\n}\n\ncombineWithMathJax({_: {\n output: {\n chtml_ts: module1,\n chtml: {\n FontData: module2,\n Notation: module3,\n Usage: module4,\n Wrapper: module5,\n WrapperFactory: module6,\n Wrappers_ts: module7,\n Wrappers: {\n TeXAtom: module8,\n TextNode: module9,\n maction: module10,\n math: module11,\n menclose: module12,\n mfenced: module13,\n mfrac: module14,\n mglyph: module15,\n mi: module16,\n mmultiscripts: module17,\n mn: module18,\n mo: module19,\n mpadded: module20,\n mroot: module21,\n mrow: module22,\n ms: module23,\n mspace: module24,\n msqrt: module25,\n msubsup: module26,\n mtable: module27,\n mtd: module28,\n mtext: module29,\n mtr: module30,\n munderover: module31,\n scriptbase: module32,\n semantics: module33\n }\n },\n common: {\n FontData: module34,\n Notation: module35,\n OutputJax: module36,\n Wrapper: module37,\n WrapperFactory: module38,\n Wrappers: {\n TeXAtom: module39,\n TextNode: module40,\n maction: module41,\n math: module42,\n menclose: module43,\n mfenced: module44,\n mfrac: module45,\n mglyph: module46,\n mi: module47,\n mmultiscripts: module48,\n mn: module49,\n mo: module50,\n mpadded: module51,\n mroot: module52,\n mrow: module53,\n ms: module54,\n mspace: module55,\n msqrt: module56,\n msubsup: module57,\n mtable: module58,\n mtd: module59,\n mtext: module60,\n mtr: module61,\n munderover: module62,\n scriptbase: module63,\n semantics: module64\n }\n }\n }\n}});\n","import './lib/chtml.js';\n\nimport {combineDefaults} from '../../../../js/components/global.js';\nimport {CHTML} from '../../../../js/output/chtml.js';\n\nif (MathJax.loader) {\n combineDefaults(MathJax.config.loader, 'output/chtml', {\n checkReady() {\n return MathJax.loader.load(\"output/chtml/fonts/tex\");\n }\n });\n}\n\nif (MathJax.startup) {\n MathJax.startup.registerConstructor('chtml', CHTML);\n MathJax.startup.useOutput('chtml');\n}\n","import {combineWithMathJax} from '../../../../../../../js/components/global.js';\nimport {VERSION} from '../../../../../../../js/components/version.js';\n\nimport * as module1 from '../../../../../../../js/output/chtml/fonts/tex.js';\nimport * as module2 from '../../../../../../../js/output/chtml/fonts/tex/bold-italic.js';\nimport * as module3 from '../../../../../../../js/output/chtml/fonts/tex/bold.js';\nimport * as module4 from '../../../../../../../js/output/chtml/fonts/tex/fraktur-bold.js';\nimport * as module5 from '../../../../../../../js/output/chtml/fonts/tex/fraktur.js';\nimport * as module6 from '../../../../../../../js/output/chtml/fonts/tex/italic.js';\nimport * as module7 from '../../../../../../../js/output/chtml/fonts/tex/largeop.js';\nimport * as module8 from '../../../../../../../js/output/chtml/fonts/tex/monospace.js';\nimport * as module9 from '../../../../../../../js/output/chtml/fonts/tex/normal.js';\nimport * as module10 from '../../../../../../../js/output/chtml/fonts/tex/sans-serif-bold-italic.js';\nimport * as module11 from '../../../../../../../js/output/chtml/fonts/tex/sans-serif-bold.js';\nimport * as module12 from '../../../../../../../js/output/chtml/fonts/tex/sans-serif-italic.js';\nimport * as module13 from '../../../../../../../js/output/chtml/fonts/tex/sans-serif.js';\nimport * as module14 from '../../../../../../../js/output/chtml/fonts/tex/smallop.js';\nimport * as module15 from '../../../../../../../js/output/chtml/fonts/tex/tex-calligraphic-bold.js';\nimport * as module16 from '../../../../../../../js/output/chtml/fonts/tex/tex-size3.js';\nimport * as module17 from '../../../../../../../js/output/chtml/fonts/tex/tex-size4.js';\nimport * as module18 from '../../../../../../../js/output/chtml/fonts/tex/tex-variant.js';\nimport * as module19 from '../../../../../../../js/output/common/fonts/tex/bold-italic.js';\nimport * as module20 from '../../../../../../../js/output/common/fonts/tex/bold.js';\nimport * as module21 from '../../../../../../../js/output/common/fonts/tex/delimiters.js';\nimport * as module22 from '../../../../../../../js/output/common/fonts/tex/double-struck.js';\nimport * as module23 from '../../../../../../../js/output/common/fonts/tex/fraktur-bold.js';\nimport * as module24 from '../../../../../../../js/output/common/fonts/tex/fraktur.js';\nimport * as module25 from '../../../../../../../js/output/common/fonts/tex/italic.js';\nimport * as module26 from '../../../../../../../js/output/common/fonts/tex/largeop.js';\nimport * as module27 from '../../../../../../../js/output/common/fonts/tex/monospace.js';\nimport * as module28 from '../../../../../../../js/output/common/fonts/tex/normal.js';\nimport * as module29 from '../../../../../../../js/output/common/fonts/tex/sans-serif-bold-italic.js';\nimport * as module30 from '../../../../../../../js/output/common/fonts/tex/sans-serif-bold.js';\nimport * as module31 from '../../../../../../../js/output/common/fonts/tex/sans-serif-italic.js';\nimport * as module32 from '../../../../../../../js/output/common/fonts/tex/sans-serif.js';\nimport * as module33 from '../../../../../../../js/output/common/fonts/tex/script-bold.js';\nimport * as module34 from '../../../../../../../js/output/common/fonts/tex/script.js';\nimport * as module35 from '../../../../../../../js/output/common/fonts/tex/smallop.js';\nimport * as module36 from '../../../../../../../js/output/common/fonts/tex/tex-calligraphic-bold.js';\nimport * as module37 from '../../../../../../../js/output/common/fonts/tex/tex-calligraphic.js';\nimport * as module38 from '../../../../../../../js/output/common/fonts/tex/tex-mathit.js';\nimport * as module39 from '../../../../../../../js/output/common/fonts/tex/tex-oldstyle-bold.js';\nimport * as module40 from '../../../../../../../js/output/common/fonts/tex/tex-oldstyle.js';\nimport * as module41 from '../../../../../../../js/output/common/fonts/tex/tex-size3.js';\nimport * as module42 from '../../../../../../../js/output/common/fonts/tex/tex-size4.js';\nimport * as module43 from '../../../../../../../js/output/common/fonts/tex/tex-variant.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('output/chtml/fonts/tex', VERSION, 'chtml-font');\n}\n\ncombineWithMathJax({_: {\n output: {\n chtml: {\n fonts: {\n tex_ts: module1,\n tex: {\n \"bold-italic\": module2,\n bold: module3,\n \"fraktur-bold\": module4,\n fraktur: module5,\n italic: module6,\n largeop: module7,\n monospace: module8,\n normal: module9,\n \"sans-serif-bold-italic\": module10,\n \"sans-serif-bold\": module11,\n \"sans-serif-italic\": module12,\n \"sans-serif\": module13,\n smallop: module14,\n \"tex-calligraphic-bold\": module15,\n \"tex-size3\": module16,\n \"tex-size4\": module17,\n \"tex-variant\": module18\n }\n }\n },\n common: {\n fonts: {\n tex: {\n \"bold-italic\": module19,\n bold: module20,\n delimiters: module21,\n \"double-struck\": module22,\n \"fraktur-bold\": module23,\n fraktur: module24,\n italic: module25,\n largeop: module26,\n monospace: module27,\n normal: module28,\n \"sans-serif-bold-italic\": module29,\n \"sans-serif-bold\": module30,\n \"sans-serif-italic\": module31,\n \"sans-serif\": module32,\n \"script-bold\": module33,\n script: module34,\n smallop: module35,\n \"tex-calligraphic-bold\": module36,\n \"tex-calligraphic\": module37,\n \"tex-mathit\": module38,\n \"tex-oldstyle-bold\": module39,\n \"tex-oldstyle\": module40,\n \"tex-size3\": module41,\n \"tex-size4\": module42,\n \"tex-variant\": module43\n }\n }\n }\n }\n}});\n","import './lib/tex.js';\n\nimport {combineDefaults} from '../../../../../../js/components/global.js';\nimport {Package} from '../../../../../../js/components/package.js';\nimport {selectOptionsFromKeys} from '../../../../../../js/util/Options.js';\nimport {TeXFont} from '../../../../../../js/output/chtml/fonts/tex.js';\n\nif (MathJax.startup) {\n combineDefaults(MathJax.config, 'chtml', {\n fontURL: Package.resolvePath('output/chtml/fonts/woff-v2', false)\n });\n const options = selectOptionsFromKeys(MathJax.config.chtml || {}, TeXFont.OPTIONS);\n combineDefaults(MathJax.config, 'chtml', {font: new TeXFont(options)});\n}\n","import {combineWithMathJax} from '../../../../js/components/global.js';\nimport {VERSION} from '../../../../js/components/version.js';\n\nimport * as module1 from '../../../../js/components/loader.js';\nimport * as module2 from '../../../../js/components/package.js';\nimport * as module3 from '../../../../js/components/startup.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('startup', VERSION, 'startup');\n}\n\ncombineWithMathJax({_: {\n components: {\n loader: module1,\n package: module2,\n startup: module3\n }\n}});\n","/*************************************************************\n *\n * Copyright (c) 2019-2021 The MathJax Consortium\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const dependencies = {\n 'a11y/semantic-enrich': ['input/mml', 'a11y/sre'],\n 'a11y/complexity': ['a11y/semantic-enrich'],\n 'a11y/explorer': ['a11y/semantic-enrich', 'ui/menu'],\n '[mml]/mml3': ['input/mml'],\n '[tex]/all-packages': ['input/tex-base'],\n '[tex]/action': ['input/tex-base', '[tex]/newcommand'],\n '[tex]/autoload': ['input/tex-base', '[tex]/require'],\n '[tex]/ams': ['input/tex-base'],\n '[tex]/amscd': ['input/tex-base'],\n '[tex]/bbox': ['input/tex-base', '[tex]/ams', '[tex]/newcommand'],\n '[tex]/boldsymbol': ['input/tex-base'],\n '[tex]/braket': ['input/tex-base'],\n '[tex]/bussproofs': ['input/tex-base'],\n '[tex]/cancel': ['input/tex-base', '[tex]/enclose'],\n '[tex]/centernot': ['input/tex-base'],\n '[tex]/color': ['input/tex-base'],\n '[tex]/colorv2': ['input/tex-base'],\n '[tex]/colortbl': ['input/tex-base', '[tex]/color'],\n '[tex]/configmacros': ['input/tex-base', '[tex]/newcommand'],\n '[tex]/enclose': ['input/tex-base'],\n '[tex]/extpfeil': ['input/tex-base', '[tex]/newcommand', '[tex]/ams'],\n '[tex]/html': ['input/tex-base'],\n '[tex]/mathtools': ['input/tex-base', '[tex]/newcommand', '[tex]/ams'],\n '[tex]/mhchem': ['input/tex-base', '[tex]/ams'],\n '[tex]/newcommand': ['input/tex-base'],\n '[tex]/noerrors': ['input/tex-base'],\n '[tex]/noundefined': ['input/tex-base'],\n '[tex]/physics': ['input/tex-base'],\n '[tex]/require': ['input/tex-base'],\n '[tex]/setoptions': ['input/tex-base'],\n '[tex]/tagformat': ['input/tex-base'],\n '[tex]/textcomp': ['input/tex-base', '[tex]/textmacros'],\n '[tex]/textmacros': ['input/tex-base'],\n '[tex]/unicode': ['input/tex-base'],\n '[tex]/verb': ['input/tex-base'],\n '[tex]/cases': ['[tex]/empheq'],\n '[tex]/empheq': ['input/tex-base', '[tex]/ams']\n};\n\nexport const paths = {\n tex: '[mathjax]/input/tex/extensions',\n mml: '[mathjax]/input/mml/extensions',\n sre: '[mathjax]/sre/mathmaps'\n};\n\nconst allPackages = Array.from(Object.keys(dependencies))\n .filter(name => name.substr(0,5) === '[tex]' &&\n name !== '[tex]/autoload' &&\n name !== '[tex]/colorv2' &&\n name !== '[tex]/all-packages');\n\nexport const provides = {\n 'startup': ['loader'],\n 'input/tex': [\n 'input/tex-base',\n '[tex]/ams',\n '[tex]/newcommand',\n '[tex]/noundefined',\n '[tex]/require',\n '[tex]/autoload',\n '[tex]/configmacros'\n ],\n 'input/tex-full': [\n 'input/tex-base',\n '[tex]/all-packages',\n ...allPackages\n ],\n '[tex]/all-packages': allPackages\n};\n\n//\n// Compatibility with v3.0 names for TeX extensions\n//\nexport const compatibility = {\n '[tex]/amsCd': '[tex]/amscd',\n '[tex]/colorV2': '[tex]/colorv2',\n '[tex]/configMacros': '[tex]/configmacros',\n '[tex]/tagFormat': '[tex]/tagformat'\n};\n","import './lib/startup.js';\n\nimport {combineDefaults} from '../../../js/components/global.js';\nimport {dependencies, paths, provides, compatibility} from '../dependencies.js';\n\ncombineDefaults(MathJax.config.loader, 'dependencies', dependencies);\ncombineDefaults(MathJax.config.loader, 'paths', paths);\ncombineDefaults(MathJax.config.loader, 'provides', provides);\ncombineDefaults(MathJax.config.loader, 'source', compatibility);\n","import './init.js';\nimport {Loader, CONFIG} from '../../../js/components/loader.js';\n\nLoader.preLoad('loader');\n\nLoader.load(...CONFIG.load)\n .then(() => CONFIG.ready())\n .catch(error => CONFIG.failed(error));\n","import {combineWithMathJax} from '../../../../../js/components/global.js';\nimport {VERSION} from '../../../../../js/components/version.js';\n\nimport * as module1 from '../../../../../js/ui/menu/MJContextMenu.js';\nimport * as module2 from '../../../../../js/ui/menu/Menu.js';\nimport * as module3 from '../../../../../js/ui/menu/MenuHandler.js';\nimport * as module4 from '../../../../../js/ui/menu/MmlVisitor.js';\nimport * as module5 from '../../../../../js/ui/menu/SelectableInfo.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('ui/menu', VERSION, 'ui');\n}\n\ncombineWithMathJax({_: {\n ui: {\n menu: {\n MJContextMenu: module1,\n Menu: module2,\n MenuHandler: module3,\n MmlVisitor: module4,\n SelectableInfo: module5\n }\n }\n}});\n","import './lib/menu.js';\n\nimport {MenuHandler} from '../../../../js/ui/menu/MenuHandler.js';\n\nif (MathJax.startup && typeof window !== 'undefined') {\n MathJax.startup.extendHandler(handler => MenuHandler(handler), 20);\n}\n","import {combineWithMathJax} from '../../../../../js/components/global.js';\nimport {VERSION} from '../../../../../js/components/version.js';\n\nimport * as module1 from '../../../../../js/ui/safe/SafeHandler.js';\nimport * as module2 from '../../../../../js/ui/safe/SafeMethods.js';\nimport * as module3 from '../../../../../js/ui/safe/safe.js';\n\nif (MathJax.loader) {\n MathJax.loader.checkVersion('ui/safe', VERSION, 'ui');\n}\n\ncombineWithMathJax({_: {\n ui: {\n safe: {\n SafeHandler: module1,\n SafeMethods: module2,\n safe: module3\n }\n }\n}});\n","import './lib/safe.js';\n\nimport {SafeHandler} from '../../../../js/ui/safe/SafeHandler.js';\n\nif (MathJax.startup && typeof window !== 'undefined') {\n MathJax.startup.extendHandler(handler => SafeHandler(handler));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MathMaps = new Map();\nexports.default = MathMaps;\n//# sourceMappingURL=mathmaps.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sreReady = exports.Sre = void 0;\nvar Api = __importStar(require(\"speech-rule-engine/js/common/system.js\"));\nvar WalkerFactory = __importStar(require(\"speech-rule-engine/js/walker/walker_factory.js\"));\nvar SpeechGeneratorFactory = __importStar(require(\"speech-rule-engine/js/speech_generator/speech_generator_factory.js\"));\nvar EngineConst = __importStar(require(\"speech-rule-engine/js/common/engine_const.js\"));\nvar engine_js_1 = __importDefault(require(\"speech-rule-engine/js/common/engine.js\"));\nvar clearspeak_preferences_js_1 = require(\"speech-rule-engine/js/speech_rules/clearspeak_preferences.js\");\nvar HighlighterFactory = __importStar(require(\"speech-rule-engine/js/highlighter/highlighter_factory.js\"));\nvar variables_js_1 = require(\"speech-rule-engine/js/common/variables.js\");\nvar mathmaps_js_1 = __importDefault(require(\"./mathmaps.js\"));\nvar Sre;\n(function (Sre) {\n Sre.locales = variables_js_1.Variables.LOCALES;\n Sre.sreReady = Api.engineReady;\n Sre.setupEngine = Api.setupEngine;\n Sre.engineSetup = Api.engineSetup;\n Sre.toEnriched = Api.toEnriched;\n Sre.toSpeech = Api.toSpeech;\n Sre.clearspeakPreferences = clearspeak_preferences_js_1.ClearspeakPreferences;\n Sre.getHighlighter = HighlighterFactory.highlighter;\n Sre.getSpeechGenerator = SpeechGeneratorFactory.generator;\n Sre.getWalker = WalkerFactory.walker;\n Sre.clearspeakStyle = function () {\n return EngineConst.DOMAIN_TO_STYLES['clearspeak'];\n };\n Sre.preloadLocales = function (locale) {\n return __awaiter(this, void 0, void 0, function () {\n var json;\n return __generator(this, function (_a) {\n json = mathmaps_js_1.default.get(locale);\n return [2, json ? new Promise(function (res, _rej) { return res(JSON.stringify(json)); }) :\n Api.localeLoader()(locale)];\n });\n });\n };\n})(Sre = exports.Sre || (exports.Sre = {}));\nexports.sreReady = Sre.sreReady;\nengine_js_1.default.getInstance().delay = true;\nexports.default = Sre;\n//# sourceMappingURL=sre.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTMLAdaptor = void 0;\nvar DOMAdaptor_js_1 = require(\"../core/DOMAdaptor.js\");\nvar HTMLAdaptor = (function (_super) {\n __extends(HTMLAdaptor, _super);\n function HTMLAdaptor(window) {\n var _this = _super.call(this, window.document) || this;\n _this.window = window;\n _this.parser = new window.DOMParser();\n return _this;\n }\n HTMLAdaptor.prototype.parse = function (text, format) {\n if (format === void 0) { format = 'text/html'; }\n return this.parser.parseFromString(text, format);\n };\n HTMLAdaptor.prototype.create = function (kind, ns) {\n return (ns ?\n this.document.createElementNS(ns, kind) :\n this.document.createElement(kind));\n };\n HTMLAdaptor.prototype.text = function (text) {\n return this.document.createTextNode(text);\n };\n HTMLAdaptor.prototype.head = function (doc) {\n return doc.head || doc;\n };\n HTMLAdaptor.prototype.body = function (doc) {\n return doc.body || doc;\n };\n HTMLAdaptor.prototype.root = function (doc) {\n return doc.documentElement || doc;\n };\n HTMLAdaptor.prototype.doctype = function (doc) {\n return (doc.doctype ? \"\") : '');\n };\n HTMLAdaptor.prototype.tags = function (node, name, ns) {\n if (ns === void 0) { ns = null; }\n var nodes = (ns ? node.getElementsByTagNameNS(ns, name) : node.getElementsByTagName(name));\n return Array.from(nodes);\n };\n HTMLAdaptor.prototype.getElements = function (nodes, _document) {\n var e_1, _a;\n var containers = [];\n try {\n for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {\n var node = nodes_1_1.value;\n if (typeof (node) === 'string') {\n containers = containers.concat(Array.from(this.document.querySelectorAll(node)));\n }\n else if (Array.isArray(node)) {\n containers = containers.concat(Array.from(node));\n }\n else if (node instanceof this.window.NodeList || node instanceof this.window.HTMLCollection) {\n containers = containers.concat(Array.from(node));\n }\n else {\n containers.push(node);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return containers;\n };\n HTMLAdaptor.prototype.contains = function (container, node) {\n return container.contains(node);\n };\n HTMLAdaptor.prototype.parent = function (node) {\n return node.parentNode;\n };\n HTMLAdaptor.prototype.append = function (node, child) {\n return node.appendChild(child);\n };\n HTMLAdaptor.prototype.insert = function (nchild, ochild) {\n return this.parent(ochild).insertBefore(nchild, ochild);\n };\n HTMLAdaptor.prototype.remove = function (child) {\n return this.parent(child).removeChild(child);\n };\n HTMLAdaptor.prototype.replace = function (nnode, onode) {\n return this.parent(onode).replaceChild(nnode, onode);\n };\n HTMLAdaptor.prototype.clone = function (node) {\n return node.cloneNode(true);\n };\n HTMLAdaptor.prototype.split = function (node, n) {\n return node.splitText(n);\n };\n HTMLAdaptor.prototype.next = function (node) {\n return node.nextSibling;\n };\n HTMLAdaptor.prototype.previous = function (node) {\n return node.previousSibling;\n };\n HTMLAdaptor.prototype.firstChild = function (node) {\n return node.firstChild;\n };\n HTMLAdaptor.prototype.lastChild = function (node) {\n return node.lastChild;\n };\n HTMLAdaptor.prototype.childNodes = function (node) {\n return Array.from(node.childNodes);\n };\n HTMLAdaptor.prototype.childNode = function (node, i) {\n return node.childNodes[i];\n };\n HTMLAdaptor.prototype.kind = function (node) {\n var n = node.nodeType;\n return (n === 1 || n === 3 || n === 8 ? node.nodeName.toLowerCase() : '');\n };\n HTMLAdaptor.prototype.value = function (node) {\n return node.nodeValue || '';\n };\n HTMLAdaptor.prototype.textContent = function (node) {\n return node.textContent;\n };\n HTMLAdaptor.prototype.innerHTML = function (node) {\n return node.innerHTML;\n };\n HTMLAdaptor.prototype.outerHTML = function (node) {\n return node.outerHTML;\n };\n HTMLAdaptor.prototype.serializeXML = function (node) {\n var serializer = new this.window.XMLSerializer();\n return serializer.serializeToString(node);\n };\n HTMLAdaptor.prototype.setAttribute = function (node, name, value, ns) {\n if (ns === void 0) { ns = null; }\n if (!ns) {\n return node.setAttribute(name, value);\n }\n name = ns.replace(/.*\\//, '') + ':' + name.replace(/^.*:/, '');\n return node.setAttributeNS(ns, name, value);\n };\n HTMLAdaptor.prototype.getAttribute = function (node, name) {\n return node.getAttribute(name);\n };\n HTMLAdaptor.prototype.removeAttribute = function (node, name) {\n return node.removeAttribute(name);\n };\n HTMLAdaptor.prototype.hasAttribute = function (node, name) {\n return node.hasAttribute(name);\n };\n HTMLAdaptor.prototype.allAttributes = function (node) {\n return Array.from(node.attributes).map(function (x) {\n return { name: x.name, value: x.value };\n });\n };\n HTMLAdaptor.prototype.addClass = function (node, name) {\n if (node.classList) {\n node.classList.add(name);\n }\n else {\n node.className = (node.className + ' ' + name).trim();\n }\n };\n HTMLAdaptor.prototype.removeClass = function (node, name) {\n if (node.classList) {\n node.classList.remove(name);\n }\n else {\n node.className = node.className.split(/ /).filter(function (c) { return c !== name; }).join(' ');\n }\n };\n HTMLAdaptor.prototype.hasClass = function (node, name) {\n if (node.classList) {\n return node.classList.contains(name);\n }\n return node.className.split(/ /).indexOf(name) >= 0;\n };\n HTMLAdaptor.prototype.setStyle = function (node, name, value) {\n node.style[name] = value;\n };\n HTMLAdaptor.prototype.getStyle = function (node, name) {\n return node.style[name];\n };\n HTMLAdaptor.prototype.allStyles = function (node) {\n return node.style.cssText;\n };\n HTMLAdaptor.prototype.insertRules = function (node, rules) {\n var e_2, _a;\n try {\n for (var _b = __values(rules.reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var rule = _c.value;\n try {\n node.sheet.insertRule(rule, 0);\n }\n catch (e) {\n console.warn(\"MathJax: can't insert css rule '\".concat(rule, \"': \").concat(e.message));\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n HTMLAdaptor.prototype.fontSize = function (node) {\n var style = this.window.getComputedStyle(node);\n return parseFloat(style.fontSize);\n };\n HTMLAdaptor.prototype.fontFamily = function (node) {\n var style = this.window.getComputedStyle(node);\n return style.fontFamily || '';\n };\n HTMLAdaptor.prototype.nodeSize = function (node, em, local) {\n if (em === void 0) { em = 1; }\n if (local === void 0) { local = false; }\n if (local && node.getBBox) {\n var _a = node.getBBox(), width = _a.width, height = _a.height;\n return [width / em, height / em];\n }\n return [node.offsetWidth / em, node.offsetHeight / em];\n };\n HTMLAdaptor.prototype.nodeBBox = function (node) {\n var _a = node.getBoundingClientRect(), left = _a.left, right = _a.right, top = _a.top, bottom = _a.bottom;\n return { left: left, right: right, top: top, bottom: bottom };\n };\n return HTMLAdaptor;\n}(DOMAdaptor_js_1.AbstractDOMAdaptor));\nexports.HTMLAdaptor = HTMLAdaptor;\n//# sourceMappingURL=HTMLAdaptor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.browserAdaptor = void 0;\nvar HTMLAdaptor_js_1 = require(\"./HTMLAdaptor.js\");\nfunction browserAdaptor() {\n return new HTMLAdaptor_js_1.HTMLAdaptor(window);\n}\nexports.browserAdaptor = browserAdaptor;\n//# sourceMappingURL=browserAdaptor.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MathJax = exports.combineWithMathJax = exports.combineDefaults = exports.combineConfig = exports.isObject = void 0;\nvar version_js_1 = require(\"./version.js\");\nfunction isObject(x) {\n return typeof x === 'object' && x !== null;\n}\nexports.isObject = isObject;\nfunction combineConfig(dst, src) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.keys(src)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n if (id === '__esModule')\n continue;\n if (isObject(dst[id]) && isObject(src[id]) &&\n !(src[id] instanceof Promise)) {\n combineConfig(dst[id], src[id]);\n }\n else if (src[id] !== null && src[id] !== undefined) {\n dst[id] = src[id];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return dst;\n}\nexports.combineConfig = combineConfig;\nfunction combineDefaults(dst, name, src) {\n var e_2, _a;\n if (!dst[name]) {\n dst[name] = {};\n }\n dst = dst[name];\n try {\n for (var _b = __values(Object.keys(src)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n if (isObject(dst[id]) && isObject(src[id])) {\n combineDefaults(dst, id, src[id]);\n }\n else if (dst[id] == null && src[id] != null) {\n dst[id] = src[id];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return dst;\n}\nexports.combineDefaults = combineDefaults;\nfunction combineWithMathJax(config) {\n return combineConfig(exports.MathJax, config);\n}\nexports.combineWithMathJax = combineWithMathJax;\nif (typeof global.MathJax === 'undefined') {\n global.MathJax = {};\n}\nif (!global.MathJax.version) {\n global.MathJax = {\n version: version_js_1.VERSION,\n _: {},\n config: global.MathJax\n };\n}\nexports.MathJax = global.MathJax;\n//# sourceMappingURL=global.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar e_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONFIG = exports.MathJax = exports.Loader = exports.PathFilters = exports.PackageError = exports.Package = void 0;\nvar global_js_1 = require(\"./global.js\");\nvar package_js_1 = require(\"./package.js\");\nvar package_js_2 = require(\"./package.js\");\nObject.defineProperty(exports, \"Package\", { enumerable: true, get: function () { return package_js_2.Package; } });\nObject.defineProperty(exports, \"PackageError\", { enumerable: true, get: function () { return package_js_2.PackageError; } });\nvar FunctionList_js_1 = require(\"../util/FunctionList.js\");\nexports.PathFilters = {\n source: function (data) {\n if (exports.CONFIG.source.hasOwnProperty(data.name)) {\n data.name = exports.CONFIG.source[data.name];\n }\n return true;\n },\n normalize: function (data) {\n var name = data.name;\n if (!name.match(/^(?:[a-z]+:\\/)?\\/|[a-z]:\\\\|\\[/i)) {\n data.name = '[mathjax]/' + name.replace(/^\\.\\//, '');\n }\n if (data.addExtension && !name.match(/\\.[^\\/]+$/)) {\n data.name += '.js';\n }\n return true;\n },\n prefix: function (data) {\n var match;\n while ((match = data.name.match(/^\\[([^\\]]*)\\]/))) {\n if (!exports.CONFIG.paths.hasOwnProperty(match[1]))\n break;\n data.name = exports.CONFIG.paths[match[1]] + data.name.substr(match[0].length);\n }\n return true;\n }\n};\nvar Loader;\n(function (Loader) {\n var VERSION = global_js_1.MathJax.version;\n Loader.versions = new Map();\n function ready() {\n var e_2, _a;\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n if (names.length === 0) {\n names = Array.from(package_js_1.Package.packages.keys());\n }\n var promises = [];\n try {\n for (var names_1 = __values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name_1 = names_1_1.value;\n var extension = package_js_1.Package.packages.get(name_1) || new package_js_1.Package(name_1, true);\n promises.push(extension.promise);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return Promise.all(promises);\n }\n Loader.ready = ready;\n function load() {\n var e_3, _a;\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n if (names.length === 0) {\n return Promise.resolve();\n }\n var promises = [];\n var _loop_1 = function (name_2) {\n var extension = package_js_1.Package.packages.get(name_2);\n if (!extension) {\n extension = new package_js_1.Package(name_2);\n extension.provides(exports.CONFIG.provides[name_2]);\n }\n extension.checkNoLoad();\n promises.push(extension.promise.then(function () {\n if (!exports.CONFIG.versionWarnings)\n return;\n if (extension.isLoaded && !Loader.versions.has(package_js_1.Package.resolvePath(name_2))) {\n console.warn(\"No version information available for component \".concat(name_2));\n }\n }));\n };\n try {\n for (var names_2 = __values(names), names_2_1 = names_2.next(); !names_2_1.done; names_2_1 = names_2.next()) {\n var name_2 = names_2_1.value;\n _loop_1(name_2);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (names_2_1 && !names_2_1.done && (_a = names_2.return)) _a.call(names_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n package_js_1.Package.loadAll();\n return Promise.all(promises);\n }\n Loader.load = load;\n function preLoad() {\n var e_4, _a;\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n try {\n for (var names_3 = __values(names), names_3_1 = names_3.next(); !names_3_1.done; names_3_1 = names_3.next()) {\n var name_3 = names_3_1.value;\n var extension = package_js_1.Package.packages.get(name_3);\n if (!extension) {\n extension = new package_js_1.Package(name_3, true);\n extension.provides(exports.CONFIG.provides[name_3]);\n }\n extension.loaded();\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (names_3_1 && !names_3_1.done && (_a = names_3.return)) _a.call(names_3);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n Loader.preLoad = preLoad;\n function defaultReady() {\n if (typeof exports.MathJax.startup !== 'undefined') {\n exports.MathJax.config.startup.ready();\n }\n }\n Loader.defaultReady = defaultReady;\n function getRoot() {\n var root = __dirname + '/../../es5';\n if (typeof document !== 'undefined') {\n var script = document.currentScript || document.getElementById('MathJax-script');\n if (script) {\n root = script.src.replace(/\\/[^\\/]*$/, '');\n }\n }\n return root;\n }\n Loader.getRoot = getRoot;\n function checkVersion(name, version, _type) {\n Loader.versions.set(package_js_1.Package.resolvePath(name), VERSION);\n if (exports.CONFIG.versionWarnings && version !== VERSION) {\n console.warn(\"Component \".concat(name, \" uses \").concat(version, \" of MathJax; version in use is \").concat(VERSION));\n return true;\n }\n return false;\n }\n Loader.checkVersion = checkVersion;\n Loader.pathFilters = new FunctionList_js_1.FunctionList();\n Loader.pathFilters.add(exports.PathFilters.source, 0);\n Loader.pathFilters.add(exports.PathFilters.normalize, 10);\n Loader.pathFilters.add(exports.PathFilters.prefix, 20);\n})(Loader = exports.Loader || (exports.Loader = {}));\nexports.MathJax = global_js_1.MathJax;\nif (typeof exports.MathJax.loader === 'undefined') {\n (0, global_js_1.combineDefaults)(exports.MathJax.config, 'loader', {\n paths: {\n mathjax: Loader.getRoot()\n },\n source: {},\n dependencies: {},\n provides: {},\n load: [],\n ready: Loader.defaultReady.bind(Loader),\n failed: function (error) { return console.log(\"MathJax(\".concat(error.package || '?', \"): \").concat(error.message)); },\n require: null,\n pathFilters: [],\n versionWarnings: true\n });\n (0, global_js_1.combineWithMathJax)({\n loader: Loader\n });\n try {\n for (var _b = __values(exports.MathJax.config.loader.pathFilters), _c = _b.next(); !_c.done; _c = _b.next()) {\n var filter = _c.value;\n if (Array.isArray(filter)) {\n Loader.pathFilters.add(filter[0], filter[1]);\n }\n else {\n Loader.pathFilters.add(filter);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\nexports.CONFIG = exports.MathJax.config.loader;\n//# sourceMappingURL=loader.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Package = exports.PackageError = void 0;\nvar loader_js_1 = require(\"./loader.js\");\nvar PackageError = (function (_super) {\n __extends(PackageError, _super);\n function PackageError(message, name) {\n var _this = _super.call(this, message) || this;\n _this.package = name;\n return _this;\n }\n return PackageError;\n}(Error));\nexports.PackageError = PackageError;\nvar Package = (function () {\n function Package(name, noLoad) {\n if (noLoad === void 0) { noLoad = false; }\n this.isLoaded = false;\n this.isLoading = false;\n this.hasFailed = false;\n this.dependents = [];\n this.dependencies = [];\n this.dependencyCount = 0;\n this.provided = [];\n this.name = name;\n this.noLoad = noLoad;\n Package.packages.set(name, this);\n this.promise = this.makePromise(this.makeDependencies());\n }\n Object.defineProperty(Package.prototype, \"canLoad\", {\n get: function () {\n return this.dependencyCount === 0 && !this.noLoad && !this.isLoading && !this.hasFailed;\n },\n enumerable: false,\n configurable: true\n });\n Package.resolvePath = function (name, addExtension) {\n if (addExtension === void 0) { addExtension = true; }\n var data = { name: name, original: name, addExtension: addExtension };\n loader_js_1.Loader.pathFilters.execute(data);\n return data.name;\n };\n Package.loadAll = function () {\n var e_1, _a;\n try {\n for (var _b = __values(this.packages.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var extension = _c.value;\n if (extension.canLoad) {\n extension.load();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n Package.prototype.makeDependencies = function () {\n var e_2, _a;\n var promises = [];\n var map = Package.packages;\n var noLoad = this.noLoad;\n var name = this.name;\n var dependencies = [];\n if (loader_js_1.CONFIG.dependencies.hasOwnProperty(name)) {\n dependencies.push.apply(dependencies, __spreadArray([], __read(loader_js_1.CONFIG.dependencies[name]), false));\n }\n else if (name !== 'core') {\n dependencies.push('core');\n }\n try {\n for (var dependencies_1 = __values(dependencies), dependencies_1_1 = dependencies_1.next(); !dependencies_1_1.done; dependencies_1_1 = dependencies_1.next()) {\n var dependent = dependencies_1_1.value;\n var extension = map.get(dependent) || new Package(dependent, noLoad);\n if (this.dependencies.indexOf(extension) < 0) {\n extension.addDependent(this, noLoad);\n this.dependencies.push(extension);\n if (!extension.isLoaded) {\n this.dependencyCount++;\n promises.push(extension.promise);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (dependencies_1_1 && !dependencies_1_1.done && (_a = dependencies_1.return)) _a.call(dependencies_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return promises;\n };\n Package.prototype.makePromise = function (promises) {\n var _this = this;\n var promise = new Promise((function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n }));\n var config = (loader_js_1.CONFIG[this.name] || {});\n if (config.ready) {\n promise = promise.then(function (_name) { return config.ready(_this.name); });\n }\n if (promises.length) {\n promises.push(promise);\n promise = Promise.all(promises).then(function (names) { return names.join(', '); });\n }\n if (config.failed) {\n promise.catch(function (message) { return config.failed(new PackageError(message, _this.name)); });\n }\n return promise;\n };\n Package.prototype.load = function () {\n if (!this.isLoaded && !this.isLoading && !this.noLoad) {\n this.isLoading = true;\n var url = Package.resolvePath(this.name);\n if (loader_js_1.CONFIG.require) {\n this.loadCustom(url);\n }\n else {\n this.loadScript(url);\n }\n }\n };\n Package.prototype.loadCustom = function (url) {\n var _this = this;\n try {\n var result = loader_js_1.CONFIG.require(url);\n if (result instanceof Promise) {\n result.then(function () { return _this.checkLoad(); })\n .catch(function (err) { return _this.failed('Can\\'t load \"' + url + '\"\\n' + err.message.trim()); });\n }\n else {\n this.checkLoad();\n }\n }\n catch (err) {\n this.failed(err.message);\n }\n };\n Package.prototype.loadScript = function (url) {\n var _this = this;\n var script = document.createElement('script');\n script.src = url;\n script.charset = 'UTF-8';\n script.onload = function (_event) { return _this.checkLoad(); };\n script.onerror = function (_event) { return _this.failed('Can\\'t load \"' + url + '\"'); };\n document.head.appendChild(script);\n };\n Package.prototype.loaded = function () {\n var e_3, _a, e_4, _b;\n this.isLoaded = true;\n this.isLoading = false;\n try {\n for (var _c = __values(this.dependents), _d = _c.next(); !_d.done; _d = _c.next()) {\n var dependent = _d.value;\n dependent.requirementSatisfied();\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var _e = __values(this.provided), _f = _e.next(); !_f.done; _f = _e.next()) {\n var provided = _f.value;\n provided.loaded();\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_4) throw e_4.error; }\n }\n this.resolve(this.name);\n };\n Package.prototype.failed = function (message) {\n this.hasFailed = true;\n this.isLoading = false;\n this.reject(new PackageError(message, this.name));\n };\n Package.prototype.checkLoad = function () {\n var _this = this;\n var config = (loader_js_1.CONFIG[this.name] || {});\n var checkReady = config.checkReady || (function () { return Promise.resolve(); });\n checkReady().then(function () { return _this.loaded(); })\n .catch(function (message) { return _this.failed(message); });\n };\n Package.prototype.requirementSatisfied = function () {\n if (this.dependencyCount) {\n this.dependencyCount--;\n if (this.canLoad) {\n this.load();\n }\n }\n };\n Package.prototype.provides = function (names) {\n var e_5, _a;\n if (names === void 0) { names = []; }\n try {\n for (var names_1 = __values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name_1 = names_1_1.value;\n var provided = Package.packages.get(name_1);\n if (!provided) {\n if (!loader_js_1.CONFIG.dependencies[name_1]) {\n loader_js_1.CONFIG.dependencies[name_1] = [];\n }\n loader_js_1.CONFIG.dependencies[name_1].push(name_1);\n provided = new Package(name_1, true);\n provided.isLoading = true;\n }\n this.provided.push(provided);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n };\n Package.prototype.addDependent = function (extension, noLoad) {\n this.dependents.push(extension);\n if (!noLoad) {\n this.checkNoLoad();\n }\n };\n Package.prototype.checkNoLoad = function () {\n var e_6, _a;\n if (this.noLoad) {\n this.noLoad = false;\n try {\n for (var _b = __values(this.dependencies), _c = _b.next(); !_c.done; _c = _b.next()) {\n var dependency = _c.value;\n dependency.checkNoLoad();\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n };\n Package.packages = new Map();\n return Package;\n}());\nexports.Package = Package;\n//# sourceMappingURL=package.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONFIG = exports.MathJax = exports.Startup = void 0;\nvar global_js_1 = require(\"./global.js\");\nvar PrioritizedList_js_1 = require(\"../util/PrioritizedList.js\");\nvar Options_js_1 = require(\"../util/Options.js\");\nvar Startup;\n(function (Startup) {\n var extensions = new PrioritizedList_js_1.PrioritizedList();\n var visitor;\n var mathjax;\n Startup.constructors = {};\n Startup.input = [];\n Startup.output = null;\n Startup.handler = null;\n Startup.adaptor = null;\n Startup.elements = null;\n Startup.document = null;\n Startup.promise = new Promise(function (resolve, reject) {\n Startup.promiseResolve = resolve;\n Startup.promiseReject = reject;\n });\n Startup.pagePromise = new Promise(function (resolve, _reject) {\n var doc = global.document;\n if (!doc || !doc.readyState || doc.readyState === 'complete' || doc.readyState === 'interactive') {\n resolve();\n }\n else {\n var listener = function () { return resolve(); };\n doc.defaultView.addEventListener('load', listener, true);\n doc.defaultView.addEventListener('DOMContentLoaded', listener, true);\n }\n });\n function toMML(node) {\n return visitor.visitTree(node, Startup.document);\n }\n Startup.toMML = toMML;\n function registerConstructor(name, constructor) {\n Startup.constructors[name] = constructor;\n }\n Startup.registerConstructor = registerConstructor;\n function useHandler(name, force) {\n if (force === void 0) { force = false; }\n if (!exports.CONFIG.handler || force) {\n exports.CONFIG.handler = name;\n }\n }\n Startup.useHandler = useHandler;\n function useAdaptor(name, force) {\n if (force === void 0) { force = false; }\n if (!exports.CONFIG.adaptor || force) {\n exports.CONFIG.adaptor = name;\n }\n }\n Startup.useAdaptor = useAdaptor;\n function useInput(name, force) {\n if (force === void 0) { force = false; }\n if (!inputSpecified || force) {\n exports.CONFIG.input.push(name);\n }\n }\n Startup.useInput = useInput;\n function useOutput(name, force) {\n if (force === void 0) { force = false; }\n if (!exports.CONFIG.output || force) {\n exports.CONFIG.output = name;\n }\n }\n Startup.useOutput = useOutput;\n function extendHandler(extend, priority) {\n if (priority === void 0) { priority = 10; }\n extensions.add(extend, priority);\n }\n Startup.extendHandler = extendHandler;\n function defaultReady() {\n getComponents();\n makeMethods();\n Startup.pagePromise\n .then(function () { return exports.CONFIG.pageReady(); })\n .then(function () { return Startup.promiseResolve(); })\n .catch(function (err) { return Startup.promiseReject(err); });\n }\n Startup.defaultReady = defaultReady;\n function defaultPageReady() {\n return (exports.CONFIG.typeset && exports.MathJax.typesetPromise ?\n exports.MathJax.typesetPromise(exports.CONFIG.elements) :\n Promise.resolve());\n }\n Startup.defaultPageReady = defaultPageReady;\n function getComponents() {\n visitor = new exports.MathJax._.core.MmlTree.SerializedMmlVisitor.SerializedMmlVisitor();\n mathjax = exports.MathJax._.mathjax.mathjax;\n Startup.input = getInputJax();\n Startup.output = getOutputJax();\n Startup.adaptor = getAdaptor();\n if (Startup.handler) {\n mathjax.handlers.unregister(Startup.handler);\n }\n Startup.handler = getHandler();\n if (Startup.handler) {\n mathjax.handlers.register(Startup.handler);\n Startup.document = getDocument();\n }\n }\n Startup.getComponents = getComponents;\n function makeMethods() {\n var e_1, _a;\n if (Startup.input && Startup.output) {\n makeTypesetMethods();\n }\n var oname = (Startup.output ? Startup.output.name.toLowerCase() : '');\n try {\n for (var input_1 = __values(Startup.input), input_1_1 = input_1.next(); !input_1_1.done; input_1_1 = input_1.next()) {\n var jax = input_1_1.value;\n var iname = jax.name.toLowerCase();\n makeMmlMethods(iname, jax);\n makeResetMethod(iname, jax);\n if (Startup.output) {\n makeOutputMethods(iname, oname, jax);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (input_1_1 && !input_1_1.done && (_a = input_1.return)) _a.call(input_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n Startup.makeMethods = makeMethods;\n function makeTypesetMethods() {\n exports.MathJax.typeset = function (elements) {\n if (elements === void 0) { elements = null; }\n Startup.document.options.elements = elements;\n Startup.document.reset();\n Startup.document.render();\n };\n exports.MathJax.typesetPromise = function (elements) {\n if (elements === void 0) { elements = null; }\n Startup.document.options.elements = elements;\n Startup.document.reset();\n return mathjax.handleRetriesFor(function () {\n Startup.document.render();\n });\n };\n exports.MathJax.typesetClear = function (elements) {\n if (elements === void 0) { elements = null; }\n if (elements) {\n Startup.document.clearMathItemsWithin(elements);\n }\n else {\n Startup.document.clear();\n }\n };\n }\n Startup.makeTypesetMethods = makeTypesetMethods;\n function makeOutputMethods(iname, oname, input) {\n var name = iname + '2' + oname;\n exports.MathJax[name] =\n function (math, options) {\n if (options === void 0) { options = {}; }\n options.format = input.name;\n return Startup.document.convert(math, options);\n };\n exports.MathJax[name + 'Promise'] =\n function (math, options) {\n if (options === void 0) { options = {}; }\n options.format = input.name;\n return mathjax.handleRetriesFor(function () { return Startup.document.convert(math, options); });\n };\n exports.MathJax[oname + 'Stylesheet'] = function () { return Startup.output.styleSheet(Startup.document); };\n if ('getMetricsFor' in Startup.output) {\n exports.MathJax.getMetricsFor = function (node, display) {\n return Startup.output.getMetricsFor(node, display);\n };\n }\n }\n Startup.makeOutputMethods = makeOutputMethods;\n function makeMmlMethods(name, input) {\n var STATE = exports.MathJax._.core.MathItem.STATE;\n exports.MathJax[name + '2mml'] =\n function (math, options) {\n if (options === void 0) { options = {}; }\n options.end = STATE.CONVERT;\n options.format = input.name;\n return toMML(Startup.document.convert(math, options));\n };\n exports.MathJax[name + '2mmlPromise'] =\n function (math, options) {\n if (options === void 0) { options = {}; }\n options.end = STATE.CONVERT;\n options.format = input.name;\n return mathjax.handleRetriesFor(function () { return toMML(Startup.document.convert(math, options)); });\n };\n }\n Startup.makeMmlMethods = makeMmlMethods;\n function makeResetMethod(name, input) {\n exports.MathJax[name + 'Reset'] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return input.reset.apply(input, __spreadArray([], __read(args), false));\n };\n }\n Startup.makeResetMethod = makeResetMethod;\n function getInputJax() {\n var e_2, _a;\n var jax = [];\n try {\n for (var _b = __values(exports.CONFIG.input), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_1 = _c.value;\n var inputClass = Startup.constructors[name_1];\n if (inputClass) {\n jax.push(new inputClass(exports.MathJax.config[name_1]));\n }\n else {\n throw Error('Input Jax \"' + name_1 + '\" is not defined (has it been loaded?)');\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return jax;\n }\n Startup.getInputJax = getInputJax;\n function getOutputJax() {\n var name = exports.CONFIG.output;\n if (!name)\n return null;\n var outputClass = Startup.constructors[name];\n if (!outputClass) {\n throw Error('Output Jax \"' + name + '\" is not defined (has it been loaded?)');\n }\n return new outputClass(exports.MathJax.config[name]);\n }\n Startup.getOutputJax = getOutputJax;\n function getAdaptor() {\n var name = exports.CONFIG.adaptor;\n if (!name || name === 'none')\n return null;\n var adaptor = Startup.constructors[name];\n if (!adaptor) {\n throw Error('DOMAdaptor \"' + name + '\" is not defined (has it been loaded?)');\n }\n return adaptor(exports.MathJax.config[name]);\n }\n Startup.getAdaptor = getAdaptor;\n function getHandler() {\n var e_3, _a;\n var name = exports.CONFIG.handler;\n if (!name || name === 'none' || !Startup.adaptor)\n return null;\n var handlerClass = Startup.constructors[name];\n if (!handlerClass) {\n throw Error('Handler \"' + name + '\" is not defined (has it been loaded?)');\n }\n var handler = new handlerClass(Startup.adaptor, 5);\n try {\n for (var extensions_1 = __values(extensions), extensions_1_1 = extensions_1.next(); !extensions_1_1.done; extensions_1_1 = extensions_1.next()) {\n var extend = extensions_1_1.value;\n handler = extend.item(handler);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (extensions_1_1 && !extensions_1_1.done && (_a = extensions_1.return)) _a.call(extensions_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return handler;\n }\n Startup.getHandler = getHandler;\n function getDocument(root) {\n if (root === void 0) { root = null; }\n return mathjax.document(root || exports.CONFIG.document, __assign(__assign({}, exports.MathJax.config.options), { InputJax: Startup.input, OutputJax: Startup.output }));\n }\n Startup.getDocument = getDocument;\n})(Startup = exports.Startup || (exports.Startup = {}));\nexports.MathJax = global_js_1.MathJax;\nif (typeof exports.MathJax._.startup === 'undefined') {\n (0, global_js_1.combineDefaults)(exports.MathJax.config, 'startup', {\n input: [],\n output: '',\n handler: null,\n adaptor: null,\n document: (typeof document === 'undefined' ? '' : document),\n elements: null,\n typeset: true,\n ready: Startup.defaultReady.bind(Startup),\n pageReady: Startup.defaultPageReady.bind(Startup)\n });\n (0, global_js_1.combineWithMathJax)({\n startup: Startup,\n options: {}\n });\n if (exports.MathJax.config.startup.invalidOption) {\n Options_js_1.OPTIONS.invalidOption = exports.MathJax.config.startup.invalidOption;\n }\n if (exports.MathJax.config.startup.optionError) {\n Options_js_1.OPTIONS.optionError = exports.MathJax.config.startup.optionError;\n }\n}\nexports.CONFIG = exports.MathJax.config.startup;\nvar inputSpecified = exports.CONFIG.input.length !== 0;\n//# sourceMappingURL=startup.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\nexports.VERSION = '3.2.2';\n//# sourceMappingURL=version.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractDOMAdaptor = void 0;\nvar AbstractDOMAdaptor = (function () {\n function AbstractDOMAdaptor(document) {\n if (document === void 0) { document = null; }\n this.document = document;\n }\n AbstractDOMAdaptor.prototype.node = function (kind, def, children, ns) {\n var e_1, _a;\n if (def === void 0) { def = {}; }\n if (children === void 0) { children = []; }\n var node = this.create(kind, ns);\n this.setAttributes(node, def);\n try {\n for (var children_1 = __values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n this.append(node, child);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return node;\n };\n AbstractDOMAdaptor.prototype.setAttributes = function (node, def) {\n var e_2, _a, e_3, _b, e_4, _c;\n if (def.style && typeof (def.style) !== 'string') {\n try {\n for (var _d = __values(Object.keys(def.style)), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n this.setStyle(node, key.replace(/-([a-z])/g, function (_m, c) { return c.toUpperCase(); }), def.style[key]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (def.properties) {\n try {\n for (var _f = __values(Object.keys(def.properties)), _g = _f.next(); !_g.done; _g = _f.next()) {\n var key = _g.value;\n node[key] = def.properties[key];\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n try {\n for (var _h = __values(Object.keys(def)), _j = _h.next(); !_j.done; _j = _h.next()) {\n var key = _j.value;\n if ((key !== 'style' || typeof (def.style) === 'string') && key !== 'properties') {\n this.setAttribute(node, key, def[key]);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_c = _h.return)) _c.call(_h);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n AbstractDOMAdaptor.prototype.replace = function (nnode, onode) {\n this.insert(nnode, onode);\n this.remove(onode);\n return onode;\n };\n AbstractDOMAdaptor.prototype.childNode = function (node, i) {\n return this.childNodes(node)[i];\n };\n AbstractDOMAdaptor.prototype.allClasses = function (node) {\n var classes = this.getAttribute(node, 'class');\n return (!classes ? [] :\n classes.replace(/ +/g, ' ').replace(/^ /, '').replace(/ $/, '').split(/ /));\n };\n return AbstractDOMAdaptor;\n}());\nexports.AbstractDOMAdaptor = AbstractDOMAdaptor;\n//# sourceMappingURL=DOMAdaptor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractFindMath = void 0;\nvar Options_js_1 = require(\"../util/Options.js\");\nvar AbstractFindMath = (function () {\n function AbstractFindMath(options) {\n var CLASS = this.constructor;\n this.options = (0, Options_js_1.userOptions)((0, Options_js_1.defaultOptions)({}, CLASS.OPTIONS), options);\n }\n AbstractFindMath.OPTIONS = {};\n return AbstractFindMath;\n}());\nexports.AbstractFindMath = AbstractFindMath;\n//# sourceMappingURL=FindMath.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractHandler = void 0;\nvar MathDocument_js_1 = require(\"./MathDocument.js\");\nvar DefaultMathDocument = (function (_super) {\n __extends(DefaultMathDocument, _super);\n function DefaultMathDocument() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return DefaultMathDocument;\n}(MathDocument_js_1.AbstractMathDocument));\nvar AbstractHandler = (function () {\n function AbstractHandler(adaptor, priority) {\n if (priority === void 0) { priority = 5; }\n this.documentClass = DefaultMathDocument;\n this.adaptor = adaptor;\n this.priority = priority;\n }\n Object.defineProperty(AbstractHandler.prototype, \"name\", {\n get: function () {\n return this.constructor.NAME;\n },\n enumerable: false,\n configurable: true\n });\n AbstractHandler.prototype.handlesDocument = function (_document) {\n return false;\n };\n AbstractHandler.prototype.create = function (document, options) {\n return new this.documentClass(document, this.adaptor, options);\n };\n AbstractHandler.NAME = 'generic';\n return AbstractHandler;\n}());\nexports.AbstractHandler = AbstractHandler;\n//# sourceMappingURL=Handler.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HandlerList = void 0;\nvar PrioritizedList_js_1 = require(\"../util/PrioritizedList.js\");\nvar HandlerList = (function (_super) {\n __extends(HandlerList, _super);\n function HandlerList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HandlerList.prototype.register = function (handler) {\n return this.add(handler, handler.priority);\n };\n HandlerList.prototype.unregister = function (handler) {\n this.remove(handler);\n };\n HandlerList.prototype.handlesDocument = function (document) {\n var e_1, _a;\n try {\n for (var _b = __values(this), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n var handler = item.item;\n if (handler.handlesDocument(document)) {\n return handler;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n throw new Error(\"Can't find handler for document\");\n };\n HandlerList.prototype.document = function (document, options) {\n if (options === void 0) { options = null; }\n return this.handlesDocument(document).create(document, options);\n };\n return HandlerList;\n}(PrioritizedList_js_1.PrioritizedList));\nexports.HandlerList = HandlerList;\n//# sourceMappingURL=HandlerList.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractInputJax = void 0;\nvar Options_js_1 = require(\"../util/Options.js\");\nvar FunctionList_js_1 = require(\"../util/FunctionList.js\");\nvar AbstractInputJax = (function () {\n function AbstractInputJax(options) {\n if (options === void 0) { options = {}; }\n this.adaptor = null;\n this.mmlFactory = null;\n var CLASS = this.constructor;\n this.options = (0, Options_js_1.userOptions)((0, Options_js_1.defaultOptions)({}, CLASS.OPTIONS), options);\n this.preFilters = new FunctionList_js_1.FunctionList();\n this.postFilters = new FunctionList_js_1.FunctionList();\n }\n Object.defineProperty(AbstractInputJax.prototype, \"name\", {\n get: function () {\n return this.constructor.NAME;\n },\n enumerable: false,\n configurable: true\n });\n AbstractInputJax.prototype.setAdaptor = function (adaptor) {\n this.adaptor = adaptor;\n };\n AbstractInputJax.prototype.setMmlFactory = function (mmlFactory) {\n this.mmlFactory = mmlFactory;\n };\n AbstractInputJax.prototype.initialize = function () {\n };\n AbstractInputJax.prototype.reset = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n Object.defineProperty(AbstractInputJax.prototype, \"processStrings\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n AbstractInputJax.prototype.findMath = function (_node, _options) {\n return [];\n };\n AbstractInputJax.prototype.executeFilters = function (filters, math, document, data) {\n var args = { math: math, document: document, data: data };\n filters.execute(args);\n return args.data;\n };\n AbstractInputJax.NAME = 'generic';\n AbstractInputJax.OPTIONS = {};\n return AbstractInputJax;\n}());\nexports.AbstractInputJax = AbstractInputJax;\n//# sourceMappingURL=InputJax.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractMathDocument = exports.resetAllOptions = exports.resetOptions = exports.RenderList = void 0;\nvar Options_js_1 = require(\"../util/Options.js\");\nvar InputJax_js_1 = require(\"./InputJax.js\");\nvar OutputJax_js_1 = require(\"./OutputJax.js\");\nvar MathList_js_1 = require(\"./MathList.js\");\nvar MathItem_js_1 = require(\"./MathItem.js\");\nvar MmlFactory_js_1 = require(\"../core/MmlTree/MmlFactory.js\");\nvar BitField_js_1 = require(\"../util/BitField.js\");\nvar PrioritizedList_js_1 = require(\"../util/PrioritizedList.js\");\nvar RenderList = (function (_super) {\n __extends(RenderList, _super);\n function RenderList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RenderList.create = function (actions) {\n var e_1, _a;\n var list = new this();\n try {\n for (var _b = __values(Object.keys(actions)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n var _d = __read(this.action(id, actions[id]), 2), action = _d[0], priority = _d[1];\n if (priority) {\n list.add(action, priority);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return list;\n };\n RenderList.action = function (id, action) {\n var _a, _b, _c, _d;\n var renderDoc, renderMath;\n var convert = true;\n var priority = action[0];\n if (action.length === 1 || typeof action[1] === 'boolean') {\n action.length === 2 && (convert = action[1]);\n _a = __read(this.methodActions(id), 2), renderDoc = _a[0], renderMath = _a[1];\n }\n else if (typeof action[1] === 'string') {\n if (typeof action[2] === 'string') {\n action.length === 4 && (convert = action[3]);\n var _e = __read(action.slice(1), 2), method1 = _e[0], method2 = _e[1];\n _b = __read(this.methodActions(method1, method2), 2), renderDoc = _b[0], renderMath = _b[1];\n }\n else {\n action.length === 3 && (convert = action[2]);\n _c = __read(this.methodActions(action[1]), 2), renderDoc = _c[0], renderMath = _c[1];\n }\n }\n else {\n action.length === 4 && (convert = action[3]);\n _d = __read(action.slice(1), 2), renderDoc = _d[0], renderMath = _d[1];\n }\n return [{ id: id, renderDoc: renderDoc, renderMath: renderMath, convert: convert }, priority];\n };\n RenderList.methodActions = function (method1, method2) {\n if (method2 === void 0) { method2 = method1; }\n return [\n function (document) { method1 && document[method1](); return false; },\n function (math, document) { method2 && math[method2](document); return false; }\n ];\n };\n RenderList.prototype.renderDoc = function (document, start) {\n var e_2, _a;\n if (start === void 0) { start = MathItem_js_1.STATE.UNPROCESSED; }\n try {\n for (var _b = __values(this.items), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n if (item.priority >= start) {\n if (item.item.renderDoc(document))\n return;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n RenderList.prototype.renderMath = function (math, document, start) {\n var e_3, _a;\n if (start === void 0) { start = MathItem_js_1.STATE.UNPROCESSED; }\n try {\n for (var _b = __values(this.items), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n if (item.priority >= start) {\n if (item.item.renderMath(math, document))\n return;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n RenderList.prototype.renderConvert = function (math, document, end) {\n var e_4, _a;\n if (end === void 0) { end = MathItem_js_1.STATE.LAST; }\n try {\n for (var _b = __values(this.items), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n if (item.priority > end)\n return;\n if (item.item.convert) {\n if (item.item.renderMath(math, document))\n return;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n RenderList.prototype.findID = function (id) {\n var e_5, _a;\n try {\n for (var _b = __values(this.items), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n if (item.item.id === id) {\n return item.item;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return null;\n };\n return RenderList;\n}(PrioritizedList_js_1.PrioritizedList));\nexports.RenderList = RenderList;\nexports.resetOptions = {\n all: false,\n processed: false,\n inputJax: null,\n outputJax: null\n};\nexports.resetAllOptions = {\n all: true,\n processed: true,\n inputJax: [],\n outputJax: []\n};\nvar DefaultInputJax = (function (_super) {\n __extends(DefaultInputJax, _super);\n function DefaultInputJax() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DefaultInputJax.prototype.compile = function (_math) {\n return null;\n };\n return DefaultInputJax;\n}(InputJax_js_1.AbstractInputJax));\nvar DefaultOutputJax = (function (_super) {\n __extends(DefaultOutputJax, _super);\n function DefaultOutputJax() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DefaultOutputJax.prototype.typeset = function (_math, _document) {\n if (_document === void 0) { _document = null; }\n return null;\n };\n DefaultOutputJax.prototype.escaped = function (_math, _document) {\n return null;\n };\n return DefaultOutputJax;\n}(OutputJax_js_1.AbstractOutputJax));\nvar DefaultMathList = (function (_super) {\n __extends(DefaultMathList, _super);\n function DefaultMathList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return DefaultMathList;\n}(MathList_js_1.AbstractMathList));\nvar DefaultMathItem = (function (_super) {\n __extends(DefaultMathItem, _super);\n function DefaultMathItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return DefaultMathItem;\n}(MathItem_js_1.AbstractMathItem));\nvar AbstractMathDocument = (function () {\n function AbstractMathDocument(document, adaptor, options) {\n var _this = this;\n var CLASS = this.constructor;\n this.document = document;\n this.options = (0, Options_js_1.userOptions)((0, Options_js_1.defaultOptions)({}, CLASS.OPTIONS), options);\n this.math = new (this.options['MathList'] || DefaultMathList)();\n this.renderActions = RenderList.create(this.options['renderActions']);\n this.processed = new AbstractMathDocument.ProcessBits();\n this.outputJax = this.options['OutputJax'] || new DefaultOutputJax();\n var inputJax = this.options['InputJax'] || [new DefaultInputJax()];\n if (!Array.isArray(inputJax)) {\n inputJax = [inputJax];\n }\n this.inputJax = inputJax;\n this.adaptor = adaptor;\n this.outputJax.setAdaptor(adaptor);\n this.inputJax.map(function (jax) { return jax.setAdaptor(adaptor); });\n this.mmlFactory = this.options['MmlFactory'] || new MmlFactory_js_1.MmlFactory();\n this.inputJax.map(function (jax) { return jax.setMmlFactory(_this.mmlFactory); });\n this.outputJax.initialize();\n this.inputJax.map(function (jax) { return jax.initialize(); });\n }\n Object.defineProperty(AbstractMathDocument.prototype, \"kind\", {\n get: function () {\n return this.constructor.KIND;\n },\n enumerable: false,\n configurable: true\n });\n AbstractMathDocument.prototype.addRenderAction = function (id) {\n var action = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n action[_i - 1] = arguments[_i];\n }\n var _a = __read(RenderList.action(id, action), 2), fn = _a[0], p = _a[1];\n this.renderActions.add(fn, p);\n };\n AbstractMathDocument.prototype.removeRenderAction = function (id) {\n var action = this.renderActions.findID(id);\n if (action) {\n this.renderActions.remove(action);\n }\n };\n AbstractMathDocument.prototype.render = function () {\n this.renderActions.renderDoc(this);\n return this;\n };\n AbstractMathDocument.prototype.rerender = function (start) {\n if (start === void 0) { start = MathItem_js_1.STATE.RERENDER; }\n this.state(start - 1);\n this.render();\n return this;\n };\n AbstractMathDocument.prototype.convert = function (math, options) {\n if (options === void 0) { options = {}; }\n var _a = (0, Options_js_1.userOptions)({\n format: this.inputJax[0].name, display: true, end: MathItem_js_1.STATE.LAST,\n em: 16, ex: 8, containerWidth: null, lineWidth: 1000000, scale: 1, family: ''\n }, options), format = _a.format, display = _a.display, end = _a.end, ex = _a.ex, em = _a.em, containerWidth = _a.containerWidth, lineWidth = _a.lineWidth, scale = _a.scale, family = _a.family;\n if (containerWidth === null) {\n containerWidth = 80 * ex;\n }\n var jax = this.inputJax.reduce(function (jax, ijax) { return (ijax.name === format ? ijax : jax); }, null);\n var mitem = new this.options.MathItem(math, jax, display);\n mitem.start.node = this.adaptor.body(this.document);\n mitem.setMetrics(em, ex, containerWidth, lineWidth, scale);\n if (this.outputJax.options.mtextInheritFont) {\n mitem.outputData.mtextFamily = family;\n }\n if (this.outputJax.options.merrorInheritFont) {\n mitem.outputData.merrorFamily = family;\n }\n mitem.convert(this, end);\n return (mitem.typesetRoot || mitem.root);\n };\n AbstractMathDocument.prototype.findMath = function (_options) {\n if (_options === void 0) { _options = null; }\n this.processed.set('findMath');\n return this;\n };\n AbstractMathDocument.prototype.compile = function () {\n var e_6, _a, e_7, _b;\n if (!this.processed.isSet('compile')) {\n var recompile = [];\n try {\n for (var _c = __values(this.math), _d = _c.next(); !_d.done; _d = _c.next()) {\n var math = _d.value;\n this.compileMath(math);\n if (math.inputData.recompile !== undefined) {\n recompile.push(math);\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_6) throw e_6.error; }\n }\n try {\n for (var recompile_1 = __values(recompile), recompile_1_1 = recompile_1.next(); !recompile_1_1.done; recompile_1_1 = recompile_1.next()) {\n var math = recompile_1_1.value;\n var data = math.inputData.recompile;\n math.state(data.state);\n math.inputData.recompile = data;\n this.compileMath(math);\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (recompile_1_1 && !recompile_1_1.done && (_b = recompile_1.return)) _b.call(recompile_1);\n }\n finally { if (e_7) throw e_7.error; }\n }\n this.processed.set('compile');\n }\n return this;\n };\n AbstractMathDocument.prototype.compileMath = function (math) {\n try {\n math.compile(this);\n }\n catch (err) {\n if (err.retry || err.restart) {\n throw err;\n }\n this.options['compileError'](this, math, err);\n math.inputData['error'] = err;\n }\n };\n AbstractMathDocument.prototype.compileError = function (math, err) {\n math.root = this.mmlFactory.create('math', null, [\n this.mmlFactory.create('merror', { 'data-mjx-error': err.message, title: err.message }, [\n this.mmlFactory.create('mtext', null, [\n this.mmlFactory.create('text').setText('Math input error')\n ])\n ])\n ]);\n if (math.display) {\n math.root.attributes.set('display', 'block');\n }\n math.inputData.error = err.message;\n };\n AbstractMathDocument.prototype.typeset = function () {\n var e_8, _a;\n if (!this.processed.isSet('typeset')) {\n try {\n for (var _b = __values(this.math), _c = _b.next(); !_c.done; _c = _b.next()) {\n var math = _c.value;\n try {\n math.typeset(this);\n }\n catch (err) {\n if (err.retry || err.restart) {\n throw err;\n }\n this.options['typesetError'](this, math, err);\n math.outputData['error'] = err;\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_8) throw e_8.error; }\n }\n this.processed.set('typeset');\n }\n return this;\n };\n AbstractMathDocument.prototype.typesetError = function (math, err) {\n math.typesetRoot = this.adaptor.node('mjx-container', {\n class: 'MathJax mjx-output-error',\n jax: this.outputJax.name,\n }, [\n this.adaptor.node('span', {\n 'data-mjx-error': err.message,\n title: err.message,\n style: {\n color: 'red',\n 'background-color': 'yellow',\n 'line-height': 'normal'\n }\n }, [\n this.adaptor.text('Math output error')\n ])\n ]);\n if (math.display) {\n this.adaptor.setAttributes(math.typesetRoot, {\n style: {\n display: 'block',\n margin: '1em 0',\n 'text-align': 'center'\n }\n });\n }\n math.outputData.error = err.message;\n };\n AbstractMathDocument.prototype.getMetrics = function () {\n if (!this.processed.isSet('getMetrics')) {\n this.outputJax.getMetrics(this);\n this.processed.set('getMetrics');\n }\n return this;\n };\n AbstractMathDocument.prototype.updateDocument = function () {\n var e_9, _a;\n if (!this.processed.isSet('updateDocument')) {\n try {\n for (var _b = __values(this.math.reversed()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var math = _c.value;\n math.updateDocument(this);\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_9) throw e_9.error; }\n }\n this.processed.set('updateDocument');\n }\n return this;\n };\n AbstractMathDocument.prototype.removeFromDocument = function (_restore) {\n if (_restore === void 0) { _restore = false; }\n return this;\n };\n AbstractMathDocument.prototype.state = function (state, restore) {\n var e_10, _a;\n if (restore === void 0) { restore = false; }\n try {\n for (var _b = __values(this.math), _c = _b.next(); !_c.done; _c = _b.next()) {\n var math = _c.value;\n math.state(state, restore);\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_10) throw e_10.error; }\n }\n if (state < MathItem_js_1.STATE.INSERTED) {\n this.processed.clear('updateDocument');\n }\n if (state < MathItem_js_1.STATE.TYPESET) {\n this.processed.clear('typeset');\n this.processed.clear('getMetrics');\n }\n if (state < MathItem_js_1.STATE.COMPILED) {\n this.processed.clear('compile');\n }\n return this;\n };\n AbstractMathDocument.prototype.reset = function (options) {\n var _a;\n if (options === void 0) { options = { processed: true }; }\n options = (0, Options_js_1.userOptions)(Object.assign({}, exports.resetOptions), options);\n options.all && Object.assign(options, exports.resetAllOptions);\n options.processed && this.processed.reset();\n options.inputJax && this.inputJax.forEach(function (jax) { return jax.reset.apply(jax, __spreadArray([], __read(options.inputJax), false)); });\n options.outputJax && (_a = this.outputJax).reset.apply(_a, __spreadArray([], __read(options.outputJax), false));\n return this;\n };\n AbstractMathDocument.prototype.clear = function () {\n this.reset();\n this.math.clear();\n return this;\n };\n AbstractMathDocument.prototype.concat = function (list) {\n this.math.merge(list);\n return this;\n };\n AbstractMathDocument.prototype.clearMathItemsWithin = function (containers) {\n var _a;\n var items = this.getMathItemsWithin(containers);\n (_a = this.math).remove.apply(_a, __spreadArray([], __read(items), false));\n return items;\n };\n AbstractMathDocument.prototype.getMathItemsWithin = function (elements) {\n var e_11, _a, e_12, _b;\n if (!Array.isArray(elements)) {\n elements = [elements];\n }\n var adaptor = this.adaptor;\n var items = [];\n var containers = adaptor.getElements(elements, this.document);\n try {\n ITEMS: for (var _c = __values(this.math), _d = _c.next(); !_d.done; _d = _c.next()) {\n var item = _d.value;\n try {\n for (var containers_1 = (e_12 = void 0, __values(containers)), containers_1_1 = containers_1.next(); !containers_1_1.done; containers_1_1 = containers_1.next()) {\n var container = containers_1_1.value;\n if (item.start.node && adaptor.contains(container, item.start.node)) {\n items.push(item);\n continue ITEMS;\n }\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (containers_1_1 && !containers_1_1.done && (_b = containers_1.return)) _b.call(containers_1);\n }\n finally { if (e_12) throw e_12.error; }\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_11) throw e_11.error; }\n }\n return items;\n };\n AbstractMathDocument.KIND = 'MathDocument';\n AbstractMathDocument.OPTIONS = {\n OutputJax: null,\n InputJax: null,\n MmlFactory: null,\n MathList: DefaultMathList,\n MathItem: DefaultMathItem,\n compileError: function (doc, math, err) {\n doc.compileError(math, err);\n },\n typesetError: function (doc, math, err) {\n doc.typesetError(math, err);\n },\n renderActions: (0, Options_js_1.expandable)({\n find: [MathItem_js_1.STATE.FINDMATH, 'findMath', '', false],\n compile: [MathItem_js_1.STATE.COMPILED],\n metrics: [MathItem_js_1.STATE.METRICS, 'getMetrics', '', false],\n typeset: [MathItem_js_1.STATE.TYPESET],\n update: [MathItem_js_1.STATE.INSERTED, 'updateDocument', false]\n })\n };\n AbstractMathDocument.ProcessBits = (0, BitField_js_1.BitFieldClass)('findMath', 'compile', 'getMetrics', 'typeset', 'updateDocument');\n return AbstractMathDocument;\n}());\nexports.AbstractMathDocument = AbstractMathDocument;\n//# sourceMappingURL=MathDocument.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.newState = exports.STATE = exports.AbstractMathItem = exports.protoItem = void 0;\nfunction protoItem(open, math, close, n, start, end, display) {\n if (display === void 0) { display = null; }\n var item = { open: open, math: math, close: close,\n n: n, start: { n: start }, end: { n: end }, display: display };\n return item;\n}\nexports.protoItem = protoItem;\nvar AbstractMathItem = (function () {\n function AbstractMathItem(math, jax, display, start, end) {\n if (display === void 0) { display = true; }\n if (start === void 0) { start = { i: 0, n: 0, delim: '' }; }\n if (end === void 0) { end = { i: 0, n: 0, delim: '' }; }\n this.root = null;\n this.typesetRoot = null;\n this.metrics = {};\n this.inputData = {};\n this.outputData = {};\n this._state = exports.STATE.UNPROCESSED;\n this.math = math;\n this.inputJax = jax;\n this.display = display;\n this.start = start;\n this.end = end;\n this.root = null;\n this.typesetRoot = null;\n this.metrics = {};\n this.inputData = {};\n this.outputData = {};\n }\n Object.defineProperty(AbstractMathItem.prototype, \"isEscaped\", {\n get: function () {\n return this.display === null;\n },\n enumerable: false,\n configurable: true\n });\n AbstractMathItem.prototype.render = function (document) {\n document.renderActions.renderMath(this, document);\n };\n AbstractMathItem.prototype.rerender = function (document, start) {\n if (start === void 0) { start = exports.STATE.RERENDER; }\n if (this.state() >= start) {\n this.state(start - 1);\n }\n document.renderActions.renderMath(this, document, start);\n };\n AbstractMathItem.prototype.convert = function (document, end) {\n if (end === void 0) { end = exports.STATE.LAST; }\n document.renderActions.renderConvert(this, document, end);\n };\n AbstractMathItem.prototype.compile = function (document) {\n if (this.state() < exports.STATE.COMPILED) {\n this.root = this.inputJax.compile(this, document);\n this.state(exports.STATE.COMPILED);\n }\n };\n AbstractMathItem.prototype.typeset = function (document) {\n if (this.state() < exports.STATE.TYPESET) {\n this.typesetRoot = document.outputJax[this.isEscaped ? 'escaped' : 'typeset'](this, document);\n this.state(exports.STATE.TYPESET);\n }\n };\n AbstractMathItem.prototype.updateDocument = function (_document) { };\n AbstractMathItem.prototype.removeFromDocument = function (_restore) {\n if (_restore === void 0) { _restore = false; }\n };\n AbstractMathItem.prototype.setMetrics = function (em, ex, cwidth, lwidth, scale) {\n this.metrics = {\n em: em, ex: ex,\n containerWidth: cwidth,\n lineWidth: lwidth,\n scale: scale\n };\n };\n AbstractMathItem.prototype.state = function (state, restore) {\n if (state === void 0) { state = null; }\n if (restore === void 0) { restore = false; }\n if (state != null) {\n if (state < exports.STATE.INSERTED && this._state >= exports.STATE.INSERTED) {\n this.removeFromDocument(restore);\n }\n if (state < exports.STATE.TYPESET && this._state >= exports.STATE.TYPESET) {\n this.outputData = {};\n }\n if (state < exports.STATE.COMPILED && this._state >= exports.STATE.COMPILED) {\n this.inputData = {};\n }\n this._state = state;\n }\n return this._state;\n };\n AbstractMathItem.prototype.reset = function (restore) {\n if (restore === void 0) { restore = false; }\n this.state(exports.STATE.UNPROCESSED, restore);\n };\n return AbstractMathItem;\n}());\nexports.AbstractMathItem = AbstractMathItem;\nexports.STATE = {\n UNPROCESSED: 0,\n FINDMATH: 10,\n COMPILED: 20,\n CONVERT: 100,\n METRICS: 110,\n RERENDER: 125,\n TYPESET: 150,\n INSERTED: 200,\n LAST: 10000\n};\nfunction newState(name, state) {\n if (name in exports.STATE) {\n throw Error('State ' + name + ' already exists');\n }\n exports.STATE[name] = state;\n}\nexports.newState = newState;\n//# sourceMappingURL=MathItem.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractMathList = void 0;\nvar LinkedList_js_1 = require(\"../util/LinkedList.js\");\nvar AbstractMathList = (function (_super) {\n __extends(AbstractMathList, _super);\n function AbstractMathList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AbstractMathList.prototype.isBefore = function (a, b) {\n return (a.start.i < b.start.i || (a.start.i === b.start.i && a.start.n < b.start.n));\n };\n return AbstractMathList;\n}(LinkedList_js_1.LinkedList));\nexports.AbstractMathList = AbstractMathList;\n//# sourceMappingURL=MathList.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attributes = exports.INHERIT = void 0;\nexports.INHERIT = '_inherit_';\nvar Attributes = (function () {\n function Attributes(defaults, global) {\n this.global = global;\n this.defaults = Object.create(global);\n this.inherited = Object.create(this.defaults);\n this.attributes = Object.create(this.inherited);\n Object.assign(this.defaults, defaults);\n }\n Attributes.prototype.set = function (name, value) {\n this.attributes[name] = value;\n };\n Attributes.prototype.setList = function (list) {\n Object.assign(this.attributes, list);\n };\n Attributes.prototype.get = function (name) {\n var value = this.attributes[name];\n if (value === exports.INHERIT) {\n value = this.global[name];\n }\n return value;\n };\n Attributes.prototype.getExplicit = function (name) {\n if (!this.attributes.hasOwnProperty(name)) {\n return undefined;\n }\n return this.attributes[name];\n };\n Attributes.prototype.getList = function () {\n var e_1, _a;\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n var values = {};\n try {\n for (var names_1 = __values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name_1 = names_1_1.value;\n values[name_1] = this.get(name_1);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return values;\n };\n Attributes.prototype.setInherited = function (name, value) {\n this.inherited[name] = value;\n };\n Attributes.prototype.getInherited = function (name) {\n return this.inherited[name];\n };\n Attributes.prototype.getDefault = function (name) {\n return this.defaults[name];\n };\n Attributes.prototype.isSet = function (name) {\n return this.attributes.hasOwnProperty(name) || this.inherited.hasOwnProperty(name);\n };\n Attributes.prototype.hasDefault = function (name) {\n return (name in this.defaults);\n };\n Attributes.prototype.getExplicitNames = function () {\n return Object.keys(this.attributes);\n };\n Attributes.prototype.getInheritedNames = function () {\n return Object.keys(this.inherited);\n };\n Attributes.prototype.getDefaultNames = function () {\n return Object.keys(this.defaults);\n };\n Attributes.prototype.getGlobalNames = function () {\n return Object.keys(this.global);\n };\n Attributes.prototype.getAllAttributes = function () {\n return this.attributes;\n };\n Attributes.prototype.getAllInherited = function () {\n return this.inherited;\n };\n Attributes.prototype.getAllDefaults = function () {\n return this.defaults;\n };\n Attributes.prototype.getAllGlobals = function () {\n return this.global;\n };\n return Attributes;\n}());\nexports.Attributes = Attributes;\n//# sourceMappingURL=Attributes.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MML = void 0;\nvar MmlNode_js_1 = require(\"./MmlNode.js\");\nvar math_js_1 = require(\"./MmlNodes/math.js\");\nvar mi_js_1 = require(\"./MmlNodes/mi.js\");\nvar mn_js_1 = require(\"./MmlNodes/mn.js\");\nvar mo_js_1 = require(\"./MmlNodes/mo.js\");\nvar mtext_js_1 = require(\"./MmlNodes/mtext.js\");\nvar mspace_js_1 = require(\"./MmlNodes/mspace.js\");\nvar ms_js_1 = require(\"./MmlNodes/ms.js\");\nvar mrow_js_1 = require(\"./MmlNodes/mrow.js\");\nvar mfrac_js_1 = require(\"./MmlNodes/mfrac.js\");\nvar msqrt_js_1 = require(\"./MmlNodes/msqrt.js\");\nvar mroot_js_1 = require(\"./MmlNodes/mroot.js\");\nvar mstyle_js_1 = require(\"./MmlNodes/mstyle.js\");\nvar merror_js_1 = require(\"./MmlNodes/merror.js\");\nvar mpadded_js_1 = require(\"./MmlNodes/mpadded.js\");\nvar mphantom_js_1 = require(\"./MmlNodes/mphantom.js\");\nvar mfenced_js_1 = require(\"./MmlNodes/mfenced.js\");\nvar menclose_js_1 = require(\"./MmlNodes/menclose.js\");\nvar maction_js_1 = require(\"./MmlNodes/maction.js\");\nvar msubsup_js_1 = require(\"./MmlNodes/msubsup.js\");\nvar munderover_js_1 = require(\"./MmlNodes/munderover.js\");\nvar mmultiscripts_js_1 = require(\"./MmlNodes/mmultiscripts.js\");\nvar mtable_js_1 = require(\"./MmlNodes/mtable.js\");\nvar mtr_js_1 = require(\"./MmlNodes/mtr.js\");\nvar mtd_js_1 = require(\"./MmlNodes/mtd.js\");\nvar maligngroup_js_1 = require(\"./MmlNodes/maligngroup.js\");\nvar malignmark_js_1 = require(\"./MmlNodes/malignmark.js\");\nvar mglyph_js_1 = require(\"./MmlNodes/mglyph.js\");\nvar semantics_js_1 = require(\"./MmlNodes/semantics.js\");\nvar TeXAtom_js_1 = require(\"./MmlNodes/TeXAtom.js\");\nvar mathchoice_js_1 = require(\"./MmlNodes/mathchoice.js\");\nexports.MML = (_a = {},\n _a[math_js_1.MmlMath.prototype.kind] = math_js_1.MmlMath,\n _a[mi_js_1.MmlMi.prototype.kind] = mi_js_1.MmlMi,\n _a[mn_js_1.MmlMn.prototype.kind] = mn_js_1.MmlMn,\n _a[mo_js_1.MmlMo.prototype.kind] = mo_js_1.MmlMo,\n _a[mtext_js_1.MmlMtext.prototype.kind] = mtext_js_1.MmlMtext,\n _a[mspace_js_1.MmlMspace.prototype.kind] = mspace_js_1.MmlMspace,\n _a[ms_js_1.MmlMs.prototype.kind] = ms_js_1.MmlMs,\n _a[mrow_js_1.MmlMrow.prototype.kind] = mrow_js_1.MmlMrow,\n _a[mrow_js_1.MmlInferredMrow.prototype.kind] = mrow_js_1.MmlInferredMrow,\n _a[mfrac_js_1.MmlMfrac.prototype.kind] = mfrac_js_1.MmlMfrac,\n _a[msqrt_js_1.MmlMsqrt.prototype.kind] = msqrt_js_1.MmlMsqrt,\n _a[mroot_js_1.MmlMroot.prototype.kind] = mroot_js_1.MmlMroot,\n _a[mstyle_js_1.MmlMstyle.prototype.kind] = mstyle_js_1.MmlMstyle,\n _a[merror_js_1.MmlMerror.prototype.kind] = merror_js_1.MmlMerror,\n _a[mpadded_js_1.MmlMpadded.prototype.kind] = mpadded_js_1.MmlMpadded,\n _a[mphantom_js_1.MmlMphantom.prototype.kind] = mphantom_js_1.MmlMphantom,\n _a[mfenced_js_1.MmlMfenced.prototype.kind] = mfenced_js_1.MmlMfenced,\n _a[menclose_js_1.MmlMenclose.prototype.kind] = menclose_js_1.MmlMenclose,\n _a[maction_js_1.MmlMaction.prototype.kind] = maction_js_1.MmlMaction,\n _a[msubsup_js_1.MmlMsub.prototype.kind] = msubsup_js_1.MmlMsub,\n _a[msubsup_js_1.MmlMsup.prototype.kind] = msubsup_js_1.MmlMsup,\n _a[msubsup_js_1.MmlMsubsup.prototype.kind] = msubsup_js_1.MmlMsubsup,\n _a[munderover_js_1.MmlMunder.prototype.kind] = munderover_js_1.MmlMunder,\n _a[munderover_js_1.MmlMover.prototype.kind] = munderover_js_1.MmlMover,\n _a[munderover_js_1.MmlMunderover.prototype.kind] = munderover_js_1.MmlMunderover,\n _a[mmultiscripts_js_1.MmlMmultiscripts.prototype.kind] = mmultiscripts_js_1.MmlMmultiscripts,\n _a[mmultiscripts_js_1.MmlMprescripts.prototype.kind] = mmultiscripts_js_1.MmlMprescripts,\n _a[mmultiscripts_js_1.MmlNone.prototype.kind] = mmultiscripts_js_1.MmlNone,\n _a[mtable_js_1.MmlMtable.prototype.kind] = mtable_js_1.MmlMtable,\n _a[mtr_js_1.MmlMlabeledtr.prototype.kind] = mtr_js_1.MmlMlabeledtr,\n _a[mtr_js_1.MmlMtr.prototype.kind] = mtr_js_1.MmlMtr,\n _a[mtd_js_1.MmlMtd.prototype.kind] = mtd_js_1.MmlMtd,\n _a[maligngroup_js_1.MmlMaligngroup.prototype.kind] = maligngroup_js_1.MmlMaligngroup,\n _a[malignmark_js_1.MmlMalignmark.prototype.kind] = malignmark_js_1.MmlMalignmark,\n _a[mglyph_js_1.MmlMglyph.prototype.kind] = mglyph_js_1.MmlMglyph,\n _a[semantics_js_1.MmlSemantics.prototype.kind] = semantics_js_1.MmlSemantics,\n _a[semantics_js_1.MmlAnnotation.prototype.kind] = semantics_js_1.MmlAnnotation,\n _a[semantics_js_1.MmlAnnotationXML.prototype.kind] = semantics_js_1.MmlAnnotationXML,\n _a[TeXAtom_js_1.TeXAtom.prototype.kind] = TeXAtom_js_1.TeXAtom,\n _a[mathchoice_js_1.MathChoice.prototype.kind] = mathchoice_js_1.MathChoice,\n _a[MmlNode_js_1.TextNode.prototype.kind] = MmlNode_js_1.TextNode,\n _a[MmlNode_js_1.XMLNode.prototype.kind] = MmlNode_js_1.XMLNode,\n _a);\n//# sourceMappingURL=MML.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MathMLVisitor = void 0;\nvar MmlVisitor_js_1 = require(\"./MmlVisitor.js\");\nvar MathMLVisitor = (function (_super) {\n __extends(MathMLVisitor, _super);\n function MathMLVisitor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.document = null;\n return _this;\n }\n MathMLVisitor.prototype.visitTree = function (node, document) {\n this.document = document;\n var root = document.createElement('top');\n this.visitNode(node, root);\n this.document = null;\n return root.firstChild;\n };\n MathMLVisitor.prototype.visitTextNode = function (node, parent) {\n parent.appendChild(this.document.createTextNode(node.getText()));\n };\n MathMLVisitor.prototype.visitXMLNode = function (node, parent) {\n parent.appendChild(node.getXML().cloneNode(true));\n };\n MathMLVisitor.prototype.visitInferredMrowNode = function (node, parent) {\n var e_1, _a;\n try {\n for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n this.visitNode(child, parent);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n MathMLVisitor.prototype.visitDefault = function (node, parent) {\n var e_2, _a;\n var mml = this.document.createElement(node.kind);\n this.addAttributes(node, mml);\n try {\n for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n this.visitNode(child, mml);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n parent.appendChild(mml);\n };\n MathMLVisitor.prototype.addAttributes = function (node, mml) {\n var e_3, _a;\n var attributes = node.attributes;\n var names = attributes.getExplicitNames();\n try {\n for (var names_1 = __values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name_1 = names_1_1.value;\n mml.setAttribute(name_1, attributes.getExplicit(name_1).toString());\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n return MathMLVisitor;\n}(MmlVisitor_js_1.MmlVisitor));\nexports.MathMLVisitor = MathMLVisitor;\n//# sourceMappingURL=MathMLVisitor.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlFactory = void 0;\nvar NodeFactory_js_1 = require(\"../Tree/NodeFactory.js\");\nvar MML_js_1 = require(\"./MML.js\");\nvar MmlFactory = (function (_super) {\n __extends(MmlFactory, _super);\n function MmlFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlFactory.prototype, \"MML\", {\n get: function () {\n return this.node;\n },\n enumerable: false,\n configurable: true\n });\n MmlFactory.defaultNodes = MML_js_1.MML;\n return MmlFactory;\n}(NodeFactory_js_1.AbstractNodeFactory));\nexports.MmlFactory = MmlFactory;\n//# sourceMappingURL=MmlFactory.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.XMLNode = exports.TextNode = exports.AbstractMmlEmptyNode = exports.AbstractMmlBaseNode = exports.AbstractMmlLayoutNode = exports.AbstractMmlTokenNode = exports.AbstractMmlNode = exports.indentAttributes = exports.TEXCLASSNAMES = exports.TEXCLASS = void 0;\nvar Attributes_js_1 = require(\"./Attributes.js\");\nvar Node_js_1 = require(\"../Tree/Node.js\");\nexports.TEXCLASS = {\n ORD: 0,\n OP: 1,\n BIN: 2,\n REL: 3,\n OPEN: 4,\n CLOSE: 5,\n PUNCT: 6,\n INNER: 7,\n VCENTER: 8,\n NONE: -1\n};\nexports.TEXCLASSNAMES = ['ORD', 'OP', 'BIN', 'REL', 'OPEN', 'CLOSE', 'PUNCT', 'INNER', 'VCENTER'];\nvar TEXSPACELENGTH = ['', 'thinmathspace', 'mediummathspace', 'thickmathspace'];\nvar TEXSPACE = [\n [0, -1, 2, 3, 0, 0, 0, 1],\n [-1, -1, 0, 3, 0, 0, 0, 1],\n [2, 2, 0, 0, 2, 0, 0, 2],\n [3, 3, 0, 0, 3, 0, 0, 3],\n [0, 0, 0, 0, 0, 0, 0, 0],\n [0, -1, 2, 3, 0, 0, 0, 1],\n [1, 1, 0, 1, 1, 1, 1, 1],\n [1, -1, 2, 3, 1, 0, 1, 1]\n];\nexports.indentAttributes = [\n 'indentalign', 'indentalignfirst',\n 'indentshift', 'indentshiftfirst'\n];\nvar AbstractMmlNode = (function (_super) {\n __extends(AbstractMmlNode, _super);\n function AbstractMmlNode(factory, attributes, children) {\n if (attributes === void 0) { attributes = {}; }\n if (children === void 0) { children = []; }\n var _this = _super.call(this, factory) || this;\n _this.prevClass = null;\n _this.prevLevel = null;\n _this.texclass = null;\n if (_this.arity < 0) {\n _this.childNodes = [factory.create('inferredMrow')];\n _this.childNodes[0].parent = _this;\n }\n _this.setChildren(children);\n _this.attributes = new Attributes_js_1.Attributes(factory.getNodeClass(_this.kind).defaults, factory.getNodeClass('math').defaults);\n _this.attributes.setList(attributes);\n return _this;\n }\n AbstractMmlNode.prototype.copy = function (keepIds) {\n var e_1, _a, e_2, _b;\n if (keepIds === void 0) { keepIds = false; }\n var node = this.factory.create(this.kind);\n node.properties = __assign({}, this.properties);\n if (this.attributes) {\n var attributes = this.attributes.getAllAttributes();\n try {\n for (var _c = __values(Object.keys(attributes)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_1 = _d.value;\n if (name_1 !== 'id' || keepIds) {\n node.attributes.set(name_1, attributes[name_1]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n if (this.childNodes && this.childNodes.length) {\n var children = this.childNodes;\n if (children.length === 1 && children[0].isInferred) {\n children = children[0].childNodes;\n }\n try {\n for (var children_1 = __values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n if (child) {\n node.appendChild(child.copy());\n }\n else {\n node.childNodes.push(null);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_b = children_1.return)) _b.call(children_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n return node;\n };\n Object.defineProperty(AbstractMmlNode.prototype, \"texClass\", {\n get: function () {\n return this.texclass;\n },\n set: function (texClass) {\n this.texclass = texClass;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"isToken\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"isEmbellished\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"isSpacelike\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"linebreakContainer\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"hasNewLine\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"arity\", {\n get: function () {\n return Infinity;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"isInferred\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"Parent\", {\n get: function () {\n var parent = this.parent;\n while (parent && parent.notParent) {\n parent = parent.Parent;\n }\n return parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlNode.prototype, \"notParent\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n AbstractMmlNode.prototype.setChildren = function (children) {\n if (this.arity < 0) {\n return this.childNodes[0].setChildren(children);\n }\n return _super.prototype.setChildren.call(this, children);\n };\n AbstractMmlNode.prototype.appendChild = function (child) {\n var e_3, _a;\n var _this = this;\n if (this.arity < 0) {\n this.childNodes[0].appendChild(child);\n return child;\n }\n if (child.isInferred) {\n if (this.arity === Infinity) {\n child.childNodes.forEach(function (node) { return _super.prototype.appendChild.call(_this, node); });\n return child;\n }\n var original = child;\n child = this.factory.create('mrow');\n child.setChildren(original.childNodes);\n child.attributes = original.attributes;\n try {\n for (var _b = __values(original.getPropertyNames()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_2 = _c.value;\n child.setProperty(name_2, original.getProperty(name_2));\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n return _super.prototype.appendChild.call(this, child);\n };\n AbstractMmlNode.prototype.replaceChild = function (newChild, oldChild) {\n if (this.arity < 0) {\n this.childNodes[0].replaceChild(newChild, oldChild);\n return newChild;\n }\n return _super.prototype.replaceChild.call(this, newChild, oldChild);\n };\n AbstractMmlNode.prototype.core = function () {\n return this;\n };\n AbstractMmlNode.prototype.coreMO = function () {\n return this;\n };\n AbstractMmlNode.prototype.coreIndex = function () {\n return 0;\n };\n AbstractMmlNode.prototype.childPosition = function () {\n var e_4, _a;\n var child = this;\n var parent = child.parent;\n while (parent && parent.notParent) {\n child = parent;\n parent = parent.parent;\n }\n if (parent) {\n var i = 0;\n try {\n for (var _b = __values(parent.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var node = _c.value;\n if (node === child) {\n return i;\n }\n i++;\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n return null;\n };\n AbstractMmlNode.prototype.setTeXclass = function (prev) {\n this.getPrevClass(prev);\n return (this.texClass != null ? this : prev);\n };\n AbstractMmlNode.prototype.updateTeXclass = function (core) {\n if (core) {\n this.prevClass = core.prevClass;\n this.prevLevel = core.prevLevel;\n core.prevClass = core.prevLevel = null;\n this.texClass = core.texClass;\n }\n };\n AbstractMmlNode.prototype.getPrevClass = function (prev) {\n if (prev) {\n this.prevClass = prev.texClass;\n this.prevLevel = prev.attributes.get('scriptlevel');\n }\n };\n AbstractMmlNode.prototype.texSpacing = function () {\n var prevClass = (this.prevClass != null ? this.prevClass : exports.TEXCLASS.NONE);\n var texClass = this.texClass || exports.TEXCLASS.ORD;\n if (prevClass === exports.TEXCLASS.NONE || texClass === exports.TEXCLASS.NONE) {\n return '';\n }\n if (prevClass === exports.TEXCLASS.VCENTER) {\n prevClass = exports.TEXCLASS.ORD;\n }\n if (texClass === exports.TEXCLASS.VCENTER) {\n texClass = exports.TEXCLASS.ORD;\n }\n var space = TEXSPACE[prevClass][texClass];\n if ((this.prevLevel > 0 || this.attributes.get('scriptlevel') > 0) && space >= 0) {\n return '';\n }\n return TEXSPACELENGTH[Math.abs(space)];\n };\n AbstractMmlNode.prototype.hasSpacingAttributes = function () {\n return this.isEmbellished && this.coreMO().hasSpacingAttributes();\n };\n AbstractMmlNode.prototype.setInheritedAttributes = function (attributes, display, level, prime) {\n var e_5, _a;\n if (attributes === void 0) { attributes = {}; }\n if (display === void 0) { display = false; }\n if (level === void 0) { level = 0; }\n if (prime === void 0) { prime = false; }\n var defaults = this.attributes.getAllDefaults();\n try {\n for (var _b = __values(Object.keys(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (defaults.hasOwnProperty(key) || AbstractMmlNode.alwaysInherit.hasOwnProperty(key)) {\n var _d = __read(attributes[key], 2), node = _d[0], value = _d[1];\n var noinherit = (AbstractMmlNode.noInherit[node] || {})[this.kind] || {};\n if (!noinherit[key]) {\n this.attributes.setInherited(key, value);\n }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n var displaystyle = this.attributes.getExplicit('displaystyle');\n if (displaystyle === undefined) {\n this.attributes.setInherited('displaystyle', display);\n }\n var scriptlevel = this.attributes.getExplicit('scriptlevel');\n if (scriptlevel === undefined) {\n this.attributes.setInherited('scriptlevel', level);\n }\n if (prime) {\n this.setProperty('texprimestyle', prime);\n }\n var arity = this.arity;\n if (arity >= 0 && arity !== Infinity && ((arity === 1 && this.childNodes.length === 0) ||\n (arity !== 1 && this.childNodes.length !== arity))) {\n if (arity < this.childNodes.length) {\n this.childNodes = this.childNodes.slice(0, arity);\n }\n else {\n while (this.childNodes.length < arity) {\n this.appendChild(this.factory.create('mrow'));\n }\n }\n }\n this.setChildInheritedAttributes(attributes, display, level, prime);\n };\n AbstractMmlNode.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n var e_6, _a;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.setInheritedAttributes(attributes, display, level, prime);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n };\n AbstractMmlNode.prototype.addInheritedAttributes = function (current, attributes) {\n var e_7, _a;\n var updated = __assign({}, current);\n try {\n for (var _b = __values(Object.keys(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_3 = _c.value;\n if (name_3 !== 'displaystyle' && name_3 !== 'scriptlevel' && name_3 !== 'style') {\n updated[name_3] = [this.kind, attributes[name_3]];\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n return updated;\n };\n AbstractMmlNode.prototype.inheritAttributesFrom = function (node) {\n var attributes = node.attributes;\n var display = attributes.get('displaystyle');\n var scriptlevel = attributes.get('scriptlevel');\n var defaults = (!attributes.isSet('mathsize') ? {} : {\n mathsize: ['math', attributes.get('mathsize')]\n });\n var prime = node.getProperty('texprimestyle') || false;\n this.setInheritedAttributes(defaults, display, scriptlevel, prime);\n };\n AbstractMmlNode.prototype.verifyTree = function (options) {\n if (options === void 0) { options = null; }\n if (options === null) {\n return;\n }\n this.verifyAttributes(options);\n var arity = this.arity;\n if (options['checkArity']) {\n if (arity >= 0 && arity !== Infinity &&\n ((arity === 1 && this.childNodes.length === 0) ||\n (arity !== 1 && this.childNodes.length !== arity))) {\n this.mError('Wrong number of children for \"' + this.kind + '\" node', options, true);\n }\n }\n this.verifyChildren(options);\n };\n AbstractMmlNode.prototype.verifyAttributes = function (options) {\n var e_8, _a;\n if (options['checkAttributes']) {\n var attributes = this.attributes;\n var bad = [];\n try {\n for (var _b = __values(attributes.getExplicitNames()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_4 = _c.value;\n if (name_4.substr(0, 5) !== 'data-' && attributes.getDefault(name_4) === undefined &&\n !name_4.match(/^(?:class|style|id|(?:xlink:)?href)$/)) {\n bad.push(name_4);\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_8) throw e_8.error; }\n }\n if (bad.length) {\n this.mError('Unknown attributes for ' + this.kind + ' node: ' + bad.join(', '), options);\n }\n }\n };\n AbstractMmlNode.prototype.verifyChildren = function (options) {\n var e_9, _a;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.verifyTree(options);\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_9) throw e_9.error; }\n }\n };\n AbstractMmlNode.prototype.mError = function (message, options, short) {\n if (short === void 0) { short = false; }\n if (this.parent && this.parent.isKind('merror')) {\n return null;\n }\n var merror = this.factory.create('merror');\n merror.attributes.set('data-mjx-message', message);\n if (options['fullErrors'] || short) {\n var mtext = this.factory.create('mtext');\n var text = this.factory.create('text');\n text.setText(options['fullErrors'] ? message : this.kind);\n mtext.appendChild(text);\n merror.appendChild(mtext);\n this.parent.replaceChild(merror, this);\n }\n else {\n this.parent.replaceChild(merror, this);\n merror.appendChild(this);\n }\n return merror;\n };\n AbstractMmlNode.defaults = {\n mathbackground: Attributes_js_1.INHERIT,\n mathcolor: Attributes_js_1.INHERIT,\n mathsize: Attributes_js_1.INHERIT,\n dir: Attributes_js_1.INHERIT\n };\n AbstractMmlNode.noInherit = {\n mstyle: {\n mpadded: { width: true, height: true, depth: true, lspace: true, voffset: true },\n mtable: { width: true, height: true, depth: true, align: true }\n },\n maligngroup: {\n mrow: { groupalign: true },\n mtable: { groupalign: true }\n }\n };\n AbstractMmlNode.alwaysInherit = {\n scriptminsize: true,\n scriptsizemultiplier: true\n };\n AbstractMmlNode.verifyDefaults = {\n checkArity: true,\n checkAttributes: false,\n fullErrors: false,\n fixMmultiscripts: true,\n fixMtables: true\n };\n return AbstractMmlNode;\n}(Node_js_1.AbstractNode));\nexports.AbstractMmlNode = AbstractMmlNode;\nvar AbstractMmlTokenNode = (function (_super) {\n __extends(AbstractMmlTokenNode, _super);\n function AbstractMmlTokenNode() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(AbstractMmlTokenNode.prototype, \"isToken\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n AbstractMmlTokenNode.prototype.getText = function () {\n var e_10, _a;\n var text = '';\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child instanceof TextNode) {\n text += child.getText();\n }\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_10) throw e_10.error; }\n }\n return text;\n };\n AbstractMmlTokenNode.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n var e_11, _a;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child instanceof AbstractMmlNode) {\n child.setInheritedAttributes(attributes, display, level, prime);\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_11) throw e_11.error; }\n }\n };\n AbstractMmlTokenNode.prototype.walkTree = function (func, data) {\n var e_12, _a;\n func(this, data);\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child instanceof AbstractMmlNode) {\n child.walkTree(func, data);\n }\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_12) throw e_12.error; }\n }\n return data;\n };\n AbstractMmlTokenNode.defaults = __assign(__assign({}, AbstractMmlNode.defaults), { mathvariant: 'normal', mathsize: Attributes_js_1.INHERIT });\n return AbstractMmlTokenNode;\n}(AbstractMmlNode));\nexports.AbstractMmlTokenNode = AbstractMmlTokenNode;\nvar AbstractMmlLayoutNode = (function (_super) {\n __extends(AbstractMmlLayoutNode, _super);\n function AbstractMmlLayoutNode() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(AbstractMmlLayoutNode.prototype, \"isSpacelike\", {\n get: function () {\n return this.childNodes[0].isSpacelike;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlLayoutNode.prototype, \"isEmbellished\", {\n get: function () {\n return this.childNodes[0].isEmbellished;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlLayoutNode.prototype, \"arity\", {\n get: function () {\n return -1;\n },\n enumerable: false,\n configurable: true\n });\n AbstractMmlLayoutNode.prototype.core = function () {\n return this.childNodes[0];\n };\n AbstractMmlLayoutNode.prototype.coreMO = function () {\n return this.childNodes[0].coreMO();\n };\n AbstractMmlLayoutNode.prototype.setTeXclass = function (prev) {\n prev = this.childNodes[0].setTeXclass(prev);\n this.updateTeXclass(this.childNodes[0]);\n return prev;\n };\n AbstractMmlLayoutNode.defaults = AbstractMmlNode.defaults;\n return AbstractMmlLayoutNode;\n}(AbstractMmlNode));\nexports.AbstractMmlLayoutNode = AbstractMmlLayoutNode;\nvar AbstractMmlBaseNode = (function (_super) {\n __extends(AbstractMmlBaseNode, _super);\n function AbstractMmlBaseNode() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(AbstractMmlBaseNode.prototype, \"isEmbellished\", {\n get: function () {\n return this.childNodes[0].isEmbellished;\n },\n enumerable: false,\n configurable: true\n });\n AbstractMmlBaseNode.prototype.core = function () {\n return this.childNodes[0];\n };\n AbstractMmlBaseNode.prototype.coreMO = function () {\n return this.childNodes[0].coreMO();\n };\n AbstractMmlBaseNode.prototype.setTeXclass = function (prev) {\n var e_13, _a;\n this.getPrevClass(prev);\n this.texClass = exports.TEXCLASS.ORD;\n var base = this.childNodes[0];\n if (base) {\n if (this.isEmbellished || base.isKind('mi')) {\n prev = base.setTeXclass(prev);\n this.updateTeXclass(this.core());\n }\n else {\n base.setTeXclass(null);\n prev = this;\n }\n }\n else {\n prev = this;\n }\n try {\n for (var _b = __values(this.childNodes.slice(1)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child) {\n child.setTeXclass(null);\n }\n }\n }\n catch (e_13_1) { e_13 = { error: e_13_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_13) throw e_13.error; }\n }\n return prev;\n };\n AbstractMmlBaseNode.defaults = AbstractMmlNode.defaults;\n return AbstractMmlBaseNode;\n}(AbstractMmlNode));\nexports.AbstractMmlBaseNode = AbstractMmlBaseNode;\nvar AbstractMmlEmptyNode = (function (_super) {\n __extends(AbstractMmlEmptyNode, _super);\n function AbstractMmlEmptyNode() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"isToken\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"isEmbellished\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"isSpacelike\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"linebreakContainer\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"hasNewLine\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"arity\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"isInferred\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"notParent\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"Parent\", {\n get: function () {\n return this.parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"texClass\", {\n get: function () {\n return exports.TEXCLASS.NONE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"prevClass\", {\n get: function () {\n return exports.TEXCLASS.NONE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"prevLevel\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n AbstractMmlEmptyNode.prototype.hasSpacingAttributes = function () {\n return false;\n };\n Object.defineProperty(AbstractMmlEmptyNode.prototype, \"attributes\", {\n get: function () {\n return null;\n },\n enumerable: false,\n configurable: true\n });\n AbstractMmlEmptyNode.prototype.core = function () {\n return this;\n };\n AbstractMmlEmptyNode.prototype.coreMO = function () {\n return this;\n };\n AbstractMmlEmptyNode.prototype.coreIndex = function () {\n return 0;\n };\n AbstractMmlEmptyNode.prototype.childPosition = function () {\n return 0;\n };\n AbstractMmlEmptyNode.prototype.setTeXclass = function (prev) {\n return prev;\n };\n AbstractMmlEmptyNode.prototype.texSpacing = function () {\n return '';\n };\n AbstractMmlEmptyNode.prototype.setInheritedAttributes = function (_attributes, _display, _level, _prime) { };\n AbstractMmlEmptyNode.prototype.inheritAttributesFrom = function (_node) { };\n AbstractMmlEmptyNode.prototype.verifyTree = function (_options) { };\n AbstractMmlEmptyNode.prototype.mError = function (_message, _options, _short) {\n if (_short === void 0) { _short = false; }\n return null;\n };\n return AbstractMmlEmptyNode;\n}(Node_js_1.AbstractEmptyNode));\nexports.AbstractMmlEmptyNode = AbstractMmlEmptyNode;\nvar TextNode = (function (_super) {\n __extends(TextNode, _super);\n function TextNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.text = '';\n return _this;\n }\n Object.defineProperty(TextNode.prototype, \"kind\", {\n get: function () {\n return 'text';\n },\n enumerable: false,\n configurable: true\n });\n TextNode.prototype.getText = function () {\n return this.text;\n };\n TextNode.prototype.setText = function (text) {\n this.text = text;\n return this;\n };\n TextNode.prototype.copy = function () {\n return this.factory.create(this.kind).setText(this.getText());\n };\n TextNode.prototype.toString = function () {\n return this.text;\n };\n return TextNode;\n}(AbstractMmlEmptyNode));\nexports.TextNode = TextNode;\nvar XMLNode = (function (_super) {\n __extends(XMLNode, _super);\n function XMLNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.xml = null;\n _this.adaptor = null;\n return _this;\n }\n Object.defineProperty(XMLNode.prototype, \"kind\", {\n get: function () {\n return 'XML';\n },\n enumerable: false,\n configurable: true\n });\n XMLNode.prototype.getXML = function () {\n return this.xml;\n };\n XMLNode.prototype.setXML = function (xml, adaptor) {\n if (adaptor === void 0) { adaptor = null; }\n this.xml = xml;\n this.adaptor = adaptor;\n return this;\n };\n XMLNode.prototype.getSerializedXML = function () {\n return this.adaptor.serializeXML(this.xml);\n };\n XMLNode.prototype.copy = function () {\n return this.factory.create(this.kind).setXML(this.adaptor.clone(this.xml));\n };\n XMLNode.prototype.toString = function () {\n return 'XML data';\n };\n return XMLNode;\n}(AbstractMmlEmptyNode));\nexports.XMLNode = XMLNode;\n//# sourceMappingURL=MmlNode.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TeXAtom = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar mo_js_1 = require(\"./mo.js\");\nvar TeXAtom = (function (_super) {\n __extends(TeXAtom, _super);\n function TeXAtom(factory, attributes, children) {\n var _this = _super.call(this, factory, attributes, children) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n _this.setProperty('texClass', _this.texClass);\n return _this;\n }\n Object.defineProperty(TeXAtom.prototype, \"kind\", {\n get: function () {\n return 'TeXAtom';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TeXAtom.prototype, \"arity\", {\n get: function () {\n return -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TeXAtom.prototype, \"notParent\", {\n get: function () {\n return this.childNodes[0] && this.childNodes[0].childNodes.length === 1;\n },\n enumerable: false,\n configurable: true\n });\n TeXAtom.prototype.setTeXclass = function (prev) {\n this.childNodes[0].setTeXclass(null);\n return this.adjustTeXclass(prev);\n };\n TeXAtom.prototype.adjustTeXclass = function (prev) {\n return prev;\n };\n TeXAtom.defaults = __assign({}, MmlNode_js_1.AbstractMmlBaseNode.defaults);\n return TeXAtom;\n}(MmlNode_js_1.AbstractMmlBaseNode));\nexports.TeXAtom = TeXAtom;\nTeXAtom.prototype.adjustTeXclass = mo_js_1.MmlMo.prototype.adjustTeXclass;\n//# sourceMappingURL=TeXAtom.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMaction = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMaction = (function (_super) {\n __extends(MmlMaction, _super);\n function MmlMaction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMaction.prototype, \"kind\", {\n get: function () {\n return 'maction';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMaction.prototype, \"arity\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMaction.prototype, \"selected\", {\n get: function () {\n var selection = this.attributes.get('selection');\n var i = Math.max(1, Math.min(this.childNodes.length, selection)) - 1;\n return this.childNodes[i] || this.factory.create('mrow');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMaction.prototype, \"isEmbellished\", {\n get: function () {\n return this.selected.isEmbellished;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMaction.prototype, \"isSpacelike\", {\n get: function () {\n return this.selected.isSpacelike;\n },\n enumerable: false,\n configurable: true\n });\n MmlMaction.prototype.core = function () {\n return this.selected.core();\n };\n MmlMaction.prototype.coreMO = function () {\n return this.selected.coreMO();\n };\n MmlMaction.prototype.verifyAttributes = function (options) {\n _super.prototype.verifyAttributes.call(this, options);\n if (this.attributes.get('actiontype') !== 'toggle' &&\n this.attributes.getExplicit('selection') !== undefined) {\n var attributes = this.attributes.getAllAttributes();\n delete attributes.selection;\n }\n };\n MmlMaction.prototype.setTeXclass = function (prev) {\n if (this.attributes.get('actiontype') === 'tooltip' && this.childNodes[1]) {\n this.childNodes[1].setTeXclass(null);\n }\n var selected = this.selected;\n prev = selected.setTeXclass(prev);\n this.updateTeXclass(selected);\n return prev;\n };\n MmlMaction.prototype.nextToggleSelection = function () {\n var selection = Math.max(1, this.attributes.get('selection') + 1);\n if (selection > this.childNodes.length) {\n selection = 1;\n }\n this.attributes.set('selection', selection);\n };\n MmlMaction.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlNode.defaults), { actiontype: 'toggle', selection: 1 });\n return MmlMaction;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMaction = MmlMaction;\n//# sourceMappingURL=maction.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMaligngroup = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar Attributes_js_1 = require(\"../Attributes.js\");\nvar MmlMaligngroup = (function (_super) {\n __extends(MmlMaligngroup, _super);\n function MmlMaligngroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMaligngroup.prototype, \"kind\", {\n get: function () {\n return 'maligngroup';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMaligngroup.prototype, \"isSpacelike\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMaligngroup.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n attributes = this.addInheritedAttributes(attributes, this.attributes.getAllAttributes());\n _super.prototype.setChildInheritedAttributes.call(this, attributes, display, level, prime);\n };\n MmlMaligngroup.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlLayoutNode.defaults), { groupalign: Attributes_js_1.INHERIT });\n return MmlMaligngroup;\n}(MmlNode_js_1.AbstractMmlLayoutNode));\nexports.MmlMaligngroup = MmlMaligngroup;\n//# sourceMappingURL=maligngroup.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMalignmark = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMalignmark = (function (_super) {\n __extends(MmlMalignmark, _super);\n function MmlMalignmark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMalignmark.prototype, \"kind\", {\n get: function () {\n return 'malignmark';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMalignmark.prototype, \"arity\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMalignmark.prototype, \"isSpacelike\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMalignmark.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlNode.defaults), { edge: 'left' });\n return MmlMalignmark;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMalignmark = MmlMalignmark;\n//# sourceMappingURL=malignmark.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMath = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMath = (function (_super) {\n __extends(MmlMath, _super);\n function MmlMath() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMath.prototype, \"kind\", {\n get: function () {\n return 'math';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMath.prototype, \"linebreakContainer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMath.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n if (this.attributes.get('mode') === 'display') {\n this.attributes.setInherited('display', 'block');\n }\n attributes = this.addInheritedAttributes(attributes, this.attributes.getAllAttributes());\n display = (!!this.attributes.get('displaystyle') ||\n (!this.attributes.get('displaystyle') && this.attributes.get('display') === 'block'));\n this.attributes.setInherited('displaystyle', display);\n level = (this.attributes.get('scriptlevel') ||\n this.constructor.defaults['scriptlevel']);\n _super.prototype.setChildInheritedAttributes.call(this, attributes, display, level, prime);\n };\n MmlMath.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlLayoutNode.defaults), { mathvariant: 'normal', mathsize: 'normal', mathcolor: '', mathbackground: 'transparent', dir: 'ltr', scriptlevel: 0, displaystyle: false, display: 'inline', maxwidth: '', overflow: 'linebreak', altimg: '', 'altimg-width': '', 'altimg-height': '', 'altimg-valign': '', alttext: '', cdgroup: '', scriptsizemultiplier: 1 / Math.sqrt(2), scriptminsize: '8px', infixlinebreakstyle: 'before', lineleading: '1ex', linebreakmultchar: '\\u2062', indentshift: 'auto', indentalign: 'auto', indenttarget: '', indentalignfirst: 'indentalign', indentshiftfirst: 'indentshift', indentalignlast: 'indentalign', indentshiftlast: 'indentshift' });\n return MmlMath;\n}(MmlNode_js_1.AbstractMmlLayoutNode));\nexports.MmlMath = MmlMath;\n//# sourceMappingURL=math.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MathChoice = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MathChoice = (function (_super) {\n __extends(MathChoice, _super);\n function MathChoice() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MathChoice.prototype, \"kind\", {\n get: function () {\n return 'MathChoice';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MathChoice.prototype, \"arity\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MathChoice.prototype, \"notParent\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MathChoice.prototype.setInheritedAttributes = function (attributes, display, level, prime) {\n var selection = (display ? 0 : Math.max(0, Math.min(level, 2)) + 1);\n var child = this.childNodes[selection] || this.factory.create('mrow');\n this.parent.replaceChild(child, this);\n child.setInheritedAttributes(attributes, display, level, prime);\n };\n MathChoice.defaults = __assign({}, MmlNode_js_1.AbstractMmlBaseNode.defaults);\n return MathChoice;\n}(MmlNode_js_1.AbstractMmlBaseNode));\nexports.MathChoice = MathChoice;\n//# sourceMappingURL=mathchoice.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMenclose = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMenclose = (function (_super) {\n __extends(MmlMenclose, _super);\n function MmlMenclose() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMenclose.prototype, \"kind\", {\n get: function () {\n return 'menclose';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMenclose.prototype, \"arity\", {\n get: function () {\n return -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMenclose.prototype, \"linebreakContininer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMenclose.prototype.setTeXclass = function (prev) {\n prev = this.childNodes[0].setTeXclass(prev);\n this.updateTeXclass(this.childNodes[0]);\n return prev;\n };\n MmlMenclose.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlNode.defaults), { notation: 'longdiv' });\n return MmlMenclose;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMenclose = MmlMenclose;\n//# sourceMappingURL=menclose.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMerror = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMerror = (function (_super) {\n __extends(MmlMerror, _super);\n function MmlMerror() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMerror.prototype, \"kind\", {\n get: function () {\n return 'merror';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMerror.prototype, \"arity\", {\n get: function () {\n return -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMerror.prototype, \"linebreakContainer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMerror.defaults = __assign({}, MmlNode_js_1.AbstractMmlNode.defaults);\n return MmlMerror;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMerror = MmlMerror;\n//# sourceMappingURL=merror.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMfenced = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMfenced = (function (_super) {\n __extends(MmlMfenced, _super);\n function MmlMfenced() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.INNER;\n _this.separators = [];\n _this.open = null;\n _this.close = null;\n return _this;\n }\n Object.defineProperty(MmlMfenced.prototype, \"kind\", {\n get: function () {\n return 'mfenced';\n },\n enumerable: false,\n configurable: true\n });\n MmlMfenced.prototype.setTeXclass = function (prev) {\n this.getPrevClass(prev);\n if (this.open) {\n prev = this.open.setTeXclass(prev);\n }\n if (this.childNodes[0]) {\n prev = this.childNodes[0].setTeXclass(prev);\n }\n for (var i = 1, m = this.childNodes.length; i < m; i++) {\n if (this.separators[i - 1]) {\n prev = this.separators[i - 1].setTeXclass(prev);\n }\n if (this.childNodes[i]) {\n prev = this.childNodes[i].setTeXclass(prev);\n }\n }\n if (this.close) {\n prev = this.close.setTeXclass(prev);\n }\n this.updateTeXclass(this.open);\n return prev;\n };\n MmlMfenced.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n var e_1, _a;\n this.addFakeNodes();\n try {\n for (var _b = __values([this.open, this.close].concat(this.separators)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child) {\n child.setInheritedAttributes(attributes, display, level, prime);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n _super.prototype.setChildInheritedAttributes.call(this, attributes, display, level, prime);\n };\n MmlMfenced.prototype.addFakeNodes = function () {\n var e_2, _a;\n var _b = this.attributes.getList('open', 'close', 'separators'), open = _b.open, close = _b.close, separators = _b.separators;\n open = open.replace(/[ \\t\\n\\r]/g, '');\n close = close.replace(/[ \\t\\n\\r]/g, '');\n separators = separators.replace(/[ \\t\\n\\r]/g, '');\n if (open) {\n this.open = this.fakeNode(open, { fence: true, form: 'prefix' }, MmlNode_js_1.TEXCLASS.OPEN);\n }\n if (separators) {\n while (separators.length < this.childNodes.length - 1) {\n separators += separators.charAt(separators.length - 1);\n }\n var i = 0;\n try {\n for (var _c = __values(this.childNodes.slice(1)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n if (child) {\n this.separators.push(this.fakeNode(separators.charAt(i++)));\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (close) {\n this.close = this.fakeNode(close, { fence: true, form: 'postfix' }, MmlNode_js_1.TEXCLASS.CLOSE);\n }\n };\n MmlMfenced.prototype.fakeNode = function (c, properties, texClass) {\n if (properties === void 0) { properties = {}; }\n if (texClass === void 0) { texClass = null; }\n var text = this.factory.create('text').setText(c);\n var node = this.factory.create('mo', properties, [text]);\n node.texClass = texClass;\n node.parent = this;\n return node;\n };\n MmlMfenced.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlNode.defaults), { open: '(', close: ')', separators: ',' });\n return MmlMfenced;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMfenced = MmlMfenced;\n//# sourceMappingURL=mfenced.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMfrac = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMfrac = (function (_super) {\n __extends(MmlMfrac, _super);\n function MmlMfrac() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMfrac.prototype, \"kind\", {\n get: function () {\n return 'mfrac';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMfrac.prototype, \"arity\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMfrac.prototype, \"linebreakContainer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMfrac.prototype.setTeXclass = function (prev) {\n var e_1, _a;\n this.getPrevClass(prev);\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.setTeXclass(null);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n MmlMfrac.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n if (!display || level > 0) {\n level++;\n }\n this.childNodes[0].setInheritedAttributes(attributes, false, level, prime);\n this.childNodes[1].setInheritedAttributes(attributes, false, level, true);\n };\n MmlMfrac.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlBaseNode.defaults), { linethickness: 'medium', numalign: 'center', denomalign: 'center', bevelled: false });\n return MmlMfrac;\n}(MmlNode_js_1.AbstractMmlBaseNode));\nexports.MmlMfrac = MmlMfrac;\n//# sourceMappingURL=mfrac.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMglyph = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMglyph = (function (_super) {\n __extends(MmlMglyph, _super);\n function MmlMglyph() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMglyph.prototype, \"kind\", {\n get: function () {\n return 'mglyph';\n },\n enumerable: false,\n configurable: true\n });\n MmlMglyph.prototype.verifyAttributes = function (options) {\n var _a = this.attributes.getList('src', 'fontfamily', 'index'), src = _a.src, fontfamily = _a.fontfamily, index = _a.index;\n if (src === '' && (fontfamily === '' || index === '')) {\n this.mError('mglyph must have either src or fontfamily and index attributes', options, true);\n }\n else {\n _super.prototype.verifyAttributes.call(this, options);\n }\n };\n MmlMglyph.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlTokenNode.defaults), { alt: '', src: '', index: '', width: 'auto', height: 'auto', valign: '0em' });\n return MmlMglyph;\n}(MmlNode_js_1.AbstractMmlTokenNode));\nexports.MmlMglyph = MmlMglyph;\n//# sourceMappingURL=mglyph.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMi = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMi = (function (_super) {\n __extends(MmlMi, _super);\n function MmlMi() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMi.prototype, \"kind\", {\n get: function () {\n return 'mi';\n },\n enumerable: false,\n configurable: true\n });\n MmlMi.prototype.setInheritedAttributes = function (attributes, display, level, prime) {\n if (attributes === void 0) { attributes = {}; }\n if (display === void 0) { display = false; }\n if (level === void 0) { level = 0; }\n if (prime === void 0) { prime = false; }\n _super.prototype.setInheritedAttributes.call(this, attributes, display, level, prime);\n var text = this.getText();\n if (text.match(MmlMi.singleCharacter) && !attributes.mathvariant) {\n this.attributes.setInherited('mathvariant', 'italic');\n }\n };\n MmlMi.prototype.setTeXclass = function (prev) {\n this.getPrevClass(prev);\n var name = this.getText();\n if (name.length > 1 && name.match(MmlMi.operatorName) &&\n this.attributes.get('mathvariant') === 'normal' &&\n this.getProperty('autoOP') === undefined &&\n this.getProperty('texClass') === undefined) {\n this.texClass = MmlNode_js_1.TEXCLASS.OP;\n this.setProperty('autoOP', true);\n }\n return this;\n };\n MmlMi.defaults = __assign({}, MmlNode_js_1.AbstractMmlTokenNode.defaults);\n MmlMi.operatorName = /^[a-z][a-z0-9]*$/i;\n MmlMi.singleCharacter = /^[\\uD800-\\uDBFF]?.[\\u0300-\\u036F\\u1AB0-\\u1ABE\\u1DC0-\\u1DFF\\u20D0-\\u20EF]*$/;\n return MmlMi;\n}(MmlNode_js_1.AbstractMmlTokenNode));\nexports.MmlMi = MmlMi;\n//# sourceMappingURL=mi.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlNone = exports.MmlMprescripts = exports.MmlMmultiscripts = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar msubsup_js_1 = require(\"./msubsup.js\");\nvar MmlMmultiscripts = (function (_super) {\n __extends(MmlMmultiscripts, _super);\n function MmlMmultiscripts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMmultiscripts.prototype, \"kind\", {\n get: function () {\n return 'mmultiscripts';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMmultiscripts.prototype, \"arity\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n MmlMmultiscripts.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n this.childNodes[0].setInheritedAttributes(attributes, display, level, prime);\n var prescripts = false;\n for (var i = 1, n = 0; i < this.childNodes.length; i++) {\n var child = this.childNodes[i];\n if (child.isKind('mprescripts')) {\n if (!prescripts) {\n prescripts = true;\n if (i % 2 === 0) {\n var mrow = this.factory.create('mrow');\n this.childNodes.splice(i, 0, mrow);\n mrow.parent = this;\n i++;\n }\n }\n }\n else {\n var primestyle = prime || (n % 2 === 0);\n child.setInheritedAttributes(attributes, false, level + 1, primestyle);\n n++;\n }\n }\n if (this.childNodes.length % 2 === (prescripts ? 1 : 0)) {\n this.appendChild(this.factory.create('mrow'));\n this.childNodes[this.childNodes.length - 1].setInheritedAttributes(attributes, false, level + 1, prime);\n }\n };\n MmlMmultiscripts.prototype.verifyChildren = function (options) {\n var prescripts = false;\n var fix = options['fixMmultiscripts'];\n for (var i = 0; i < this.childNodes.length; i++) {\n var child = this.childNodes[i];\n if (child.isKind('mprescripts')) {\n if (prescripts) {\n child.mError(child.kind + ' can only appear once in ' + this.kind, options, true);\n }\n else {\n prescripts = true;\n if (i % 2 === 0 && !fix) {\n this.mError('There must be an equal number of prescripts of each type', options);\n }\n }\n }\n }\n if (this.childNodes.length % 2 === (prescripts ? 1 : 0) && !fix) {\n this.mError('There must be an equal number of scripts of each type', options);\n }\n _super.prototype.verifyChildren.call(this, options);\n };\n MmlMmultiscripts.defaults = __assign({}, msubsup_js_1.MmlMsubsup.defaults);\n return MmlMmultiscripts;\n}(msubsup_js_1.MmlMsubsup));\nexports.MmlMmultiscripts = MmlMmultiscripts;\nvar MmlMprescripts = (function (_super) {\n __extends(MmlMprescripts, _super);\n function MmlMprescripts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMprescripts.prototype, \"kind\", {\n get: function () {\n return 'mprescripts';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMprescripts.prototype, \"arity\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n MmlMprescripts.prototype.verifyTree = function (options) {\n _super.prototype.verifyTree.call(this, options);\n if (this.parent && !this.parent.isKind('mmultiscripts')) {\n this.mError(this.kind + ' must be a child of mmultiscripts', options, true);\n }\n };\n MmlMprescripts.defaults = __assign({}, MmlNode_js_1.AbstractMmlNode.defaults);\n return MmlMprescripts;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMprescripts = MmlMprescripts;\nvar MmlNone = (function (_super) {\n __extends(MmlNone, _super);\n function MmlNone() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlNone.prototype, \"kind\", {\n get: function () {\n return 'none';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlNone.prototype, \"arity\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n MmlNone.prototype.verifyTree = function (options) {\n _super.prototype.verifyTree.call(this, options);\n if (this.parent && !this.parent.isKind('mmultiscripts')) {\n this.mError(this.kind + ' must be a child of mmultiscripts', options, true);\n }\n };\n MmlNone.defaults = __assign({}, MmlNode_js_1.AbstractMmlNode.defaults);\n return MmlNone;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlNone = MmlNone;\n//# sourceMappingURL=mmultiscripts.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMn = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMn = (function (_super) {\n __extends(MmlMn, _super);\n function MmlMn() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMn.prototype, \"kind\", {\n get: function () {\n return 'mn';\n },\n enumerable: false,\n configurable: true\n });\n MmlMn.defaults = __assign({}, MmlNode_js_1.AbstractMmlTokenNode.defaults);\n return MmlMn;\n}(MmlNode_js_1.AbstractMmlTokenNode));\nexports.MmlMn = MmlMn;\n//# sourceMappingURL=mn.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMo = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar OperatorDictionary_js_1 = require(\"../OperatorDictionary.js\");\nvar string_js_1 = require(\"../../../util/string.js\");\nvar MmlMo = (function (_super) {\n __extends(MmlMo, _super);\n function MmlMo() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._texClass = null;\n _this.lspace = 5 / 18;\n _this.rspace = 5 / 18;\n return _this;\n }\n Object.defineProperty(MmlMo.prototype, \"texClass\", {\n get: function () {\n if (this._texClass === null) {\n var mo = this.getText();\n var _a = __read(this.handleExplicitForm(this.getForms()), 3), form1 = _a[0], form2 = _a[1], form3 = _a[2];\n var OPTABLE_1 = this.constructor.OPTABLE;\n var def = OPTABLE_1[form1][mo] || OPTABLE_1[form2][mo] || OPTABLE_1[form3][mo];\n return def ? def[2] : MmlNode_js_1.TEXCLASS.REL;\n }\n return this._texClass;\n },\n set: function (value) {\n this._texClass = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMo.prototype, \"kind\", {\n get: function () {\n return 'mo';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMo.prototype, \"isEmbellished\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMo.prototype, \"hasNewLine\", {\n get: function () {\n return this.attributes.get('linebreak') === 'newline';\n },\n enumerable: false,\n configurable: true\n });\n MmlMo.prototype.coreParent = function () {\n var embellished = this;\n var parent = this;\n var math = this.factory.getNodeClass('math');\n while (parent && parent.isEmbellished && parent.coreMO() === this && !(parent instanceof math)) {\n embellished = parent;\n parent = parent.parent;\n }\n return embellished;\n };\n MmlMo.prototype.coreText = function (parent) {\n if (!parent) {\n return '';\n }\n if (parent.isEmbellished) {\n return parent.coreMO().getText();\n }\n while ((((parent.isKind('mrow') ||\n (parent.isKind('TeXAtom') && parent.texClass !== MmlNode_js_1.TEXCLASS.VCENTER) ||\n parent.isKind('mstyle') ||\n parent.isKind('mphantom')) && parent.childNodes.length === 1) ||\n parent.isKind('munderover')) && parent.childNodes[0]) {\n parent = parent.childNodes[0];\n }\n return (parent.isToken ? parent.getText() : '');\n };\n MmlMo.prototype.hasSpacingAttributes = function () {\n return this.attributes.isSet('lspace') ||\n this.attributes.isSet('rspace');\n };\n Object.defineProperty(MmlMo.prototype, \"isAccent\", {\n get: function () {\n var accent = false;\n var node = this.coreParent().parent;\n if (node) {\n var key = (node.isKind('mover') ?\n (node.childNodes[node.over].coreMO() ?\n 'accent' : '') :\n node.isKind('munder') ?\n (node.childNodes[node.under].coreMO() ?\n 'accentunder' : '') :\n node.isKind('munderover') ?\n (this === node.childNodes[node.over].coreMO() ?\n 'accent' :\n this === node.childNodes[node.under].coreMO() ?\n 'accentunder' : '') :\n '');\n if (key) {\n var value = node.attributes.getExplicit(key);\n accent = (value !== undefined ? accent : this.attributes.get('accent'));\n }\n }\n return accent;\n },\n enumerable: false,\n configurable: true\n });\n MmlMo.prototype.setTeXclass = function (prev) {\n var _a = this.attributes.getList('form', 'fence'), form = _a.form, fence = _a.fence;\n if (this.getProperty('texClass') === undefined &&\n (this.attributes.isSet('lspace') || this.attributes.isSet('rspace'))) {\n return null;\n }\n if (fence && this.texClass === MmlNode_js_1.TEXCLASS.REL) {\n if (form === 'prefix') {\n this.texClass = MmlNode_js_1.TEXCLASS.OPEN;\n }\n if (form === 'postfix') {\n this.texClass = MmlNode_js_1.TEXCLASS.CLOSE;\n }\n }\n return this.adjustTeXclass(prev);\n };\n MmlMo.prototype.adjustTeXclass = function (prev) {\n var texClass = this.texClass;\n var prevClass = this.prevClass;\n if (texClass === MmlNode_js_1.TEXCLASS.NONE) {\n return prev;\n }\n if (prev) {\n if (prev.getProperty('autoOP') && (texClass === MmlNode_js_1.TEXCLASS.BIN || texClass === MmlNode_js_1.TEXCLASS.REL)) {\n prevClass = prev.texClass = MmlNode_js_1.TEXCLASS.ORD;\n }\n prevClass = this.prevClass = (prev.texClass || MmlNode_js_1.TEXCLASS.ORD);\n this.prevLevel = this.attributes.getInherited('scriptlevel');\n }\n else {\n prevClass = this.prevClass = MmlNode_js_1.TEXCLASS.NONE;\n }\n if (texClass === MmlNode_js_1.TEXCLASS.BIN &&\n (prevClass === MmlNode_js_1.TEXCLASS.NONE || prevClass === MmlNode_js_1.TEXCLASS.BIN || prevClass === MmlNode_js_1.TEXCLASS.OP ||\n prevClass === MmlNode_js_1.TEXCLASS.REL || prevClass === MmlNode_js_1.TEXCLASS.OPEN || prevClass === MmlNode_js_1.TEXCLASS.PUNCT)) {\n this.texClass = MmlNode_js_1.TEXCLASS.ORD;\n }\n else if (prevClass === MmlNode_js_1.TEXCLASS.BIN &&\n (texClass === MmlNode_js_1.TEXCLASS.REL || texClass === MmlNode_js_1.TEXCLASS.CLOSE || texClass === MmlNode_js_1.TEXCLASS.PUNCT)) {\n prev.texClass = this.prevClass = MmlNode_js_1.TEXCLASS.ORD;\n }\n else if (texClass === MmlNode_js_1.TEXCLASS.BIN) {\n var child = this;\n var parent_1 = this.parent;\n while (parent_1 && parent_1.parent && parent_1.isEmbellished &&\n (parent_1.childNodes.length === 1 ||\n (!parent_1.isKind('mrow') && parent_1.core() === child))) {\n child = parent_1;\n parent_1 = parent_1.parent;\n }\n if (parent_1.childNodes[parent_1.childNodes.length - 1] === child) {\n this.texClass = MmlNode_js_1.TEXCLASS.ORD;\n }\n }\n return this;\n };\n MmlMo.prototype.setInheritedAttributes = function (attributes, display, level, prime) {\n if (attributes === void 0) { attributes = {}; }\n if (display === void 0) { display = false; }\n if (level === void 0) { level = 0; }\n if (prime === void 0) { prime = false; }\n _super.prototype.setInheritedAttributes.call(this, attributes, display, level, prime);\n var mo = this.getText();\n this.checkOperatorTable(mo);\n this.checkPseudoScripts(mo);\n this.checkPrimes(mo);\n this.checkMathAccent(mo);\n };\n MmlMo.prototype.checkOperatorTable = function (mo) {\n var e_1, _a;\n var _b = __read(this.handleExplicitForm(this.getForms()), 3), form1 = _b[0], form2 = _b[1], form3 = _b[2];\n this.attributes.setInherited('form', form1);\n var OPTABLE = this.constructor.OPTABLE;\n var def = OPTABLE[form1][mo] || OPTABLE[form2][mo] || OPTABLE[form3][mo];\n if (def) {\n if (this.getProperty('texClass') === undefined) {\n this.texClass = def[2];\n }\n try {\n for (var _c = __values(Object.keys(def[3] || {})), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_1 = _d.value;\n this.attributes.setInherited(name_1, def[3][name_1]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.lspace = (def[0] + 1) / 18;\n this.rspace = (def[1] + 1) / 18;\n }\n else {\n var range = (0, OperatorDictionary_js_1.getRange)(mo);\n if (range) {\n if (this.getProperty('texClass') === undefined) {\n this.texClass = range[2];\n }\n var spacing = this.constructor.MMLSPACING[range[2]];\n this.lspace = (spacing[0] + 1) / 18;\n this.rspace = (spacing[1] + 1) / 18;\n }\n }\n };\n MmlMo.prototype.getForms = function () {\n var core = this;\n var parent = this.parent;\n var Parent = this.Parent;\n while (Parent && Parent.isEmbellished) {\n core = parent;\n parent = Parent.parent;\n Parent = Parent.Parent;\n }\n if (parent && parent.isKind('mrow') && parent.nonSpaceLength() !== 1) {\n if (parent.firstNonSpace() === core) {\n return ['prefix', 'infix', 'postfix'];\n }\n if (parent.lastNonSpace() === core) {\n return ['postfix', 'infix', 'prefix'];\n }\n }\n return ['infix', 'prefix', 'postfix'];\n };\n MmlMo.prototype.handleExplicitForm = function (forms) {\n if (this.attributes.isSet('form')) {\n var form_1 = this.attributes.get('form');\n forms = [form_1].concat(forms.filter(function (name) { return (name !== form_1); }));\n }\n return forms;\n };\n MmlMo.prototype.checkPseudoScripts = function (mo) {\n var PSEUDOSCRIPTS = this.constructor.pseudoScripts;\n if (!mo.match(PSEUDOSCRIPTS))\n return;\n var parent = this.coreParent().Parent;\n var isPseudo = !parent || !(parent.isKind('msubsup') && !parent.isKind('msub'));\n this.setProperty('pseudoscript', isPseudo);\n if (isPseudo) {\n this.attributes.setInherited('lspace', 0);\n this.attributes.setInherited('rspace', 0);\n }\n };\n MmlMo.prototype.checkPrimes = function (mo) {\n var PRIMES = this.constructor.primes;\n if (!mo.match(PRIMES))\n return;\n var REMAP = this.constructor.remapPrimes;\n var primes = (0, string_js_1.unicodeString)((0, string_js_1.unicodeChars)(mo).map(function (c) { return REMAP[c]; }));\n this.setProperty('primes', primes);\n };\n MmlMo.prototype.checkMathAccent = function (mo) {\n var parent = this.Parent;\n if (this.getProperty('mathaccent') !== undefined || !parent || !parent.isKind('munderover'))\n return;\n var base = parent.childNodes[0];\n if (base.isEmbellished && base.coreMO() === this)\n return;\n var MATHACCENT = this.constructor.mathaccents;\n if (mo.match(MATHACCENT)) {\n this.setProperty('mathaccent', true);\n }\n };\n MmlMo.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlTokenNode.defaults), { form: 'infix', fence: false, separator: false, lspace: 'thickmathspace', rspace: 'thickmathspace', stretchy: false, symmetric: false, maxsize: 'infinity', minsize: '0em', largeop: false, movablelimits: false, accent: false, linebreak: 'auto', lineleading: '1ex', linebreakstyle: 'before', indentalign: 'auto', indentshift: '0', indenttarget: '', indentalignfirst: 'indentalign', indentshiftfirst: 'indentshift', indentalignlast: 'indentalign', indentshiftlast: 'indentshift' });\n MmlMo.MMLSPACING = OperatorDictionary_js_1.MMLSPACING;\n MmlMo.OPTABLE = OperatorDictionary_js_1.OPTABLE;\n MmlMo.pseudoScripts = new RegExp([\n '^[\"\\'*`',\n '\\u00AA',\n '\\u00B0',\n '\\u00B2-\\u00B4',\n '\\u00B9',\n '\\u00BA',\n '\\u2018-\\u201F',\n '\\u2032-\\u2037\\u2057',\n '\\u2070\\u2071',\n '\\u2074-\\u207F',\n '\\u2080-\\u208E',\n ']+$'\n ].join(''));\n MmlMo.primes = new RegExp([\n '^[\"\\'`',\n '\\u2018-\\u201F',\n ']+$'\n ].join(''));\n MmlMo.remapPrimes = {\n 0x0022: 0x2033,\n 0x0027: 0x2032,\n 0x0060: 0x2035,\n 0x2018: 0x2035,\n 0x2019: 0x2032,\n 0x201A: 0x2032,\n 0x201B: 0x2035,\n 0x201C: 0x2036,\n 0x201D: 0x2033,\n 0x201E: 0x2033,\n 0x201F: 0x2036,\n };\n MmlMo.mathaccents = new RegExp([\n '^[',\n '\\u00B4\\u0301\\u02CA',\n '\\u0060\\u0300\\u02CB',\n '\\u00A8\\u0308',\n '\\u007E\\u0303\\u02DC',\n '\\u00AF\\u0304\\u02C9',\n '\\u02D8\\u0306',\n '\\u02C7\\u030C',\n '\\u005E\\u0302\\u02C6',\n '\\u2192\\u20D7',\n '\\u02D9\\u0307',\n '\\u02DA\\u030A',\n '\\u20DB',\n '\\u20DC',\n ']$'\n ].join(''));\n return MmlMo;\n}(MmlNode_js_1.AbstractMmlTokenNode));\nexports.MmlMo = MmlMo;\n//# sourceMappingURL=mo.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMpadded = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMpadded = (function (_super) {\n __extends(MmlMpadded, _super);\n function MmlMpadded() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMpadded.prototype, \"kind\", {\n get: function () {\n return 'mpadded';\n },\n enumerable: false,\n configurable: true\n });\n MmlMpadded.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlLayoutNode.defaults), { width: '', height: '', depth: '', lspace: 0, voffset: 0 });\n return MmlMpadded;\n}(MmlNode_js_1.AbstractMmlLayoutNode));\nexports.MmlMpadded = MmlMpadded;\n//# sourceMappingURL=mpadded.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMphantom = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMphantom = (function (_super) {\n __extends(MmlMphantom, _super);\n function MmlMphantom() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMphantom.prototype, \"kind\", {\n get: function () {\n return 'mphantom';\n },\n enumerable: false,\n configurable: true\n });\n MmlMphantom.defaults = __assign({}, MmlNode_js_1.AbstractMmlLayoutNode.defaults);\n return MmlMphantom;\n}(MmlNode_js_1.AbstractMmlLayoutNode));\nexports.MmlMphantom = MmlMphantom;\n//# sourceMappingURL=mphantom.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMroot = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMroot = (function (_super) {\n __extends(MmlMroot, _super);\n function MmlMroot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMroot.prototype, \"kind\", {\n get: function () {\n return 'mroot';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMroot.prototype, \"arity\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n MmlMroot.prototype.setTeXclass = function (prev) {\n this.getPrevClass(prev);\n this.childNodes[0].setTeXclass(null);\n this.childNodes[1].setTeXclass(null);\n return this;\n };\n MmlMroot.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n this.childNodes[0].setInheritedAttributes(attributes, display, level, true);\n this.childNodes[1].setInheritedAttributes(attributes, false, level + 2, prime);\n };\n MmlMroot.defaults = __assign({}, MmlNode_js_1.AbstractMmlNode.defaults);\n return MmlMroot;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMroot = MmlMroot;\n//# sourceMappingURL=mroot.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlInferredMrow = exports.MmlMrow = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMrow = (function (_super) {\n __extends(MmlMrow, _super);\n function MmlMrow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._core = null;\n return _this;\n }\n Object.defineProperty(MmlMrow.prototype, \"kind\", {\n get: function () {\n return 'mrow';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMrow.prototype, \"isSpacelike\", {\n get: function () {\n var e_1, _a;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (!child.isSpacelike) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMrow.prototype, \"isEmbellished\", {\n get: function () {\n var e_2, _a;\n var embellished = false;\n var i = 0;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child) {\n if (child.isEmbellished) {\n if (embellished) {\n return false;\n }\n embellished = true;\n this._core = i;\n }\n else if (!child.isSpacelike) {\n return false;\n }\n }\n i++;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return embellished;\n },\n enumerable: false,\n configurable: true\n });\n MmlMrow.prototype.core = function () {\n if (!this.isEmbellished || this._core == null) {\n return this;\n }\n return this.childNodes[this._core];\n };\n MmlMrow.prototype.coreMO = function () {\n if (!this.isEmbellished || this._core == null) {\n return this;\n }\n return this.childNodes[this._core].coreMO();\n };\n MmlMrow.prototype.nonSpaceLength = function () {\n var e_3, _a;\n var n = 0;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child && !child.isSpacelike) {\n n++;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return n;\n };\n MmlMrow.prototype.firstNonSpace = function () {\n var e_4, _a;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child && !child.isSpacelike) {\n return child;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return null;\n };\n MmlMrow.prototype.lastNonSpace = function () {\n var i = this.childNodes.length;\n while (--i >= 0) {\n var child = this.childNodes[i];\n if (child && !child.isSpacelike) {\n return child;\n }\n }\n return null;\n };\n MmlMrow.prototype.setTeXclass = function (prev) {\n var e_5, _a, e_6, _b;\n if (this.getProperty('open') != null || this.getProperty('close') != null) {\n this.getPrevClass(prev);\n prev = null;\n try {\n for (var _c = __values(this.childNodes), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n prev = child.setTeXclass(prev);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n if (this.texClass == null) {\n this.texClass = MmlNode_js_1.TEXCLASS.INNER;\n }\n }\n else {\n try {\n for (var _e = __values(this.childNodes), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n prev = child.setTeXclass(prev);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_6) throw e_6.error; }\n }\n if (this.childNodes[0]) {\n this.updateTeXclass(this.childNodes[0]);\n }\n }\n return prev;\n };\n MmlMrow.defaults = __assign({}, MmlNode_js_1.AbstractMmlNode.defaults);\n return MmlMrow;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMrow = MmlMrow;\nvar MmlInferredMrow = (function (_super) {\n __extends(MmlInferredMrow, _super);\n function MmlInferredMrow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlInferredMrow.prototype, \"kind\", {\n get: function () {\n return 'inferredMrow';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlInferredMrow.prototype, \"isInferred\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlInferredMrow.prototype, \"notParent\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlInferredMrow.prototype.toString = function () {\n return '[' + this.childNodes.join(',') + ']';\n };\n MmlInferredMrow.defaults = MmlMrow.defaults;\n return MmlInferredMrow;\n}(MmlMrow));\nexports.MmlInferredMrow = MmlInferredMrow;\n//# sourceMappingURL=mrow.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMs = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMs = (function (_super) {\n __extends(MmlMs, _super);\n function MmlMs() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMs.prototype, \"kind\", {\n get: function () {\n return 'ms';\n },\n enumerable: false,\n configurable: true\n });\n MmlMs.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlTokenNode.defaults), { lquote: '\"', rquote: '\"' });\n return MmlMs;\n}(MmlNode_js_1.AbstractMmlTokenNode));\nexports.MmlMs = MmlMs;\n//# sourceMappingURL=ms.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMspace = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMspace = (function (_super) {\n __extends(MmlMspace, _super);\n function MmlMspace() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.NONE;\n return _this;\n }\n MmlMspace.prototype.setTeXclass = function (prev) {\n return prev;\n };\n Object.defineProperty(MmlMspace.prototype, \"kind\", {\n get: function () {\n return 'mspace';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMspace.prototype, \"arity\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMspace.prototype, \"isSpacelike\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMspace.prototype, \"hasNewline\", {\n get: function () {\n var attributes = this.attributes;\n return (attributes.getExplicit('width') == null && attributes.getExplicit('height') == null &&\n attributes.getExplicit('depth') == null && attributes.get('linebreak') === 'newline');\n },\n enumerable: false,\n configurable: true\n });\n MmlMspace.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlTokenNode.defaults), { width: '0em', height: '0ex', depth: '0ex', linebreak: 'auto' });\n return MmlMspace;\n}(MmlNode_js_1.AbstractMmlTokenNode));\nexports.MmlMspace = MmlMspace;\n//# sourceMappingURL=mspace.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMsqrt = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMsqrt = (function (_super) {\n __extends(MmlMsqrt, _super);\n function MmlMsqrt() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMsqrt.prototype, \"kind\", {\n get: function () {\n return 'msqrt';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsqrt.prototype, \"arity\", {\n get: function () {\n return -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsqrt.prototype, \"linebreakContainer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMsqrt.prototype.setTeXclass = function (prev) {\n this.getPrevClass(prev);\n this.childNodes[0].setTeXclass(null);\n return this;\n };\n MmlMsqrt.prototype.setChildInheritedAttributes = function (attributes, display, level, _prime) {\n this.childNodes[0].setInheritedAttributes(attributes, display, level, true);\n };\n MmlMsqrt.defaults = __assign({}, MmlNode_js_1.AbstractMmlNode.defaults);\n return MmlMsqrt;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMsqrt = MmlMsqrt;\n//# sourceMappingURL=msqrt.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMstyle = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar Attributes_js_1 = require(\"../Attributes.js\");\nvar MmlMstyle = (function (_super) {\n __extends(MmlMstyle, _super);\n function MmlMstyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMstyle.prototype, \"kind\", {\n get: function () {\n return 'mstyle';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMstyle.prototype, \"notParent\", {\n get: function () {\n return this.childNodes[0] && this.childNodes[0].childNodes.length === 1;\n },\n enumerable: false,\n configurable: true\n });\n MmlMstyle.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n var scriptlevel = this.attributes.getExplicit('scriptlevel');\n if (scriptlevel != null) {\n scriptlevel = scriptlevel.toString();\n if (scriptlevel.match(/^\\s*[-+]/)) {\n level += parseInt(scriptlevel);\n }\n else {\n level = parseInt(scriptlevel);\n }\n prime = false;\n }\n var displaystyle = this.attributes.getExplicit('displaystyle');\n if (displaystyle != null) {\n display = (displaystyle === true);\n prime = false;\n }\n var cramped = this.attributes.getExplicit('data-cramped');\n if (cramped != null) {\n prime = cramped;\n }\n attributes = this.addInheritedAttributes(attributes, this.attributes.getAllAttributes());\n this.childNodes[0].setInheritedAttributes(attributes, display, level, prime);\n };\n MmlMstyle.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlLayoutNode.defaults), { scriptlevel: Attributes_js_1.INHERIT, displaystyle: Attributes_js_1.INHERIT, scriptsizemultiplier: 1 / Math.sqrt(2), scriptminsize: '8px', mathbackground: Attributes_js_1.INHERIT, mathcolor: Attributes_js_1.INHERIT, dir: Attributes_js_1.INHERIT, infixlinebreakstyle: 'before' });\n return MmlMstyle;\n}(MmlNode_js_1.AbstractMmlLayoutNode));\nexports.MmlMstyle = MmlMstyle;\n//# sourceMappingURL=mstyle.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMsup = exports.MmlMsub = exports.MmlMsubsup = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMsubsup = (function (_super) {\n __extends(MmlMsubsup, _super);\n function MmlMsubsup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMsubsup.prototype, \"kind\", {\n get: function () {\n return 'msubsup';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsubsup.prototype, \"arity\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsubsup.prototype, \"base\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsubsup.prototype, \"sub\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsubsup.prototype, \"sup\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n MmlMsubsup.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n var nodes = this.childNodes;\n nodes[0].setInheritedAttributes(attributes, display, level, prime);\n nodes[1].setInheritedAttributes(attributes, false, level + 1, prime || this.sub === 1);\n if (!nodes[2]) {\n return;\n }\n nodes[2].setInheritedAttributes(attributes, false, level + 1, prime || this.sub === 2);\n };\n MmlMsubsup.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlBaseNode.defaults), { subscriptshift: '', superscriptshift: '' });\n return MmlMsubsup;\n}(MmlNode_js_1.AbstractMmlBaseNode));\nexports.MmlMsubsup = MmlMsubsup;\nvar MmlMsub = (function (_super) {\n __extends(MmlMsub, _super);\n function MmlMsub() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMsub.prototype, \"kind\", {\n get: function () {\n return 'msub';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsub.prototype, \"arity\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n MmlMsub.defaults = __assign({}, MmlMsubsup.defaults);\n return MmlMsub;\n}(MmlMsubsup));\nexports.MmlMsub = MmlMsub;\nvar MmlMsup = (function (_super) {\n __extends(MmlMsup, _super);\n function MmlMsup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMsup.prototype, \"kind\", {\n get: function () {\n return 'msup';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsup.prototype, \"arity\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsup.prototype, \"sup\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMsup.prototype, \"sub\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n MmlMsup.defaults = __assign({}, MmlMsubsup.defaults);\n return MmlMsup;\n}(MmlMsubsup));\nexports.MmlMsup = MmlMsup;\n//# sourceMappingURL=msubsup.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMtable = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar string_js_1 = require(\"../../../util/string.js\");\nvar MmlMtable = (function (_super) {\n __extends(MmlMtable, _super);\n function MmlMtable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.properties = {\n useHeight: true\n };\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMtable.prototype, \"kind\", {\n get: function () {\n return 'mtable';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMtable.prototype, \"linebreakContainer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMtable.prototype.setInheritedAttributes = function (attributes, display, level, prime) {\n var e_1, _a;\n try {\n for (var indentAttributes_1 = __values(MmlNode_js_1.indentAttributes), indentAttributes_1_1 = indentAttributes_1.next(); !indentAttributes_1_1.done; indentAttributes_1_1 = indentAttributes_1.next()) {\n var name_1 = indentAttributes_1_1.value;\n if (attributes[name_1]) {\n this.attributes.setInherited(name_1, attributes[name_1][1]);\n }\n if (this.attributes.getExplicit(name_1) !== undefined) {\n delete (this.attributes.getAllAttributes())[name_1];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (indentAttributes_1_1 && !indentAttributes_1_1.done && (_a = indentAttributes_1.return)) _a.call(indentAttributes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n _super.prototype.setInheritedAttributes.call(this, attributes, display, level, prime);\n };\n MmlMtable.prototype.setChildInheritedAttributes = function (attributes, display, level, _prime) {\n var e_2, _a, e_3, _b;\n try {\n for (var _c = __values(this.childNodes), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n if (!child.isKind('mtr')) {\n this.replaceChild(this.factory.create('mtr'), child)\n .appendChild(child);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n level = this.getProperty('scriptlevel') || level;\n display = !!(this.attributes.getExplicit('displaystyle') || this.attributes.getDefault('displaystyle'));\n attributes = this.addInheritedAttributes(attributes, {\n columnalign: this.attributes.get('columnalign'),\n rowalign: 'center'\n });\n var cramped = this.attributes.getExplicit('data-cramped');\n var ralign = (0, string_js_1.split)(this.attributes.get('rowalign'));\n try {\n for (var _e = __values(this.childNodes), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n attributes.rowalign[1] = ralign.shift() || attributes.rowalign[1];\n child.setInheritedAttributes(attributes, display, level, !!cramped);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n MmlMtable.prototype.verifyChildren = function (options) {\n var mtr = null;\n var factory = this.factory;\n for (var i = 0; i < this.childNodes.length; i++) {\n var child = this.childNodes[i];\n if (child.isKind('mtr')) {\n mtr = null;\n }\n else {\n var isMtd = child.isKind('mtd');\n if (mtr) {\n this.removeChild(child);\n i--;\n }\n else {\n mtr = this.replaceChild(factory.create('mtr'), child);\n }\n mtr.appendChild(isMtd ? child : factory.create('mtd', {}, [child]));\n if (!options['fixMtables']) {\n child.parent.removeChild(child);\n child.parent = this;\n isMtd && mtr.appendChild(factory.create('mtd'));\n var merror = child.mError('Children of ' + this.kind + ' must be mtr or mlabeledtr', options, isMtd);\n mtr.childNodes[mtr.childNodes.length - 1].appendChild(merror);\n }\n }\n }\n _super.prototype.verifyChildren.call(this, options);\n };\n MmlMtable.prototype.setTeXclass = function (prev) {\n var e_4, _a;\n this.getPrevClass(prev);\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.setTeXclass(null);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return this;\n };\n MmlMtable.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlNode.defaults), { align: 'axis', rowalign: 'baseline', columnalign: 'center', groupalign: '{left}', alignmentscope: true, columnwidth: 'auto', width: 'auto', rowspacing: '1ex', columnspacing: '.8em', rowlines: 'none', columnlines: 'none', frame: 'none', framespacing: '0.4em 0.5ex', equalrows: false, equalcolumns: false, displaystyle: false, side: 'right', minlabelspacing: '0.8em' });\n return MmlMtable;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMtable = MmlMtable;\n//# sourceMappingURL=mtable.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMtd = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar Attributes_js_1 = require(\"../Attributes.js\");\nvar MmlMtd = (function (_super) {\n __extends(MmlMtd, _super);\n function MmlMtd() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMtd.prototype, \"kind\", {\n get: function () {\n return 'mtd';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMtd.prototype, \"arity\", {\n get: function () {\n return -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMtd.prototype, \"linebreakContainer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMtd.prototype.verifyChildren = function (options) {\n if (this.parent && !this.parent.isKind('mtr')) {\n this.mError(this.kind + ' can only be a child of an mtr or mlabeledtr', options, true);\n return;\n }\n _super.prototype.verifyChildren.call(this, options);\n };\n MmlMtd.prototype.setTeXclass = function (prev) {\n this.getPrevClass(prev);\n this.childNodes[0].setTeXclass(null);\n return this;\n };\n MmlMtd.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlBaseNode.defaults), { rowspan: 1, columnspan: 1, rowalign: Attributes_js_1.INHERIT, columnalign: Attributes_js_1.INHERIT, groupalign: Attributes_js_1.INHERIT });\n return MmlMtd;\n}(MmlNode_js_1.AbstractMmlBaseNode));\nexports.MmlMtd = MmlMtd;\n//# sourceMappingURL=mtd.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMtext = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMtext = (function (_super) {\n __extends(MmlMtext, _super);\n function MmlMtext() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.texclass = MmlNode_js_1.TEXCLASS.ORD;\n return _this;\n }\n Object.defineProperty(MmlMtext.prototype, \"kind\", {\n get: function () {\n return 'mtext';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMtext.prototype, \"isSpacelike\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMtext.defaults = __assign({}, MmlNode_js_1.AbstractMmlTokenNode.defaults);\n return MmlMtext;\n}(MmlNode_js_1.AbstractMmlTokenNode));\nexports.MmlMtext = MmlMtext;\n//# sourceMappingURL=mtext.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMlabeledtr = exports.MmlMtr = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar Attributes_js_1 = require(\"../Attributes.js\");\nvar string_js_1 = require(\"../../../util/string.js\");\nvar MmlMtr = (function (_super) {\n __extends(MmlMtr, _super);\n function MmlMtr() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMtr.prototype, \"kind\", {\n get: function () {\n return 'mtr';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMtr.prototype, \"linebreakContainer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMtr.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n var e_1, _a, e_2, _b;\n try {\n for (var _c = __values(this.childNodes), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n if (!child.isKind('mtd')) {\n this.replaceChild(this.factory.create('mtd'), child)\n .appendChild(child);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var calign = (0, string_js_1.split)(this.attributes.get('columnalign'));\n if (this.arity === 1) {\n calign.unshift(this.parent.attributes.get('side'));\n }\n attributes = this.addInheritedAttributes(attributes, {\n rowalign: this.attributes.get('rowalign'),\n columnalign: 'center'\n });\n try {\n for (var _e = __values(this.childNodes), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n attributes.columnalign[1] = calign.shift() || attributes.columnalign[1];\n child.setInheritedAttributes(attributes, display, level, prime);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n MmlMtr.prototype.verifyChildren = function (options) {\n var e_3, _a;\n if (this.parent && !this.parent.isKind('mtable')) {\n this.mError(this.kind + ' can only be a child of an mtable', options, true);\n return;\n }\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (!child.isKind('mtd')) {\n var mtd = this.replaceChild(this.factory.create('mtd'), child);\n mtd.appendChild(child);\n if (!options['fixMtables']) {\n child.mError('Children of ' + this.kind + ' must be mtd', options);\n }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n _super.prototype.verifyChildren.call(this, options);\n };\n MmlMtr.prototype.setTeXclass = function (prev) {\n var e_4, _a;\n this.getPrevClass(prev);\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.setTeXclass(null);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return this;\n };\n MmlMtr.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlNode.defaults), { rowalign: Attributes_js_1.INHERIT, columnalign: Attributes_js_1.INHERIT, groupalign: Attributes_js_1.INHERIT });\n return MmlMtr;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlMtr = MmlMtr;\nvar MmlMlabeledtr = (function (_super) {\n __extends(MmlMlabeledtr, _super);\n function MmlMlabeledtr() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMlabeledtr.prototype, \"kind\", {\n get: function () {\n return 'mlabeledtr';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMlabeledtr.prototype, \"arity\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return MmlMlabeledtr;\n}(MmlMtr));\nexports.MmlMlabeledtr = MmlMlabeledtr;\n//# sourceMappingURL=mtr.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlMover = exports.MmlMunder = exports.MmlMunderover = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlMunderover = (function (_super) {\n __extends(MmlMunderover, _super);\n function MmlMunderover() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMunderover.prototype, \"kind\", {\n get: function () {\n return 'munderover';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMunderover.prototype, \"arity\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMunderover.prototype, \"base\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMunderover.prototype, \"under\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMunderover.prototype, \"over\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMunderover.prototype, \"linebreakContainer\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlMunderover.prototype.setChildInheritedAttributes = function (attributes, display, level, prime) {\n var nodes = this.childNodes;\n nodes[0].setInheritedAttributes(attributes, display, level, prime || !!nodes[this.over]);\n var force = !!(!display && nodes[0].coreMO().attributes.get('movablelimits'));\n var ACCENTS = this.constructor.ACCENTS;\n nodes[1].setInheritedAttributes(attributes, false, this.getScriptlevel(ACCENTS[1], force, level), prime || this.under === 1);\n this.setInheritedAccent(1, ACCENTS[1], display, level, prime, force);\n if (!nodes[2]) {\n return;\n }\n nodes[2].setInheritedAttributes(attributes, false, this.getScriptlevel(ACCENTS[2], force, level), prime || this.under === 2);\n this.setInheritedAccent(2, ACCENTS[2], display, level, prime, force);\n };\n MmlMunderover.prototype.getScriptlevel = function (accent, force, level) {\n if (force || !this.attributes.get(accent)) {\n level++;\n }\n return level;\n };\n MmlMunderover.prototype.setInheritedAccent = function (n, accent, display, level, prime, force) {\n var node = this.childNodes[n];\n if (this.attributes.getExplicit(accent) == null && node.isEmbellished) {\n var value = node.coreMO().attributes.get('accent');\n this.attributes.setInherited(accent, value);\n if (value !== this.attributes.getDefault(accent)) {\n node.setInheritedAttributes({}, display, this.getScriptlevel(accent, force, level), prime);\n }\n }\n };\n MmlMunderover.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlBaseNode.defaults), { accent: false, accentunder: false, align: 'center' });\n MmlMunderover.ACCENTS = ['', 'accentunder', 'accent'];\n return MmlMunderover;\n}(MmlNode_js_1.AbstractMmlBaseNode));\nexports.MmlMunderover = MmlMunderover;\nvar MmlMunder = (function (_super) {\n __extends(MmlMunder, _super);\n function MmlMunder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMunder.prototype, \"kind\", {\n get: function () {\n return 'munder';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMunder.prototype, \"arity\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n MmlMunder.defaults = __assign({}, MmlMunderover.defaults);\n return MmlMunder;\n}(MmlMunderover));\nexports.MmlMunder = MmlMunder;\nvar MmlMover = (function (_super) {\n __extends(MmlMover, _super);\n function MmlMover() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlMover.prototype, \"kind\", {\n get: function () {\n return 'mover';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMover.prototype, \"arity\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMover.prototype, \"over\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlMover.prototype, \"under\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n MmlMover.defaults = __assign({}, MmlMunderover.defaults);\n MmlMover.ACCENTS = ['', 'accent', 'accentunder'];\n return MmlMover;\n}(MmlMunderover));\nexports.MmlMover = MmlMover;\n//# sourceMappingURL=munderover.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlAnnotation = exports.MmlAnnotationXML = exports.MmlSemantics = void 0;\nvar MmlNode_js_1 = require(\"../MmlNode.js\");\nvar MmlSemantics = (function (_super) {\n __extends(MmlSemantics, _super);\n function MmlSemantics() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlSemantics.prototype, \"kind\", {\n get: function () {\n return 'semantics';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlSemantics.prototype, \"arity\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlSemantics.prototype, \"notParent\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n MmlSemantics.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlBaseNode.defaults), { definitionUrl: null, encoding: null });\n return MmlSemantics;\n}(MmlNode_js_1.AbstractMmlBaseNode));\nexports.MmlSemantics = MmlSemantics;\nvar MmlAnnotationXML = (function (_super) {\n __extends(MmlAnnotationXML, _super);\n function MmlAnnotationXML() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlAnnotationXML.prototype, \"kind\", {\n get: function () {\n return 'annotation-xml';\n },\n enumerable: false,\n configurable: true\n });\n MmlAnnotationXML.prototype.setChildInheritedAttributes = function () { };\n MmlAnnotationXML.defaults = __assign(__assign({}, MmlNode_js_1.AbstractMmlNode.defaults), { definitionUrl: null, encoding: null, cd: 'mathmlkeys', name: '', src: null });\n return MmlAnnotationXML;\n}(MmlNode_js_1.AbstractMmlNode));\nexports.MmlAnnotationXML = MmlAnnotationXML;\nvar MmlAnnotation = (function (_super) {\n __extends(MmlAnnotation, _super);\n function MmlAnnotation() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.properties = {\n isChars: true\n };\n return _this;\n }\n Object.defineProperty(MmlAnnotation.prototype, \"kind\", {\n get: function () {\n return 'annotation';\n },\n enumerable: false,\n configurable: true\n });\n MmlAnnotation.defaults = __assign({}, MmlAnnotationXML.defaults);\n return MmlAnnotation;\n}(MmlAnnotationXML));\nexports.MmlAnnotation = MmlAnnotation;\n//# sourceMappingURL=semantics.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlVisitor = void 0;\nvar MmlFactory_js_1 = require(\"./MmlFactory.js\");\nvar Visitor_js_1 = require(\"../Tree/Visitor.js\");\nvar MmlVisitor = (function (_super) {\n __extends(MmlVisitor, _super);\n function MmlVisitor(factory) {\n if (factory === void 0) { factory = null; }\n if (!factory) {\n factory = new MmlFactory_js_1.MmlFactory();\n }\n return _super.call(this, factory) || this;\n }\n MmlVisitor.prototype.visitTextNode = function (_node) {\n var _args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n _args[_i - 1] = arguments[_i];\n }\n };\n MmlVisitor.prototype.visitXMLNode = function (_node) {\n var _args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n _args[_i - 1] = arguments[_i];\n }\n };\n return MmlVisitor;\n}(Visitor_js_1.AbstractVisitor));\nexports.MmlVisitor = MmlVisitor;\n//# sourceMappingURL=MmlVisitor.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OPTABLE = exports.MMLSPACING = exports.getRange = exports.RANGES = exports.MO = exports.OPDEF = void 0;\nvar MmlNode_js_1 = require(\"./MmlNode.js\");\nfunction OPDEF(lspace, rspace, texClass, properties) {\n if (texClass === void 0) { texClass = MmlNode_js_1.TEXCLASS.BIN; }\n if (properties === void 0) { properties = null; }\n return [lspace, rspace, texClass, properties];\n}\nexports.OPDEF = OPDEF;\nexports.MO = {\n ORD: OPDEF(0, 0, MmlNode_js_1.TEXCLASS.ORD),\n ORD11: OPDEF(1, 1, MmlNode_js_1.TEXCLASS.ORD),\n ORD21: OPDEF(2, 1, MmlNode_js_1.TEXCLASS.ORD),\n ORD02: OPDEF(0, 2, MmlNode_js_1.TEXCLASS.ORD),\n ORD55: OPDEF(5, 5, MmlNode_js_1.TEXCLASS.ORD),\n NONE: OPDEF(0, 0, MmlNode_js_1.TEXCLASS.NONE),\n OP: OPDEF(1, 2, MmlNode_js_1.TEXCLASS.OP, { largeop: true, movablelimits: true, symmetric: true }),\n OPFIXED: OPDEF(1, 2, MmlNode_js_1.TEXCLASS.OP, { largeop: true, movablelimits: true }),\n INTEGRAL: OPDEF(0, 1, MmlNode_js_1.TEXCLASS.OP, { largeop: true, symmetric: true }),\n INTEGRAL2: OPDEF(1, 2, MmlNode_js_1.TEXCLASS.OP, { largeop: true, symmetric: true }),\n BIN3: OPDEF(3, 3, MmlNode_js_1.TEXCLASS.BIN),\n BIN4: OPDEF(4, 4, MmlNode_js_1.TEXCLASS.BIN),\n BIN01: OPDEF(0, 1, MmlNode_js_1.TEXCLASS.BIN),\n BIN5: OPDEF(5, 5, MmlNode_js_1.TEXCLASS.BIN),\n TALLBIN: OPDEF(4, 4, MmlNode_js_1.TEXCLASS.BIN, { stretchy: true }),\n BINOP: OPDEF(4, 4, MmlNode_js_1.TEXCLASS.BIN, { largeop: true, movablelimits: true }),\n REL: OPDEF(5, 5, MmlNode_js_1.TEXCLASS.REL),\n REL1: OPDEF(1, 1, MmlNode_js_1.TEXCLASS.REL, { stretchy: true }),\n REL4: OPDEF(4, 4, MmlNode_js_1.TEXCLASS.REL),\n RELSTRETCH: OPDEF(5, 5, MmlNode_js_1.TEXCLASS.REL, { stretchy: true }),\n RELACCENT: OPDEF(5, 5, MmlNode_js_1.TEXCLASS.REL, { accent: true }),\n WIDEREL: OPDEF(5, 5, MmlNode_js_1.TEXCLASS.REL, { accent: true, stretchy: true }),\n OPEN: OPDEF(0, 0, MmlNode_js_1.TEXCLASS.OPEN, { fence: true, stretchy: true, symmetric: true }),\n CLOSE: OPDEF(0, 0, MmlNode_js_1.TEXCLASS.CLOSE, { fence: true, stretchy: true, symmetric: true }),\n INNER: OPDEF(0, 0, MmlNode_js_1.TEXCLASS.INNER),\n PUNCT: OPDEF(0, 3, MmlNode_js_1.TEXCLASS.PUNCT),\n ACCENT: OPDEF(0, 0, MmlNode_js_1.TEXCLASS.ORD, { accent: true }),\n WIDEACCENT: OPDEF(0, 0, MmlNode_js_1.TEXCLASS.ORD, { accent: true, stretchy: true })\n};\nexports.RANGES = [\n [0x0020, 0x007F, MmlNode_js_1.TEXCLASS.REL, 'mo'],\n [0x00A0, 0x00BF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x00C0, 0x024F, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0x02B0, 0x036F, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x0370, 0x1A20, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0x1AB0, 0x1AFF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x1B00, 0x1DBF, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0x1DC0, 0x1DFF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x1E00, 0x1FFF, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0x2000, 0x206F, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x2070, 0x209F, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x2100, 0x214F, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0x2150, 0x218F, MmlNode_js_1.TEXCLASS.ORD, 'mn'],\n [0x2190, 0x21FF, MmlNode_js_1.TEXCLASS.REL, 'mo'],\n [0x2200, 0x22FF, MmlNode_js_1.TEXCLASS.BIN, 'mo'],\n [0x2300, 0x23FF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x2460, 0x24FF, MmlNode_js_1.TEXCLASS.ORD, 'mn'],\n [0x2500, 0x27EF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x27F0, 0x27FF, MmlNode_js_1.TEXCLASS.REL, 'mo'],\n [0x2800, 0x28FF, MmlNode_js_1.TEXCLASS.ORD, 'mtext'],\n [0x2900, 0x297F, MmlNode_js_1.TEXCLASS.REL, 'mo'],\n [0x2980, 0x29FF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x2A00, 0x2AFF, MmlNode_js_1.TEXCLASS.BIN, 'mo'],\n [0x2B00, 0x2B2F, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x2B30, 0x2B4F, MmlNode_js_1.TEXCLASS.REL, 'mo'],\n [0x2B50, 0x2BFF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x2C00, 0x2DE0, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0x2E00, 0x2E7F, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x2E80, 0x2FDF, MmlNode_js_1.TEXCLASS.ORD, 'mi', 'normal'],\n [0x2FF0, 0x303F, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x3040, 0xA49F, MmlNode_js_1.TEXCLASS.ORD, 'mi', 'normal'],\n [0xA4D0, 0xA82F, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0xA830, 0xA83F, MmlNode_js_1.TEXCLASS.ORD, 'mn'],\n [0xA840, 0xD7FF, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0xF900, 0xFAFF, MmlNode_js_1.TEXCLASS.ORD, 'mi', 'normal'],\n [0xFB00, 0xFDFF, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0xFE00, 0xFE6F, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0xFE70, 0x100FF, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0x10100, 0x1018F, MmlNode_js_1.TEXCLASS.ORD, 'mn'],\n [0x10190, 0x123FF, MmlNode_js_1.TEXCLASS.ORD, 'mi', 'normal'],\n [0x12400, 0x1247F, MmlNode_js_1.TEXCLASS.ORD, 'mn'],\n [0x12480, 0x1BC9F, MmlNode_js_1.TEXCLASS.ORD, 'mi', 'normal'],\n [0x1BCA0, 0x1D25F, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x1D360, 0x1D37F, MmlNode_js_1.TEXCLASS.ORD, 'mn'],\n [0x1D400, 0x1D7CD, MmlNode_js_1.TEXCLASS.ORD, 'mi'],\n [0x1D7CE, 0x1D7FF, MmlNode_js_1.TEXCLASS.ORD, 'mn'],\n [0x1DF00, 0x1F7FF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x1F800, 0x1F8FF, MmlNode_js_1.TEXCLASS.REL, 'mo'],\n [0x1F900, 0x1F9FF, MmlNode_js_1.TEXCLASS.ORD, 'mo'],\n [0x20000, 0x2FA1F, MmlNode_js_1.TEXCLASS.ORD, 'mi', 'normnal'],\n];\nfunction getRange(text) {\n var e_1, _a;\n var n = text.codePointAt(0);\n try {\n for (var RANGES_1 = __values(exports.RANGES), RANGES_1_1 = RANGES_1.next(); !RANGES_1_1.done; RANGES_1_1 = RANGES_1.next()) {\n var range = RANGES_1_1.value;\n if (n <= range[1]) {\n if (n >= range[0]) {\n return range;\n }\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (RANGES_1_1 && !RANGES_1_1.done && (_a = RANGES_1.return)) _a.call(RANGES_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return null;\n}\nexports.getRange = getRange;\nexports.MMLSPACING = [\n [0, 0],\n [1, 2],\n [3, 3],\n [4, 4],\n [0, 0],\n [0, 0],\n [0, 3]\n];\nexports.OPTABLE = {\n prefix: {\n '(': exports.MO.OPEN,\n '+': exports.MO.BIN01,\n '-': exports.MO.BIN01,\n '[': exports.MO.OPEN,\n '{': exports.MO.OPEN,\n '|': exports.MO.OPEN,\n '||': [0, 0, MmlNode_js_1.TEXCLASS.BIN, { fence: true, stretchy: true, symmetric: true }],\n '|||': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { fence: true, stretchy: true, symmetric: true }],\n '\\u00AC': exports.MO.ORD21,\n '\\u00B1': exports.MO.BIN01,\n '\\u2016': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { fence: true, stretchy: true }],\n '\\u2018': [0, 0, MmlNode_js_1.TEXCLASS.OPEN, { fence: true }],\n '\\u201C': [0, 0, MmlNode_js_1.TEXCLASS.OPEN, { fence: true }],\n '\\u2145': exports.MO.ORD21,\n '\\u2146': OPDEF(2, 0, MmlNode_js_1.TEXCLASS.ORD),\n '\\u2200': exports.MO.ORD21,\n '\\u2202': exports.MO.ORD21,\n '\\u2203': exports.MO.ORD21,\n '\\u2204': exports.MO.ORD21,\n '\\u2207': exports.MO.ORD21,\n '\\u220F': exports.MO.OP,\n '\\u2210': exports.MO.OP,\n '\\u2211': exports.MO.OP,\n '\\u2212': exports.MO.BIN01,\n '\\u2213': exports.MO.BIN01,\n '\\u221A': [1, 1, MmlNode_js_1.TEXCLASS.ORD, { stretchy: true }],\n '\\u221B': exports.MO.ORD11,\n '\\u221C': exports.MO.ORD11,\n '\\u2220': exports.MO.ORD,\n '\\u2221': exports.MO.ORD,\n '\\u2222': exports.MO.ORD,\n '\\u222B': exports.MO.INTEGRAL,\n '\\u222C': exports.MO.INTEGRAL,\n '\\u222D': exports.MO.INTEGRAL,\n '\\u222E': exports.MO.INTEGRAL,\n '\\u222F': exports.MO.INTEGRAL,\n '\\u2230': exports.MO.INTEGRAL,\n '\\u2231': exports.MO.INTEGRAL,\n '\\u2232': exports.MO.INTEGRAL,\n '\\u2233': exports.MO.INTEGRAL,\n '\\u22C0': exports.MO.OP,\n '\\u22C1': exports.MO.OP,\n '\\u22C2': exports.MO.OP,\n '\\u22C3': exports.MO.OP,\n '\\u2308': exports.MO.OPEN,\n '\\u230A': exports.MO.OPEN,\n '\\u2329': exports.MO.OPEN,\n '\\u2772': exports.MO.OPEN,\n '\\u27E6': exports.MO.OPEN,\n '\\u27E8': exports.MO.OPEN,\n '\\u27EA': exports.MO.OPEN,\n '\\u27EC': exports.MO.OPEN,\n '\\u27EE': exports.MO.OPEN,\n '\\u2980': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { fence: true, stretchy: true }],\n '\\u2983': exports.MO.OPEN,\n '\\u2985': exports.MO.OPEN,\n '\\u2987': exports.MO.OPEN,\n '\\u2989': exports.MO.OPEN,\n '\\u298B': exports.MO.OPEN,\n '\\u298D': exports.MO.OPEN,\n '\\u298F': exports.MO.OPEN,\n '\\u2991': exports.MO.OPEN,\n '\\u2993': exports.MO.OPEN,\n '\\u2995': exports.MO.OPEN,\n '\\u2997': exports.MO.OPEN,\n '\\u29FC': exports.MO.OPEN,\n '\\u2A00': exports.MO.OP,\n '\\u2A01': exports.MO.OP,\n '\\u2A02': exports.MO.OP,\n '\\u2A03': exports.MO.OP,\n '\\u2A04': exports.MO.OP,\n '\\u2A05': exports.MO.OP,\n '\\u2A06': exports.MO.OP,\n '\\u2A07': exports.MO.OP,\n '\\u2A08': exports.MO.OP,\n '\\u2A09': exports.MO.OP,\n '\\u2A0A': exports.MO.OP,\n '\\u2A0B': exports.MO.INTEGRAL2,\n '\\u2A0C': exports.MO.INTEGRAL,\n '\\u2A0D': exports.MO.INTEGRAL2,\n '\\u2A0E': exports.MO.INTEGRAL2,\n '\\u2A0F': exports.MO.INTEGRAL2,\n '\\u2A10': exports.MO.OP,\n '\\u2A11': exports.MO.OP,\n '\\u2A12': exports.MO.OP,\n '\\u2A13': exports.MO.OP,\n '\\u2A14': exports.MO.OP,\n '\\u2A15': exports.MO.INTEGRAL2,\n '\\u2A16': exports.MO.INTEGRAL2,\n '\\u2A17': exports.MO.INTEGRAL2,\n '\\u2A18': exports.MO.INTEGRAL2,\n '\\u2A19': exports.MO.INTEGRAL2,\n '\\u2A1A': exports.MO.INTEGRAL2,\n '\\u2A1B': exports.MO.INTEGRAL2,\n '\\u2A1C': exports.MO.INTEGRAL2,\n '\\u2AFC': exports.MO.OP,\n '\\u2AFF': exports.MO.OP,\n },\n postfix: {\n '!!': OPDEF(1, 0),\n '!': [1, 0, MmlNode_js_1.TEXCLASS.CLOSE, null],\n '\"': exports.MO.ACCENT,\n '&': exports.MO.ORD,\n ')': exports.MO.CLOSE,\n '++': OPDEF(0, 0),\n '--': OPDEF(0, 0),\n '..': OPDEF(0, 0),\n '...': exports.MO.ORD,\n '\\'': exports.MO.ACCENT,\n ']': exports.MO.CLOSE,\n '^': exports.MO.WIDEACCENT,\n '_': exports.MO.WIDEACCENT,\n '`': exports.MO.ACCENT,\n '|': exports.MO.CLOSE,\n '}': exports.MO.CLOSE,\n '~': exports.MO.WIDEACCENT,\n '||': [0, 0, MmlNode_js_1.TEXCLASS.BIN, { fence: true, stretchy: true, symmetric: true }],\n '|||': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { fence: true, stretchy: true, symmetric: true }],\n '\\u00A8': exports.MO.ACCENT,\n '\\u00AA': exports.MO.ACCENT,\n '\\u00AF': exports.MO.WIDEACCENT,\n '\\u00B0': exports.MO.ORD,\n '\\u00B2': exports.MO.ACCENT,\n '\\u00B3': exports.MO.ACCENT,\n '\\u00B4': exports.MO.ACCENT,\n '\\u00B8': exports.MO.ACCENT,\n '\\u00B9': exports.MO.ACCENT,\n '\\u00BA': exports.MO.ACCENT,\n '\\u02C6': exports.MO.WIDEACCENT,\n '\\u02C7': exports.MO.WIDEACCENT,\n '\\u02C9': exports.MO.WIDEACCENT,\n '\\u02CA': exports.MO.ACCENT,\n '\\u02CB': exports.MO.ACCENT,\n '\\u02CD': exports.MO.WIDEACCENT,\n '\\u02D8': exports.MO.ACCENT,\n '\\u02D9': exports.MO.ACCENT,\n '\\u02DA': exports.MO.ACCENT,\n '\\u02DC': exports.MO.WIDEACCENT,\n '\\u02DD': exports.MO.ACCENT,\n '\\u02F7': exports.MO.WIDEACCENT,\n '\\u0302': exports.MO.WIDEACCENT,\n '\\u0311': exports.MO.ACCENT,\n '\\u03F6': exports.MO.REL,\n '\\u2016': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { fence: true, stretchy: true }],\n '\\u2019': [0, 0, MmlNode_js_1.TEXCLASS.CLOSE, { fence: true }],\n '\\u201A': exports.MO.ACCENT,\n '\\u201B': exports.MO.ACCENT,\n '\\u201D': [0, 0, MmlNode_js_1.TEXCLASS.CLOSE, { fence: true }],\n '\\u201E': exports.MO.ACCENT,\n '\\u201F': exports.MO.ACCENT,\n '\\u2032': exports.MO.ORD,\n '\\u2033': exports.MO.ACCENT,\n '\\u2034': exports.MO.ACCENT,\n '\\u2035': exports.MO.ACCENT,\n '\\u2036': exports.MO.ACCENT,\n '\\u2037': exports.MO.ACCENT,\n '\\u203E': exports.MO.WIDEACCENT,\n '\\u2057': exports.MO.ACCENT,\n '\\u20DB': exports.MO.ACCENT,\n '\\u20DC': exports.MO.ACCENT,\n '\\u2309': exports.MO.CLOSE,\n '\\u230B': exports.MO.CLOSE,\n '\\u232A': exports.MO.CLOSE,\n '\\u23B4': exports.MO.WIDEACCENT,\n '\\u23B5': exports.MO.WIDEACCENT,\n '\\u23DC': exports.MO.WIDEACCENT,\n '\\u23DD': exports.MO.WIDEACCENT,\n '\\u23DE': exports.MO.WIDEACCENT,\n '\\u23DF': exports.MO.WIDEACCENT,\n '\\u23E0': exports.MO.WIDEACCENT,\n '\\u23E1': exports.MO.WIDEACCENT,\n '\\u25A0': exports.MO.BIN3,\n '\\u25A1': exports.MO.BIN3,\n '\\u25AA': exports.MO.BIN3,\n '\\u25AB': exports.MO.BIN3,\n '\\u25AD': exports.MO.BIN3,\n '\\u25AE': exports.MO.BIN3,\n '\\u25AF': exports.MO.BIN3,\n '\\u25B0': exports.MO.BIN3,\n '\\u25B1': exports.MO.BIN3,\n '\\u25B2': exports.MO.BIN4,\n '\\u25B4': exports.MO.BIN4,\n '\\u25B6': exports.MO.BIN4,\n '\\u25B7': exports.MO.BIN4,\n '\\u25B8': exports.MO.BIN4,\n '\\u25BC': exports.MO.BIN4,\n '\\u25BE': exports.MO.BIN4,\n '\\u25C0': exports.MO.BIN4,\n '\\u25C1': exports.MO.BIN4,\n '\\u25C2': exports.MO.BIN4,\n '\\u25C4': exports.MO.BIN4,\n '\\u25C5': exports.MO.BIN4,\n '\\u25C6': exports.MO.BIN4,\n '\\u25C7': exports.MO.BIN4,\n '\\u25C8': exports.MO.BIN4,\n '\\u25C9': exports.MO.BIN4,\n '\\u25CC': exports.MO.BIN4,\n '\\u25CD': exports.MO.BIN4,\n '\\u25CE': exports.MO.BIN4,\n '\\u25CF': exports.MO.BIN4,\n '\\u25D6': exports.MO.BIN4,\n '\\u25D7': exports.MO.BIN4,\n '\\u25E6': exports.MO.BIN4,\n '\\u266D': exports.MO.ORD02,\n '\\u266E': exports.MO.ORD02,\n '\\u266F': exports.MO.ORD02,\n '\\u2773': exports.MO.CLOSE,\n '\\u27E7': exports.MO.CLOSE,\n '\\u27E9': exports.MO.CLOSE,\n '\\u27EB': exports.MO.CLOSE,\n '\\u27ED': exports.MO.CLOSE,\n '\\u27EF': exports.MO.CLOSE,\n '\\u2980': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { fence: true, stretchy: true }],\n '\\u2984': exports.MO.CLOSE,\n '\\u2986': exports.MO.CLOSE,\n '\\u2988': exports.MO.CLOSE,\n '\\u298A': exports.MO.CLOSE,\n '\\u298C': exports.MO.CLOSE,\n '\\u298E': exports.MO.CLOSE,\n '\\u2990': exports.MO.CLOSE,\n '\\u2992': exports.MO.CLOSE,\n '\\u2994': exports.MO.CLOSE,\n '\\u2996': exports.MO.CLOSE,\n '\\u2998': exports.MO.CLOSE,\n '\\u29FD': exports.MO.CLOSE,\n },\n infix: {\n '!=': exports.MO.BIN4,\n '#': exports.MO.ORD,\n '$': exports.MO.ORD,\n '%': [3, 3, MmlNode_js_1.TEXCLASS.ORD, null],\n '&&': exports.MO.BIN4,\n '': exports.MO.ORD,\n '*': exports.MO.BIN3,\n '**': OPDEF(1, 1),\n '*=': exports.MO.BIN4,\n '+': exports.MO.BIN4,\n '+=': exports.MO.BIN4,\n ',': [0, 3, MmlNode_js_1.TEXCLASS.PUNCT, { linebreakstyle: 'after', separator: true }],\n '-': exports.MO.BIN4,\n '-=': exports.MO.BIN4,\n '->': exports.MO.BIN5,\n '.': [0, 3, MmlNode_js_1.TEXCLASS.PUNCT, { separator: true }],\n '/': exports.MO.ORD11,\n '//': OPDEF(1, 1),\n '/=': exports.MO.BIN4,\n ':': [1, 2, MmlNode_js_1.TEXCLASS.REL, null],\n ':=': exports.MO.BIN4,\n ';': [0, 3, MmlNode_js_1.TEXCLASS.PUNCT, { linebreakstyle: 'after', separator: true }],\n '<': exports.MO.REL,\n '<=': exports.MO.BIN5,\n '<>': OPDEF(1, 1),\n '=': exports.MO.REL,\n '==': exports.MO.BIN4,\n '>': exports.MO.REL,\n '>=': exports.MO.BIN5,\n '?': [1, 1, MmlNode_js_1.TEXCLASS.CLOSE, null],\n '@': exports.MO.ORD11,\n '\\\\': exports.MO.ORD,\n '^': exports.MO.ORD11,\n '_': exports.MO.ORD11,\n '|': [2, 2, MmlNode_js_1.TEXCLASS.ORD, { fence: true, stretchy: true, symmetric: true }],\n '||': [2, 2, MmlNode_js_1.TEXCLASS.BIN, { fence: true, stretchy: true, symmetric: true }],\n '|||': [2, 2, MmlNode_js_1.TEXCLASS.ORD, { fence: true, stretchy: true, symmetric: true }],\n '\\u00B1': exports.MO.BIN4,\n '\\u00B7': exports.MO.BIN4,\n '\\u00D7': exports.MO.BIN4,\n '\\u00F7': exports.MO.BIN4,\n '\\u02B9': exports.MO.ORD,\n '\\u0300': exports.MO.ACCENT,\n '\\u0301': exports.MO.ACCENT,\n '\\u0303': exports.MO.WIDEACCENT,\n '\\u0304': exports.MO.ACCENT,\n '\\u0306': exports.MO.ACCENT,\n '\\u0307': exports.MO.ACCENT,\n '\\u0308': exports.MO.ACCENT,\n '\\u030C': exports.MO.ACCENT,\n '\\u0332': exports.MO.WIDEACCENT,\n '\\u0338': exports.MO.REL4,\n '\\u2015': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { stretchy: true }],\n '\\u2017': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { stretchy: true }],\n '\\u2020': exports.MO.BIN3,\n '\\u2021': exports.MO.BIN3,\n '\\u2022': exports.MO.BIN4,\n '\\u2026': exports.MO.INNER,\n '\\u2043': exports.MO.BIN4,\n '\\u2044': exports.MO.TALLBIN,\n '\\u2061': exports.MO.NONE,\n '\\u2062': exports.MO.NONE,\n '\\u2063': [0, 0, MmlNode_js_1.TEXCLASS.NONE, { linebreakstyle: 'after', separator: true }],\n '\\u2064': exports.MO.NONE,\n '\\u20D7': exports.MO.ACCENT,\n '\\u2111': exports.MO.ORD,\n '\\u2113': exports.MO.ORD,\n '\\u2118': exports.MO.ORD,\n '\\u211C': exports.MO.ORD,\n '\\u2190': exports.MO.WIDEREL,\n '\\u2191': exports.MO.RELSTRETCH,\n '\\u2192': exports.MO.WIDEREL,\n '\\u2193': exports.MO.RELSTRETCH,\n '\\u2194': exports.MO.WIDEREL,\n '\\u2195': exports.MO.RELSTRETCH,\n '\\u2196': exports.MO.RELSTRETCH,\n '\\u2197': exports.MO.RELSTRETCH,\n '\\u2198': exports.MO.RELSTRETCH,\n '\\u2199': exports.MO.RELSTRETCH,\n '\\u219A': exports.MO.RELACCENT,\n '\\u219B': exports.MO.RELACCENT,\n '\\u219C': exports.MO.WIDEREL,\n '\\u219D': exports.MO.WIDEREL,\n '\\u219E': exports.MO.WIDEREL,\n '\\u219F': exports.MO.WIDEREL,\n '\\u21A0': exports.MO.WIDEREL,\n '\\u21A1': exports.MO.RELSTRETCH,\n '\\u21A2': exports.MO.WIDEREL,\n '\\u21A3': exports.MO.WIDEREL,\n '\\u21A4': exports.MO.WIDEREL,\n '\\u21A5': exports.MO.RELSTRETCH,\n '\\u21A6': exports.MO.WIDEREL,\n '\\u21A7': exports.MO.RELSTRETCH,\n '\\u21A8': exports.MO.RELSTRETCH,\n '\\u21A9': exports.MO.WIDEREL,\n '\\u21AA': exports.MO.WIDEREL,\n '\\u21AB': exports.MO.WIDEREL,\n '\\u21AC': exports.MO.WIDEREL,\n '\\u21AD': exports.MO.WIDEREL,\n '\\u21AE': exports.MO.RELACCENT,\n '\\u21AF': exports.MO.RELSTRETCH,\n '\\u21B0': exports.MO.RELSTRETCH,\n '\\u21B1': exports.MO.RELSTRETCH,\n '\\u21B2': exports.MO.RELSTRETCH,\n '\\u21B3': exports.MO.RELSTRETCH,\n '\\u21B4': exports.MO.RELSTRETCH,\n '\\u21B5': exports.MO.RELSTRETCH,\n '\\u21B6': exports.MO.RELACCENT,\n '\\u21B7': exports.MO.RELACCENT,\n '\\u21B8': exports.MO.REL,\n '\\u21B9': exports.MO.WIDEREL,\n '\\u21BA': exports.MO.REL,\n '\\u21BB': exports.MO.REL,\n '\\u21BC': exports.MO.WIDEREL,\n '\\u21BD': exports.MO.WIDEREL,\n '\\u21BE': exports.MO.RELSTRETCH,\n '\\u21BF': exports.MO.RELSTRETCH,\n '\\u21C0': exports.MO.WIDEREL,\n '\\u21C1': exports.MO.WIDEREL,\n '\\u21C2': exports.MO.RELSTRETCH,\n '\\u21C3': exports.MO.RELSTRETCH,\n '\\u21C4': exports.MO.WIDEREL,\n '\\u21C5': exports.MO.RELSTRETCH,\n '\\u21C6': exports.MO.WIDEREL,\n '\\u21C7': exports.MO.WIDEREL,\n '\\u21C8': exports.MO.RELSTRETCH,\n '\\u21C9': exports.MO.WIDEREL,\n '\\u21CA': exports.MO.RELSTRETCH,\n '\\u21CB': exports.MO.WIDEREL,\n '\\u21CC': exports.MO.WIDEREL,\n '\\u21CD': exports.MO.RELACCENT,\n '\\u21CE': exports.MO.RELACCENT,\n '\\u21CF': exports.MO.RELACCENT,\n '\\u21D0': exports.MO.WIDEREL,\n '\\u21D1': exports.MO.RELSTRETCH,\n '\\u21D2': exports.MO.WIDEREL,\n '\\u21D3': exports.MO.RELSTRETCH,\n '\\u21D4': exports.MO.WIDEREL,\n '\\u21D5': exports.MO.RELSTRETCH,\n '\\u21D6': exports.MO.RELSTRETCH,\n '\\u21D7': exports.MO.RELSTRETCH,\n '\\u21D8': exports.MO.RELSTRETCH,\n '\\u21D9': exports.MO.RELSTRETCH,\n '\\u21DA': exports.MO.WIDEREL,\n '\\u21DB': exports.MO.WIDEREL,\n '\\u21DC': exports.MO.WIDEREL,\n '\\u21DD': exports.MO.WIDEREL,\n '\\u21DE': exports.MO.REL,\n '\\u21DF': exports.MO.REL,\n '\\u21E0': exports.MO.WIDEREL,\n '\\u21E1': exports.MO.RELSTRETCH,\n '\\u21E2': exports.MO.WIDEREL,\n '\\u21E3': exports.MO.RELSTRETCH,\n '\\u21E4': exports.MO.WIDEREL,\n '\\u21E5': exports.MO.WIDEREL,\n '\\u21E6': exports.MO.WIDEREL,\n '\\u21E7': exports.MO.RELSTRETCH,\n '\\u21E8': exports.MO.WIDEREL,\n '\\u21E9': exports.MO.RELSTRETCH,\n '\\u21EA': exports.MO.RELSTRETCH,\n '\\u21EB': exports.MO.RELSTRETCH,\n '\\u21EC': exports.MO.RELSTRETCH,\n '\\u21ED': exports.MO.RELSTRETCH,\n '\\u21EE': exports.MO.RELSTRETCH,\n '\\u21EF': exports.MO.RELSTRETCH,\n '\\u21F0': exports.MO.WIDEREL,\n '\\u21F1': exports.MO.REL,\n '\\u21F2': exports.MO.REL,\n '\\u21F3': exports.MO.RELSTRETCH,\n '\\u21F4': exports.MO.RELACCENT,\n '\\u21F5': exports.MO.RELSTRETCH,\n '\\u21F6': exports.MO.WIDEREL,\n '\\u21F7': exports.MO.RELACCENT,\n '\\u21F8': exports.MO.RELACCENT,\n '\\u21F9': exports.MO.RELACCENT,\n '\\u21FA': exports.MO.RELACCENT,\n '\\u21FB': exports.MO.RELACCENT,\n '\\u21FC': exports.MO.RELACCENT,\n '\\u21FD': exports.MO.WIDEREL,\n '\\u21FE': exports.MO.WIDEREL,\n '\\u21FF': exports.MO.WIDEREL,\n '\\u2201': OPDEF(1, 2, MmlNode_js_1.TEXCLASS.ORD),\n '\\u2205': exports.MO.ORD,\n '\\u2206': exports.MO.BIN3,\n '\\u2208': exports.MO.REL,\n '\\u2209': exports.MO.REL,\n '\\u220A': exports.MO.REL,\n '\\u220B': exports.MO.REL,\n '\\u220C': exports.MO.REL,\n '\\u220D': exports.MO.REL,\n '\\u220E': exports.MO.BIN3,\n '\\u2212': exports.MO.BIN4,\n '\\u2213': exports.MO.BIN4,\n '\\u2214': exports.MO.BIN4,\n '\\u2215': exports.MO.TALLBIN,\n '\\u2216': exports.MO.BIN4,\n '\\u2217': exports.MO.BIN4,\n '\\u2218': exports.MO.BIN4,\n '\\u2219': exports.MO.BIN4,\n '\\u221D': exports.MO.REL,\n '\\u221E': exports.MO.ORD,\n '\\u221F': exports.MO.REL,\n '\\u2223': exports.MO.REL,\n '\\u2224': exports.MO.REL,\n '\\u2225': exports.MO.REL,\n '\\u2226': exports.MO.REL,\n '\\u2227': exports.MO.BIN4,\n '\\u2228': exports.MO.BIN4,\n '\\u2229': exports.MO.BIN4,\n '\\u222A': exports.MO.BIN4,\n '\\u2234': exports.MO.REL,\n '\\u2235': exports.MO.REL,\n '\\u2236': exports.MO.REL,\n '\\u2237': exports.MO.REL,\n '\\u2238': exports.MO.BIN4,\n '\\u2239': exports.MO.REL,\n '\\u223A': exports.MO.BIN4,\n '\\u223B': exports.MO.REL,\n '\\u223C': exports.MO.REL,\n '\\u223D': exports.MO.REL,\n '\\u223D\\u0331': exports.MO.BIN3,\n '\\u223E': exports.MO.REL,\n '\\u223F': exports.MO.BIN3,\n '\\u2240': exports.MO.BIN4,\n '\\u2241': exports.MO.REL,\n '\\u2242': exports.MO.REL,\n '\\u2242\\u0338': exports.MO.REL,\n '\\u2243': exports.MO.REL,\n '\\u2244': exports.MO.REL,\n '\\u2245': exports.MO.REL,\n '\\u2246': exports.MO.REL,\n '\\u2247': exports.MO.REL,\n '\\u2248': exports.MO.REL,\n '\\u2249': exports.MO.REL,\n '\\u224A': exports.MO.REL,\n '\\u224B': exports.MO.REL,\n '\\u224C': exports.MO.REL,\n '\\u224D': exports.MO.REL,\n '\\u224E': exports.MO.REL,\n '\\u224E\\u0338': exports.MO.REL,\n '\\u224F': exports.MO.REL,\n '\\u224F\\u0338': exports.MO.REL,\n '\\u2250': exports.MO.REL,\n '\\u2251': exports.MO.REL,\n '\\u2252': exports.MO.REL,\n '\\u2253': exports.MO.REL,\n '\\u2254': exports.MO.REL,\n '\\u2255': exports.MO.REL,\n '\\u2256': exports.MO.REL,\n '\\u2257': exports.MO.REL,\n '\\u2258': exports.MO.REL,\n '\\u2259': exports.MO.REL,\n '\\u225A': exports.MO.REL,\n '\\u225B': exports.MO.REL,\n '\\u225C': exports.MO.REL,\n '\\u225D': exports.MO.REL,\n '\\u225E': exports.MO.REL,\n '\\u225F': exports.MO.REL,\n '\\u2260': exports.MO.REL,\n '\\u2261': exports.MO.REL,\n '\\u2262': exports.MO.REL,\n '\\u2263': exports.MO.REL,\n '\\u2264': exports.MO.REL,\n '\\u2265': exports.MO.REL,\n '\\u2266': exports.MO.REL,\n '\\u2266\\u0338': exports.MO.REL,\n '\\u2267': exports.MO.REL,\n '\\u2268': exports.MO.REL,\n '\\u2269': exports.MO.REL,\n '\\u226A': exports.MO.REL,\n '\\u226A\\u0338': exports.MO.REL,\n '\\u226B': exports.MO.REL,\n '\\u226B\\u0338': exports.MO.REL,\n '\\u226C': exports.MO.REL,\n '\\u226D': exports.MO.REL,\n '\\u226E': exports.MO.REL,\n '\\u226F': exports.MO.REL,\n '\\u2270': exports.MO.REL,\n '\\u2271': exports.MO.REL,\n '\\u2272': exports.MO.REL,\n '\\u2273': exports.MO.REL,\n '\\u2274': exports.MO.REL,\n '\\u2275': exports.MO.REL,\n '\\u2276': exports.MO.REL,\n '\\u2277': exports.MO.REL,\n '\\u2278': exports.MO.REL,\n '\\u2279': exports.MO.REL,\n '\\u227A': exports.MO.REL,\n '\\u227B': exports.MO.REL,\n '\\u227C': exports.MO.REL,\n '\\u227D': exports.MO.REL,\n '\\u227E': exports.MO.REL,\n '\\u227F': exports.MO.REL,\n '\\u227F\\u0338': exports.MO.REL,\n '\\u2280': exports.MO.REL,\n '\\u2281': exports.MO.REL,\n '\\u2282': exports.MO.REL,\n '\\u2282\\u20D2': exports.MO.REL,\n '\\u2283': exports.MO.REL,\n '\\u2283\\u20D2': exports.MO.REL,\n '\\u2284': exports.MO.REL,\n '\\u2285': exports.MO.REL,\n '\\u2286': exports.MO.REL,\n '\\u2287': exports.MO.REL,\n '\\u2288': exports.MO.REL,\n '\\u2289': exports.MO.REL,\n '\\u228A': exports.MO.REL,\n '\\u228B': exports.MO.REL,\n '\\u228C': exports.MO.BIN4,\n '\\u228D': exports.MO.BIN4,\n '\\u228E': exports.MO.BIN4,\n '\\u228F': exports.MO.REL,\n '\\u228F\\u0338': exports.MO.REL,\n '\\u2290': exports.MO.REL,\n '\\u2290\\u0338': exports.MO.REL,\n '\\u2291': exports.MO.REL,\n '\\u2292': exports.MO.REL,\n '\\u2293': exports.MO.BIN4,\n '\\u2294': exports.MO.BIN4,\n '\\u2295': exports.MO.BIN4,\n '\\u2296': exports.MO.BIN4,\n '\\u2297': exports.MO.BIN4,\n '\\u2298': exports.MO.BIN4,\n '\\u2299': exports.MO.BIN4,\n '\\u229A': exports.MO.BIN4,\n '\\u229B': exports.MO.BIN4,\n '\\u229C': exports.MO.BIN4,\n '\\u229D': exports.MO.BIN4,\n '\\u229E': exports.MO.BIN4,\n '\\u229F': exports.MO.BIN4,\n '\\u22A0': exports.MO.BIN4,\n '\\u22A1': exports.MO.BIN4,\n '\\u22A2': exports.MO.REL,\n '\\u22A3': exports.MO.REL,\n '\\u22A4': exports.MO.ORD55,\n '\\u22A5': exports.MO.REL,\n '\\u22A6': exports.MO.REL,\n '\\u22A7': exports.MO.REL,\n '\\u22A8': exports.MO.REL,\n '\\u22A9': exports.MO.REL,\n '\\u22AA': exports.MO.REL,\n '\\u22AB': exports.MO.REL,\n '\\u22AC': exports.MO.REL,\n '\\u22AD': exports.MO.REL,\n '\\u22AE': exports.MO.REL,\n '\\u22AF': exports.MO.REL,\n '\\u22B0': exports.MO.REL,\n '\\u22B1': exports.MO.REL,\n '\\u22B2': exports.MO.REL,\n '\\u22B3': exports.MO.REL,\n '\\u22B4': exports.MO.REL,\n '\\u22B5': exports.MO.REL,\n '\\u22B6': exports.MO.REL,\n '\\u22B7': exports.MO.REL,\n '\\u22B8': exports.MO.REL,\n '\\u22B9': exports.MO.REL,\n '\\u22BA': exports.MO.BIN4,\n '\\u22BB': exports.MO.BIN4,\n '\\u22BC': exports.MO.BIN4,\n '\\u22BD': exports.MO.BIN4,\n '\\u22BE': exports.MO.BIN3,\n '\\u22BF': exports.MO.BIN3,\n '\\u22C4': exports.MO.BIN4,\n '\\u22C5': exports.MO.BIN4,\n '\\u22C6': exports.MO.BIN4,\n '\\u22C7': exports.MO.BIN4,\n '\\u22C8': exports.MO.REL,\n '\\u22C9': exports.MO.BIN4,\n '\\u22CA': exports.MO.BIN4,\n '\\u22CB': exports.MO.BIN4,\n '\\u22CC': exports.MO.BIN4,\n '\\u22CD': exports.MO.REL,\n '\\u22CE': exports.MO.BIN4,\n '\\u22CF': exports.MO.BIN4,\n '\\u22D0': exports.MO.REL,\n '\\u22D1': exports.MO.REL,\n '\\u22D2': exports.MO.BIN4,\n '\\u22D3': exports.MO.BIN4,\n '\\u22D4': exports.MO.REL,\n '\\u22D5': exports.MO.REL,\n '\\u22D6': exports.MO.REL,\n '\\u22D7': exports.MO.REL,\n '\\u22D8': exports.MO.REL,\n '\\u22D9': exports.MO.REL,\n '\\u22DA': exports.MO.REL,\n '\\u22DB': exports.MO.REL,\n '\\u22DC': exports.MO.REL,\n '\\u22DD': exports.MO.REL,\n '\\u22DE': exports.MO.REL,\n '\\u22DF': exports.MO.REL,\n '\\u22E0': exports.MO.REL,\n '\\u22E1': exports.MO.REL,\n '\\u22E2': exports.MO.REL,\n '\\u22E3': exports.MO.REL,\n '\\u22E4': exports.MO.REL,\n '\\u22E5': exports.MO.REL,\n '\\u22E6': exports.MO.REL,\n '\\u22E7': exports.MO.REL,\n '\\u22E8': exports.MO.REL,\n '\\u22E9': exports.MO.REL,\n '\\u22EA': exports.MO.REL,\n '\\u22EB': exports.MO.REL,\n '\\u22EC': exports.MO.REL,\n '\\u22ED': exports.MO.REL,\n '\\u22EE': exports.MO.ORD55,\n '\\u22EF': exports.MO.INNER,\n '\\u22F0': exports.MO.REL,\n '\\u22F1': [5, 5, MmlNode_js_1.TEXCLASS.INNER, null],\n '\\u22F2': exports.MO.REL,\n '\\u22F3': exports.MO.REL,\n '\\u22F4': exports.MO.REL,\n '\\u22F5': exports.MO.REL,\n '\\u22F6': exports.MO.REL,\n '\\u22F7': exports.MO.REL,\n '\\u22F8': exports.MO.REL,\n '\\u22F9': exports.MO.REL,\n '\\u22FA': exports.MO.REL,\n '\\u22FB': exports.MO.REL,\n '\\u22FC': exports.MO.REL,\n '\\u22FD': exports.MO.REL,\n '\\u22FE': exports.MO.REL,\n '\\u22FF': exports.MO.REL,\n '\\u2305': exports.MO.BIN3,\n '\\u2306': exports.MO.BIN3,\n '\\u2322': exports.MO.REL4,\n '\\u2323': exports.MO.REL4,\n '\\u2329': exports.MO.OPEN,\n '\\u232A': exports.MO.CLOSE,\n '\\u23AA': exports.MO.ORD,\n '\\u23AF': [0, 0, MmlNode_js_1.TEXCLASS.ORD, { stretchy: true }],\n '\\u23B0': exports.MO.OPEN,\n '\\u23B1': exports.MO.CLOSE,\n '\\u2500': exports.MO.ORD,\n '\\u25B3': exports.MO.BIN4,\n '\\u25B5': exports.MO.BIN4,\n '\\u25B9': exports.MO.BIN4,\n '\\u25BD': exports.MO.BIN4,\n '\\u25BF': exports.MO.BIN4,\n '\\u25C3': exports.MO.BIN4,\n '\\u25EF': exports.MO.BIN3,\n '\\u2660': exports.MO.ORD,\n '\\u2661': exports.MO.ORD,\n '\\u2662': exports.MO.ORD,\n '\\u2663': exports.MO.ORD,\n '\\u2758': exports.MO.REL,\n '\\u27F0': exports.MO.RELSTRETCH,\n '\\u27F1': exports.MO.RELSTRETCH,\n '\\u27F5': exports.MO.WIDEREL,\n '\\u27F6': exports.MO.WIDEREL,\n '\\u27F7': exports.MO.WIDEREL,\n '\\u27F8': exports.MO.WIDEREL,\n '\\u27F9': exports.MO.WIDEREL,\n '\\u27FA': exports.MO.WIDEREL,\n '\\u27FB': exports.MO.WIDEREL,\n '\\u27FC': exports.MO.WIDEREL,\n '\\u27FD': exports.MO.WIDEREL,\n '\\u27FE': exports.MO.WIDEREL,\n '\\u27FF': exports.MO.WIDEREL,\n '\\u2900': exports.MO.RELACCENT,\n '\\u2901': exports.MO.RELACCENT,\n '\\u2902': exports.MO.RELACCENT,\n '\\u2903': exports.MO.RELACCENT,\n '\\u2904': exports.MO.RELACCENT,\n '\\u2905': exports.MO.RELACCENT,\n '\\u2906': exports.MO.RELACCENT,\n '\\u2907': exports.MO.RELACCENT,\n '\\u2908': exports.MO.REL,\n '\\u2909': exports.MO.REL,\n '\\u290A': exports.MO.RELSTRETCH,\n '\\u290B': exports.MO.RELSTRETCH,\n '\\u290C': exports.MO.WIDEREL,\n '\\u290D': exports.MO.WIDEREL,\n '\\u290E': exports.MO.WIDEREL,\n '\\u290F': exports.MO.WIDEREL,\n '\\u2910': exports.MO.WIDEREL,\n '\\u2911': exports.MO.RELACCENT,\n '\\u2912': exports.MO.RELSTRETCH,\n '\\u2913': exports.MO.RELSTRETCH,\n '\\u2914': exports.MO.RELACCENT,\n '\\u2915': exports.MO.RELACCENT,\n '\\u2916': exports.MO.RELACCENT,\n '\\u2917': exports.MO.RELACCENT,\n '\\u2918': exports.MO.RELACCENT,\n '\\u2919': exports.MO.RELACCENT,\n '\\u291A': exports.MO.RELACCENT,\n '\\u291B': exports.MO.RELACCENT,\n '\\u291C': exports.MO.RELACCENT,\n '\\u291D': exports.MO.RELACCENT,\n '\\u291E': exports.MO.RELACCENT,\n '\\u291F': exports.MO.RELACCENT,\n '\\u2920': exports.MO.RELACCENT,\n '\\u2921': exports.MO.RELSTRETCH,\n '\\u2922': exports.MO.RELSTRETCH,\n '\\u2923': exports.MO.REL,\n '\\u2924': exports.MO.REL,\n '\\u2925': exports.MO.REL,\n '\\u2926': exports.MO.REL,\n '\\u2927': exports.MO.REL,\n '\\u2928': exports.MO.REL,\n '\\u2929': exports.MO.REL,\n '\\u292A': exports.MO.REL,\n '\\u292B': exports.MO.REL,\n '\\u292C': exports.MO.REL,\n '\\u292D': exports.MO.REL,\n '\\u292E': exports.MO.REL,\n '\\u292F': exports.MO.REL,\n '\\u2930': exports.MO.REL,\n '\\u2931': exports.MO.REL,\n '\\u2932': exports.MO.REL,\n '\\u2933': exports.MO.RELACCENT,\n '\\u2934': exports.MO.REL,\n '\\u2935': exports.MO.REL,\n '\\u2936': exports.MO.REL,\n '\\u2937': exports.MO.REL,\n '\\u2938': exports.MO.REL,\n '\\u2939': exports.MO.REL,\n '\\u293A': exports.MO.RELACCENT,\n '\\u293B': exports.MO.RELACCENT,\n '\\u293C': exports.MO.RELACCENT,\n '\\u293D': exports.MO.RELACCENT,\n '\\u293E': exports.MO.REL,\n '\\u293F': exports.MO.REL,\n '\\u2940': exports.MO.REL,\n '\\u2941': exports.MO.REL,\n '\\u2942': exports.MO.RELACCENT,\n '\\u2943': exports.MO.RELACCENT,\n '\\u2944': exports.MO.RELACCENT,\n '\\u2945': exports.MO.RELACCENT,\n '\\u2946': exports.MO.RELACCENT,\n '\\u2947': exports.MO.RELACCENT,\n '\\u2948': exports.MO.RELACCENT,\n '\\u2949': exports.MO.REL,\n '\\u294A': exports.MO.RELACCENT,\n '\\u294B': exports.MO.RELACCENT,\n '\\u294C': exports.MO.REL,\n '\\u294D': exports.MO.REL,\n '\\u294E': exports.MO.WIDEREL,\n '\\u294F': exports.MO.RELSTRETCH,\n '\\u2950': exports.MO.WIDEREL,\n '\\u2951': exports.MO.RELSTRETCH,\n '\\u2952': exports.MO.WIDEREL,\n '\\u2953': exports.MO.WIDEREL,\n '\\u2954': exports.MO.RELSTRETCH,\n '\\u2955': exports.MO.RELSTRETCH,\n '\\u2956': exports.MO.RELSTRETCH,\n '\\u2957': exports.MO.RELSTRETCH,\n '\\u2958': exports.MO.RELSTRETCH,\n '\\u2959': exports.MO.RELSTRETCH,\n '\\u295A': exports.MO.WIDEREL,\n '\\u295B': exports.MO.WIDEREL,\n '\\u295C': exports.MO.RELSTRETCH,\n '\\u295D': exports.MO.RELSTRETCH,\n '\\u295E': exports.MO.WIDEREL,\n '\\u295F': exports.MO.WIDEREL,\n '\\u2960': exports.MO.RELSTRETCH,\n '\\u2961': exports.MO.RELSTRETCH,\n '\\u2962': exports.MO.RELACCENT,\n '\\u2963': exports.MO.REL,\n '\\u2964': exports.MO.RELACCENT,\n '\\u2965': exports.MO.REL,\n '\\u2966': exports.MO.RELACCENT,\n '\\u2967': exports.MO.RELACCENT,\n '\\u2968': exports.MO.RELACCENT,\n '\\u2969': exports.MO.RELACCENT,\n '\\u296A': exports.MO.RELACCENT,\n '\\u296B': exports.MO.RELACCENT,\n '\\u296C': exports.MO.RELACCENT,\n '\\u296D': exports.MO.RELACCENT,\n '\\u296E': exports.MO.RELSTRETCH,\n '\\u296F': exports.MO.RELSTRETCH,\n '\\u2970': exports.MO.RELACCENT,\n '\\u2971': exports.MO.RELACCENT,\n '\\u2972': exports.MO.RELACCENT,\n '\\u2973': exports.MO.RELACCENT,\n '\\u2974': exports.MO.RELACCENT,\n '\\u2975': exports.MO.RELACCENT,\n '\\u2976': exports.MO.RELACCENT,\n '\\u2977': exports.MO.RELACCENT,\n '\\u2978': exports.MO.RELACCENT,\n '\\u2979': exports.MO.RELACCENT,\n '\\u297A': exports.MO.RELACCENT,\n '\\u297B': exports.MO.RELACCENT,\n '\\u297C': exports.MO.RELACCENT,\n '\\u297D': exports.MO.RELACCENT,\n '\\u297E': exports.MO.REL,\n '\\u297F': exports.MO.REL,\n '\\u2981': exports.MO.BIN3,\n '\\u2982': exports.MO.BIN3,\n '\\u2999': exports.MO.BIN3,\n '\\u299A': exports.MO.BIN3,\n '\\u299B': exports.MO.BIN3,\n '\\u299C': exports.MO.BIN3,\n '\\u299D': exports.MO.BIN3,\n '\\u299E': exports.MO.BIN3,\n '\\u299F': exports.MO.BIN3,\n '\\u29A0': exports.MO.BIN3,\n '\\u29A1': exports.MO.BIN3,\n '\\u29A2': exports.MO.BIN3,\n '\\u29A3': exports.MO.BIN3,\n '\\u29A4': exports.MO.BIN3,\n '\\u29A5': exports.MO.BIN3,\n '\\u29A6': exports.MO.BIN3,\n '\\u29A7': exports.MO.BIN3,\n '\\u29A8': exports.MO.BIN3,\n '\\u29A9': exports.MO.BIN3,\n '\\u29AA': exports.MO.BIN3,\n '\\u29AB': exports.MO.BIN3,\n '\\u29AC': exports.MO.BIN3,\n '\\u29AD': exports.MO.BIN3,\n '\\u29AE': exports.MO.BIN3,\n '\\u29AF': exports.MO.BIN3,\n '\\u29B0': exports.MO.BIN3,\n '\\u29B1': exports.MO.BIN3,\n '\\u29B2': exports.MO.BIN3,\n '\\u29B3': exports.MO.BIN3,\n '\\u29B4': exports.MO.BIN3,\n '\\u29B5': exports.MO.BIN3,\n '\\u29B6': exports.MO.BIN4,\n '\\u29B7': exports.MO.BIN4,\n '\\u29B8': exports.MO.BIN4,\n '\\u29B9': exports.MO.BIN4,\n '\\u29BA': exports.MO.BIN4,\n '\\u29BB': exports.MO.BIN4,\n '\\u29BC': exports.MO.BIN4,\n '\\u29BD': exports.MO.BIN4,\n '\\u29BE': exports.MO.BIN4,\n '\\u29BF': exports.MO.BIN4,\n '\\u29C0': exports.MO.REL,\n '\\u29C1': exports.MO.REL,\n '\\u29C2': exports.MO.BIN3,\n '\\u29C3': exports.MO.BIN3,\n '\\u29C4': exports.MO.BIN4,\n '\\u29C5': exports.MO.BIN4,\n '\\u29C6': exports.MO.BIN4,\n '\\u29C7': exports.MO.BIN4,\n '\\u29C8': exports.MO.BIN4,\n '\\u29C9': exports.MO.BIN3,\n '\\u29CA': exports.MO.BIN3,\n '\\u29CB': exports.MO.BIN3,\n '\\u29CC': exports.MO.BIN3,\n '\\u29CD': exports.MO.BIN3,\n '\\u29CE': exports.MO.REL,\n '\\u29CF': exports.MO.REL,\n '\\u29CF\\u0338': exports.MO.REL,\n '\\u29D0': exports.MO.REL,\n '\\u29D0\\u0338': exports.MO.REL,\n '\\u29D1': exports.MO.REL,\n '\\u29D2': exports.MO.REL,\n '\\u29D3': exports.MO.REL,\n '\\u29D4': exports.MO.REL,\n '\\u29D5': exports.MO.REL,\n '\\u29D6': exports.MO.BIN4,\n '\\u29D7': exports.MO.BIN4,\n '\\u29D8': exports.MO.BIN3,\n '\\u29D9': exports.MO.BIN3,\n '\\u29DB': exports.MO.BIN3,\n '\\u29DC': exports.MO.BIN3,\n '\\u29DD': exports.MO.BIN3,\n '\\u29DE': exports.MO.REL,\n '\\u29DF': exports.MO.BIN3,\n '\\u29E0': exports.MO.BIN3,\n '\\u29E1': exports.MO.REL,\n '\\u29E2': exports.MO.BIN4,\n '\\u29E3': exports.MO.REL,\n '\\u29E4': exports.MO.REL,\n '\\u29E5': exports.MO.REL,\n '\\u29E6': exports.MO.REL,\n '\\u29E7': exports.MO.BIN3,\n '\\u29E8': exports.MO.BIN3,\n '\\u29E9': exports.MO.BIN3,\n '\\u29EA': exports.MO.BIN3,\n '\\u29EB': exports.MO.BIN3,\n '\\u29EC': exports.MO.BIN3,\n '\\u29ED': exports.MO.BIN3,\n '\\u29EE': exports.MO.BIN3,\n '\\u29EF': exports.MO.BIN3,\n '\\u29F0': exports.MO.BIN3,\n '\\u29F1': exports.MO.BIN3,\n '\\u29F2': exports.MO.BIN3,\n '\\u29F3': exports.MO.BIN3,\n '\\u29F4': exports.MO.REL,\n '\\u29F5': exports.MO.BIN4,\n '\\u29F6': exports.MO.BIN4,\n '\\u29F7': exports.MO.BIN4,\n '\\u29F8': exports.MO.BIN3,\n '\\u29F9': exports.MO.BIN3,\n '\\u29FA': exports.MO.BIN3,\n '\\u29FB': exports.MO.BIN3,\n '\\u29FE': exports.MO.BIN4,\n '\\u29FF': exports.MO.BIN4,\n '\\u2A1D': exports.MO.BIN3,\n '\\u2A1E': exports.MO.BIN3,\n '\\u2A1F': exports.MO.BIN3,\n '\\u2A20': exports.MO.BIN3,\n '\\u2A21': exports.MO.BIN3,\n '\\u2A22': exports.MO.BIN4,\n '\\u2A23': exports.MO.BIN4,\n '\\u2A24': exports.MO.BIN4,\n '\\u2A25': exports.MO.BIN4,\n '\\u2A26': exports.MO.BIN4,\n '\\u2A27': exports.MO.BIN4,\n '\\u2A28': exports.MO.BIN4,\n '\\u2A29': exports.MO.BIN4,\n '\\u2A2A': exports.MO.BIN4,\n '\\u2A2B': exports.MO.BIN4,\n '\\u2A2C': exports.MO.BIN4,\n '\\u2A2D': exports.MO.BIN4,\n '\\u2A2E': exports.MO.BIN4,\n '\\u2A2F': exports.MO.BIN4,\n '\\u2A30': exports.MO.BIN4,\n '\\u2A31': exports.MO.BIN4,\n '\\u2A32': exports.MO.BIN4,\n '\\u2A33': exports.MO.BIN4,\n '\\u2A34': exports.MO.BIN4,\n '\\u2A35': exports.MO.BIN4,\n '\\u2A36': exports.MO.BIN4,\n '\\u2A37': exports.MO.BIN4,\n '\\u2A38': exports.MO.BIN4,\n '\\u2A39': exports.MO.BIN4,\n '\\u2A3A': exports.MO.BIN4,\n '\\u2A3B': exports.MO.BIN4,\n '\\u2A3C': exports.MO.BIN4,\n '\\u2A3D': exports.MO.BIN4,\n '\\u2A3E': exports.MO.BIN4,\n '\\u2A3F': exports.MO.BIN4,\n '\\u2A40': exports.MO.BIN4,\n '\\u2A41': exports.MO.BIN4,\n '\\u2A42': exports.MO.BIN4,\n '\\u2A43': exports.MO.BIN4,\n '\\u2A44': exports.MO.BIN4,\n '\\u2A45': exports.MO.BIN4,\n '\\u2A46': exports.MO.BIN4,\n '\\u2A47': exports.MO.BIN4,\n '\\u2A48': exports.MO.BIN4,\n '\\u2A49': exports.MO.BIN4,\n '\\u2A4A': exports.MO.BIN4,\n '\\u2A4B': exports.MO.BIN4,\n '\\u2A4C': exports.MO.BIN4,\n '\\u2A4D': exports.MO.BIN4,\n '\\u2A4E': exports.MO.BIN4,\n '\\u2A4F': exports.MO.BIN4,\n '\\u2A50': exports.MO.BIN4,\n '\\u2A51': exports.MO.BIN4,\n '\\u2A52': exports.MO.BIN4,\n '\\u2A53': exports.MO.BIN4,\n '\\u2A54': exports.MO.BIN4,\n '\\u2A55': exports.MO.BIN4,\n '\\u2A56': exports.MO.BIN4,\n '\\u2A57': exports.MO.BIN4,\n '\\u2A58': exports.MO.BIN4,\n '\\u2A59': exports.MO.REL,\n '\\u2A5A': exports.MO.BIN4,\n '\\u2A5B': exports.MO.BIN4,\n '\\u2A5C': exports.MO.BIN4,\n '\\u2A5D': exports.MO.BIN4,\n '\\u2A5E': exports.MO.BIN4,\n '\\u2A5F': exports.MO.BIN4,\n '\\u2A60': exports.MO.BIN4,\n '\\u2A61': exports.MO.BIN4,\n '\\u2A62': exports.MO.BIN4,\n '\\u2A63': exports.MO.BIN4,\n '\\u2A64': exports.MO.BIN4,\n '\\u2A65': exports.MO.BIN4,\n '\\u2A66': exports.MO.REL,\n '\\u2A67': exports.MO.REL,\n '\\u2A68': exports.MO.REL,\n '\\u2A69': exports.MO.REL,\n '\\u2A6A': exports.MO.REL,\n '\\u2A6B': exports.MO.REL,\n '\\u2A6C': exports.MO.REL,\n '\\u2A6D': exports.MO.REL,\n '\\u2A6E': exports.MO.REL,\n '\\u2A6F': exports.MO.REL,\n '\\u2A70': exports.MO.REL,\n '\\u2A71': exports.MO.BIN4,\n '\\u2A72': exports.MO.BIN4,\n '\\u2A73': exports.MO.REL,\n '\\u2A74': exports.MO.REL,\n '\\u2A75': exports.MO.REL,\n '\\u2A76': exports.MO.REL,\n '\\u2A77': exports.MO.REL,\n '\\u2A78': exports.MO.REL,\n '\\u2A79': exports.MO.REL,\n '\\u2A7A': exports.MO.REL,\n '\\u2A7B': exports.MO.REL,\n '\\u2A7C': exports.MO.REL,\n '\\u2A7D': exports.MO.REL,\n '\\u2A7D\\u0338': exports.MO.REL,\n '\\u2A7E': exports.MO.REL,\n '\\u2A7E\\u0338': exports.MO.REL,\n '\\u2A7F': exports.MO.REL,\n '\\u2A80': exports.MO.REL,\n '\\u2A81': exports.MO.REL,\n '\\u2A82': exports.MO.REL,\n '\\u2A83': exports.MO.REL,\n '\\u2A84': exports.MO.REL,\n '\\u2A85': exports.MO.REL,\n '\\u2A86': exports.MO.REL,\n '\\u2A87': exports.MO.REL,\n '\\u2A88': exports.MO.REL,\n '\\u2A89': exports.MO.REL,\n '\\u2A8A': exports.MO.REL,\n '\\u2A8B': exports.MO.REL,\n '\\u2A8C': exports.MO.REL,\n '\\u2A8D': exports.MO.REL,\n '\\u2A8E': exports.MO.REL,\n '\\u2A8F': exports.MO.REL,\n '\\u2A90': exports.MO.REL,\n '\\u2A91': exports.MO.REL,\n '\\u2A92': exports.MO.REL,\n '\\u2A93': exports.MO.REL,\n '\\u2A94': exports.MO.REL,\n '\\u2A95': exports.MO.REL,\n '\\u2A96': exports.MO.REL,\n '\\u2A97': exports.MO.REL,\n '\\u2A98': exports.MO.REL,\n '\\u2A99': exports.MO.REL,\n '\\u2A9A': exports.MO.REL,\n '\\u2A9B': exports.MO.REL,\n '\\u2A9C': exports.MO.REL,\n '\\u2A9D': exports.MO.REL,\n '\\u2A9E': exports.MO.REL,\n '\\u2A9F': exports.MO.REL,\n '\\u2AA0': exports.MO.REL,\n '\\u2AA1': exports.MO.REL,\n '\\u2AA1\\u0338': exports.MO.REL,\n '\\u2AA2': exports.MO.REL,\n '\\u2AA2\\u0338': exports.MO.REL,\n '\\u2AA3': exports.MO.REL,\n '\\u2AA4': exports.MO.REL,\n '\\u2AA5': exports.MO.REL,\n '\\u2AA6': exports.MO.REL,\n '\\u2AA7': exports.MO.REL,\n '\\u2AA8': exports.MO.REL,\n '\\u2AA9': exports.MO.REL,\n '\\u2AAA': exports.MO.REL,\n '\\u2AAB': exports.MO.REL,\n '\\u2AAC': exports.MO.REL,\n '\\u2AAD': exports.MO.REL,\n '\\u2AAE': exports.MO.REL,\n '\\u2AAF': exports.MO.REL,\n '\\u2AAF\\u0338': exports.MO.REL,\n '\\u2AB0': exports.MO.REL,\n '\\u2AB0\\u0338': exports.MO.REL,\n '\\u2AB1': exports.MO.REL,\n '\\u2AB2': exports.MO.REL,\n '\\u2AB3': exports.MO.REL,\n '\\u2AB4': exports.MO.REL,\n '\\u2AB5': exports.MO.REL,\n '\\u2AB6': exports.MO.REL,\n '\\u2AB7': exports.MO.REL,\n '\\u2AB8': exports.MO.REL,\n '\\u2AB9': exports.MO.REL,\n '\\u2ABA': exports.MO.REL,\n '\\u2ABB': exports.MO.REL,\n '\\u2ABC': exports.MO.REL,\n '\\u2ABD': exports.MO.REL,\n '\\u2ABE': exports.MO.REL,\n '\\u2ABF': exports.MO.REL,\n '\\u2AC0': exports.MO.REL,\n '\\u2AC1': exports.MO.REL,\n '\\u2AC2': exports.MO.REL,\n '\\u2AC3': exports.MO.REL,\n '\\u2AC4': exports.MO.REL,\n '\\u2AC5': exports.MO.REL,\n '\\u2AC6': exports.MO.REL,\n '\\u2AC7': exports.MO.REL,\n '\\u2AC8': exports.MO.REL,\n '\\u2AC9': exports.MO.REL,\n '\\u2ACA': exports.MO.REL,\n '\\u2ACB': exports.MO.REL,\n '\\u2ACC': exports.MO.REL,\n '\\u2ACD': exports.MO.REL,\n '\\u2ACE': exports.MO.REL,\n '\\u2ACF': exports.MO.REL,\n '\\u2AD0': exports.MO.REL,\n '\\u2AD1': exports.MO.REL,\n '\\u2AD2': exports.MO.REL,\n '\\u2AD3': exports.MO.REL,\n '\\u2AD4': exports.MO.REL,\n '\\u2AD5': exports.MO.REL,\n '\\u2AD6': exports.MO.REL,\n '\\u2AD7': exports.MO.REL,\n '\\u2AD8': exports.MO.REL,\n '\\u2AD9': exports.MO.REL,\n '\\u2ADA': exports.MO.REL,\n '\\u2ADB': exports.MO.REL,\n '\\u2ADD': exports.MO.REL,\n '\\u2ADD\\u0338': exports.MO.REL,\n '\\u2ADE': exports.MO.REL,\n '\\u2ADF': exports.MO.REL,\n '\\u2AE0': exports.MO.REL,\n '\\u2AE1': exports.MO.REL,\n '\\u2AE2': exports.MO.REL,\n '\\u2AE3': exports.MO.REL,\n '\\u2AE4': exports.MO.REL,\n '\\u2AE5': exports.MO.REL,\n '\\u2AE6': exports.MO.REL,\n '\\u2AE7': exports.MO.REL,\n '\\u2AE8': exports.MO.REL,\n '\\u2AE9': exports.MO.REL,\n '\\u2AEA': exports.MO.REL,\n '\\u2AEB': exports.MO.REL,\n '\\u2AEC': exports.MO.REL,\n '\\u2AED': exports.MO.REL,\n '\\u2AEE': exports.MO.REL,\n '\\u2AEF': exports.MO.REL,\n '\\u2AF0': exports.MO.REL,\n '\\u2AF1': exports.MO.REL,\n '\\u2AF2': exports.MO.REL,\n '\\u2AF3': exports.MO.REL,\n '\\u2AF4': exports.MO.BIN4,\n '\\u2AF5': exports.MO.BIN4,\n '\\u2AF6': exports.MO.BIN4,\n '\\u2AF7': exports.MO.REL,\n '\\u2AF8': exports.MO.REL,\n '\\u2AF9': exports.MO.REL,\n '\\u2AFA': exports.MO.REL,\n '\\u2AFB': exports.MO.BIN4,\n '\\u2AFD': exports.MO.BIN4,\n '\\u2AFE': exports.MO.BIN3,\n '\\u2B45': exports.MO.RELSTRETCH,\n '\\u2B46': exports.MO.RELSTRETCH,\n '\\u3008': exports.MO.OPEN,\n '\\u3009': exports.MO.CLOSE,\n '\\uFE37': exports.MO.WIDEACCENT,\n '\\uFE38': exports.MO.WIDEACCENT,\n }\n};\nexports.OPTABLE.infix['^'] = exports.MO.WIDEREL;\nexports.OPTABLE.infix['_'] = exports.MO.WIDEREL;\nexports.OPTABLE.infix['\\u2ADC'] = exports.MO.REL;\n//# sourceMappingURL=OperatorDictionary.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SerializedMmlVisitor = exports.toEntity = exports.DATAMJX = void 0;\nvar MmlVisitor_js_1 = require(\"./MmlVisitor.js\");\nvar MmlNode_js_1 = require(\"./MmlNode.js\");\nvar mi_js_1 = require(\"./MmlNodes/mi.js\");\nexports.DATAMJX = 'data-mjx-';\nvar toEntity = function (c) { return '&#x' + c.codePointAt(0).toString(16).toUpperCase() + ';'; };\nexports.toEntity = toEntity;\nvar SerializedMmlVisitor = (function (_super) {\n __extends(SerializedMmlVisitor, _super);\n function SerializedMmlVisitor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SerializedMmlVisitor.prototype.visitTree = function (node) {\n return this.visitNode(node, '');\n };\n SerializedMmlVisitor.prototype.visitTextNode = function (node, _space) {\n return this.quoteHTML(node.getText());\n };\n SerializedMmlVisitor.prototype.visitXMLNode = function (node, space) {\n return space + node.getSerializedXML();\n };\n SerializedMmlVisitor.prototype.visitInferredMrowNode = function (node, space) {\n var e_1, _a;\n var mml = [];\n try {\n for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n mml.push(this.visitNode(child, space));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return mml.join('\\n');\n };\n SerializedMmlVisitor.prototype.visitTeXAtomNode = function (node, space) {\n var children = this.childNodeMml(node, space + ' ', '\\n');\n var mml = space + '' +\n (children.match(/\\S/) ? '\\n' + children + space : '') + '';\n return mml;\n };\n SerializedMmlVisitor.prototype.visitAnnotationNode = function (node, space) {\n return space + ''\n + this.childNodeMml(node, '', '')\n + '';\n };\n SerializedMmlVisitor.prototype.visitDefault = function (node, space) {\n var kind = node.kind;\n var _a = __read((node.isToken || node.childNodes.length === 0 ? ['', ''] : ['\\n', space]), 2), nl = _a[0], endspace = _a[1];\n var children = this.childNodeMml(node, space + ' ', nl);\n return space + '<' + kind + this.getAttributes(node) + '>'\n + (children.match(/\\S/) ? nl + children + endspace : '')\n + '';\n };\n SerializedMmlVisitor.prototype.childNodeMml = function (node, space, nl) {\n var e_2, _a;\n var mml = '';\n try {\n for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n mml += this.visitNode(child, space) + nl;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return mml;\n };\n SerializedMmlVisitor.prototype.getAttributes = function (node) {\n var e_3, _a;\n var attr = [];\n var defaults = this.constructor.defaultAttributes[node.kind] || {};\n var attributes = Object.assign({}, defaults, this.getDataAttributes(node), node.attributes.getAllAttributes());\n var variants = this.constructor.variants;\n if (attributes.hasOwnProperty('mathvariant') && variants.hasOwnProperty(attributes.mathvariant)) {\n attributes.mathvariant = variants[attributes.mathvariant];\n }\n try {\n for (var _b = __values(Object.keys(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_1 = _c.value;\n var value = String(attributes[name_1]);\n if (value === undefined)\n continue;\n attr.push(name_1 + '=\"' + this.quoteHTML(value) + '\"');\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return attr.length ? ' ' + attr.join(' ') : '';\n };\n SerializedMmlVisitor.prototype.getDataAttributes = function (node) {\n var data = {};\n var variant = node.attributes.getExplicit('mathvariant');\n var variants = this.constructor.variants;\n variant && variants.hasOwnProperty(variant) && this.setDataAttribute(data, 'variant', variant);\n node.getProperty('variantForm') && this.setDataAttribute(data, 'alternate', '1');\n node.getProperty('pseudoscript') && this.setDataAttribute(data, 'pseudoscript', 'true');\n node.getProperty('autoOP') === false && this.setDataAttribute(data, 'auto-op', 'false');\n var scriptalign = node.getProperty('scriptalign');\n scriptalign && this.setDataAttribute(data, 'script-align', scriptalign);\n var texclass = node.getProperty('texClass');\n if (texclass !== undefined) {\n var setclass = true;\n if (texclass === MmlNode_js_1.TEXCLASS.OP && node.isKind('mi')) {\n var name_2 = node.getText();\n setclass = !(name_2.length > 1 && name_2.match(mi_js_1.MmlMi.operatorName));\n }\n setclass && this.setDataAttribute(data, 'texclass', texclass < 0 ? 'NONE' : MmlNode_js_1.TEXCLASSNAMES[texclass]);\n }\n node.getProperty('scriptlevel') && node.getProperty('useHeight') === false &&\n this.setDataAttribute(data, 'smallmatrix', 'true');\n return data;\n };\n SerializedMmlVisitor.prototype.setDataAttribute = function (data, name, value) {\n data[exports.DATAMJX + name] = value;\n };\n SerializedMmlVisitor.prototype.quoteHTML = function (value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\\"/g, '"')\n .replace(/[\\uD800-\\uDBFF]./g, exports.toEntity)\n .replace(/[\\u0080-\\uD7FF\\uE000-\\uFFFF]/g, exports.toEntity);\n };\n SerializedMmlVisitor.variants = {\n '-tex-calligraphic': 'script',\n '-tex-bold-calligraphic': 'bold-script',\n '-tex-oldstyle': 'normal',\n '-tex-bold-oldstyle': 'bold',\n '-tex-mathit': 'italic'\n };\n SerializedMmlVisitor.defaultAttributes = {\n math: {\n xmlns: 'http://www.w3.org/1998/Math/MathML'\n }\n };\n return SerializedMmlVisitor;\n}(MmlVisitor_js_1.MmlVisitor));\nexports.SerializedMmlVisitor = SerializedMmlVisitor;\n//# sourceMappingURL=SerializedMmlVisitor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractOutputJax = void 0;\nvar Options_js_1 = require(\"../util/Options.js\");\nvar FunctionList_js_1 = require(\"../util/FunctionList.js\");\nvar AbstractOutputJax = (function () {\n function AbstractOutputJax(options) {\n if (options === void 0) { options = {}; }\n this.adaptor = null;\n var CLASS = this.constructor;\n this.options = (0, Options_js_1.userOptions)((0, Options_js_1.defaultOptions)({}, CLASS.OPTIONS), options);\n this.postFilters = new FunctionList_js_1.FunctionList();\n }\n Object.defineProperty(AbstractOutputJax.prototype, \"name\", {\n get: function () {\n return this.constructor.NAME;\n },\n enumerable: false,\n configurable: true\n });\n AbstractOutputJax.prototype.setAdaptor = function (adaptor) {\n this.adaptor = adaptor;\n };\n AbstractOutputJax.prototype.initialize = function () {\n };\n AbstractOutputJax.prototype.reset = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n AbstractOutputJax.prototype.getMetrics = function (_document) {\n };\n AbstractOutputJax.prototype.styleSheet = function (_document) {\n return null;\n };\n AbstractOutputJax.prototype.pageElements = function (_document) {\n return null;\n };\n AbstractOutputJax.prototype.executeFilters = function (filters, math, document, data) {\n var args = { math: math, document: document, data: data };\n filters.execute(args);\n return args.data;\n };\n AbstractOutputJax.NAME = 'generic';\n AbstractOutputJax.OPTIONS = {};\n return AbstractOutputJax;\n}());\nexports.AbstractOutputJax = AbstractOutputJax;\n//# sourceMappingURL=OutputJax.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractFactory = void 0;\nvar AbstractFactory = (function () {\n function AbstractFactory(nodes) {\n var e_1, _a;\n if (nodes === void 0) { nodes = null; }\n this.defaultKind = 'unknown';\n this.nodeMap = new Map();\n this.node = {};\n if (nodes === null) {\n nodes = this.constructor.defaultNodes;\n }\n try {\n for (var _b = __values(Object.keys(nodes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var kind = _c.value;\n this.setNodeClass(kind, nodes[kind]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n AbstractFactory.prototype.create = function (kind) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return (this.node[kind] || this.node[this.defaultKind]).apply(void 0, __spreadArray([], __read(args), false));\n };\n AbstractFactory.prototype.setNodeClass = function (kind, nodeClass) {\n this.nodeMap.set(kind, nodeClass);\n var THIS = this;\n var KIND = this.nodeMap.get(kind);\n this.node[kind] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (KIND.bind.apply(KIND, __spreadArray([void 0, THIS], __read(args), false)))();\n };\n };\n AbstractFactory.prototype.getNodeClass = function (kind) {\n return this.nodeMap.get(kind);\n };\n AbstractFactory.prototype.deleteNodeClass = function (kind) {\n this.nodeMap.delete(kind);\n delete this.node[kind];\n };\n AbstractFactory.prototype.nodeIsKind = function (node, kind) {\n return (node instanceof this.getNodeClass(kind));\n };\n AbstractFactory.prototype.getKinds = function () {\n return Array.from(this.nodeMap.keys());\n };\n AbstractFactory.defaultNodes = {};\n return AbstractFactory;\n}());\nexports.AbstractFactory = AbstractFactory;\n//# sourceMappingURL=Factory.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractEmptyNode = exports.AbstractNode = void 0;\nvar AbstractNode = (function () {\n function AbstractNode(factory, properties, children) {\n var e_1, _a;\n if (properties === void 0) { properties = {}; }\n if (children === void 0) { children = []; }\n this.factory = factory;\n this.parent = null;\n this.properties = {};\n this.childNodes = [];\n try {\n for (var _b = __values(Object.keys(properties)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_1 = _c.value;\n this.setProperty(name_1, properties[name_1]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (children.length) {\n this.setChildren(children);\n }\n }\n Object.defineProperty(AbstractNode.prototype, \"kind\", {\n get: function () {\n return 'unknown';\n },\n enumerable: false,\n configurable: true\n });\n AbstractNode.prototype.setProperty = function (name, value) {\n this.properties[name] = value;\n };\n AbstractNode.prototype.getProperty = function (name) {\n return this.properties[name];\n };\n AbstractNode.prototype.getPropertyNames = function () {\n return Object.keys(this.properties);\n };\n AbstractNode.prototype.getAllProperties = function () {\n return this.properties;\n };\n AbstractNode.prototype.removeProperty = function () {\n var e_2, _a;\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n try {\n for (var names_1 = __values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name_2 = names_1_1.value;\n delete this.properties[name_2];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n AbstractNode.prototype.isKind = function (kind) {\n return this.factory.nodeIsKind(this, kind);\n };\n AbstractNode.prototype.setChildren = function (children) {\n var e_3, _a;\n this.childNodes = [];\n try {\n for (var children_1 = __values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n this.appendChild(child);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n AbstractNode.prototype.appendChild = function (child) {\n this.childNodes.push(child);\n child.parent = this;\n return child;\n };\n AbstractNode.prototype.replaceChild = function (newChild, oldChild) {\n var i = this.childIndex(oldChild);\n if (i !== null) {\n this.childNodes[i] = newChild;\n newChild.parent = this;\n oldChild.parent = null;\n }\n return newChild;\n };\n AbstractNode.prototype.removeChild = function (child) {\n var i = this.childIndex(child);\n if (i !== null) {\n this.childNodes.splice(i, 1);\n child.parent = null;\n }\n return child;\n };\n AbstractNode.prototype.childIndex = function (node) {\n var i = this.childNodes.indexOf(node);\n return (i === -1 ? null : i);\n };\n AbstractNode.prototype.copy = function () {\n var e_4, _a;\n var node = this.factory.create(this.kind);\n node.properties = __assign({}, this.properties);\n try {\n for (var _b = __values(this.childNodes || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child) {\n node.appendChild(child.copy());\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return node;\n };\n AbstractNode.prototype.findNodes = function (kind) {\n var nodes = [];\n this.walkTree(function (node) {\n if (node.isKind(kind)) {\n nodes.push(node);\n }\n });\n return nodes;\n };\n AbstractNode.prototype.walkTree = function (func, data) {\n var e_5, _a;\n func(this, data);\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child) {\n child.walkTree(func, data);\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return data;\n };\n AbstractNode.prototype.toString = function () {\n return this.kind + '(' + this.childNodes.join(',') + ')';\n };\n return AbstractNode;\n}());\nexports.AbstractNode = AbstractNode;\nvar AbstractEmptyNode = (function (_super) {\n __extends(AbstractEmptyNode, _super);\n function AbstractEmptyNode() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AbstractEmptyNode.prototype.setChildren = function (_children) {\n };\n AbstractEmptyNode.prototype.appendChild = function (child) {\n return child;\n };\n AbstractEmptyNode.prototype.replaceChild = function (_newChild, oldChild) {\n return oldChild;\n };\n AbstractEmptyNode.prototype.childIndex = function (_node) {\n return null;\n };\n AbstractEmptyNode.prototype.walkTree = function (func, data) {\n func(this, data);\n return data;\n };\n AbstractEmptyNode.prototype.toString = function () {\n return this.kind;\n };\n return AbstractEmptyNode;\n}(AbstractNode));\nexports.AbstractEmptyNode = AbstractEmptyNode;\n//# sourceMappingURL=Node.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractNodeFactory = void 0;\nvar Factory_js_1 = require(\"./Factory.js\");\nvar AbstractNodeFactory = (function (_super) {\n __extends(AbstractNodeFactory, _super);\n function AbstractNodeFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AbstractNodeFactory.prototype.create = function (kind, properties, children) {\n if (properties === void 0) { properties = {}; }\n if (children === void 0) { children = []; }\n return this.node[kind](properties, children);\n };\n return AbstractNodeFactory;\n}(Factory_js_1.AbstractFactory));\nexports.AbstractNodeFactory = AbstractNodeFactory;\n//# sourceMappingURL=NodeFactory.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractVisitor = void 0;\nvar Node_js_1 = require(\"./Node.js\");\nvar AbstractVisitor = (function () {\n function AbstractVisitor(factory) {\n var e_1, _a;\n this.nodeHandlers = new Map();\n try {\n for (var _b = __values(factory.getKinds()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var kind = _c.value;\n var method = this[AbstractVisitor.methodName(kind)];\n if (method) {\n this.nodeHandlers.set(kind, method);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n AbstractVisitor.methodName = function (kind) {\n return 'visit' + (kind.charAt(0).toUpperCase() + kind.substr(1)).replace(/[^a-z0-9_]/ig, '_') + 'Node';\n };\n AbstractVisitor.prototype.visitTree = function (tree) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return this.visitNode.apply(this, __spreadArray([tree], __read(args), false));\n };\n AbstractVisitor.prototype.visitNode = function (node) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var handler = this.nodeHandlers.get(node.kind) || this.visitDefault;\n return handler.call.apply(handler, __spreadArray([this, node], __read(args), false));\n };\n AbstractVisitor.prototype.visitDefault = function (node) {\n var e_2, _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (node instanceof Node_js_1.AbstractNode) {\n try {\n for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n this.visitNode.apply(this, __spreadArray([child], __read(args), false));\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n };\n AbstractVisitor.prototype.setNodeHandler = function (kind, handler) {\n this.nodeHandlers.set(kind, handler);\n };\n AbstractVisitor.prototype.removeNodeHandler = function (kind) {\n this.nodeHandlers.delete(kind);\n };\n return AbstractVisitor;\n}());\nexports.AbstractVisitor = AbstractVisitor;\n//# sourceMappingURL=Visitor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractWrapper = void 0;\nvar AbstractWrapper = (function () {\n function AbstractWrapper(factory, node) {\n this.factory = factory;\n this.node = node;\n }\n Object.defineProperty(AbstractWrapper.prototype, \"kind\", {\n get: function () {\n return this.node.kind;\n },\n enumerable: false,\n configurable: true\n });\n AbstractWrapper.prototype.wrap = function (node) {\n return this.factory.wrap(node);\n };\n return AbstractWrapper;\n}());\nexports.AbstractWrapper = AbstractWrapper;\n//# sourceMappingURL=Wrapper.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractWrapperFactory = void 0;\nvar Factory_js_1 = require(\"./Factory.js\");\nvar AbstractWrapperFactory = (function (_super) {\n __extends(AbstractWrapperFactory, _super);\n function AbstractWrapperFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AbstractWrapperFactory.prototype.wrap = function (node) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return this.create.apply(this, __spreadArray([node.kind, node], __read(args), false));\n };\n return AbstractWrapperFactory;\n}(Factory_js_1.AbstractFactory));\nexports.AbstractWrapperFactory = AbstractWrapperFactory;\n//# sourceMappingURL=WrapperFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegisterHTMLHandler = void 0;\nvar mathjax_js_1 = require(\"../mathjax.js\");\nvar HTMLHandler_js_1 = require(\"./html/HTMLHandler.js\");\nfunction RegisterHTMLHandler(adaptor) {\n var handler = new HTMLHandler_js_1.HTMLHandler(adaptor);\n mathjax_js_1.mathjax.handlers.register(handler);\n return handler;\n}\nexports.RegisterHTMLHandler = RegisterHTMLHandler;\n//# sourceMappingURL=html.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTMLDocument = void 0;\nvar MathDocument_js_1 = require(\"../../core/MathDocument.js\");\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar HTMLMathItem_js_1 = require(\"./HTMLMathItem.js\");\nvar HTMLMathList_js_1 = require(\"./HTMLMathList.js\");\nvar HTMLDomStrings_js_1 = require(\"./HTMLDomStrings.js\");\nvar MathItem_js_1 = require(\"../../core/MathItem.js\");\nvar HTMLDocument = (function (_super) {\n __extends(HTMLDocument, _super);\n function HTMLDocument(document, adaptor, options) {\n var _this = this;\n var _a = __read((0, Options_js_1.separateOptions)(options, HTMLDomStrings_js_1.HTMLDomStrings.OPTIONS), 2), html = _a[0], dom = _a[1];\n _this = _super.call(this, document, adaptor, html) || this;\n _this.domStrings = _this.options['DomStrings'] || new HTMLDomStrings_js_1.HTMLDomStrings(dom);\n _this.domStrings.adaptor = adaptor;\n _this.styles = [];\n return _this;\n }\n HTMLDocument.prototype.findPosition = function (N, index, delim, nodes) {\n var e_1, _a;\n var adaptor = this.adaptor;\n try {\n for (var _b = __values(nodes[N]), _c = _b.next(); !_c.done; _c = _b.next()) {\n var list = _c.value;\n var _d = __read(list, 2), node = _d[0], n = _d[1];\n if (index <= n && adaptor.kind(node) === '#text') {\n return { node: node, n: Math.max(index, 0), delim: delim };\n }\n index -= n;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return { node: null, n: 0, delim: delim };\n };\n HTMLDocument.prototype.mathItem = function (item, jax, nodes) {\n var math = item.math;\n var start = this.findPosition(item.n, item.start.n, item.open, nodes);\n var end = this.findPosition(item.n, item.end.n, item.close, nodes);\n return new this.options.MathItem(math, jax, item.display, start, end);\n };\n HTMLDocument.prototype.findMath = function (options) {\n var e_2, _a, e_3, _b, _c, e_4, _d, e_5, _e;\n if (!this.processed.isSet('findMath')) {\n this.adaptor.document = this.document;\n options = (0, Options_js_1.userOptions)({ elements: this.options.elements || [this.adaptor.body(this.document)] }, options);\n try {\n for (var _f = __values(this.adaptor.getElements(options['elements'], this.document)), _g = _f.next(); !_g.done; _g = _f.next()) {\n var container = _g.value;\n var _h = __read([null, null], 2), strings = _h[0], nodes = _h[1];\n try {\n for (var _j = (e_3 = void 0, __values(this.inputJax)), _k = _j.next(); !_k.done; _k = _j.next()) {\n var jax = _k.value;\n var list = new (this.options['MathList'])();\n if (jax.processStrings) {\n if (strings === null) {\n _c = __read(this.domStrings.find(container), 2), strings = _c[0], nodes = _c[1];\n }\n try {\n for (var _l = (e_4 = void 0, __values(jax.findMath(strings))), _m = _l.next(); !_m.done; _m = _l.next()) {\n var math = _m.value;\n list.push(this.mathItem(math, jax, nodes));\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_m && !_m.done && (_d = _l.return)) _d.call(_l);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n else {\n try {\n for (var _o = (e_5 = void 0, __values(jax.findMath(container))), _p = _o.next(); !_p.done; _p = _o.next()) {\n var math = _p.value;\n var item = new this.options.MathItem(math.math, jax, math.display, math.start, math.end);\n list.push(item);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_p && !_p.done && (_e = _o.return)) _e.call(_o);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n this.math.merge(list);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_k && !_k.done && (_b = _j.return)) _b.call(_j);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n }\n finally { if (e_2) throw e_2.error; }\n }\n this.processed.set('findMath');\n }\n return this;\n };\n HTMLDocument.prototype.updateDocument = function () {\n if (!this.processed.isSet('updateDocument')) {\n this.addPageElements();\n this.addStyleSheet();\n _super.prototype.updateDocument.call(this);\n this.processed.set('updateDocument');\n }\n return this;\n };\n HTMLDocument.prototype.addPageElements = function () {\n var body = this.adaptor.body(this.document);\n var node = this.documentPageElements();\n if (node) {\n this.adaptor.append(body, node);\n }\n };\n HTMLDocument.prototype.addStyleSheet = function () {\n var sheet = this.documentStyleSheet();\n var adaptor = this.adaptor;\n if (sheet && !adaptor.parent(sheet)) {\n var head = adaptor.head(this.document);\n var styles = this.findSheet(head, adaptor.getAttribute(sheet, 'id'));\n if (styles) {\n adaptor.replace(sheet, styles);\n }\n else {\n adaptor.append(head, sheet);\n }\n }\n };\n HTMLDocument.prototype.findSheet = function (head, id) {\n var e_6, _a;\n if (id) {\n try {\n for (var _b = __values(this.adaptor.tags(head, 'style')), _c = _b.next(); !_c.done; _c = _b.next()) {\n var sheet = _c.value;\n if (this.adaptor.getAttribute(sheet, 'id') === id) {\n return sheet;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n return null;\n };\n HTMLDocument.prototype.removeFromDocument = function (restore) {\n var e_7, _a;\n if (restore === void 0) { restore = false; }\n if (this.processed.isSet('updateDocument')) {\n try {\n for (var _b = __values(this.math), _c = _b.next(); !_c.done; _c = _b.next()) {\n var math = _c.value;\n if (math.state() >= MathItem_js_1.STATE.INSERTED) {\n math.state(MathItem_js_1.STATE.TYPESET, restore);\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n }\n this.processed.clear('updateDocument');\n return this;\n };\n HTMLDocument.prototype.documentStyleSheet = function () {\n return this.outputJax.styleSheet(this);\n };\n HTMLDocument.prototype.documentPageElements = function () {\n return this.outputJax.pageElements(this);\n };\n HTMLDocument.prototype.addStyles = function (styles) {\n this.styles.push(styles);\n };\n HTMLDocument.prototype.getStyles = function () {\n return this.styles;\n };\n HTMLDocument.KIND = 'HTML';\n HTMLDocument.OPTIONS = __assign(__assign({}, MathDocument_js_1.AbstractMathDocument.OPTIONS), { renderActions: (0, Options_js_1.expandable)(__assign(__assign({}, MathDocument_js_1.AbstractMathDocument.OPTIONS.renderActions), { styles: [MathItem_js_1.STATE.INSERTED + 1, '', 'updateStyleSheet', false] })), MathList: HTMLMathList_js_1.HTMLMathList, MathItem: HTMLMathItem_js_1.HTMLMathItem, DomStrings: null });\n return HTMLDocument;\n}(MathDocument_js_1.AbstractMathDocument));\nexports.HTMLDocument = HTMLDocument;\n//# sourceMappingURL=HTMLDocument.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTMLDomStrings = void 0;\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar HTMLDomStrings = (function () {\n function HTMLDomStrings(options) {\n if (options === void 0) { options = null; }\n var CLASS = this.constructor;\n this.options = (0, Options_js_1.userOptions)((0, Options_js_1.defaultOptions)({}, CLASS.OPTIONS), options);\n this.init();\n this.getPatterns();\n }\n HTMLDomStrings.prototype.init = function () {\n this.strings = [];\n this.string = '';\n this.snodes = [];\n this.nodes = [];\n this.stack = [];\n };\n HTMLDomStrings.prototype.getPatterns = function () {\n var skip = (0, Options_js_1.makeArray)(this.options['skipHtmlTags']);\n var ignore = (0, Options_js_1.makeArray)(this.options['ignoreHtmlClass']);\n var process = (0, Options_js_1.makeArray)(this.options['processHtmlClass']);\n this.skipHtmlTags = new RegExp('^(?:' + skip.join('|') + ')$', 'i');\n this.ignoreHtmlClass = new RegExp('(?:^| )(?:' + ignore.join('|') + ')(?: |$)');\n this.processHtmlClass = new RegExp('(?:^| )(?:' + process + ')(?: |$)');\n };\n HTMLDomStrings.prototype.pushString = function () {\n if (this.string.match(/\\S/)) {\n this.strings.push(this.string);\n this.nodes.push(this.snodes);\n }\n this.string = '';\n this.snodes = [];\n };\n HTMLDomStrings.prototype.extendString = function (node, text) {\n this.snodes.push([node, text.length]);\n this.string += text;\n };\n HTMLDomStrings.prototype.handleText = function (node, ignore) {\n if (!ignore) {\n this.extendString(node, this.adaptor.value(node));\n }\n return this.adaptor.next(node);\n };\n HTMLDomStrings.prototype.handleTag = function (node, ignore) {\n if (!ignore) {\n var text = this.options['includeHtmlTags'][this.adaptor.kind(node)];\n this.extendString(node, text);\n }\n return this.adaptor.next(node);\n };\n HTMLDomStrings.prototype.handleContainer = function (node, ignore) {\n this.pushString();\n var cname = this.adaptor.getAttribute(node, 'class') || '';\n var tname = this.adaptor.kind(node) || '';\n var process = this.processHtmlClass.exec(cname);\n var next = node;\n if (this.adaptor.firstChild(node) && !this.adaptor.getAttribute(node, 'data-MJX') &&\n (process || !this.skipHtmlTags.exec(tname))) {\n if (this.adaptor.next(node)) {\n this.stack.push([this.adaptor.next(node), ignore]);\n }\n next = this.adaptor.firstChild(node);\n ignore = (ignore || this.ignoreHtmlClass.exec(cname)) && !process;\n }\n else {\n next = this.adaptor.next(node);\n }\n return [next, ignore];\n };\n HTMLDomStrings.prototype.handleOther = function (node, _ignore) {\n this.pushString();\n return this.adaptor.next(node);\n };\n HTMLDomStrings.prototype.find = function (node) {\n var _a, _b;\n this.init();\n var stop = this.adaptor.next(node);\n var ignore = false;\n var include = this.options['includeHtmlTags'];\n while (node && node !== stop) {\n var kind = this.adaptor.kind(node);\n if (kind === '#text') {\n node = this.handleText(node, ignore);\n }\n else if (include.hasOwnProperty(kind)) {\n node = this.handleTag(node, ignore);\n }\n else if (kind) {\n _a = __read(this.handleContainer(node, ignore), 2), node = _a[0], ignore = _a[1];\n }\n else {\n node = this.handleOther(node, ignore);\n }\n if (!node && this.stack.length) {\n this.pushString();\n _b = __read(this.stack.pop(), 2), node = _b[0], ignore = _b[1];\n }\n }\n this.pushString();\n var result = [this.strings, this.nodes];\n this.init();\n return result;\n };\n HTMLDomStrings.OPTIONS = {\n skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code', 'annotation', 'annotation-xml'],\n includeHtmlTags: { br: '\\n', wbr: '', '#comment': '' },\n ignoreHtmlClass: 'mathjax_ignore',\n processHtmlClass: 'mathjax_process'\n };\n return HTMLDomStrings;\n}());\nexports.HTMLDomStrings = HTMLDomStrings;\n//# sourceMappingURL=HTMLDomStrings.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTMLHandler = void 0;\nvar Handler_js_1 = require(\"../../core/Handler.js\");\nvar HTMLDocument_js_1 = require(\"./HTMLDocument.js\");\nvar HTMLHandler = (function (_super) {\n __extends(HTMLHandler, _super);\n function HTMLHandler() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.documentClass = HTMLDocument_js_1.HTMLDocument;\n return _this;\n }\n HTMLHandler.prototype.handlesDocument = function (document) {\n var adaptor = this.adaptor;\n if (typeof (document) === 'string') {\n try {\n document = adaptor.parse(document, 'text/html');\n }\n catch (err) { }\n }\n if (document instanceof adaptor.window.Document ||\n document instanceof adaptor.window.HTMLElement ||\n document instanceof adaptor.window.DocumentFragment) {\n return true;\n }\n return false;\n };\n HTMLHandler.prototype.create = function (document, options) {\n var adaptor = this.adaptor;\n if (typeof (document) === 'string') {\n document = adaptor.parse(document, 'text/html');\n }\n else if (document instanceof adaptor.window.HTMLElement ||\n document instanceof adaptor.window.DocumentFragment) {\n var child = document;\n document = adaptor.parse('', 'text/html');\n adaptor.append(adaptor.body(document), child);\n }\n return _super.prototype.create.call(this, document, options);\n };\n return HTMLHandler;\n}(Handler_js_1.AbstractHandler));\nexports.HTMLHandler = HTMLHandler;\n//# sourceMappingURL=HTMLHandler.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTMLMathItem = void 0;\nvar MathItem_js_1 = require(\"../../core/MathItem.js\");\nvar HTMLMathItem = (function (_super) {\n __extends(HTMLMathItem, _super);\n function HTMLMathItem(math, jax, display, start, end) {\n if (display === void 0) { display = true; }\n if (start === void 0) { start = { node: null, n: 0, delim: '' }; }\n if (end === void 0) { end = { node: null, n: 0, delim: '' }; }\n return _super.call(this, math, jax, display, start, end) || this;\n }\n Object.defineProperty(HTMLMathItem.prototype, \"adaptor\", {\n get: function () {\n return this.inputJax.adaptor;\n },\n enumerable: false,\n configurable: true\n });\n HTMLMathItem.prototype.updateDocument = function (_html) {\n if (this.state() < MathItem_js_1.STATE.INSERTED) {\n if (this.inputJax.processStrings) {\n var node = this.start.node;\n if (node === this.end.node) {\n if (this.end.n && this.end.n < this.adaptor.value(this.end.node).length) {\n this.adaptor.split(this.end.node, this.end.n);\n }\n if (this.start.n) {\n node = this.adaptor.split(this.start.node, this.start.n);\n }\n this.adaptor.replace(this.typesetRoot, node);\n }\n else {\n if (this.start.n) {\n node = this.adaptor.split(node, this.start.n);\n }\n while (node !== this.end.node) {\n var next = this.adaptor.next(node);\n this.adaptor.remove(node);\n node = next;\n }\n this.adaptor.insert(this.typesetRoot, node);\n if (this.end.n < this.adaptor.value(node).length) {\n this.adaptor.split(node, this.end.n);\n }\n this.adaptor.remove(node);\n }\n }\n else {\n this.adaptor.replace(this.typesetRoot, this.start.node);\n }\n this.start.node = this.end.node = this.typesetRoot;\n this.start.n = this.end.n = 0;\n this.state(MathItem_js_1.STATE.INSERTED);\n }\n };\n HTMLMathItem.prototype.updateStyleSheet = function (document) {\n document.addStyleSheet();\n };\n HTMLMathItem.prototype.removeFromDocument = function (restore) {\n if (restore === void 0) { restore = false; }\n if (this.state() >= MathItem_js_1.STATE.TYPESET) {\n var adaptor = this.adaptor;\n var node = this.start.node;\n var math = adaptor.text('');\n if (restore) {\n var text = this.start.delim + this.math + this.end.delim;\n if (this.inputJax.processStrings) {\n math = adaptor.text(text);\n }\n else {\n var doc = adaptor.parse(text, 'text/html');\n math = adaptor.firstChild(adaptor.body(doc));\n }\n }\n if (adaptor.parent(node)) {\n adaptor.replace(math, node);\n }\n this.start.node = this.end.node = math;\n this.start.n = this.end.n = 0;\n }\n };\n return HTMLMathItem;\n}(MathItem_js_1.AbstractMathItem));\nexports.HTMLMathItem = HTMLMathItem;\n//# sourceMappingURL=HTMLMathItem.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTMLMathList = void 0;\nvar MathList_js_1 = require(\"../../core/MathList.js\");\nvar HTMLMathList = (function (_super) {\n __extends(HTMLMathList, _super);\n function HTMLMathList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return HTMLMathList;\n}(MathList_js_1.AbstractMathList));\nexports.HTMLMathList = HTMLMathList;\n//# sourceMappingURL=HTMLMathList.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TeX = void 0;\nvar InputJax_js_1 = require(\"../core/InputJax.js\");\nvar Options_js_1 = require(\"../util/Options.js\");\nvar FindTeX_js_1 = require(\"./tex/FindTeX.js\");\nvar FilterUtil_js_1 = __importDefault(require(\"./tex/FilterUtil.js\"));\nvar NodeUtil_js_1 = __importDefault(require(\"./tex/NodeUtil.js\"));\nvar TexParser_js_1 = __importDefault(require(\"./tex/TexParser.js\"));\nvar TexError_js_1 = __importDefault(require(\"./tex/TexError.js\"));\nvar ParseOptions_js_1 = __importDefault(require(\"./tex/ParseOptions.js\"));\nvar Tags_js_1 = require(\"./tex/Tags.js\");\nvar Configuration_js_1 = require(\"./tex/Configuration.js\");\nrequire(\"./tex/base/BaseConfiguration.js\");\nvar TeX = (function (_super) {\n __extends(TeX, _super);\n function TeX(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n var _a = __read((0, Options_js_1.separateOptions)(options, TeX.OPTIONS, FindTeX_js_1.FindTeX.OPTIONS), 3), rest = _a[0], tex = _a[1], find = _a[2];\n _this = _super.call(this, tex) || this;\n _this.findTeX = _this.options['FindTeX'] || new FindTeX_js_1.FindTeX(find);\n var packages = _this.options.packages;\n var configuration = _this.configuration = TeX.configure(packages);\n var parseOptions = _this._parseOptions =\n new ParseOptions_js_1.default(configuration, [_this.options, Tags_js_1.TagsFactory.OPTIONS]);\n (0, Options_js_1.userOptions)(parseOptions.options, rest);\n configuration.config(_this);\n TeX.tags(parseOptions, configuration);\n _this.postFilters.add(FilterUtil_js_1.default.cleanSubSup, -6);\n _this.postFilters.add(FilterUtil_js_1.default.setInherited, -5);\n _this.postFilters.add(FilterUtil_js_1.default.moveLimits, -4);\n _this.postFilters.add(FilterUtil_js_1.default.cleanStretchy, -3);\n _this.postFilters.add(FilterUtil_js_1.default.cleanAttributes, -2);\n _this.postFilters.add(FilterUtil_js_1.default.combineRelations, -1);\n return _this;\n }\n TeX.configure = function (packages) {\n var configuration = new Configuration_js_1.ParserConfiguration(packages, ['tex']);\n configuration.init();\n return configuration;\n };\n TeX.tags = function (options, configuration) {\n Tags_js_1.TagsFactory.addTags(configuration.tags);\n Tags_js_1.TagsFactory.setDefault(options.options.tags);\n options.tags = Tags_js_1.TagsFactory.getDefault();\n options.tags.configuration = options;\n };\n TeX.prototype.setMmlFactory = function (mmlFactory) {\n _super.prototype.setMmlFactory.call(this, mmlFactory);\n this._parseOptions.nodeFactory.setMmlFactory(mmlFactory);\n };\n Object.defineProperty(TeX.prototype, \"parseOptions\", {\n get: function () {\n return this._parseOptions;\n },\n enumerable: false,\n configurable: true\n });\n TeX.prototype.reset = function (tag) {\n if (tag === void 0) { tag = 0; }\n this.parseOptions.tags.reset(tag);\n };\n TeX.prototype.compile = function (math, document) {\n this.parseOptions.clear();\n this.executeFilters(this.preFilters, math, document, this.parseOptions);\n var display = math.display;\n this.latex = math.math;\n var node;\n this.parseOptions.tags.startEquation(math);\n var globalEnv;\n try {\n var parser = new TexParser_js_1.default(this.latex, { display: display, isInner: false }, this.parseOptions);\n node = parser.mml();\n globalEnv = parser.stack.global;\n }\n catch (err) {\n if (!(err instanceof TexError_js_1.default)) {\n throw err;\n }\n this.parseOptions.error = true;\n node = this.options.formatError(this, err);\n }\n node = this.parseOptions.nodeFactory.create('node', 'math', [node]);\n if (globalEnv === null || globalEnv === void 0 ? void 0 : globalEnv.indentalign) {\n NodeUtil_js_1.default.setAttribute(node, 'indentalign', globalEnv.indentalign);\n }\n if (display) {\n NodeUtil_js_1.default.setAttribute(node, 'display', 'block');\n }\n this.parseOptions.tags.finishEquation(math);\n this.parseOptions.root = node;\n this.executeFilters(this.postFilters, math, document, this.parseOptions);\n this.mathNode = this.parseOptions.root;\n return this.mathNode;\n };\n TeX.prototype.findMath = function (strings) {\n return this.findTeX.findMath(strings);\n };\n TeX.prototype.formatError = function (err) {\n var message = err.message.replace(/\\n.*/, '');\n return this.parseOptions.nodeFactory.create('error', message, err.id, this.latex);\n };\n TeX.NAME = 'TeX';\n TeX.OPTIONS = __assign(__assign({}, InputJax_js_1.AbstractInputJax.OPTIONS), { FindTeX: null, packages: ['base'], digits: /^(?:[0-9]+(?:\\{,\\}[0-9]{3})*(?:\\.[0-9]*)?|\\.[0-9]+)/, maxBuffer: 5 * 1024, formatError: function (jax, err) { return jax.formatError(err); } });\n return TeX;\n}(InputJax_js_1.AbstractInputJax));\nexports.TeX = TeX;\n//# sourceMappingURL=tex.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParserConfiguration = exports.ConfigurationHandler = exports.Configuration = void 0;\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar MapHandler_js_1 = require(\"./MapHandler.js\");\nvar FunctionList_js_1 = require(\"../../util/FunctionList.js\");\nvar PrioritizedList_js_1 = require(\"../../util/PrioritizedList.js\");\nvar Tags_js_1 = require(\"./Tags.js\");\nvar Configuration = (function () {\n function Configuration(name, handler, fallback, items, tags, options, nodes, preprocessors, postprocessors, initMethod, configMethod, priority, parser) {\n if (handler === void 0) { handler = {}; }\n if (fallback === void 0) { fallback = {}; }\n if (items === void 0) { items = {}; }\n if (tags === void 0) { tags = {}; }\n if (options === void 0) { options = {}; }\n if (nodes === void 0) { nodes = {}; }\n if (preprocessors === void 0) { preprocessors = []; }\n if (postprocessors === void 0) { postprocessors = []; }\n if (initMethod === void 0) { initMethod = null; }\n if (configMethod === void 0) { configMethod = null; }\n this.name = name;\n this.handler = handler;\n this.fallback = fallback;\n this.items = items;\n this.tags = tags;\n this.options = options;\n this.nodes = nodes;\n this.preprocessors = preprocessors;\n this.postprocessors = postprocessors;\n this.initMethod = initMethod;\n this.configMethod = configMethod;\n this.priority = priority;\n this.parser = parser;\n this.handler = Object.assign({ character: [], delimiter: [], macro: [], environment: [] }, handler);\n }\n Configuration.makeProcessor = function (func, priority) {\n return Array.isArray(func) ? func : [func, priority];\n };\n Configuration._create = function (name, config) {\n var _this = this;\n if (config === void 0) { config = {}; }\n var priority = config.priority || PrioritizedList_js_1.PrioritizedList.DEFAULTPRIORITY;\n var init = config.init ? this.makeProcessor(config.init, priority) : null;\n var conf = config.config ? this.makeProcessor(config.config, priority) : null;\n var preprocessors = (config.preprocessors || []).map(function (pre) { return _this.makeProcessor(pre, priority); });\n var postprocessors = (config.postprocessors || []).map(function (post) { return _this.makeProcessor(post, priority); });\n var parser = config.parser || 'tex';\n return new Configuration(name, config.handler || {}, config.fallback || {}, config.items || {}, config.tags || {}, config.options || {}, config.nodes || {}, preprocessors, postprocessors, init, conf, priority, parser);\n };\n Configuration.create = function (name, config) {\n if (config === void 0) { config = {}; }\n var configuration = Configuration._create(name, config);\n ConfigurationHandler.set(name, configuration);\n return configuration;\n };\n Configuration.local = function (config) {\n if (config === void 0) { config = {}; }\n return Configuration._create('', config);\n };\n Object.defineProperty(Configuration.prototype, \"init\", {\n get: function () {\n return this.initMethod ? this.initMethod[0] : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"config\", {\n get: function () {\n return this.configMethod ? this.configMethod[0] : null;\n },\n enumerable: false,\n configurable: true\n });\n return Configuration;\n}());\nexports.Configuration = Configuration;\nvar ConfigurationHandler;\n(function (ConfigurationHandler) {\n var maps = new Map();\n ConfigurationHandler.set = function (name, map) {\n maps.set(name, map);\n };\n ConfigurationHandler.get = function (name) {\n return maps.get(name);\n };\n ConfigurationHandler.keys = function () {\n return maps.keys();\n };\n})(ConfigurationHandler = exports.ConfigurationHandler || (exports.ConfigurationHandler = {}));\nvar ParserConfiguration = (function () {\n function ParserConfiguration(packages, parsers) {\n var e_1, _a, e_2, _b;\n if (parsers === void 0) { parsers = ['tex']; }\n this.initMethod = new FunctionList_js_1.FunctionList();\n this.configMethod = new FunctionList_js_1.FunctionList();\n this.configurations = new PrioritizedList_js_1.PrioritizedList();\n this.parsers = [];\n this.handlers = new MapHandler_js_1.SubHandlers();\n this.items = {};\n this.tags = {};\n this.options = {};\n this.nodes = {};\n this.parsers = parsers;\n try {\n for (var _c = __values(packages.slice().reverse()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var pkg = _d.value;\n this.addPackage(pkg);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _e = __values(this.configurations), _f = _e.next(); !_f.done; _f = _e.next()) {\n var _g = _f.value, config = _g.item, priority = _g.priority;\n this.append(config, priority);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n ParserConfiguration.prototype.init = function () {\n this.initMethod.execute(this);\n };\n ParserConfiguration.prototype.config = function (jax) {\n var e_3, _a;\n this.configMethod.execute(this, jax);\n try {\n for (var _b = __values(this.configurations), _c = _b.next(); !_c.done; _c = _b.next()) {\n var config = _c.value;\n this.addFilters(jax, config.item);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n ParserConfiguration.prototype.addPackage = function (pkg) {\n var name = typeof pkg === 'string' ? pkg : pkg[0];\n var conf = this.getPackage(name);\n conf && this.configurations.add(conf, typeof pkg === 'string' ? conf.priority : pkg[1]);\n };\n ParserConfiguration.prototype.add = function (name, jax, options) {\n var e_4, _a;\n if (options === void 0) { options = {}; }\n var config = this.getPackage(name);\n this.append(config);\n this.configurations.add(config, config.priority);\n this.init();\n var parser = jax.parseOptions;\n parser.nodeFactory.setCreators(config.nodes);\n try {\n for (var _b = __values(Object.keys(config.items)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var kind = _c.value;\n parser.itemFactory.setNodeClass(kind, config.items[kind]);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n Tags_js_1.TagsFactory.addTags(config.tags);\n (0, Options_js_1.defaultOptions)(parser.options, config.options);\n (0, Options_js_1.userOptions)(parser.options, options);\n this.addFilters(jax, config);\n if (config.config) {\n config.config(this, jax);\n }\n };\n ParserConfiguration.prototype.getPackage = function (name) {\n var config = ConfigurationHandler.get(name);\n if (config && this.parsers.indexOf(config.parser) < 0) {\n throw Error(\"Package \".concat(name, \" doesn't target the proper parser\"));\n }\n return config;\n };\n ParserConfiguration.prototype.append = function (config, priority) {\n priority = priority || config.priority;\n if (config.initMethod) {\n this.initMethod.add(config.initMethod[0], config.initMethod[1]);\n }\n if (config.configMethod) {\n this.configMethod.add(config.configMethod[0], config.configMethod[1]);\n }\n this.handlers.add(config.handler, config.fallback, priority);\n Object.assign(this.items, config.items);\n Object.assign(this.tags, config.tags);\n (0, Options_js_1.defaultOptions)(this.options, config.options);\n Object.assign(this.nodes, config.nodes);\n };\n ParserConfiguration.prototype.addFilters = function (jax, config) {\n var e_5, _a, e_6, _b;\n try {\n for (var _c = __values(config.preprocessors), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = __read(_d.value, 2), pre = _e[0], priority = _e[1];\n jax.preFilters.add(pre, priority);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n try {\n for (var _f = __values(config.postprocessors), _g = _f.next(); !_g.done; _g = _f.next()) {\n var _h = __read(_g.value, 2), post = _h[0], priority = _h[1];\n jax.postFilters.add(post, priority);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_6) throw e_6.error; }\n }\n };\n return ParserConfiguration;\n}());\nexports.ParserConfiguration = ParserConfiguration;\n//# sourceMappingURL=Configuration.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MmlNode_js_1 = require(\"../../core/MmlTree/MmlNode.js\");\nvar NodeUtil_js_1 = __importDefault(require(\"./NodeUtil.js\"));\nvar FilterUtil;\n(function (FilterUtil) {\n FilterUtil.cleanStretchy = function (arg) {\n var e_1, _a;\n var options = arg.data;\n try {\n for (var _b = __values(options.getList('fixStretchy')), _c = _b.next(); !_c.done; _c = _b.next()) {\n var mo = _c.value;\n if (NodeUtil_js_1.default.getProperty(mo, 'fixStretchy')) {\n var symbol = NodeUtil_js_1.default.getForm(mo);\n if (symbol && symbol[3] && symbol[3]['stretchy']) {\n NodeUtil_js_1.default.setAttribute(mo, 'stretchy', false);\n }\n var parent_1 = mo.parent;\n if (!NodeUtil_js_1.default.getTexClass(mo) && (!symbol || !symbol[2])) {\n var texAtom = options.nodeFactory.create('node', 'TeXAtom', [mo]);\n parent_1.replaceChild(texAtom, mo);\n texAtom.inheritAttributesFrom(mo);\n }\n NodeUtil_js_1.default.removeProperties(mo, 'fixStretchy');\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n FilterUtil.cleanAttributes = function (arg) {\n var node = arg.data.root;\n node.walkTree(function (mml, _d) {\n var e_2, _a;\n var attribs = mml.attributes;\n if (!attribs) {\n return;\n }\n var keep = new Set((attribs.get('mjx-keep-attrs') || '').split(/ /));\n delete (attribs.getAllAttributes())['mjx-keep-attrs'];\n try {\n for (var _b = __values(attribs.getExplicitNames()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (!keep.has(key) && attribs.attributes[key] === mml.attributes.getInherited(key)) {\n delete attribs.attributes[key];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }, {});\n };\n FilterUtil.combineRelations = function (arg) {\n var e_3, _a, e_4, _b;\n var remove = [];\n try {\n for (var _c = __values(arg.data.getList('mo')), _e = _c.next(); !_e.done; _e = _c.next()) {\n var mo = _e.value;\n if (mo.getProperty('relationsCombined') || !mo.parent ||\n (mo.parent && !NodeUtil_js_1.default.isType(mo.parent, 'mrow')) ||\n NodeUtil_js_1.default.getTexClass(mo) !== MmlNode_js_1.TEXCLASS.REL) {\n continue;\n }\n var mml = mo.parent;\n var m2 = void 0;\n var children = mml.childNodes;\n var next = children.indexOf(mo) + 1;\n var variantForm = NodeUtil_js_1.default.getProperty(mo, 'variantForm');\n while (next < children.length && (m2 = children[next]) &&\n NodeUtil_js_1.default.isType(m2, 'mo') &&\n NodeUtil_js_1.default.getTexClass(m2) === MmlNode_js_1.TEXCLASS.REL) {\n if (variantForm === NodeUtil_js_1.default.getProperty(m2, 'variantForm') &&\n _compareExplicit(mo, m2)) {\n NodeUtil_js_1.default.appendChildren(mo, NodeUtil_js_1.default.getChildren(m2));\n _copyExplicit(['stretchy', 'rspace'], mo, m2);\n try {\n for (var _f = (e_4 = void 0, __values(m2.getPropertyNames())), _g = _f.next(); !_g.done; _g = _f.next()) {\n var name_1 = _g.value;\n mo.setProperty(name_1, m2.getProperty(name_1));\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_4) throw e_4.error; }\n }\n children.splice(next, 1);\n remove.push(m2);\n m2.parent = null;\n m2.setProperty('relationsCombined', true);\n }\n else {\n if (mo.attributes.getExplicit('rspace') == null) {\n NodeUtil_js_1.default.setAttribute(mo, 'rspace', '0pt');\n }\n if (m2.attributes.getExplicit('lspace') == null) {\n NodeUtil_js_1.default.setAttribute(m2, 'lspace', '0pt');\n }\n break;\n }\n }\n mo.attributes.setInherited('form', mo.getForms()[0]);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n arg.data.removeFromList('mo', remove);\n };\n var _copyExplicit = function (attrs, node1, node2) {\n var attr1 = node1.attributes;\n var attr2 = node2.attributes;\n attrs.forEach(function (x) {\n var attr = attr2.getExplicit(x);\n if (attr != null) {\n attr1.set(x, attr);\n }\n });\n };\n var _compareExplicit = function (node1, node2) {\n var e_5, _a;\n var filter = function (attr, space) {\n var exp = attr.getExplicitNames();\n return exp.filter(function (x) {\n return x !== space &&\n (x !== 'stretchy' ||\n attr.getExplicit('stretchy'));\n });\n };\n var attr1 = node1.attributes;\n var attr2 = node2.attributes;\n var exp1 = filter(attr1, 'lspace');\n var exp2 = filter(attr2, 'rspace');\n if (exp1.length !== exp2.length) {\n return false;\n }\n try {\n for (var exp1_1 = __values(exp1), exp1_1_1 = exp1_1.next(); !exp1_1_1.done; exp1_1_1 = exp1_1.next()) {\n var name_2 = exp1_1_1.value;\n if (attr1.getExplicit(name_2) !== attr2.getExplicit(name_2)) {\n return false;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (exp1_1_1 && !exp1_1_1.done && (_a = exp1_1.return)) _a.call(exp1_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return true;\n };\n var _cleanSubSup = function (options, low, up) {\n var e_6, _a;\n var remove = [];\n try {\n for (var _b = __values(options.getList('m' + low + up)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var mml = _c.value;\n var children = mml.childNodes;\n if (children[mml[low]] && children[mml[up]]) {\n continue;\n }\n var parent_2 = mml.parent;\n var newNode = (children[mml[low]] ?\n options.nodeFactory.create('node', 'm' + low, [children[mml.base], children[mml[low]]]) :\n options.nodeFactory.create('node', 'm' + up, [children[mml.base], children[mml[up]]]));\n NodeUtil_js_1.default.copyAttributes(mml, newNode);\n if (parent_2) {\n parent_2.replaceChild(newNode, mml);\n }\n else {\n options.root = newNode;\n }\n remove.push(mml);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n options.removeFromList('m' + low + up, remove);\n };\n FilterUtil.cleanSubSup = function (arg) {\n var options = arg.data;\n if (options.error) {\n return;\n }\n _cleanSubSup(options, 'sub', 'sup');\n _cleanSubSup(options, 'under', 'over');\n };\n var _moveLimits = function (options, underover, subsup) {\n var e_7, _a;\n var remove = [];\n try {\n for (var _b = __values(options.getList(underover)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var mml = _c.value;\n if (mml.attributes.get('displaystyle')) {\n continue;\n }\n var base = mml.childNodes[mml.base];\n var mo = base.coreMO();\n if (base.getProperty('movablelimits') && !mo.attributes.getExplicit('movablelimits')) {\n var node = options.nodeFactory.create('node', subsup, mml.childNodes);\n NodeUtil_js_1.default.copyAttributes(mml, node);\n if (mml.parent) {\n mml.parent.replaceChild(node, mml);\n }\n else {\n options.root = node;\n }\n remove.push(mml);\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n options.removeFromList(underover, remove);\n };\n FilterUtil.moveLimits = function (arg) {\n var options = arg.data;\n _moveLimits(options, 'munderover', 'msubsup');\n _moveLimits(options, 'munder', 'msub');\n _moveLimits(options, 'mover', 'msup');\n };\n FilterUtil.setInherited = function (arg) {\n arg.data.root.setInheritedAttributes({}, arg.math['display'], 0, false);\n };\n})(FilterUtil || (FilterUtil = {}));\nexports.default = FilterUtil;\n//# sourceMappingURL=FilterUtil.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FindTeX = void 0;\nvar FindMath_js_1 = require(\"../../core/FindMath.js\");\nvar string_js_1 = require(\"../../util/string.js\");\nvar MathItem_js_1 = require(\"../../core/MathItem.js\");\nvar FindTeX = (function (_super) {\n __extends(FindTeX, _super);\n function FindTeX(options) {\n var _this = _super.call(this, options) || this;\n _this.getPatterns();\n return _this;\n }\n FindTeX.prototype.getPatterns = function () {\n var _this = this;\n var options = this.options;\n var starts = [], parts = [], subparts = [];\n this.end = {};\n this.env = this.sub = 0;\n var i = 1;\n options['inlineMath'].forEach(function (delims) { return _this.addPattern(starts, delims, false); });\n options['displayMath'].forEach(function (delims) { return _this.addPattern(starts, delims, true); });\n if (starts.length) {\n parts.push(starts.sort(string_js_1.sortLength).join('|'));\n }\n if (options['processEnvironments']) {\n parts.push('\\\\\\\\begin\\\\s*\\\\{([^}]*)\\\\}');\n this.env = i;\n i++;\n }\n if (options['processEscapes']) {\n subparts.push('\\\\\\\\([\\\\\\\\$])');\n }\n if (options['processRefs']) {\n subparts.push('(\\\\\\\\(?:eq)?ref\\\\s*\\\\{[^}]*\\\\})');\n }\n if (subparts.length) {\n parts.push('(' + subparts.join('|') + ')');\n this.sub = i;\n }\n this.start = new RegExp(parts.join('|'), 'g');\n this.hasPatterns = (parts.length > 0);\n };\n FindTeX.prototype.addPattern = function (starts, delims, display) {\n var _a = __read(delims, 2), open = _a[0], close = _a[1];\n starts.push((0, string_js_1.quotePattern)(open));\n this.end[open] = [close, display, this.endPattern(close)];\n };\n FindTeX.prototype.endPattern = function (end, endp) {\n return new RegExp((endp || (0, string_js_1.quotePattern)(end)) + '|\\\\\\\\(?:[a-zA-Z]|.)|[{}]', 'g');\n };\n FindTeX.prototype.findEnd = function (text, n, start, end) {\n var _a = __read(end, 3), close = _a[0], display = _a[1], pattern = _a[2];\n var i = pattern.lastIndex = start.index + start[0].length;\n var match, braces = 0;\n while ((match = pattern.exec(text))) {\n if ((match[1] || match[0]) === close && braces === 0) {\n return (0, MathItem_js_1.protoItem)(start[0], text.substr(i, match.index - i), match[0], n, start.index, match.index + match[0].length, display);\n }\n else if (match[0] === '{') {\n braces++;\n }\n else if (match[0] === '}' && braces) {\n braces--;\n }\n }\n return null;\n };\n FindTeX.prototype.findMathInString = function (math, n, text) {\n var start, match;\n this.start.lastIndex = 0;\n while ((start = this.start.exec(text))) {\n if (start[this.env] !== undefined && this.env) {\n var end = '\\\\\\\\end\\\\s*(\\\\{' + (0, string_js_1.quotePattern)(start[this.env]) + '\\\\})';\n match = this.findEnd(text, n, start, ['{' + start[this.env] + '}', true, this.endPattern(null, end)]);\n if (match) {\n match.math = match.open + match.math + match.close;\n match.open = match.close = '';\n }\n }\n else if (start[this.sub] !== undefined && this.sub) {\n var math_1 = start[this.sub];\n var end = start.index + start[this.sub].length;\n if (math_1.length === 2) {\n match = (0, MathItem_js_1.protoItem)('', math_1.substr(1), '', n, start.index, end);\n }\n else {\n match = (0, MathItem_js_1.protoItem)('', math_1, '', n, start.index, end, false);\n }\n }\n else {\n match = this.findEnd(text, n, start, this.end[start[0]]);\n }\n if (match) {\n math.push(match);\n this.start.lastIndex = match.end.n;\n }\n }\n };\n FindTeX.prototype.findMath = function (strings) {\n var math = [];\n if (this.hasPatterns) {\n for (var i = 0, m = strings.length; i < m; i++) {\n this.findMathInString(math, i, strings[i]);\n }\n }\n return math;\n };\n FindTeX.OPTIONS = {\n inlineMath: [\n ['\\\\(', '\\\\)']\n ],\n displayMath: [\n ['$$', '$$'],\n ['\\\\[', '\\\\]']\n ],\n processEscapes: true,\n processEnvironments: true,\n processRefs: true,\n };\n return FindTeX;\n}(FindMath_js_1.AbstractFindMath));\nexports.FindTeX = FindTeX;\n//# sourceMappingURL=FindTeX.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubHandlers = exports.SubHandler = exports.MapHandler = void 0;\nvar PrioritizedList_js_1 = require(\"../../util/PrioritizedList.js\");\nvar FunctionList_js_1 = require(\"../../util/FunctionList.js\");\nvar MapHandler;\n(function (MapHandler) {\n var maps = new Map();\n MapHandler.register = function (map) {\n maps.set(map.name, map);\n };\n MapHandler.getMap = function (name) {\n return maps.get(name);\n };\n})(MapHandler = exports.MapHandler || (exports.MapHandler = {}));\nvar SubHandler = (function () {\n function SubHandler() {\n this._configuration = new PrioritizedList_js_1.PrioritizedList();\n this._fallback = new FunctionList_js_1.FunctionList();\n }\n SubHandler.prototype.add = function (maps, fallback, priority) {\n var e_1, _a;\n if (priority === void 0) { priority = PrioritizedList_js_1.PrioritizedList.DEFAULTPRIORITY; }\n try {\n for (var _b = __values(maps.slice().reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_1 = _c.value;\n var map = MapHandler.getMap(name_1);\n if (!map) {\n this.warn('Configuration ' + name_1 + ' not found! Omitted.');\n return;\n }\n this._configuration.add(map, priority);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (fallback) {\n this._fallback.add(fallback, priority);\n }\n };\n SubHandler.prototype.parse = function (input) {\n var e_2, _a;\n try {\n for (var _b = __values(this._configuration), _c = _b.next(); !_c.done; _c = _b.next()) {\n var map = _c.value.item;\n var result = map.parse(input);\n if (result) {\n return result;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var _d = __read(input, 2), env = _d[0], symbol = _d[1];\n Array.from(this._fallback)[0].item(env, symbol);\n };\n SubHandler.prototype.lookup = function (symbol) {\n var map = this.applicable(symbol);\n return map ? map.lookup(symbol) : null;\n };\n SubHandler.prototype.contains = function (symbol) {\n return this.applicable(symbol) ? true : false;\n };\n SubHandler.prototype.toString = function () {\n var e_3, _a;\n var names = [];\n try {\n for (var _b = __values(this._configuration), _c = _b.next(); !_c.done; _c = _b.next()) {\n var map = _c.value.item;\n names.push(map.name);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return names.join(', ');\n };\n SubHandler.prototype.applicable = function (symbol) {\n var e_4, _a;\n try {\n for (var _b = __values(this._configuration), _c = _b.next(); !_c.done; _c = _b.next()) {\n var map = _c.value.item;\n if (map.contains(symbol)) {\n return map;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return null;\n };\n SubHandler.prototype.retrieve = function (name) {\n var e_5, _a;\n try {\n for (var _b = __values(this._configuration), _c = _b.next(); !_c.done; _c = _b.next()) {\n var map = _c.value.item;\n if (map.name === name) {\n return map;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return null;\n };\n SubHandler.prototype.warn = function (message) {\n console.log('TexParser Warning: ' + message);\n };\n return SubHandler;\n}());\nexports.SubHandler = SubHandler;\nvar SubHandlers = (function () {\n function SubHandlers() {\n this.map = new Map();\n }\n SubHandlers.prototype.add = function (handlers, fallbacks, priority) {\n var e_6, _a;\n if (priority === void 0) { priority = PrioritizedList_js_1.PrioritizedList.DEFAULTPRIORITY; }\n try {\n for (var _b = __values(Object.keys(handlers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var name_2 = key;\n var subHandler = this.get(name_2);\n if (!subHandler) {\n subHandler = new SubHandler();\n this.set(name_2, subHandler);\n }\n subHandler.add(handlers[name_2], fallbacks[name_2], priority);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n };\n SubHandlers.prototype.set = function (name, subHandler) {\n this.map.set(name, subHandler);\n };\n SubHandlers.prototype.get = function (name) {\n return this.map.get(name);\n };\n SubHandlers.prototype.retrieve = function (name) {\n var e_7, _a;\n try {\n for (var _b = __values(this.map.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n var map = handler.retrieve(name);\n if (map) {\n return map;\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n return null;\n };\n SubHandlers.prototype.keys = function () {\n return this.map.keys();\n };\n return SubHandlers;\n}());\nexports.SubHandlers = SubHandlers;\n//# sourceMappingURL=MapHandler.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeFactory = void 0;\nvar NodeUtil_js_1 = __importDefault(require(\"./NodeUtil.js\"));\nvar NodeFactory = (function () {\n function NodeFactory() {\n this.mmlFactory = null;\n this.factory = { 'node': NodeFactory.createNode,\n 'token': NodeFactory.createToken,\n 'text': NodeFactory.createText,\n 'error': NodeFactory.createError\n };\n }\n NodeFactory.createNode = function (factory, kind, children, def, text) {\n if (children === void 0) { children = []; }\n if (def === void 0) { def = {}; }\n var node = factory.mmlFactory.create(kind);\n node.setChildren(children);\n if (text) {\n node.appendChild(text);\n }\n NodeUtil_js_1.default.setProperties(node, def);\n return node;\n };\n NodeFactory.createToken = function (factory, kind, def, text) {\n if (def === void 0) { def = {}; }\n if (text === void 0) { text = ''; }\n var textNode = factory.create('text', text);\n return factory.create('node', kind, [], def, textNode);\n };\n NodeFactory.createText = function (factory, text) {\n if (text == null) {\n return null;\n }\n return factory.mmlFactory.create('text').setText(text);\n };\n NodeFactory.createError = function (factory, message) {\n var text = factory.create('text', message);\n var mtext = factory.create('node', 'mtext', [], {}, text);\n var error = factory.create('node', 'merror', [mtext], { 'data-mjx-error': message });\n return error;\n };\n NodeFactory.prototype.setMmlFactory = function (mmlFactory) {\n this.mmlFactory = mmlFactory;\n };\n NodeFactory.prototype.set = function (kind, func) {\n this.factory[kind] = func;\n };\n NodeFactory.prototype.setCreators = function (maps) {\n for (var kind in maps) {\n this.set(kind, maps[kind]);\n }\n };\n NodeFactory.prototype.create = function (kind) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var func = this.factory[kind] || this.factory['node'];\n var node = func.apply(void 0, __spreadArray([this, rest[0]], __read(rest.slice(1)), false));\n if (kind === 'node') {\n this.configuration.addNode(rest[0], node);\n }\n return node;\n };\n NodeFactory.prototype.get = function (kind) {\n return this.factory[kind];\n };\n return NodeFactory;\n}());\nexports.NodeFactory = NodeFactory;\n//# sourceMappingURL=NodeFactory.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MmlNode_js_1 = require(\"../../core/MmlTree/MmlNode.js\");\nvar mo_js_1 = require(\"../../core/MmlTree/MmlNodes/mo.js\");\nvar NodeUtil;\n(function (NodeUtil) {\n var attrs = new Map([\n ['autoOP', true],\n ['fnOP', true],\n ['movesupsub', true],\n ['subsupOK', true],\n ['texprimestyle', true],\n ['useHeight', true],\n ['variantForm', true],\n ['withDelims', true],\n ['mathaccent', true],\n ['open', true],\n ['close', true]\n ]);\n function createEntity(code) {\n return String.fromCodePoint(parseInt(code, 16));\n }\n NodeUtil.createEntity = createEntity;\n function getChildren(node) {\n return node.childNodes;\n }\n NodeUtil.getChildren = getChildren;\n function getText(node) {\n return node.getText();\n }\n NodeUtil.getText = getText;\n function appendChildren(node, children) {\n var e_1, _a;\n try {\n for (var children_1 = __values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n node.appendChild(child);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n NodeUtil.appendChildren = appendChildren;\n function setAttribute(node, attribute, value) {\n node.attributes.set(attribute, value);\n }\n NodeUtil.setAttribute = setAttribute;\n function setProperty(node, property, value) {\n node.setProperty(property, value);\n }\n NodeUtil.setProperty = setProperty;\n function setProperties(node, properties) {\n var e_2, _a;\n try {\n for (var _b = __values(Object.keys(properties)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_1 = _c.value;\n var value = properties[name_1];\n if (name_1 === 'texClass') {\n node.texClass = value;\n node.setProperty(name_1, value);\n }\n else if (name_1 === 'movablelimits') {\n node.setProperty('movablelimits', value);\n if (node.isKind('mo') || node.isKind('mstyle')) {\n node.attributes.set('movablelimits', value);\n }\n }\n else if (name_1 === 'inferred') {\n }\n else if (attrs.has(name_1)) {\n node.setProperty(name_1, value);\n }\n else {\n node.attributes.set(name_1, value);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n NodeUtil.setProperties = setProperties;\n function getProperty(node, property) {\n return node.getProperty(property);\n }\n NodeUtil.getProperty = getProperty;\n function getAttribute(node, attr) {\n return node.attributes.get(attr);\n }\n NodeUtil.getAttribute = getAttribute;\n function removeProperties(node) {\n var properties = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n properties[_i - 1] = arguments[_i];\n }\n node.removeProperty.apply(node, __spreadArray([], __read(properties), false));\n }\n NodeUtil.removeProperties = removeProperties;\n function getChildAt(node, position) {\n return node.childNodes[position];\n }\n NodeUtil.getChildAt = getChildAt;\n function setChild(node, position, child) {\n var children = node.childNodes;\n children[position] = child;\n if (child) {\n child.parent = node;\n }\n }\n NodeUtil.setChild = setChild;\n function copyChildren(oldNode, newNode) {\n var children = oldNode.childNodes;\n for (var i = 0; i < children.length; i++) {\n setChild(newNode, i, children[i]);\n }\n }\n NodeUtil.copyChildren = copyChildren;\n function copyAttributes(oldNode, newNode) {\n newNode.attributes = oldNode.attributes;\n setProperties(newNode, oldNode.getAllProperties());\n }\n NodeUtil.copyAttributes = copyAttributes;\n function isType(node, kind) {\n return node.isKind(kind);\n }\n NodeUtil.isType = isType;\n function isEmbellished(node) {\n return node.isEmbellished;\n }\n NodeUtil.isEmbellished = isEmbellished;\n function getTexClass(node) {\n return node.texClass;\n }\n NodeUtil.getTexClass = getTexClass;\n function getCoreMO(node) {\n return node.coreMO();\n }\n NodeUtil.getCoreMO = getCoreMO;\n function isNode(item) {\n return item instanceof MmlNode_js_1.AbstractMmlNode || item instanceof MmlNode_js_1.AbstractMmlEmptyNode;\n }\n NodeUtil.isNode = isNode;\n function isInferred(node) {\n return node.isInferred;\n }\n NodeUtil.isInferred = isInferred;\n function getForm(node) {\n var e_3, _a;\n if (!isType(node, 'mo')) {\n return null;\n }\n var mo = node;\n var forms = mo.getForms();\n try {\n for (var forms_1 = __values(forms), forms_1_1 = forms_1.next(); !forms_1_1.done; forms_1_1 = forms_1.next()) {\n var form = forms_1_1.value;\n var symbol = mo_js_1.MmlMo.OPTABLE[form][mo.getText()];\n if (symbol) {\n return symbol;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (forms_1_1 && !forms_1_1.done && (_a = forms_1.return)) _a.call(forms_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return null;\n }\n NodeUtil.getForm = getForm;\n})(NodeUtil || (NodeUtil = {}));\nexports.default = NodeUtil;\n//# sourceMappingURL=NodeUtil.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NodeUtil_js_1 = __importDefault(require(\"./NodeUtil.js\"));\nvar TexConstants_js_1 = require(\"./TexConstants.js\");\nvar ParseUtil_js_1 = __importDefault(require(\"./ParseUtil.js\"));\nvar ParseMethods;\n(function (ParseMethods) {\n function variable(parser, c) {\n var def = ParseUtil_js_1.default.getFontDef(parser);\n var env = parser.stack.env;\n if (env.multiLetterIdentifiers && env.font !== '') {\n c = parser.string.substr(parser.i - 1).match(env.multiLetterIdentifiers)[0];\n parser.i += c.length - 1;\n if (def.mathvariant === TexConstants_js_1.TexConstant.Variant.NORMAL && env.noAutoOP && c.length > 1) {\n def.autoOP = false;\n }\n }\n var node = parser.create('token', 'mi', def, c);\n parser.Push(node);\n }\n ParseMethods.variable = variable;\n function digit(parser, c) {\n var mml;\n var pattern = parser.configuration.options['digits'];\n var n = parser.string.slice(parser.i - 1).match(pattern);\n var def = ParseUtil_js_1.default.getFontDef(parser);\n if (n) {\n mml = parser.create('token', 'mn', def, n[0].replace(/[{}]/g, ''));\n parser.i += n[0].length - 1;\n }\n else {\n mml = parser.create('token', 'mo', def, c);\n }\n parser.Push(mml);\n }\n ParseMethods.digit = digit;\n function controlSequence(parser, _c) {\n var name = parser.GetCS();\n parser.parse('macro', [parser, name]);\n }\n ParseMethods.controlSequence = controlSequence;\n function mathchar0mi(parser, mchar) {\n var def = mchar.attributes || { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC };\n var node = parser.create('token', 'mi', def, mchar.char);\n parser.Push(node);\n }\n ParseMethods.mathchar0mi = mathchar0mi;\n function mathchar0mo(parser, mchar) {\n var def = mchar.attributes || {};\n def['stretchy'] = false;\n var node = parser.create('token', 'mo', def, mchar.char);\n NodeUtil_js_1.default.setProperty(node, 'fixStretchy', true);\n parser.configuration.addNode('fixStretchy', node);\n parser.Push(node);\n }\n ParseMethods.mathchar0mo = mathchar0mo;\n function mathchar7(parser, mchar) {\n var def = mchar.attributes || { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL };\n if (parser.stack.env['font']) {\n def['mathvariant'] = parser.stack.env['font'];\n }\n var node = parser.create('token', 'mi', def, mchar.char);\n parser.Push(node);\n }\n ParseMethods.mathchar7 = mathchar7;\n function delimiter(parser, delim) {\n var def = delim.attributes || {};\n def = Object.assign({ fence: false, stretchy: false }, def);\n var node = parser.create('token', 'mo', def, delim.char);\n parser.Push(node);\n }\n ParseMethods.delimiter = delimiter;\n function environment(parser, env, func, args) {\n var end = args[0];\n var mml = parser.itemFactory.create('begin').setProperties({ name: env, end: end });\n mml = func.apply(void 0, __spreadArray([parser, mml], __read(args.slice(1)), false));\n parser.Push(mml);\n }\n ParseMethods.environment = environment;\n})(ParseMethods || (ParseMethods = {}));\nexports.default = ParseMethods;\n//# sourceMappingURL=ParseMethods.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StackItemFactory_js_1 = __importDefault(require(\"./StackItemFactory.js\"));\nvar NodeFactory_js_1 = require(\"./NodeFactory.js\");\nvar NodeUtil_js_1 = __importDefault(require(\"./NodeUtil.js\"));\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar ParseOptions = (function () {\n function ParseOptions(configuration, options) {\n if (options === void 0) { options = []; }\n this.options = {};\n this.packageData = new Map();\n this.parsers = [];\n this.root = null;\n this.nodeLists = {};\n this.error = false;\n this.handlers = configuration.handlers;\n this.nodeFactory = new NodeFactory_js_1.NodeFactory();\n this.nodeFactory.configuration = this;\n this.nodeFactory.setCreators(configuration.nodes);\n this.itemFactory = new StackItemFactory_js_1.default(configuration.items);\n this.itemFactory.configuration = this;\n Options_js_1.defaultOptions.apply(void 0, __spreadArray([this.options], __read(options), false));\n (0, Options_js_1.defaultOptions)(this.options, configuration.options);\n }\n ParseOptions.prototype.pushParser = function (parser) {\n this.parsers.unshift(parser);\n };\n ParseOptions.prototype.popParser = function () {\n this.parsers.shift();\n };\n Object.defineProperty(ParseOptions.prototype, \"parser\", {\n get: function () {\n return this.parsers[0];\n },\n enumerable: false,\n configurable: true\n });\n ParseOptions.prototype.clear = function () {\n this.parsers = [];\n this.root = null;\n this.nodeLists = {};\n this.error = false;\n this.tags.resetTag();\n };\n ParseOptions.prototype.addNode = function (property, node) {\n var list = this.nodeLists[property];\n if (!list) {\n list = this.nodeLists[property] = [];\n }\n list.push(node);\n if (node.kind !== property) {\n var inlists = (NodeUtil_js_1.default.getProperty(node, 'in-lists') || '');\n var lists = (inlists ? inlists.split(/,/) : []).concat(property).join(',');\n NodeUtil_js_1.default.setProperty(node, 'in-lists', lists);\n }\n };\n ParseOptions.prototype.getList = function (property) {\n var e_1, _a;\n var list = this.nodeLists[property] || [];\n var result = [];\n try {\n for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {\n var node = list_1_1.value;\n if (this.inTree(node)) {\n result.push(node);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.nodeLists[property] = result;\n return result;\n };\n ParseOptions.prototype.removeFromList = function (property, nodes) {\n var e_2, _a;\n var list = this.nodeLists[property] || [];\n try {\n for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {\n var node = nodes_1_1.value;\n var i = list.indexOf(node);\n if (i >= 0) {\n list.splice(i, 1);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n ParseOptions.prototype.inTree = function (node) {\n while (node && node !== this.root) {\n node = node.parent;\n }\n return !!node;\n };\n return ParseOptions;\n}());\nexports.default = ParseOptions;\n//# sourceMappingURL=ParseOptions.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MmlNode_js_1 = require(\"../../core/MmlTree/MmlNode.js\");\nvar NodeUtil_js_1 = __importDefault(require(\"./NodeUtil.js\"));\nvar TexParser_js_1 = __importDefault(require(\"./TexParser.js\"));\nvar TexError_js_1 = __importDefault(require(\"./TexError.js\"));\nvar Entities_js_1 = require(\"../../util/Entities.js\");\nvar ParseUtil;\n(function (ParseUtil) {\n var emPerInch = 7.2;\n var pxPerInch = 72;\n var UNIT_CASES = {\n 'em': function (m) { return m; },\n 'ex': function (m) { return m * .43; },\n 'pt': function (m) { return m / 10; },\n 'pc': function (m) { return m * 1.2; },\n 'px': function (m) { return m * emPerInch / pxPerInch; },\n 'in': function (m) { return m * emPerInch; },\n 'cm': function (m) { return m * emPerInch / 2.54; },\n 'mm': function (m) { return m * emPerInch / 25.4; },\n 'mu': function (m) { return m / 18; },\n };\n var num = '([-+]?([.,]\\\\d+|\\\\d+([.,]\\\\d*)?))';\n var unit = '(pt|em|ex|mu|px|mm|cm|in|pc)';\n var dimenEnd = RegExp('^\\\\s*' + num + '\\\\s*' + unit + '\\\\s*$');\n var dimenRest = RegExp('^\\\\s*' + num + '\\\\s*' + unit + ' ?');\n function matchDimen(dim, rest) {\n if (rest === void 0) { rest = false; }\n var match = dim.match(rest ? dimenRest : dimenEnd);\n return match ?\n muReplace([match[1].replace(/,/, '.'), match[4], match[0].length]) :\n [null, null, 0];\n }\n ParseUtil.matchDimen = matchDimen;\n function muReplace(_a) {\n var _b = __read(_a, 3), value = _b[0], unit = _b[1], length = _b[2];\n if (unit !== 'mu') {\n return [value, unit, length];\n }\n var em = Em(UNIT_CASES[unit](parseFloat(value || '1')));\n return [em.slice(0, -2), 'em', length];\n }\n function dimen2em(dim) {\n var _a = __read(matchDimen(dim), 2), value = _a[0], unit = _a[1];\n var m = parseFloat(value || '1');\n var func = UNIT_CASES[unit];\n return func ? func(m) : 0;\n }\n ParseUtil.dimen2em = dimen2em;\n function Em(m) {\n if (Math.abs(m) < .0006) {\n return '0em';\n }\n return m.toFixed(3).replace(/\\.?0+$/, '') + 'em';\n }\n ParseUtil.Em = Em;\n function cols() {\n var W = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n W[_i] = arguments[_i];\n }\n return W.map(function (n) { return Em(n); }).join(' ');\n }\n ParseUtil.cols = cols;\n function fenced(configuration, open, mml, close, big, color) {\n if (big === void 0) { big = ''; }\n if (color === void 0) { color = ''; }\n var nf = configuration.nodeFactory;\n var mrow = nf.create('node', 'mrow', [], { open: open, close: close, texClass: MmlNode_js_1.TEXCLASS.INNER });\n var mo;\n if (big) {\n mo = new TexParser_js_1.default('\\\\' + big + 'l' + open, configuration.parser.stack.env, configuration).mml();\n }\n else {\n var openNode = nf.create('text', open);\n mo = nf.create('node', 'mo', [], { fence: true, stretchy: true, symmetric: true, texClass: MmlNode_js_1.TEXCLASS.OPEN }, openNode);\n }\n NodeUtil_js_1.default.appendChildren(mrow, [mo, mml]);\n if (big) {\n mo = new TexParser_js_1.default('\\\\' + big + 'r' + close, configuration.parser.stack.env, configuration).mml();\n }\n else {\n var closeNode = nf.create('text', close);\n mo = nf.create('node', 'mo', [], { fence: true, stretchy: true, symmetric: true, texClass: MmlNode_js_1.TEXCLASS.CLOSE }, closeNode);\n }\n color && mo.attributes.set('mathcolor', color);\n NodeUtil_js_1.default.appendChildren(mrow, [mo]);\n return mrow;\n }\n ParseUtil.fenced = fenced;\n function fixedFence(configuration, open, mml, close) {\n var mrow = configuration.nodeFactory.create('node', 'mrow', [], { open: open, close: close, texClass: MmlNode_js_1.TEXCLASS.ORD });\n if (open) {\n NodeUtil_js_1.default.appendChildren(mrow, [mathPalette(configuration, open, 'l')]);\n }\n if (NodeUtil_js_1.default.isType(mml, 'mrow')) {\n NodeUtil_js_1.default.appendChildren(mrow, NodeUtil_js_1.default.getChildren(mml));\n }\n else {\n NodeUtil_js_1.default.appendChildren(mrow, [mml]);\n }\n if (close) {\n NodeUtil_js_1.default.appendChildren(mrow, [mathPalette(configuration, close, 'r')]);\n }\n return mrow;\n }\n ParseUtil.fixedFence = fixedFence;\n function mathPalette(configuration, fence, side) {\n if (fence === '{' || fence === '}') {\n fence = '\\\\' + fence;\n }\n var D = '{\\\\bigg' + side + ' ' + fence + '}';\n var T = '{\\\\big' + side + ' ' + fence + '}';\n return new TexParser_js_1.default('\\\\mathchoice' + D + T + T + T, {}, configuration).mml();\n }\n ParseUtil.mathPalette = mathPalette;\n function fixInitialMO(configuration, nodes) {\n for (var i = 0, m = nodes.length; i < m; i++) {\n var child = nodes[i];\n if (child && (!NodeUtil_js_1.default.isType(child, 'mspace') &&\n (!NodeUtil_js_1.default.isType(child, 'TeXAtom') ||\n (NodeUtil_js_1.default.getChildren(child)[0] &&\n NodeUtil_js_1.default.getChildren(NodeUtil_js_1.default.getChildren(child)[0]).length)))) {\n if (NodeUtil_js_1.default.isEmbellished(child) ||\n (NodeUtil_js_1.default.isType(child, 'TeXAtom') && NodeUtil_js_1.default.getTexClass(child) === MmlNode_js_1.TEXCLASS.REL)) {\n var mi = configuration.nodeFactory.create('node', 'mi');\n nodes.unshift(mi);\n }\n break;\n }\n }\n }\n ParseUtil.fixInitialMO = fixInitialMO;\n function internalMath(parser, text, level, font) {\n if (parser.configuration.options.internalMath) {\n return parser.configuration.options.internalMath(parser, text, level, font);\n }\n var mathvariant = font || parser.stack.env.font;\n var def = (mathvariant ? { mathvariant: mathvariant } : {});\n var mml = [], i = 0, k = 0, c, node, match = '', braces = 0;\n if (text.match(/\\\\?[${}\\\\]|\\\\\\(|\\\\(eq)?ref\\s*\\{/)) {\n while (i < text.length) {\n c = text.charAt(i++);\n if (c === '$') {\n if (match === '$' && braces === 0) {\n node = parser.create('node', 'TeXAtom', [(new TexParser_js_1.default(text.slice(k, i - 1), {}, parser.configuration)).mml()]);\n mml.push(node);\n match = '';\n k = i;\n }\n else if (match === '') {\n if (k < i - 1) {\n mml.push(internalText(parser, text.slice(k, i - 1), def));\n }\n match = '$';\n k = i;\n }\n }\n else if (c === '{' && match !== '') {\n braces++;\n }\n else if (c === '}') {\n if (match === '}' && braces === 0) {\n var atom = (new TexParser_js_1.default(text.slice(k, i), {}, parser.configuration)).mml();\n node = parser.create('node', 'TeXAtom', [atom], def);\n mml.push(node);\n match = '';\n k = i;\n }\n else if (match !== '') {\n if (braces) {\n braces--;\n }\n }\n }\n else if (c === '\\\\') {\n if (match === '' && text.substr(i).match(/^(eq)?ref\\s*\\{/)) {\n var len = RegExp['$&'].length;\n if (k < i - 1) {\n mml.push(internalText(parser, text.slice(k, i - 1), def));\n }\n match = '}';\n k = i - 1;\n i += len;\n }\n else {\n c = text.charAt(i++);\n if (c === '(' && match === '') {\n if (k < i - 2) {\n mml.push(internalText(parser, text.slice(k, i - 2), def));\n }\n match = ')';\n k = i;\n }\n else if (c === ')' && match === ')' && braces === 0) {\n node = parser.create('node', 'TeXAtom', [(new TexParser_js_1.default(text.slice(k, i - 2), {}, parser.configuration)).mml()]);\n mml.push(node);\n match = '';\n k = i;\n }\n else if (c.match(/[${}\\\\]/) && match === '') {\n i--;\n text = text.substr(0, i - 1) + text.substr(i);\n }\n }\n }\n }\n if (match !== '') {\n throw new TexError_js_1.default('MathNotTerminated', 'Math not terminated in text box');\n }\n }\n if (k < text.length) {\n mml.push(internalText(parser, text.slice(k), def));\n }\n if (level != null) {\n mml = [parser.create('node', 'mstyle', mml, { displaystyle: false, scriptlevel: level })];\n }\n else if (mml.length > 1) {\n mml = [parser.create('node', 'mrow', mml)];\n }\n return mml;\n }\n ParseUtil.internalMath = internalMath;\n function internalText(parser, text, def) {\n text = text.replace(/^\\s+/, Entities_js_1.entities.nbsp).replace(/\\s+$/, Entities_js_1.entities.nbsp);\n var textNode = parser.create('text', text);\n return parser.create('node', 'mtext', [], def, textNode);\n }\n ParseUtil.internalText = internalText;\n function underOver(parser, base, script, pos, stack) {\n ParseUtil.checkMovableLimits(base);\n if (NodeUtil_js_1.default.isType(base, 'munderover') && NodeUtil_js_1.default.isEmbellished(base)) {\n NodeUtil_js_1.default.setProperties(NodeUtil_js_1.default.getCoreMO(base), { lspace: 0, rspace: 0 });\n var mo = parser.create('node', 'mo', [], { rspace: 0 });\n base = parser.create('node', 'mrow', [mo, base]);\n }\n var mml = parser.create('node', 'munderover', [base]);\n NodeUtil_js_1.default.setChild(mml, pos === 'over' ? mml.over : mml.under, script);\n var node = mml;\n if (stack) {\n node = parser.create('node', 'TeXAtom', [mml], { texClass: MmlNode_js_1.TEXCLASS.OP, movesupsub: true });\n }\n NodeUtil_js_1.default.setProperty(node, 'subsupOK', true);\n return node;\n }\n ParseUtil.underOver = underOver;\n function checkMovableLimits(base) {\n var symbol = (NodeUtil_js_1.default.isType(base, 'mo') ? NodeUtil_js_1.default.getForm(base) : null);\n if (NodeUtil_js_1.default.getProperty(base, 'movablelimits') || (symbol && symbol[3] && symbol[3].movablelimits)) {\n NodeUtil_js_1.default.setProperties(base, { movablelimits: false });\n }\n }\n ParseUtil.checkMovableLimits = checkMovableLimits;\n function trimSpaces(text) {\n if (typeof (text) !== 'string') {\n return text;\n }\n var TEXT = text.trim();\n if (TEXT.match(/\\\\$/) && text.match(/ $/)) {\n TEXT += ' ';\n }\n return TEXT;\n }\n ParseUtil.trimSpaces = trimSpaces;\n function setArrayAlign(array, align) {\n align = ParseUtil.trimSpaces(align || '');\n if (align === 't') {\n array.arraydef.align = 'baseline 1';\n }\n else if (align === 'b') {\n array.arraydef.align = 'baseline -1';\n }\n else if (align === 'c') {\n array.arraydef.align = 'axis';\n }\n else if (align) {\n array.arraydef.align = align;\n }\n return array;\n }\n ParseUtil.setArrayAlign = setArrayAlign;\n function substituteArgs(parser, args, str) {\n var text = '';\n var newstring = '';\n var i = 0;\n while (i < str.length) {\n var c = str.charAt(i++);\n if (c === '\\\\') {\n text += c + str.charAt(i++);\n }\n else if (c === '#') {\n c = str.charAt(i++);\n if (c === '#') {\n text += c;\n }\n else {\n if (!c.match(/[1-9]/) || parseInt(c, 10) > args.length) {\n throw new TexError_js_1.default('IllegalMacroParam', 'Illegal macro parameter reference');\n }\n newstring = addArgs(parser, addArgs(parser, newstring, text), args[parseInt(c, 10) - 1]);\n text = '';\n }\n }\n else {\n text += c;\n }\n }\n return addArgs(parser, newstring, text);\n }\n ParseUtil.substituteArgs = substituteArgs;\n function addArgs(parser, s1, s2) {\n if (s2.match(/^[a-z]/i) && s1.match(/(^|[^\\\\])(\\\\\\\\)*\\\\[a-z]+$/i)) {\n s1 += ' ';\n }\n if (s1.length + s2.length > parser.configuration.options['maxBuffer']) {\n throw new TexError_js_1.default('MaxBufferSize', 'MathJax internal buffer size exceeded; is there a' +\n ' recursive macro call?');\n }\n return s1 + s2;\n }\n ParseUtil.addArgs = addArgs;\n function checkMaxMacros(parser, isMacro) {\n if (isMacro === void 0) { isMacro = true; }\n if (++parser.macroCount <= parser.configuration.options['maxMacros']) {\n return;\n }\n if (isMacro) {\n throw new TexError_js_1.default('MaxMacroSub1', 'MathJax maximum macro substitution count exceeded; ' +\n 'is here a recursive macro call?');\n }\n else {\n throw new TexError_js_1.default('MaxMacroSub2', 'MathJax maximum substitution count exceeded; ' +\n 'is there a recursive latex environment?');\n }\n }\n ParseUtil.checkMaxMacros = checkMaxMacros;\n function checkEqnEnv(parser) {\n if (parser.stack.global.eqnenv) {\n throw new TexError_js_1.default('ErroneousNestingEq', 'Erroneous nesting of equation structures');\n }\n parser.stack.global.eqnenv = true;\n }\n ParseUtil.checkEqnEnv = checkEqnEnv;\n function copyNode(node, parser) {\n var tree = node.copy();\n var options = parser.configuration;\n tree.walkTree(function (n) {\n var e_1, _a;\n options.addNode(n.kind, n);\n var lists = (n.getProperty('in-lists') || '').split(/,/);\n try {\n for (var lists_1 = __values(lists), lists_1_1 = lists_1.next(); !lists_1_1.done; lists_1_1 = lists_1.next()) {\n var list = lists_1_1.value;\n list && options.addNode(list, n);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (lists_1_1 && !lists_1_1.done && (_a = lists_1.return)) _a.call(lists_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n return tree;\n }\n ParseUtil.copyNode = copyNode;\n function MmlFilterAttribute(_parser, _name, value) {\n return value;\n }\n ParseUtil.MmlFilterAttribute = MmlFilterAttribute;\n function getFontDef(parser) {\n var font = parser.stack.env['font'];\n return (font ? { mathvariant: font } : {});\n }\n ParseUtil.getFontDef = getFontDef;\n function keyvalOptions(attrib, allowed, error) {\n var e_2, _a;\n if (allowed === void 0) { allowed = null; }\n if (error === void 0) { error = false; }\n var def = readKeyval(attrib);\n if (allowed) {\n try {\n for (var _b = __values(Object.keys(def)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (!allowed.hasOwnProperty(key)) {\n if (error) {\n throw new TexError_js_1.default('InvalidOption', 'Invalid option: %1', key);\n }\n delete def[key];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n return def;\n }\n ParseUtil.keyvalOptions = keyvalOptions;\n function readKeyval(text) {\n var _a, _b;\n var options = {};\n var rest = text;\n var end, key, val;\n while (rest) {\n _a = __read(readValue(rest, ['=', ',']), 3), key = _a[0], end = _a[1], rest = _a[2];\n if (end === '=') {\n _b = __read(readValue(rest, [',']), 3), val = _b[0], end = _b[1], rest = _b[2];\n val = (val === 'false' || val === 'true') ?\n JSON.parse(val) : val;\n options[key] = val;\n }\n else if (key) {\n options[key] = true;\n }\n }\n return options;\n }\n function removeBraces(text, count) {\n while (count > 0) {\n text = text.trim().slice(1, -1);\n count--;\n }\n return text.trim();\n }\n function readValue(text, end) {\n var length = text.length;\n var braces = 0;\n var value = '';\n var index = 0;\n var start = 0;\n var startCount = true;\n var stopCount = false;\n while (index < length) {\n var c = text[index++];\n switch (c) {\n case ' ':\n break;\n case '{':\n if (startCount) {\n start++;\n }\n else {\n stopCount = false;\n if (start > braces) {\n start = braces;\n }\n }\n braces++;\n break;\n case '}':\n if (braces) {\n braces--;\n }\n if (startCount || stopCount) {\n start--;\n stopCount = true;\n }\n startCount = false;\n break;\n default:\n if (!braces && end.indexOf(c) !== -1) {\n return [stopCount ? 'true' :\n removeBraces(value, start), c, text.slice(index)];\n }\n startCount = false;\n stopCount = false;\n }\n value += c;\n }\n if (braces) {\n throw new TexError_js_1.default('ExtraOpenMissingClose', 'Extra open brace or missing close brace');\n }\n return [stopCount ? 'true' : removeBraces(value, start), '', text.slice(index)];\n }\n})(ParseUtil || (ParseUtil = {}));\nexports.default = ParseUtil;\n//# sourceMappingURL=ParseUtil.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NodeUtil_js_1 = __importDefault(require(\"./NodeUtil.js\"));\nvar Stack = (function () {\n function Stack(_factory, _env, inner) {\n this._factory = _factory;\n this._env = _env;\n this.global = {};\n this.stack = [];\n this.global = { isInner: inner };\n this.stack = [this._factory.create('start', this.global)];\n if (_env) {\n this.stack[0].env = _env;\n }\n this.env = this.stack[0].env;\n }\n Object.defineProperty(Stack.prototype, \"env\", {\n get: function () {\n return this._env;\n },\n set: function (env) {\n this._env = env;\n },\n enumerable: false,\n configurable: true\n });\n Stack.prototype.Push = function () {\n var e_1, _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n for (var args_1 = __values(args), args_1_1 = args_1.next(); !args_1_1.done; args_1_1 = args_1.next()) {\n var node = args_1_1.value;\n if (!node) {\n continue;\n }\n var item = NodeUtil_js_1.default.isNode(node) ?\n this._factory.create('mml', node) : node;\n item.global = this.global;\n var _b = __read(this.stack.length ? this.Top().checkItem(item) : [null, true], 2), top_1 = _b[0], success = _b[1];\n if (!success) {\n continue;\n }\n if (top_1) {\n this.Pop();\n this.Push.apply(this, __spreadArray([], __read(top_1), false));\n continue;\n }\n this.stack.push(item);\n if (item.env) {\n if (item.copyEnv) {\n Object.assign(item.env, this.env);\n }\n this.env = item.env;\n }\n else {\n item.env = this.env;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (args_1_1 && !args_1_1.done && (_a = args_1.return)) _a.call(args_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n Stack.prototype.Pop = function () {\n var item = this.stack.pop();\n if (!item.isOpen) {\n delete item.env;\n }\n this.env = (this.stack.length ? this.Top().env : {});\n return item;\n };\n Stack.prototype.Top = function (n) {\n if (n === void 0) { n = 1; }\n return this.stack.length < n ? null : this.stack[this.stack.length - n];\n };\n Stack.prototype.Prev = function (noPop) {\n var top = this.Top();\n return noPop ? top.First : top.Pop();\n };\n Stack.prototype.toString = function () {\n return 'stack[\\n ' + this.stack.join('\\n ') + '\\n]';\n };\n return Stack;\n}());\nexports.default = Stack;\n//# sourceMappingURL=Stack.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseItem = exports.MmlStack = void 0;\nvar TexError_js_1 = __importDefault(require(\"./TexError.js\"));\nvar MmlStack = (function () {\n function MmlStack(_nodes) {\n this._nodes = _nodes;\n }\n Object.defineProperty(MmlStack.prototype, \"nodes\", {\n get: function () {\n return this._nodes;\n },\n enumerable: false,\n configurable: true\n });\n MmlStack.prototype.Push = function () {\n var _a;\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n (_a = this._nodes).push.apply(_a, __spreadArray([], __read(nodes), false));\n };\n MmlStack.prototype.Pop = function () {\n return this._nodes.pop();\n };\n Object.defineProperty(MmlStack.prototype, \"First\", {\n get: function () {\n return this._nodes[this.Size() - 1];\n },\n set: function (node) {\n this._nodes[this.Size() - 1] = node;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlStack.prototype, \"Last\", {\n get: function () {\n return this._nodes[0];\n },\n set: function (node) {\n this._nodes[0] = node;\n },\n enumerable: false,\n configurable: true\n });\n MmlStack.prototype.Peek = function (n) {\n if (n == null) {\n n = 1;\n }\n return this._nodes.slice(this.Size() - n);\n };\n MmlStack.prototype.Size = function () {\n return this._nodes.length;\n };\n MmlStack.prototype.Clear = function () {\n this._nodes = [];\n };\n MmlStack.prototype.toMml = function (inferred, forceRow) {\n if (inferred === void 0) { inferred = true; }\n if (this._nodes.length === 1 && !forceRow) {\n return this.First;\n }\n return this.create('node', inferred ? 'inferredMrow' : 'mrow', this._nodes, {});\n };\n MmlStack.prototype.create = function (kind) {\n var _a;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n return (_a = this.factory.configuration.nodeFactory).create.apply(_a, __spreadArray([kind], __read(rest), false));\n };\n return MmlStack;\n}());\nexports.MmlStack = MmlStack;\nvar BaseItem = (function (_super) {\n __extends(BaseItem, _super);\n function BaseItem(factory) {\n var nodes = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n nodes[_i - 1] = arguments[_i];\n }\n var _this = _super.call(this, nodes) || this;\n _this.factory = factory;\n _this.global = {};\n _this._properties = {};\n if (_this.isOpen) {\n _this._env = {};\n }\n return _this;\n }\n Object.defineProperty(BaseItem.prototype, \"kind\", {\n get: function () {\n return 'base';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseItem.prototype, \"env\", {\n get: function () {\n return this._env;\n },\n set: function (value) {\n this._env = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseItem.prototype, \"copyEnv\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n BaseItem.prototype.getProperty = function (key) {\n return this._properties[key];\n };\n BaseItem.prototype.setProperty = function (key, value) {\n this._properties[key] = value;\n return this;\n };\n Object.defineProperty(BaseItem.prototype, \"isOpen\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseItem.prototype, \"isClose\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseItem.prototype, \"isFinal\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n BaseItem.prototype.isKind = function (kind) {\n return kind === this.kind;\n };\n BaseItem.prototype.checkItem = function (item) {\n if (item.isKind('over') && this.isOpen) {\n item.setProperty('num', this.toMml(false));\n this.Clear();\n }\n if (item.isKind('cell') && this.isOpen) {\n if (item.getProperty('linebreak')) {\n return BaseItem.fail;\n }\n throw new TexError_js_1.default('Misplaced', 'Misplaced %1', item.getName());\n }\n if (item.isClose && this.getErrors(item.kind)) {\n var _a = __read(this.getErrors(item.kind), 2), id = _a[0], message = _a[1];\n throw new TexError_js_1.default(id, message, item.getName());\n }\n if (!item.isFinal) {\n return BaseItem.success;\n }\n this.Push(item.First);\n return BaseItem.fail;\n };\n BaseItem.prototype.clearEnv = function () {\n var e_1, _a;\n try {\n for (var _b = __values(Object.keys(this.env)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n delete this.env[id];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n BaseItem.prototype.setProperties = function (def) {\n Object.assign(this._properties, def);\n return this;\n };\n BaseItem.prototype.getName = function () {\n return this.getProperty('name');\n };\n BaseItem.prototype.toString = function () {\n return this.kind + '[' + this.nodes.join('; ') + ']';\n };\n BaseItem.prototype.getErrors = function (kind) {\n var CLASS = this.constructor;\n return (CLASS.errors || {})[kind] || BaseItem.errors[kind];\n };\n BaseItem.fail = [null, false];\n BaseItem.success = [null, true];\n BaseItem.errors = {\n end: ['MissingBeginExtraEnd', 'Missing \\\\begin{%1} or extra \\\\end{%1}'],\n close: ['ExtraCloseMissingOpen', 'Extra close brace or missing open brace'],\n right: ['MissingLeftExtraRight', 'Missing \\\\left or extra \\\\right'],\n middle: ['ExtraMiddle', 'Extra \\\\middle']\n };\n return BaseItem;\n}(MmlStack));\nexports.BaseItem = BaseItem;\n//# sourceMappingURL=StackItem.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StackItem_js_1 = require(\"./StackItem.js\");\nvar Factory_js_1 = require(\"../../core/Tree/Factory.js\");\nvar DummyItem = (function (_super) {\n __extends(DummyItem, _super);\n function DummyItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return DummyItem;\n}(StackItem_js_1.BaseItem));\nvar StackItemFactory = (function (_super) {\n __extends(StackItemFactory, _super);\n function StackItemFactory() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.defaultKind = 'dummy';\n _this.configuration = null;\n return _this;\n }\n StackItemFactory.DefaultStackItems = (_a = {},\n _a[DummyItem.prototype.kind] = DummyItem,\n _a);\n return StackItemFactory;\n}(Factory_js_1.AbstractFactory));\nexports.default = StackItemFactory;\n//# sourceMappingURL=StackItemFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Macro = exports.Symbol = void 0;\nvar Symbol = (function () {\n function Symbol(_symbol, _char, _attributes) {\n this._symbol = _symbol;\n this._char = _char;\n this._attributes = _attributes;\n }\n Object.defineProperty(Symbol.prototype, \"symbol\", {\n get: function () {\n return this._symbol;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Symbol.prototype, \"char\", {\n get: function () {\n return this._char;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Symbol.prototype, \"attributes\", {\n get: function () {\n return this._attributes;\n },\n enumerable: false,\n configurable: true\n });\n return Symbol;\n}());\nexports.Symbol = Symbol;\nvar Macro = (function () {\n function Macro(_symbol, _func, _args) {\n if (_args === void 0) { _args = []; }\n this._symbol = _symbol;\n this._func = _func;\n this._args = _args;\n }\n Object.defineProperty(Macro.prototype, \"symbol\", {\n get: function () {\n return this._symbol;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Macro.prototype, \"func\", {\n get: function () {\n return this._func;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Macro.prototype, \"args\", {\n get: function () {\n return this._args;\n },\n enumerable: false,\n configurable: true\n });\n return Macro;\n}());\nexports.Macro = Macro;\n//# sourceMappingURL=Symbol.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentMap = exports.CommandMap = exports.MacroMap = exports.DelimiterMap = exports.CharacterMap = exports.AbstractParseMap = exports.RegExpMap = exports.AbstractSymbolMap = exports.parseResult = void 0;\nvar Symbol_js_1 = require(\"./Symbol.js\");\nvar MapHandler_js_1 = require(\"./MapHandler.js\");\nfunction parseResult(result) {\n return result === void 0 ? true : result;\n}\nexports.parseResult = parseResult;\nvar AbstractSymbolMap = (function () {\n function AbstractSymbolMap(_name, _parser) {\n this._name = _name;\n this._parser = _parser;\n MapHandler_js_1.MapHandler.register(this);\n }\n Object.defineProperty(AbstractSymbolMap.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n AbstractSymbolMap.prototype.parserFor = function (symbol) {\n return this.contains(symbol) ? this.parser : null;\n };\n AbstractSymbolMap.prototype.parse = function (_a) {\n var _b = __read(_a, 2), env = _b[0], symbol = _b[1];\n var parser = this.parserFor(symbol);\n var mapped = this.lookup(symbol);\n return (parser && mapped) ? parseResult(parser(env, mapped)) : null;\n };\n Object.defineProperty(AbstractSymbolMap.prototype, \"parser\", {\n get: function () {\n return this._parser;\n },\n set: function (parser) {\n this._parser = parser;\n },\n enumerable: false,\n configurable: true\n });\n return AbstractSymbolMap;\n}());\nexports.AbstractSymbolMap = AbstractSymbolMap;\nvar RegExpMap = (function (_super) {\n __extends(RegExpMap, _super);\n function RegExpMap(name, parser, _regExp) {\n var _this = _super.call(this, name, parser) || this;\n _this._regExp = _regExp;\n return _this;\n }\n RegExpMap.prototype.contains = function (symbol) {\n return this._regExp.test(symbol);\n };\n RegExpMap.prototype.lookup = function (symbol) {\n return this.contains(symbol) ? symbol : null;\n };\n return RegExpMap;\n}(AbstractSymbolMap));\nexports.RegExpMap = RegExpMap;\nvar AbstractParseMap = (function (_super) {\n __extends(AbstractParseMap, _super);\n function AbstractParseMap() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.map = new Map();\n return _this;\n }\n AbstractParseMap.prototype.lookup = function (symbol) {\n return this.map.get(symbol);\n };\n AbstractParseMap.prototype.contains = function (symbol) {\n return this.map.has(symbol);\n };\n AbstractParseMap.prototype.add = function (symbol, object) {\n this.map.set(symbol, object);\n };\n AbstractParseMap.prototype.remove = function (symbol) {\n this.map.delete(symbol);\n };\n return AbstractParseMap;\n}(AbstractSymbolMap));\nexports.AbstractParseMap = AbstractParseMap;\nvar CharacterMap = (function (_super) {\n __extends(CharacterMap, _super);\n function CharacterMap(name, parser, json) {\n var e_1, _a;\n var _this = _super.call(this, name, parser) || this;\n try {\n for (var _b = __values(Object.keys(json)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = json[key];\n var _d = __read((typeof (value) === 'string') ? [value, null] : value, 2), char = _d[0], attrs = _d[1];\n var character = new Symbol_js_1.Symbol(key, char, attrs);\n _this.add(key, character);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return _this;\n }\n return CharacterMap;\n}(AbstractParseMap));\nexports.CharacterMap = CharacterMap;\nvar DelimiterMap = (function (_super) {\n __extends(DelimiterMap, _super);\n function DelimiterMap() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DelimiterMap.prototype.parse = function (_a) {\n var _b = __read(_a, 2), env = _b[0], symbol = _b[1];\n return _super.prototype.parse.call(this, [env, '\\\\' + symbol]);\n };\n return DelimiterMap;\n}(CharacterMap));\nexports.DelimiterMap = DelimiterMap;\nvar MacroMap = (function (_super) {\n __extends(MacroMap, _super);\n function MacroMap(name, json, functionMap) {\n var e_2, _a;\n var _this = _super.call(this, name, null) || this;\n try {\n for (var _b = __values(Object.keys(json)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = json[key];\n var _d = __read((typeof (value) === 'string') ? [value] : value), func = _d[0], attrs = _d.slice(1);\n var character = new Symbol_js_1.Macro(key, functionMap[func], attrs);\n _this.add(key, character);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return _this;\n }\n MacroMap.prototype.parserFor = function (symbol) {\n var macro = this.lookup(symbol);\n return macro ? macro.func : null;\n };\n MacroMap.prototype.parse = function (_a) {\n var _b = __read(_a, 2), env = _b[0], symbol = _b[1];\n var macro = this.lookup(symbol);\n var parser = this.parserFor(symbol);\n if (!macro || !parser) {\n return null;\n }\n return parseResult(parser.apply(void 0, __spreadArray([env, macro.symbol], __read(macro.args), false)));\n };\n return MacroMap;\n}(AbstractParseMap));\nexports.MacroMap = MacroMap;\nvar CommandMap = (function (_super) {\n __extends(CommandMap, _super);\n function CommandMap() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommandMap.prototype.parse = function (_a) {\n var _b = __read(_a, 2), env = _b[0], symbol = _b[1];\n var macro = this.lookup(symbol);\n var parser = this.parserFor(symbol);\n if (!macro || !parser) {\n return null;\n }\n var saveCommand = env.currentCS;\n env.currentCS = '\\\\' + symbol;\n var result = parser.apply(void 0, __spreadArray([env, '\\\\' + macro.symbol], __read(macro.args), false));\n env.currentCS = saveCommand;\n return parseResult(result);\n };\n return CommandMap;\n}(MacroMap));\nexports.CommandMap = CommandMap;\nvar EnvironmentMap = (function (_super) {\n __extends(EnvironmentMap, _super);\n function EnvironmentMap(name, parser, json, functionMap) {\n var _this = _super.call(this, name, json, functionMap) || this;\n _this.parser = parser;\n return _this;\n }\n EnvironmentMap.prototype.parse = function (_a) {\n var _b = __read(_a, 2), env = _b[0], symbol = _b[1];\n var macro = this.lookup(symbol);\n var envParser = this.parserFor(symbol);\n if (!macro || !envParser) {\n return null;\n }\n return parseResult(this.parser(env, macro.symbol, envParser, macro.args));\n };\n return EnvironmentMap;\n}(MacroMap));\nexports.EnvironmentMap = EnvironmentMap;\n//# sourceMappingURL=SymbolMap.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TagsFactory = exports.AllTags = exports.NoTags = exports.AbstractTags = exports.TagInfo = exports.Label = void 0;\nvar TexParser_js_1 = __importDefault(require(\"./TexParser.js\"));\nvar Label = (function () {\n function Label(tag, id) {\n if (tag === void 0) { tag = '???'; }\n if (id === void 0) { id = ''; }\n this.tag = tag;\n this.id = id;\n }\n return Label;\n}());\nexports.Label = Label;\nvar TagInfo = (function () {\n function TagInfo(env, taggable, defaultTags, tag, tagId, tagFormat, noTag, labelId) {\n if (env === void 0) { env = ''; }\n if (taggable === void 0) { taggable = false; }\n if (defaultTags === void 0) { defaultTags = false; }\n if (tag === void 0) { tag = null; }\n if (tagId === void 0) { tagId = ''; }\n if (tagFormat === void 0) { tagFormat = ''; }\n if (noTag === void 0) { noTag = false; }\n if (labelId === void 0) { labelId = ''; }\n this.env = env;\n this.taggable = taggable;\n this.defaultTags = defaultTags;\n this.tag = tag;\n this.tagId = tagId;\n this.tagFormat = tagFormat;\n this.noTag = noTag;\n this.labelId = labelId;\n }\n return TagInfo;\n}());\nexports.TagInfo = TagInfo;\nvar AbstractTags = (function () {\n function AbstractTags() {\n this.counter = 0;\n this.allCounter = 0;\n this.configuration = null;\n this.ids = {};\n this.allIds = {};\n this.labels = {};\n this.allLabels = {};\n this.redo = false;\n this.refUpdate = false;\n this.currentTag = new TagInfo();\n this.history = [];\n this.stack = [];\n this.enTag = function (node, tag) {\n var nf = this.configuration.nodeFactory;\n var cell = nf.create('node', 'mtd', [node]);\n var row = nf.create('node', 'mlabeledtr', [tag, cell]);\n var table = nf.create('node', 'mtable', [row], {\n side: this.configuration.options['tagSide'],\n minlabelspacing: this.configuration.options['tagIndent'],\n displaystyle: true\n });\n return table;\n };\n }\n AbstractTags.prototype.start = function (env, taggable, defaultTags) {\n if (this.currentTag) {\n this.stack.push(this.currentTag);\n }\n this.currentTag = new TagInfo(env, taggable, defaultTags);\n };\n Object.defineProperty(AbstractTags.prototype, \"env\", {\n get: function () {\n return this.currentTag.env;\n },\n enumerable: false,\n configurable: true\n });\n AbstractTags.prototype.end = function () {\n this.history.push(this.currentTag);\n this.currentTag = this.stack.pop();\n };\n AbstractTags.prototype.tag = function (tag, noFormat) {\n this.currentTag.tag = tag;\n this.currentTag.tagFormat = noFormat ? tag : this.formatTag(tag);\n this.currentTag.noTag = false;\n };\n AbstractTags.prototype.notag = function () {\n this.tag('', true);\n this.currentTag.noTag = true;\n };\n Object.defineProperty(AbstractTags.prototype, \"noTag\", {\n get: function () {\n return this.currentTag.noTag;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractTags.prototype, \"label\", {\n get: function () {\n return this.currentTag.labelId;\n },\n set: function (label) {\n this.currentTag.labelId = label;\n },\n enumerable: false,\n configurable: true\n });\n AbstractTags.prototype.formatUrl = function (id, base) {\n return base + '#' + encodeURIComponent(id);\n };\n AbstractTags.prototype.formatTag = function (tag) {\n return '(' + tag + ')';\n };\n AbstractTags.prototype.formatId = function (id) {\n return 'mjx-eqn:' + id.replace(/\\s/g, '_');\n };\n AbstractTags.prototype.formatNumber = function (n) {\n return n.toString();\n };\n AbstractTags.prototype.autoTag = function () {\n if (this.currentTag.tag == null) {\n this.counter++;\n this.tag(this.formatNumber(this.counter), false);\n }\n };\n AbstractTags.prototype.clearTag = function () {\n this.label = '';\n this.tag(null, true);\n this.currentTag.tagId = '';\n };\n AbstractTags.prototype.getTag = function (force) {\n if (force === void 0) { force = false; }\n if (force) {\n this.autoTag();\n return this.makeTag();\n }\n var ct = this.currentTag;\n if (ct.taggable && !ct.noTag) {\n if (ct.defaultTags) {\n this.autoTag();\n }\n if (ct.tag) {\n return this.makeTag();\n }\n }\n return null;\n };\n AbstractTags.prototype.resetTag = function () {\n this.history = [];\n this.redo = false;\n this.refUpdate = false;\n this.clearTag();\n };\n AbstractTags.prototype.reset = function (offset) {\n if (offset === void 0) { offset = 0; }\n this.resetTag();\n this.counter = this.allCounter = offset;\n this.allLabels = {};\n this.allIds = {};\n };\n AbstractTags.prototype.startEquation = function (math) {\n this.history = [];\n this.stack = [];\n this.clearTag();\n this.currentTag = new TagInfo('', undefined, undefined);\n this.labels = {};\n this.ids = {};\n this.counter = this.allCounter;\n this.redo = false;\n var recompile = math.inputData.recompile;\n if (recompile) {\n this.refUpdate = true;\n this.counter = recompile.counter;\n }\n };\n AbstractTags.prototype.finishEquation = function (math) {\n if (this.redo) {\n math.inputData.recompile = {\n state: math.state(),\n counter: this.allCounter\n };\n }\n if (!this.refUpdate) {\n this.allCounter = this.counter;\n }\n Object.assign(this.allIds, this.ids);\n Object.assign(this.allLabels, this.labels);\n };\n AbstractTags.prototype.finalize = function (node, env) {\n if (!env.display || this.currentTag.env ||\n this.currentTag.tag == null) {\n return node;\n }\n var tag = this.makeTag();\n var table = this.enTag(node, tag);\n return table;\n };\n AbstractTags.prototype.makeId = function () {\n this.currentTag.tagId = this.formatId(this.configuration.options['useLabelIds'] ?\n (this.label || this.currentTag.tag) : this.currentTag.tag);\n };\n AbstractTags.prototype.makeTag = function () {\n this.makeId();\n if (this.label) {\n this.labels[this.label] = new Label(this.currentTag.tag, this.currentTag.tagId);\n }\n var mml = new TexParser_js_1.default('\\\\text{' + this.currentTag.tagFormat + '}', {}, this.configuration).mml();\n return this.configuration.nodeFactory.create('node', 'mtd', [mml], { id: this.currentTag.tagId });\n };\n return AbstractTags;\n}());\nexports.AbstractTags = AbstractTags;\nvar NoTags = (function (_super) {\n __extends(NoTags, _super);\n function NoTags() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoTags.prototype.autoTag = function () { };\n NoTags.prototype.getTag = function () {\n return !this.currentTag.tag ? null : _super.prototype.getTag.call(this);\n };\n return NoTags;\n}(AbstractTags));\nexports.NoTags = NoTags;\nvar AllTags = (function (_super) {\n __extends(AllTags, _super);\n function AllTags() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AllTags.prototype.finalize = function (node, env) {\n if (!env.display || this.history.find(function (x) { return x.taggable; })) {\n return node;\n }\n var tag = this.getTag(true);\n return this.enTag(node, tag);\n };\n return AllTags;\n}(AbstractTags));\nexports.AllTags = AllTags;\nvar TagsFactory;\n(function (TagsFactory) {\n var tagsMapping = new Map([\n ['none', NoTags],\n ['all', AllTags]\n ]);\n var defaultTags = 'none';\n TagsFactory.OPTIONS = {\n tags: defaultTags,\n tagSide: 'right',\n tagIndent: '0.8em',\n useLabelIds: true,\n ignoreDuplicateLabels: false\n };\n TagsFactory.add = function (name, constr) {\n tagsMapping.set(name, constr);\n };\n TagsFactory.addTags = function (tags) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.keys(tags)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n TagsFactory.add(key, tags[key]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n TagsFactory.create = function (name) {\n var constr = tagsMapping.get(name) || tagsMapping.get(defaultTags);\n if (!constr) {\n throw Error('Unknown tags class');\n }\n return new constr();\n };\n TagsFactory.setDefault = function (name) {\n defaultTags = name;\n };\n TagsFactory.getDefault = function () {\n return TagsFactory.create(defaultTags);\n };\n})(TagsFactory = exports.TagsFactory || (exports.TagsFactory = {}));\n//# sourceMappingURL=Tags.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TexConstant = void 0;\nvar TexConstant;\n(function (TexConstant) {\n TexConstant.Variant = {\n NORMAL: 'normal',\n BOLD: 'bold',\n ITALIC: 'italic',\n BOLDITALIC: 'bold-italic',\n DOUBLESTRUCK: 'double-struck',\n FRAKTUR: 'fraktur',\n BOLDFRAKTUR: 'bold-fraktur',\n SCRIPT: 'script',\n BOLDSCRIPT: 'bold-script',\n SANSSERIF: 'sans-serif',\n BOLDSANSSERIF: 'bold-sans-serif',\n SANSSERIFITALIC: 'sans-serif-italic',\n SANSSERIFBOLDITALIC: 'sans-serif-bold-italic',\n MONOSPACE: 'monospace',\n INITIAL: 'inital',\n TAILED: 'tailed',\n LOOPED: 'looped',\n STRETCHED: 'stretched',\n CALLIGRAPHIC: '-tex-calligraphic',\n BOLDCALLIGRAPHIC: '-tex-bold-calligraphic',\n OLDSTYLE: '-tex-oldstyle',\n BOLDOLDSTYLE: '-tex-bold-oldstyle',\n MATHITALIC: '-tex-mathit'\n };\n TexConstant.Form = {\n PREFIX: 'prefix',\n INFIX: 'infix',\n POSTFIX: 'postfix'\n };\n TexConstant.LineBreak = {\n AUTO: 'auto',\n NEWLINE: 'newline',\n NOBREAK: 'nobreak',\n GOODBREAK: 'goodbreak',\n BADBREAK: 'badbreak'\n };\n TexConstant.LineBreakStyle = {\n BEFORE: 'before',\n AFTER: 'after',\n DUPLICATE: 'duplicate',\n INFIXLINBREAKSTYLE: 'infixlinebreakstyle'\n };\n TexConstant.IndentAlign = {\n LEFT: 'left',\n CENTER: 'center',\n RIGHT: 'right',\n AUTO: 'auto',\n ID: 'id',\n INDENTALIGN: 'indentalign'\n };\n TexConstant.IndentShift = {\n INDENTSHIFT: 'indentshift'\n };\n TexConstant.LineThickness = {\n THIN: 'thin',\n MEDIUM: 'medium',\n THICK: 'thick'\n };\n TexConstant.Notation = {\n LONGDIV: 'longdiv',\n ACTUARIAL: 'actuarial',\n PHASORANGLE: 'phasorangle',\n RADICAL: 'radical',\n BOX: 'box',\n ROUNDEDBOX: 'roundedbox',\n CIRCLE: 'circle',\n LEFT: 'left',\n RIGHT: 'right',\n TOP: 'top',\n BOTTOM: 'bottom',\n UPDIAGONALSTRIKE: 'updiagonalstrike',\n DOWNDIAGONALSTRIKE: 'downdiagonalstrike',\n VERTICALSTRIKE: 'verticalstrike',\n HORIZONTALSTRIKE: 'horizontalstrike',\n NORTHEASTARROW: 'northeastarrow',\n MADRUWB: 'madruwb',\n UPDIAGONALARROW: 'updiagonalarrow'\n };\n TexConstant.Align = {\n TOP: 'top',\n BOTTOM: 'bottom',\n CENTER: 'center',\n BASELINE: 'baseline',\n AXIS: 'axis',\n LEFT: 'left',\n RIGHT: 'right'\n };\n TexConstant.Lines = {\n NONE: 'none',\n SOLID: 'solid',\n DASHED: 'dashed'\n };\n TexConstant.Side = {\n LEFT: 'left',\n RIGHT: 'right',\n LEFTOVERLAP: 'leftoverlap',\n RIGHTOVERLAP: 'rightoverlap'\n };\n TexConstant.Width = {\n AUTO: 'auto',\n FIT: 'fit'\n };\n TexConstant.Actiontype = {\n TOGGLE: 'toggle',\n STATUSLINE: 'statusline',\n TOOLTIP: 'tooltip',\n INPUT: 'input'\n };\n TexConstant.Overflow = {\n LINBREAK: 'linebreak',\n SCROLL: 'scroll',\n ELIDE: 'elide',\n TRUNCATE: 'truncate',\n SCALE: 'scale'\n };\n TexConstant.Unit = {\n EM: 'em',\n EX: 'ex',\n PX: 'px',\n IN: 'in',\n CM: 'cm',\n MM: 'mm',\n PT: 'pt',\n PC: 'pc'\n };\n})(TexConstant = exports.TexConstant || (exports.TexConstant = {}));\n//# sourceMappingURL=TexConstants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TexError = (function () {\n function TexError(id, message) {\n var rest = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n rest[_i - 2] = arguments[_i];\n }\n this.id = id;\n this.message = TexError.processString(message, rest);\n }\n TexError.processString = function (str, args) {\n var parts = str.split(TexError.pattern);\n for (var i = 1, m = parts.length; i < m; i += 2) {\n var c = parts[i].charAt(0);\n if (c >= '0' && c <= '9') {\n parts[i] = args[parseInt(parts[i], 10) - 1];\n if (typeof parts[i] === 'number') {\n parts[i] = parts[i].toString();\n }\n }\n else if (c === '{') {\n c = parts[i].substr(1);\n if (c >= '0' && c <= '9') {\n parts[i] = args[parseInt(parts[i].substr(1, parts[i].length - 2), 10) - 1];\n if (typeof parts[i] === 'number') {\n parts[i] = parts[i].toString();\n }\n }\n else {\n var match = parts[i].match(/^\\{([a-z]+):%(\\d+)\\|(.*)\\}$/);\n if (match) {\n parts[i] = '%' + parts[i];\n }\n }\n }\n if (parts[i] == null) {\n parts[i] = '???';\n }\n }\n return parts.join('');\n };\n TexError.pattern = /%(\\d+|\\{\\d+\\}|\\{[a-z]+:\\%\\d+(?:\\|(?:%\\{\\d+\\}|%.|[^\\}])*)+\\}|.)/g;\n return TexError;\n}());\nexports.default = TexError;\n//# sourceMappingURL=TexError.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParseUtil_js_1 = __importDefault(require(\"./ParseUtil.js\"));\nvar Stack_js_1 = __importDefault(require(\"./Stack.js\"));\nvar TexError_js_1 = __importDefault(require(\"./TexError.js\"));\nvar MmlNode_js_1 = require(\"../../core/MmlTree/MmlNode.js\");\nvar TexParser = (function () {\n function TexParser(_string, env, configuration) {\n var e_1, _a;\n this._string = _string;\n this.configuration = configuration;\n this.macroCount = 0;\n this.i = 0;\n this.currentCS = '';\n var inner = env.hasOwnProperty('isInner');\n var isInner = env['isInner'];\n delete env['isInner'];\n var ENV;\n if (env) {\n ENV = {};\n try {\n for (var _b = __values(Object.keys(env)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n ENV[id] = env[id];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n this.configuration.pushParser(this);\n this.stack = new Stack_js_1.default(this.itemFactory, ENV, inner ? isInner : true);\n this.Parse();\n this.Push(this.itemFactory.create('stop'));\n }\n Object.defineProperty(TexParser.prototype, \"options\", {\n get: function () {\n return this.configuration.options;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TexParser.prototype, \"itemFactory\", {\n get: function () {\n return this.configuration.itemFactory;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TexParser.prototype, \"tags\", {\n get: function () {\n return this.configuration.tags;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TexParser.prototype, \"string\", {\n get: function () {\n return this._string;\n },\n set: function (str) {\n this._string = str;\n },\n enumerable: false,\n configurable: true\n });\n TexParser.prototype.parse = function (kind, input) {\n return this.configuration.handlers.get(kind).parse(input);\n };\n TexParser.prototype.lookup = function (kind, symbol) {\n return this.configuration.handlers.get(kind).lookup(symbol);\n };\n TexParser.prototype.contains = function (kind, symbol) {\n return this.configuration.handlers.get(kind).contains(symbol);\n };\n TexParser.prototype.toString = function () {\n var e_2, _a;\n var str = '';\n try {\n for (var _b = __values(Array.from(this.configuration.handlers.keys())), _c = _b.next(); !_c.done; _c = _b.next()) {\n var config = _c.value;\n str += config + ': ' +\n this.configuration.handlers.get(config) + '\\n';\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return str;\n };\n TexParser.prototype.Parse = function () {\n var c;\n while (this.i < this.string.length) {\n c = this.getCodePoint();\n this.i += c.length;\n this.parse('character', [this, c]);\n }\n };\n TexParser.prototype.Push = function (arg) {\n if (arg instanceof MmlNode_js_1.AbstractMmlNode && arg.isInferred) {\n this.PushAll(arg.childNodes);\n }\n else {\n this.stack.Push(arg);\n }\n };\n TexParser.prototype.PushAll = function (args) {\n var e_3, _a;\n try {\n for (var args_1 = __values(args), args_1_1 = args_1.next(); !args_1_1.done; args_1_1 = args_1.next()) {\n var arg = args_1_1.value;\n this.stack.Push(arg);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (args_1_1 && !args_1_1.done && (_a = args_1.return)) _a.call(args_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n TexParser.prototype.mml = function () {\n if (!this.stack.Top().isKind('mml')) {\n return null;\n }\n var node = this.stack.Top().First;\n this.configuration.popParser();\n return node;\n };\n TexParser.prototype.convertDelimiter = function (c) {\n var symbol = this.lookup('delimiter', c);\n return symbol ? symbol.char : null;\n };\n TexParser.prototype.getCodePoint = function () {\n var code = this.string.codePointAt(this.i);\n return code === undefined ? '' : String.fromCodePoint(code);\n };\n TexParser.prototype.nextIsSpace = function () {\n return !!this.string.charAt(this.i).match(/\\s/);\n };\n TexParser.prototype.GetNext = function () {\n while (this.nextIsSpace()) {\n this.i++;\n }\n return this.getCodePoint();\n };\n TexParser.prototype.GetCS = function () {\n var CS = this.string.slice(this.i).match(/^(([a-z]+) ?|[\\uD800-\\uDBFF].|.)/i);\n if (CS) {\n this.i += CS[0].length;\n return CS[2] || CS[1];\n }\n else {\n this.i++;\n return ' ';\n }\n };\n TexParser.prototype.GetArgument = function (_name, noneOK) {\n switch (this.GetNext()) {\n case '':\n if (!noneOK) {\n throw new TexError_js_1.default('MissingArgFor', 'Missing argument for %1', this.currentCS);\n }\n return null;\n case '}':\n if (!noneOK) {\n throw new TexError_js_1.default('ExtraCloseMissingOpen', 'Extra close brace or missing open brace');\n }\n return null;\n case '\\\\':\n this.i++;\n return '\\\\' + this.GetCS();\n case '{':\n var j = ++this.i, parens = 1;\n while (this.i < this.string.length) {\n switch (this.string.charAt(this.i++)) {\n case '\\\\':\n this.i++;\n break;\n case '{':\n parens++;\n break;\n case '}':\n if (--parens === 0) {\n return this.string.slice(j, this.i - 1);\n }\n break;\n }\n }\n throw new TexError_js_1.default('MissingCloseBrace', 'Missing close brace');\n }\n var c = this.getCodePoint();\n this.i += c.length;\n return c;\n };\n TexParser.prototype.GetBrackets = function (_name, def) {\n if (this.GetNext() !== '[') {\n return def;\n }\n var j = ++this.i, parens = 0;\n while (this.i < this.string.length) {\n switch (this.string.charAt(this.i++)) {\n case '{':\n parens++;\n break;\n case '\\\\':\n this.i++;\n break;\n case '}':\n if (parens-- <= 0) {\n throw new TexError_js_1.default('ExtraCloseLooking', 'Extra close brace while looking for %1', '\\']\\'');\n }\n break;\n case ']':\n if (parens === 0) {\n return this.string.slice(j, this.i - 1);\n }\n break;\n }\n }\n throw new TexError_js_1.default('MissingCloseBracket', 'Could not find closing \\']\\' for argument to %1', this.currentCS);\n };\n TexParser.prototype.GetDelimiter = function (name, braceOK) {\n var c = this.GetNext();\n this.i += c.length;\n if (this.i <= this.string.length) {\n if (c === '\\\\') {\n c += this.GetCS();\n }\n else if (c === '{' && braceOK) {\n this.i--;\n c = this.GetArgument(name).trim();\n }\n if (this.contains('delimiter', c)) {\n return this.convertDelimiter(c);\n }\n }\n throw new TexError_js_1.default('MissingOrUnrecognizedDelim', 'Missing or unrecognized delimiter for %1', this.currentCS);\n };\n TexParser.prototype.GetDimen = function (name) {\n if (this.GetNext() === '{') {\n var dimen = this.GetArgument(name);\n var _a = __read(ParseUtil_js_1.default.matchDimen(dimen), 2), value = _a[0], unit = _a[1];\n if (value) {\n return value + unit;\n }\n }\n else {\n var dimen = this.string.slice(this.i);\n var _b = __read(ParseUtil_js_1.default.matchDimen(dimen, true), 3), value = _b[0], unit = _b[1], length_1 = _b[2];\n if (value) {\n this.i += length_1;\n return value + unit;\n }\n }\n throw new TexError_js_1.default('MissingDimOrUnits', 'Missing dimension or its units for %1', this.currentCS);\n };\n TexParser.prototype.GetUpTo = function (_name, token) {\n while (this.nextIsSpace()) {\n this.i++;\n }\n var j = this.i;\n var parens = 0;\n while (this.i < this.string.length) {\n var k = this.i;\n var c = this.GetNext();\n this.i += c.length;\n switch (c) {\n case '\\\\':\n c += this.GetCS();\n break;\n case '{':\n parens++;\n break;\n case '}':\n if (parens === 0) {\n throw new TexError_js_1.default('ExtraCloseLooking', 'Extra close brace while looking for %1', token);\n }\n parens--;\n break;\n }\n if (parens === 0 && c === token) {\n return this.string.slice(j, k);\n }\n }\n throw new TexError_js_1.default('TokenNotFoundForCommand', 'Could not find %1 for %2', token, this.currentCS);\n };\n TexParser.prototype.ParseArg = function (name) {\n return new TexParser(this.GetArgument(name), this.stack.env, this.configuration).mml();\n };\n TexParser.prototype.ParseUpTo = function (name, token) {\n return new TexParser(this.GetUpTo(name, token), this.stack.env, this.configuration).mml();\n };\n TexParser.prototype.GetDelimiterArg = function (name) {\n var c = ParseUtil_js_1.default.trimSpaces(this.GetArgument(name));\n if (c === '') {\n return null;\n }\n if (this.contains('delimiter', c)) {\n return c;\n }\n throw new TexError_js_1.default('MissingOrUnrecognizedDelim', 'Missing or unrecognized delimiter for %1', this.currentCS);\n };\n TexParser.prototype.GetStar = function () {\n var star = (this.GetNext() === '*');\n if (star) {\n this.i++;\n }\n return star;\n };\n TexParser.prototype.create = function (kind) {\n var _a;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n return (_a = this.configuration.nodeFactory).create.apply(_a, __spreadArray([kind], __read(rest), false));\n };\n return TexParser;\n}());\nexports.default = TexParser;\n//# sourceMappingURL=TexParser.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmsConfiguration = exports.AmsTags = void 0;\nvar Configuration_js_1 = require(\"../Configuration.js\");\nvar AmsItems_js_1 = require(\"./AmsItems.js\");\nvar Tags_js_1 = require(\"../Tags.js\");\nvar AmsMethods_js_1 = require(\"./AmsMethods.js\");\nrequire(\"./AmsMappings.js\");\nvar SymbolMap_js_1 = require(\"../SymbolMap.js\");\nvar AmsTags = (function (_super) {\n __extends(AmsTags, _super);\n function AmsTags() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return AmsTags;\n}(Tags_js_1.AbstractTags));\nexports.AmsTags = AmsTags;\nvar init = function (config) {\n new SymbolMap_js_1.CommandMap(AmsMethods_js_1.NEW_OPS, {}, {});\n config.append(Configuration_js_1.Configuration.local({ handler: { macro: [AmsMethods_js_1.NEW_OPS] },\n priority: -1 }));\n};\nexports.AmsConfiguration = Configuration_js_1.Configuration.create('ams', {\n handler: {\n character: ['AMSmath-operatorLetter'],\n delimiter: ['AMSsymbols-delimiter', 'AMSmath-delimiter'],\n macro: ['AMSsymbols-mathchar0mi', 'AMSsymbols-mathchar0mo',\n 'AMSsymbols-delimiter', 'AMSsymbols-macros',\n 'AMSmath-mathchar0mo', 'AMSmath-macros', 'AMSmath-delimiter'],\n environment: ['AMSmath-environment']\n },\n items: (_a = {},\n _a[AmsItems_js_1.MultlineItem.prototype.kind] = AmsItems_js_1.MultlineItem,\n _a[AmsItems_js_1.FlalignItem.prototype.kind] = AmsItems_js_1.FlalignItem,\n _a),\n tags: { 'ams': AmsTags },\n init: init,\n config: function (_config, jax) {\n if (jax.parseOptions.options.multlineWidth) {\n jax.parseOptions.options.ams.multlineWidth = jax.parseOptions.options.multlineWidth;\n }\n delete jax.parseOptions.options.multlineWidth;\n },\n options: {\n multlineWidth: '',\n ams: {\n multlineWidth: '100%',\n multlineIndent: '1em',\n }\n }\n});\n//# sourceMappingURL=AmsConfiguration.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlalignItem = exports.MultlineItem = void 0;\nvar BaseItems_js_1 = require(\"../base/BaseItems.js\");\nvar ParseUtil_js_1 = __importDefault(require(\"../ParseUtil.js\"));\nvar NodeUtil_js_1 = __importDefault(require(\"../NodeUtil.js\"));\nvar TexError_js_1 = __importDefault(require(\"../TexError.js\"));\nvar TexConstants_js_1 = require(\"../TexConstants.js\");\nvar MultlineItem = (function (_super) {\n __extends(MultlineItem, _super);\n function MultlineItem(factory) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _this = _super.call(this, factory) || this;\n _this.factory.configuration.tags.start('multline', true, args[0]);\n return _this;\n }\n Object.defineProperty(MultlineItem.prototype, \"kind\", {\n get: function () {\n return 'multline';\n },\n enumerable: false,\n configurable: true\n });\n MultlineItem.prototype.EndEntry = function () {\n if (this.table.length) {\n ParseUtil_js_1.default.fixInitialMO(this.factory.configuration, this.nodes);\n }\n var shove = this.getProperty('shove');\n var mtd = this.create('node', 'mtd', this.nodes, shove ? { columnalign: shove } : {});\n this.setProperty('shove', null);\n this.row.push(mtd);\n this.Clear();\n };\n MultlineItem.prototype.EndRow = function () {\n if (this.row.length !== 1) {\n throw new TexError_js_1.default('MultlineRowsOneCol', 'The rows within the %1 environment must have exactly one column', 'multline');\n }\n var row = this.create('node', 'mtr', this.row);\n this.table.push(row);\n this.row = [];\n };\n MultlineItem.prototype.EndTable = function () {\n _super.prototype.EndTable.call(this);\n if (this.table.length) {\n var m = this.table.length - 1, label = -1;\n if (!NodeUtil_js_1.default.getAttribute(NodeUtil_js_1.default.getChildren(this.table[0])[0], 'columnalign')) {\n NodeUtil_js_1.default.setAttribute(NodeUtil_js_1.default.getChildren(this.table[0])[0], 'columnalign', TexConstants_js_1.TexConstant.Align.LEFT);\n }\n if (!NodeUtil_js_1.default.getAttribute(NodeUtil_js_1.default.getChildren(this.table[m])[0], 'columnalign')) {\n NodeUtil_js_1.default.setAttribute(NodeUtil_js_1.default.getChildren(this.table[m])[0], 'columnalign', TexConstants_js_1.TexConstant.Align.RIGHT);\n }\n var tag = this.factory.configuration.tags.getTag();\n if (tag) {\n label = (this.arraydef.side === TexConstants_js_1.TexConstant.Align.LEFT ? 0 : this.table.length - 1);\n var mtr = this.table[label];\n var mlabel = this.create('node', 'mlabeledtr', [tag].concat(NodeUtil_js_1.default.getChildren(mtr)));\n NodeUtil_js_1.default.copyAttributes(mtr, mlabel);\n this.table[label] = mlabel;\n }\n }\n this.factory.configuration.tags.end();\n };\n return MultlineItem;\n}(BaseItems_js_1.ArrayItem));\nexports.MultlineItem = MultlineItem;\nvar FlalignItem = (function (_super) {\n __extends(FlalignItem, _super);\n function FlalignItem(factory, name, numbered, padded, center) {\n var _this = _super.call(this, factory) || this;\n _this.name = name;\n _this.numbered = numbered;\n _this.padded = padded;\n _this.center = center;\n _this.factory.configuration.tags.start(name, numbered, numbered);\n return _this;\n }\n Object.defineProperty(FlalignItem.prototype, \"kind\", {\n get: function () {\n return 'flalign';\n },\n enumerable: false,\n configurable: true\n });\n FlalignItem.prototype.EndEntry = function () {\n _super.prototype.EndEntry.call(this);\n var n = this.getProperty('xalignat');\n if (!n)\n return;\n if (this.row.length > n) {\n throw new TexError_js_1.default('XalignOverflow', 'Extra %1 in row of %2', '&', this.name);\n }\n };\n FlalignItem.prototype.EndRow = function () {\n var cell;\n var row = this.row;\n var n = this.getProperty('xalignat');\n while (row.length < n) {\n row.push(this.create('node', 'mtd'));\n }\n this.row = [];\n if (this.padded) {\n this.row.push(this.create('node', 'mtd'));\n }\n while ((cell = row.shift())) {\n this.row.push(cell);\n cell = row.shift();\n if (cell)\n this.row.push(cell);\n if (row.length || this.padded) {\n this.row.push(this.create('node', 'mtd'));\n }\n }\n if (this.row.length > this.maxrow) {\n this.maxrow = this.row.length;\n }\n _super.prototype.EndRow.call(this);\n var mtr = this.table[this.table.length - 1];\n if (this.getProperty('zeroWidthLabel') && mtr.isKind('mlabeledtr')) {\n var mtd = NodeUtil_js_1.default.getChildren(mtr)[0];\n var side = this.factory.configuration.options['tagSide'];\n var def = __assign({ width: 0 }, (side === 'right' ? { lspace: '-1width' } : {}));\n var mpadded = this.create('node', 'mpadded', NodeUtil_js_1.default.getChildren(mtd), def);\n mtd.setChildren([mpadded]);\n }\n };\n FlalignItem.prototype.EndTable = function () {\n _super.prototype.EndTable.call(this);\n if (this.center) {\n if (this.maxrow <= 2) {\n var def = this.arraydef;\n delete def.width;\n delete this.global.indentalign;\n }\n }\n };\n return FlalignItem;\n}(BaseItems_js_1.EqnArrayItem));\nexports.FlalignItem = FlalignItem;\n//# sourceMappingURL=AmsItems.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AmsMethods_js_1 = require(\"./AmsMethods.js\");\nvar sm = __importStar(require(\"../SymbolMap.js\"));\nvar TexConstants_js_1 = require(\"../TexConstants.js\");\nvar ParseMethods_js_1 = __importDefault(require(\"../ParseMethods.js\"));\nvar ParseUtil_js_1 = __importDefault(require(\"../ParseUtil.js\"));\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar lengths_js_1 = require(\"../../../util/lengths.js\");\nnew sm.CharacterMap('AMSmath-mathchar0mo', ParseMethods_js_1.default.mathchar0mo, {\n iiiint: ['\\u2A0C', { texClass: MmlNode_js_1.TEXCLASS.OP }]\n});\nnew sm.RegExpMap('AMSmath-operatorLetter', AmsMethods_js_1.AmsMethods.operatorLetter, /[-*]/i);\nnew sm.CommandMap('AMSmath-macros', {\n mathring: ['Accent', '02DA'],\n nobreakspace: 'Tilde',\n negmedspace: ['Spacer', lengths_js_1.MATHSPACE.negativemediummathspace],\n negthickspace: ['Spacer', lengths_js_1.MATHSPACE.negativethickmathspace],\n idotsint: ['MultiIntegral', '\\\\int\\\\cdots\\\\int'],\n dddot: ['Accent', '20DB'],\n ddddot: ['Accent', '20DC'],\n sideset: 'SideSet',\n boxed: ['Macro', '\\\\fbox{$\\\\displaystyle{#1}$}', 1],\n tag: 'HandleTag',\n notag: 'HandleNoTag',\n eqref: ['HandleRef', true],\n substack: ['Macro', '\\\\begin{subarray}{c}#1\\\\end{subarray}', 1],\n injlim: ['NamedOp', 'inj lim'],\n projlim: ['NamedOp', 'proj lim'],\n varliminf: ['Macro', '\\\\mathop{\\\\underline{\\\\mmlToken{mi}{lim}}}'],\n varlimsup: ['Macro', '\\\\mathop{\\\\overline{\\\\mmlToken{mi}{lim}}}'],\n varinjlim: ['Macro', '\\\\mathop{\\\\underrightarrow{\\\\mmlToken{mi}{lim}}}'],\n varprojlim: ['Macro', '\\\\mathop{\\\\underleftarrow{\\\\mmlToken{mi}{lim}}}'],\n DeclareMathOperator: 'HandleDeclareOp',\n operatorname: 'HandleOperatorName',\n genfrac: 'Genfrac',\n frac: ['Genfrac', '', '', '', ''],\n tfrac: ['Genfrac', '', '', '', '1'],\n dfrac: ['Genfrac', '', '', '', '0'],\n binom: ['Genfrac', '(', ')', '0', ''],\n tbinom: ['Genfrac', '(', ')', '0', '1'],\n dbinom: ['Genfrac', '(', ')', '0', '0'],\n cfrac: 'CFrac',\n shoveleft: ['HandleShove', TexConstants_js_1.TexConstant.Align.LEFT],\n shoveright: ['HandleShove', TexConstants_js_1.TexConstant.Align.RIGHT],\n xrightarrow: ['xArrow', 0x2192, 5, 10],\n xleftarrow: ['xArrow', 0x2190, 10, 5]\n}, AmsMethods_js_1.AmsMethods);\nnew sm.EnvironmentMap('AMSmath-environment', ParseMethods_js_1.default.environment, {\n 'equation*': ['Equation', null, false],\n 'eqnarray*': ['EqnArray', null, false, true, 'rcl',\n ParseUtil_js_1.default.cols(0, lengths_js_1.MATHSPACE.thickmathspace), '.5em'],\n align: ['EqnArray', null, true, true, 'rl', ParseUtil_js_1.default.cols(0, 2)],\n 'align*': ['EqnArray', null, false, true, 'rl', ParseUtil_js_1.default.cols(0, 2)],\n multline: ['Multline', null, true],\n 'multline*': ['Multline', null, false],\n split: ['EqnArray', null, false, false, 'rl', ParseUtil_js_1.default.cols(0)],\n gather: ['EqnArray', null, true, true, 'c'],\n 'gather*': ['EqnArray', null, false, true, 'c'],\n alignat: ['AlignAt', null, true, true],\n 'alignat*': ['AlignAt', null, false, true],\n alignedat: ['AlignAt', null, false, false],\n aligned: ['AmsEqnArray', null, null, null, 'rl', ParseUtil_js_1.default.cols(0, 2), '.5em', 'D'],\n gathered: ['AmsEqnArray', null, null, null, 'c', null, '.5em', 'D'],\n xalignat: ['XalignAt', null, true, true],\n 'xalignat*': ['XalignAt', null, false, true],\n xxalignat: ['XalignAt', null, false, false],\n flalign: ['FlalignArray', null, true, false, true, 'rlc', 'auto auto fit'],\n 'flalign*': ['FlalignArray', null, false, false, true, 'rlc', 'auto auto fit'],\n subarray: ['Array', null, null, null, null, ParseUtil_js_1.default.cols(0), '0.1em', 'S', 1],\n smallmatrix: ['Array', null, null, null, 'c', ParseUtil_js_1.default.cols(1 / 3),\n '.2em', 'S', 1],\n matrix: ['Array', null, null, null, 'c'],\n pmatrix: ['Array', null, '(', ')', 'c'],\n bmatrix: ['Array', null, '[', ']', 'c'],\n Bmatrix: ['Array', null, '\\\\{', '\\\\}', 'c'],\n vmatrix: ['Array', null, '\\\\vert', '\\\\vert', 'c'],\n Vmatrix: ['Array', null, '\\\\Vert', '\\\\Vert', 'c'],\n cases: ['Array', null, '\\\\{', '.', 'll', null, '.2em', 'T']\n}, AmsMethods_js_1.AmsMethods);\nnew sm.DelimiterMap('AMSmath-delimiter', ParseMethods_js_1.default.delimiter, {\n '\\\\lvert': ['\\u007C', { texClass: MmlNode_js_1.TEXCLASS.OPEN }],\n '\\\\rvert': ['\\u007C', { texClass: MmlNode_js_1.TEXCLASS.CLOSE }],\n '\\\\lVert': ['\\u2016', { texClass: MmlNode_js_1.TEXCLASS.OPEN }],\n '\\\\rVert': ['\\u2016', { texClass: MmlNode_js_1.TEXCLASS.CLOSE }]\n});\nnew sm.CharacterMap('AMSsymbols-mathchar0mi', ParseMethods_js_1.default.mathchar0mi, {\n digamma: '\\u03DD',\n varkappa: '\\u03F0',\n varGamma: ['\\u0393', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varDelta: ['\\u0394', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varTheta: ['\\u0398', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varLambda: ['\\u039B', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varXi: ['\\u039E', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varPi: ['\\u03A0', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varSigma: ['\\u03A3', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varUpsilon: ['\\u03A5', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varPhi: ['\\u03A6', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varPsi: ['\\u03A8', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n varOmega: ['\\u03A9', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n beth: '\\u2136',\n gimel: '\\u2137',\n daleth: '\\u2138',\n backprime: ['\\u2035', { variantForm: true }],\n hslash: '\\u210F',\n varnothing: ['\\u2205', { variantForm: true }],\n blacktriangle: '\\u25B4',\n triangledown: ['\\u25BD', { variantForm: true }],\n blacktriangledown: '\\u25BE',\n square: '\\u25FB',\n Box: '\\u25FB',\n blacksquare: '\\u25FC',\n lozenge: '\\u25CA',\n Diamond: '\\u25CA',\n blacklozenge: '\\u29EB',\n circledS: ['\\u24C8', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n bigstar: '\\u2605',\n sphericalangle: '\\u2222',\n measuredangle: '\\u2221',\n nexists: '\\u2204',\n complement: '\\u2201',\n mho: '\\u2127',\n eth: ['\\u00F0', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n Finv: '\\u2132',\n diagup: '\\u2571',\n Game: '\\u2141',\n diagdown: '\\u2572',\n Bbbk: ['\\u006B',\n { mathvariant: TexConstants_js_1.TexConstant.Variant.DOUBLESTRUCK }],\n yen: '\\u00A5',\n circledR: '\\u00AE',\n checkmark: '\\u2713',\n maltese: '\\u2720'\n});\nnew sm.CharacterMap('AMSsymbols-mathchar0mo', ParseMethods_js_1.default.mathchar0mo, {\n dotplus: '\\u2214',\n ltimes: '\\u22C9',\n smallsetminus: ['\\u2216', { variantForm: true }],\n rtimes: '\\u22CA',\n Cap: '\\u22D2',\n doublecap: '\\u22D2',\n leftthreetimes: '\\u22CB',\n Cup: '\\u22D3',\n doublecup: '\\u22D3',\n rightthreetimes: '\\u22CC',\n barwedge: '\\u22BC',\n curlywedge: '\\u22CF',\n veebar: '\\u22BB',\n curlyvee: '\\u22CE',\n doublebarwedge: '\\u2A5E',\n boxminus: '\\u229F',\n circleddash: '\\u229D',\n boxtimes: '\\u22A0',\n circledast: '\\u229B',\n boxdot: '\\u22A1',\n circledcirc: '\\u229A',\n boxplus: '\\u229E',\n centerdot: ['\\u22C5', { variantForm: true }],\n divideontimes: '\\u22C7',\n intercal: '\\u22BA',\n leqq: '\\u2266',\n geqq: '\\u2267',\n leqslant: '\\u2A7D',\n geqslant: '\\u2A7E',\n eqslantless: '\\u2A95',\n eqslantgtr: '\\u2A96',\n lesssim: '\\u2272',\n gtrsim: '\\u2273',\n lessapprox: '\\u2A85',\n gtrapprox: '\\u2A86',\n approxeq: '\\u224A',\n lessdot: '\\u22D6',\n gtrdot: '\\u22D7',\n lll: '\\u22D8',\n llless: '\\u22D8',\n ggg: '\\u22D9',\n gggtr: '\\u22D9',\n lessgtr: '\\u2276',\n gtrless: '\\u2277',\n lesseqgtr: '\\u22DA',\n gtreqless: '\\u22DB',\n lesseqqgtr: '\\u2A8B',\n gtreqqless: '\\u2A8C',\n doteqdot: '\\u2251',\n Doteq: '\\u2251',\n eqcirc: '\\u2256',\n risingdotseq: '\\u2253',\n circeq: '\\u2257',\n fallingdotseq: '\\u2252',\n triangleq: '\\u225C',\n backsim: '\\u223D',\n thicksim: ['\\u223C', { variantForm: true }],\n backsimeq: '\\u22CD',\n thickapprox: ['\\u2248', { variantForm: true }],\n subseteqq: '\\u2AC5',\n supseteqq: '\\u2AC6',\n Subset: '\\u22D0',\n Supset: '\\u22D1',\n sqsubset: '\\u228F',\n sqsupset: '\\u2290',\n preccurlyeq: '\\u227C',\n succcurlyeq: '\\u227D',\n curlyeqprec: '\\u22DE',\n curlyeqsucc: '\\u22DF',\n precsim: '\\u227E',\n succsim: '\\u227F',\n precapprox: '\\u2AB7',\n succapprox: '\\u2AB8',\n vartriangleleft: '\\u22B2',\n lhd: '\\u22B2',\n vartriangleright: '\\u22B3',\n rhd: '\\u22B3',\n trianglelefteq: '\\u22B4',\n unlhd: '\\u22B4',\n trianglerighteq: '\\u22B5',\n unrhd: '\\u22B5',\n vDash: ['\\u22A8', { variantForm: true }],\n Vdash: '\\u22A9',\n Vvdash: '\\u22AA',\n smallsmile: ['\\u2323', { variantForm: true }],\n shortmid: ['\\u2223', { variantForm: true }],\n smallfrown: ['\\u2322', { variantForm: true }],\n shortparallel: ['\\u2225', { variantForm: true }],\n bumpeq: '\\u224F',\n between: '\\u226C',\n Bumpeq: '\\u224E',\n pitchfork: '\\u22D4',\n varpropto: ['\\u221D', { variantForm: true }],\n backepsilon: '\\u220D',\n blacktriangleleft: '\\u25C2',\n blacktriangleright: '\\u25B8',\n therefore: '\\u2234',\n because: '\\u2235',\n eqsim: '\\u2242',\n vartriangle: ['\\u25B3', { variantForm: true }],\n Join: '\\u22C8',\n nless: '\\u226E',\n ngtr: '\\u226F',\n nleq: '\\u2270',\n ngeq: '\\u2271',\n nleqslant: ['\\u2A87', { variantForm: true }],\n ngeqslant: ['\\u2A88', { variantForm: true }],\n nleqq: ['\\u2270', { variantForm: true }],\n ngeqq: ['\\u2271', { variantForm: true }],\n lneq: '\\u2A87',\n gneq: '\\u2A88',\n lneqq: '\\u2268',\n gneqq: '\\u2269',\n lvertneqq: ['\\u2268', { variantForm: true }],\n gvertneqq: ['\\u2269', { variantForm: true }],\n lnsim: '\\u22E6',\n gnsim: '\\u22E7',\n lnapprox: '\\u2A89',\n gnapprox: '\\u2A8A',\n nprec: '\\u2280',\n nsucc: '\\u2281',\n npreceq: ['\\u22E0', { variantForm: true }],\n nsucceq: ['\\u22E1', { variantForm: true }],\n precneqq: '\\u2AB5',\n succneqq: '\\u2AB6',\n precnsim: '\\u22E8',\n succnsim: '\\u22E9',\n precnapprox: '\\u2AB9',\n succnapprox: '\\u2ABA',\n nsim: '\\u2241',\n ncong: '\\u2247',\n nshortmid: ['\\u2224', { variantForm: true }],\n nshortparallel: ['\\u2226', { variantForm: true }],\n nmid: '\\u2224',\n nparallel: '\\u2226',\n nvdash: '\\u22AC',\n nvDash: '\\u22AD',\n nVdash: '\\u22AE',\n nVDash: '\\u22AF',\n ntriangleleft: '\\u22EA',\n ntriangleright: '\\u22EB',\n ntrianglelefteq: '\\u22EC',\n ntrianglerighteq: '\\u22ED',\n nsubseteq: '\\u2288',\n nsupseteq: '\\u2289',\n nsubseteqq: ['\\u2288', { variantForm: true }],\n nsupseteqq: ['\\u2289', { variantForm: true }],\n subsetneq: '\\u228A',\n supsetneq: '\\u228B',\n varsubsetneq: ['\\u228A', { variantForm: true }],\n varsupsetneq: ['\\u228B', { variantForm: true }],\n subsetneqq: '\\u2ACB',\n supsetneqq: '\\u2ACC',\n varsubsetneqq: ['\\u2ACB', { variantForm: true }],\n varsupsetneqq: ['\\u2ACC', { variantForm: true }],\n leftleftarrows: '\\u21C7',\n rightrightarrows: '\\u21C9',\n leftrightarrows: '\\u21C6',\n rightleftarrows: '\\u21C4',\n Lleftarrow: '\\u21DA',\n Rrightarrow: '\\u21DB',\n twoheadleftarrow: '\\u219E',\n twoheadrightarrow: '\\u21A0',\n leftarrowtail: '\\u21A2',\n rightarrowtail: '\\u21A3',\n looparrowleft: '\\u21AB',\n looparrowright: '\\u21AC',\n leftrightharpoons: '\\u21CB',\n rightleftharpoons: ['\\u21CC', { variantForm: true }],\n curvearrowleft: '\\u21B6',\n curvearrowright: '\\u21B7',\n circlearrowleft: '\\u21BA',\n circlearrowright: '\\u21BB',\n Lsh: '\\u21B0',\n Rsh: '\\u21B1',\n upuparrows: '\\u21C8',\n downdownarrows: '\\u21CA',\n upharpoonleft: '\\u21BF',\n upharpoonright: '\\u21BE',\n downharpoonleft: '\\u21C3',\n restriction: '\\u21BE',\n multimap: '\\u22B8',\n downharpoonright: '\\u21C2',\n leftrightsquigarrow: '\\u21AD',\n rightsquigarrow: '\\u21DD',\n leadsto: '\\u21DD',\n dashrightarrow: '\\u21E2',\n dashleftarrow: '\\u21E0',\n nleftarrow: '\\u219A',\n nrightarrow: '\\u219B',\n nLeftarrow: '\\u21CD',\n nRightarrow: '\\u21CF',\n nleftrightarrow: '\\u21AE',\n nLeftrightarrow: '\\u21CE'\n});\nnew sm.DelimiterMap('AMSsymbols-delimiter', ParseMethods_js_1.default.delimiter, {\n '\\\\ulcorner': '\\u231C',\n '\\\\urcorner': '\\u231D',\n '\\\\llcorner': '\\u231E',\n '\\\\lrcorner': '\\u231F'\n});\nnew sm.CommandMap('AMSsymbols-macros', {\n implies: ['Macro', '\\\\;\\\\Longrightarrow\\\\;'],\n impliedby: ['Macro', '\\\\;\\\\Longleftarrow\\\\;']\n}, AmsMethods_js_1.AmsMethods);\n//# sourceMappingURL=AmsMappings.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NEW_OPS = exports.AmsMethods = void 0;\nvar ParseUtil_js_1 = __importDefault(require(\"../ParseUtil.js\"));\nvar ParseMethods_js_1 = __importDefault(require(\"../ParseMethods.js\"));\nvar NodeUtil_js_1 = __importDefault(require(\"../NodeUtil.js\"));\nvar TexConstants_js_1 = require(\"../TexConstants.js\");\nvar TexParser_js_1 = __importDefault(require(\"../TexParser.js\"));\nvar TexError_js_1 = __importDefault(require(\"../TexError.js\"));\nvar Symbol_js_1 = require(\"../Symbol.js\");\nvar BaseMethods_js_1 = __importDefault(require(\"../base/BaseMethods.js\"));\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nexports.AmsMethods = {};\nexports.AmsMethods.AmsEqnArray = function (parser, begin, numbered, taggable, align, spacing, style) {\n var args = parser.GetBrackets('\\\\begin{' + begin.getName() + '}');\n var array = BaseMethods_js_1.default.EqnArray(parser, begin, numbered, taggable, align, spacing, style);\n return ParseUtil_js_1.default.setArrayAlign(array, args);\n};\nexports.AmsMethods.AlignAt = function (parser, begin, numbered, taggable) {\n var name = begin.getName();\n var n, valign, align = '', spacing = [];\n if (!taggable) {\n valign = parser.GetBrackets('\\\\begin{' + name + '}');\n }\n n = parser.GetArgument('\\\\begin{' + name + '}');\n if (n.match(/[^0-9]/)) {\n throw new TexError_js_1.default('PositiveIntegerArg', 'Argument to %1 must me a positive integer', '\\\\begin{' + name + '}');\n }\n var count = parseInt(n, 10);\n while (count > 0) {\n align += 'rl';\n spacing.push('0em 0em');\n count--;\n }\n var spaceStr = spacing.join(' ');\n if (taggable) {\n return exports.AmsMethods.EqnArray(parser, begin, numbered, taggable, align, spaceStr);\n }\n var array = exports.AmsMethods.EqnArray(parser, begin, numbered, taggable, align, spaceStr);\n return ParseUtil_js_1.default.setArrayAlign(array, valign);\n};\nexports.AmsMethods.Multline = function (parser, begin, numbered) {\n parser.Push(begin);\n ParseUtil_js_1.default.checkEqnEnv(parser);\n var item = parser.itemFactory.create('multline', numbered, parser.stack);\n item.arraydef = {\n displaystyle: true,\n rowspacing: '.5em',\n columnspacing: '100%',\n width: parser.options.ams['multlineWidth'],\n side: parser.options['tagSide'],\n minlabelspacing: parser.options['tagIndent'],\n framespacing: parser.options.ams['multlineIndent'] + ' 0',\n frame: '',\n 'data-width-includes-label': true\n };\n return item;\n};\nexports.AmsMethods.XalignAt = function (parser, begin, numbered, padded) {\n var n = parser.GetArgument('\\\\begin{' + begin.getName() + '}');\n if (n.match(/[^0-9]/)) {\n throw new TexError_js_1.default('PositiveIntegerArg', 'Argument to %1 must me a positive integer', '\\\\begin{' + begin.getName() + '}');\n }\n var align = (padded ? 'crl' : 'rlc');\n var width = (padded ? 'fit auto auto' : 'auto auto fit');\n var item = exports.AmsMethods.FlalignArray(parser, begin, numbered, padded, false, align, width, true);\n item.setProperty('xalignat', 2 * parseInt(n));\n return item;\n};\nexports.AmsMethods.FlalignArray = function (parser, begin, numbered, padded, center, align, width, zeroWidthLabel) {\n if (zeroWidthLabel === void 0) { zeroWidthLabel = false; }\n parser.Push(begin);\n ParseUtil_js_1.default.checkEqnEnv(parser);\n align = align\n .split('')\n .join(' ')\n .replace(/r/g, 'right')\n .replace(/l/g, 'left')\n .replace(/c/g, 'center');\n var item = parser.itemFactory.create('flalign', begin.getName(), numbered, padded, center, parser.stack);\n item.arraydef = {\n width: '100%',\n displaystyle: true,\n columnalign: align,\n columnspacing: '0em',\n columnwidth: width,\n rowspacing: '3pt',\n side: parser.options['tagSide'],\n minlabelspacing: (zeroWidthLabel ? '0' : parser.options['tagIndent']),\n 'data-width-includes-label': true,\n };\n item.setProperty('zeroWidthLabel', zeroWidthLabel);\n return item;\n};\nexports.NEW_OPS = 'ams-declare-ops';\nexports.AmsMethods.HandleDeclareOp = function (parser, name) {\n var star = (parser.GetStar() ? '*' : '');\n var cs = ParseUtil_js_1.default.trimSpaces(parser.GetArgument(name));\n if (cs.charAt(0) === '\\\\') {\n cs = cs.substr(1);\n }\n var op = parser.GetArgument(name);\n parser.configuration.handlers.retrieve(exports.NEW_OPS).\n add(cs, new Symbol_js_1.Macro(cs, exports.AmsMethods.Macro, [\"\\\\operatorname\".concat(star, \"{\").concat(op, \"}\")]));\n};\nexports.AmsMethods.HandleOperatorName = function (parser, name) {\n var star = parser.GetStar();\n var op = ParseUtil_js_1.default.trimSpaces(parser.GetArgument(name));\n var mml = new TexParser_js_1.default(op, __assign(__assign({}, parser.stack.env), { font: TexConstants_js_1.TexConstant.Variant.NORMAL, multiLetterIdentifiers: /^[-*a-z]+/i, operatorLetters: true }), parser.configuration).mml();\n if (!mml.isKind('mi')) {\n mml = parser.create('node', 'TeXAtom', [mml]);\n }\n NodeUtil_js_1.default.setProperties(mml, { movesupsub: star, movablelimits: true, texClass: MmlNode_js_1.TEXCLASS.OP });\n if (!star) {\n var c = parser.GetNext(), i = parser.i;\n if (c === '\\\\' && ++parser.i && parser.GetCS() !== 'limits') {\n parser.i = i;\n }\n }\n parser.Push(mml);\n};\nexports.AmsMethods.SideSet = function (parser, name) {\n var _a = __read(splitSideSet(parser.ParseArg(name)), 2), preScripts = _a[0], preRest = _a[1];\n var _b = __read(splitSideSet(parser.ParseArg(name)), 2), postScripts = _b[0], postRest = _b[1];\n var base = parser.ParseArg(name);\n var mml = base;\n if (preScripts) {\n if (preRest) {\n preScripts.replaceChild(parser.create('node', 'mphantom', [\n parser.create('node', 'mpadded', [ParseUtil_js_1.default.copyNode(base, parser)], { width: 0 })\n ]), NodeUtil_js_1.default.getChildAt(preScripts, 0));\n }\n else {\n mml = parser.create('node', 'mmultiscripts', [base]);\n if (postScripts) {\n NodeUtil_js_1.default.appendChildren(mml, [\n NodeUtil_js_1.default.getChildAt(postScripts, 1) || parser.create('node', 'none'),\n NodeUtil_js_1.default.getChildAt(postScripts, 2) || parser.create('node', 'none')\n ]);\n }\n NodeUtil_js_1.default.setProperty(mml, 'scriptalign', 'left');\n NodeUtil_js_1.default.appendChildren(mml, [\n parser.create('node', 'mprescripts'),\n NodeUtil_js_1.default.getChildAt(preScripts, 1) || parser.create('node', 'none'),\n NodeUtil_js_1.default.getChildAt(preScripts, 2) || parser.create('node', 'none')\n ]);\n }\n }\n if (postScripts && mml === base) {\n postScripts.replaceChild(base, NodeUtil_js_1.default.getChildAt(postScripts, 0));\n mml = postScripts;\n }\n var mrow = parser.create('node', 'TeXAtom', [], { texClass: MmlNode_js_1.TEXCLASS.OP, movesupsub: true, movablelimits: true });\n if (preRest) {\n preScripts && mrow.appendChild(preScripts);\n mrow.appendChild(preRest);\n }\n mrow.appendChild(mml);\n postRest && mrow.appendChild(postRest);\n parser.Push(mrow);\n};\nfunction splitSideSet(mml) {\n if (!mml || (mml.isInferred && mml.childNodes.length === 0))\n return [null, null];\n if (mml.isKind('msubsup') && checkSideSetBase(mml))\n return [mml, null];\n var child = NodeUtil_js_1.default.getChildAt(mml, 0);\n if (!(mml.isInferred && child && checkSideSetBase(child)))\n return [null, mml];\n mml.childNodes.splice(0, 1);\n return [child, mml];\n}\nfunction checkSideSetBase(mml) {\n var base = mml.childNodes[0];\n return base && base.isKind('mi') && base.getText() === '';\n}\nexports.AmsMethods.operatorLetter = function (parser, c) {\n return parser.stack.env.operatorLetters ? ParseMethods_js_1.default.variable(parser, c) : false;\n};\nexports.AmsMethods.MultiIntegral = function (parser, name, integral) {\n var next = parser.GetNext();\n if (next === '\\\\') {\n var i = parser.i;\n next = parser.GetArgument(name);\n parser.i = i;\n if (next === '\\\\limits') {\n if (name === '\\\\idotsint') {\n integral = '\\\\!\\\\!\\\\mathop{\\\\,\\\\,' + integral + '}';\n }\n else {\n integral = '\\\\!\\\\!\\\\!\\\\mathop{\\\\,\\\\,\\\\,' + integral + '}';\n }\n }\n }\n parser.string = integral + ' ' + parser.string.slice(parser.i);\n parser.i = 0;\n};\nexports.AmsMethods.xArrow = function (parser, name, chr, l, r) {\n var def = { width: '+' + ParseUtil_js_1.default.Em((l + r) / 18), lspace: ParseUtil_js_1.default.Em(l / 18) };\n var bot = parser.GetBrackets(name);\n var first = parser.ParseArg(name);\n var dstrut = parser.create('node', 'mspace', [], { depth: '.25em' });\n var arrow = parser.create('token', 'mo', { stretchy: true, texClass: MmlNode_js_1.TEXCLASS.REL }, String.fromCodePoint(chr));\n arrow = parser.create('node', 'mstyle', [arrow], { scriptlevel: 0 });\n var mml = parser.create('node', 'munderover', [arrow]);\n var mpadded = parser.create('node', 'mpadded', [first, dstrut], def);\n NodeUtil_js_1.default.setAttribute(mpadded, 'voffset', '-.2em');\n NodeUtil_js_1.default.setAttribute(mpadded, 'height', '-.2em');\n NodeUtil_js_1.default.setChild(mml, mml.over, mpadded);\n if (bot) {\n var bottom = new TexParser_js_1.default(bot, parser.stack.env, parser.configuration).mml();\n var bstrut = parser.create('node', 'mspace', [], { height: '.75em' });\n mpadded = parser.create('node', 'mpadded', [bottom, bstrut], def);\n NodeUtil_js_1.default.setAttribute(mpadded, 'voffset', '.15em');\n NodeUtil_js_1.default.setAttribute(mpadded, 'depth', '-.15em');\n NodeUtil_js_1.default.setChild(mml, mml.under, mpadded);\n }\n NodeUtil_js_1.default.setProperty(mml, 'subsupOK', true);\n parser.Push(mml);\n};\nexports.AmsMethods.HandleShove = function (parser, _name, shove) {\n var top = parser.stack.Top();\n if (top.kind !== 'multline') {\n throw new TexError_js_1.default('CommandOnlyAllowedInEnv', '%1 only allowed in %2 environment', parser.currentCS, 'multline');\n }\n if (top.Size()) {\n throw new TexError_js_1.default('CommandAtTheBeginingOfLine', '%1 must come at the beginning of the line', parser.currentCS);\n }\n top.setProperty('shove', shove);\n};\nexports.AmsMethods.CFrac = function (parser, name) {\n var lr = ParseUtil_js_1.default.trimSpaces(parser.GetBrackets(name, ''));\n var num = parser.GetArgument(name);\n var den = parser.GetArgument(name);\n var lrMap = {\n l: TexConstants_js_1.TexConstant.Align.LEFT, r: TexConstants_js_1.TexConstant.Align.RIGHT, '': ''\n };\n var numNode = new TexParser_js_1.default('\\\\strut\\\\textstyle{' + num + '}', parser.stack.env, parser.configuration).mml();\n var denNode = new TexParser_js_1.default('\\\\strut\\\\textstyle{' + den + '}', parser.stack.env, parser.configuration).mml();\n var frac = parser.create('node', 'mfrac', [numNode, denNode]);\n lr = lrMap[lr];\n if (lr == null) {\n throw new TexError_js_1.default('IllegalAlign', 'Illegal alignment specified in %1', parser.currentCS);\n }\n if (lr) {\n NodeUtil_js_1.default.setProperties(frac, { numalign: lr, denomalign: lr });\n }\n parser.Push(frac);\n};\nexports.AmsMethods.Genfrac = function (parser, name, left, right, thick, style) {\n if (left == null) {\n left = parser.GetDelimiterArg(name);\n }\n if (right == null) {\n right = parser.GetDelimiterArg(name);\n }\n if (thick == null) {\n thick = parser.GetArgument(name);\n }\n if (style == null) {\n style = ParseUtil_js_1.default.trimSpaces(parser.GetArgument(name));\n }\n var num = parser.ParseArg(name);\n var den = parser.ParseArg(name);\n var frac = parser.create('node', 'mfrac', [num, den]);\n if (thick !== '') {\n NodeUtil_js_1.default.setAttribute(frac, 'linethickness', thick);\n }\n if (left || right) {\n NodeUtil_js_1.default.setProperty(frac, 'withDelims', true);\n frac = ParseUtil_js_1.default.fixedFence(parser.configuration, left, frac, right);\n }\n if (style !== '') {\n var styleDigit = parseInt(style, 10);\n var styleAlpha = ['D', 'T', 'S', 'SS'][styleDigit];\n if (styleAlpha == null) {\n throw new TexError_js_1.default('BadMathStyleFor', 'Bad math style for %1', parser.currentCS);\n }\n frac = parser.create('node', 'mstyle', [frac]);\n if (styleAlpha === 'D') {\n NodeUtil_js_1.default.setProperties(frac, { displaystyle: true, scriptlevel: 0 });\n }\n else {\n NodeUtil_js_1.default.setProperties(frac, { displaystyle: false,\n scriptlevel: styleDigit - 1 });\n }\n }\n parser.Push(frac);\n};\nexports.AmsMethods.HandleTag = function (parser, name) {\n if (!parser.tags.currentTag.taggable && parser.tags.env) {\n throw new TexError_js_1.default('CommandNotAllowedInEnv', '%1 not allowed in %2 environment', parser.currentCS, parser.tags.env);\n }\n if (parser.tags.currentTag.tag) {\n throw new TexError_js_1.default('MultipleCommand', 'Multiple %1', parser.currentCS);\n }\n var star = parser.GetStar();\n var tagId = ParseUtil_js_1.default.trimSpaces(parser.GetArgument(name));\n parser.tags.tag(tagId, star);\n};\nexports.AmsMethods.HandleNoTag = BaseMethods_js_1.default.HandleNoTag;\nexports.AmsMethods.HandleRef = BaseMethods_js_1.default.HandleRef;\nexports.AmsMethods.Macro = BaseMethods_js_1.default.Macro;\nexports.AmsMethods.Accent = BaseMethods_js_1.default.Accent;\nexports.AmsMethods.Tilde = BaseMethods_js_1.default.Tilde;\nexports.AmsMethods.Array = BaseMethods_js_1.default.Array;\nexports.AmsMethods.Spacer = BaseMethods_js_1.default.Spacer;\nexports.AmsMethods.NamedOp = BaseMethods_js_1.default.NamedOp;\nexports.AmsMethods.EqnArray = BaseMethods_js_1.default.EqnArray;\nexports.AmsMethods.Equation = BaseMethods_js_1.default.Equation;\n//# sourceMappingURL=AmsMethods.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseConfiguration = exports.BaseTags = exports.Other = void 0;\nvar Configuration_js_1 = require(\"../Configuration.js\");\nvar MapHandler_js_1 = require(\"../MapHandler.js\");\nvar TexError_js_1 = __importDefault(require(\"../TexError.js\"));\nvar NodeUtil_js_1 = __importDefault(require(\"../NodeUtil.js\"));\nvar SymbolMap_js_1 = require(\"../SymbolMap.js\");\nvar bitem = __importStar(require(\"./BaseItems.js\"));\nvar Tags_js_1 = require(\"../Tags.js\");\nrequire(\"./BaseMappings.js\");\nvar OperatorDictionary_js_1 = require(\"../../../core/MmlTree/OperatorDictionary.js\");\nnew SymbolMap_js_1.CharacterMap('remap', null, {\n '-': '\\u2212',\n '*': '\\u2217',\n '`': '\\u2018'\n});\nfunction Other(parser, char) {\n var font = parser.stack.env['font'];\n var def = font ?\n { mathvariant: parser.stack.env['font'] } : {};\n var remap = MapHandler_js_1.MapHandler.getMap('remap').lookup(char);\n var range = (0, OperatorDictionary_js_1.getRange)(char);\n var type = (range ? range[3] : 'mo');\n var mo = parser.create('token', type, def, (remap ? remap.char : char));\n range[4] && mo.attributes.set('mathvariant', range[4]);\n if (type === 'mo') {\n NodeUtil_js_1.default.setProperty(mo, 'fixStretchy', true);\n parser.configuration.addNode('fixStretchy', mo);\n }\n parser.Push(mo);\n}\nexports.Other = Other;\nfunction csUndefined(_parser, name) {\n throw new TexError_js_1.default('UndefinedControlSequence', 'Undefined control sequence %1', '\\\\' + name);\n}\nfunction envUndefined(_parser, env) {\n throw new TexError_js_1.default('UnknownEnv', 'Unknown environment \\'%1\\'', env);\n}\nfunction filterNonscript(_a) {\n var e_1, _b;\n var data = _a.data;\n try {\n for (var _c = __values(data.getList('nonscript')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var mml = _d.value;\n if (mml.attributes.get('scriptlevel') > 0) {\n var parent_1 = mml.parent;\n parent_1.childNodes.splice(parent_1.childIndex(mml), 1);\n data.removeFromList(mml.kind, [mml]);\n if (mml.isKind('mrow')) {\n var mstyle = mml.childNodes[0];\n data.removeFromList('mstyle', [mstyle]);\n data.removeFromList('mspace', mstyle.childNodes[0].childNodes);\n }\n }\n else if (mml.isKind('mrow')) {\n mml.parent.replaceChild(mml.childNodes[0], mml);\n data.removeFromList('mrow', [mml]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\nvar BaseTags = (function (_super) {\n __extends(BaseTags, _super);\n function BaseTags() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BaseTags;\n}(Tags_js_1.AbstractTags));\nexports.BaseTags = BaseTags;\nexports.BaseConfiguration = Configuration_js_1.Configuration.create('base', {\n handler: {\n character: ['command', 'special', 'letter', 'digit'],\n delimiter: ['delimiter'],\n macro: ['delimiter', 'macros', 'mathchar0mi', 'mathchar0mo', 'mathchar7'],\n environment: ['environment']\n },\n fallback: {\n character: Other,\n macro: csUndefined,\n environment: envUndefined\n },\n items: (_a = {},\n _a[bitem.StartItem.prototype.kind] = bitem.StartItem,\n _a[bitem.StopItem.prototype.kind] = bitem.StopItem,\n _a[bitem.OpenItem.prototype.kind] = bitem.OpenItem,\n _a[bitem.CloseItem.prototype.kind] = bitem.CloseItem,\n _a[bitem.PrimeItem.prototype.kind] = bitem.PrimeItem,\n _a[bitem.SubsupItem.prototype.kind] = bitem.SubsupItem,\n _a[bitem.OverItem.prototype.kind] = bitem.OverItem,\n _a[bitem.LeftItem.prototype.kind] = bitem.LeftItem,\n _a[bitem.Middle.prototype.kind] = bitem.Middle,\n _a[bitem.RightItem.prototype.kind] = bitem.RightItem,\n _a[bitem.BeginItem.prototype.kind] = bitem.BeginItem,\n _a[bitem.EndItem.prototype.kind] = bitem.EndItem,\n _a[bitem.StyleItem.prototype.kind] = bitem.StyleItem,\n _a[bitem.PositionItem.prototype.kind] = bitem.PositionItem,\n _a[bitem.CellItem.prototype.kind] = bitem.CellItem,\n _a[bitem.MmlItem.prototype.kind] = bitem.MmlItem,\n _a[bitem.FnItem.prototype.kind] = bitem.FnItem,\n _a[bitem.NotItem.prototype.kind] = bitem.NotItem,\n _a[bitem.NonscriptItem.prototype.kind] = bitem.NonscriptItem,\n _a[bitem.DotsItem.prototype.kind] = bitem.DotsItem,\n _a[bitem.ArrayItem.prototype.kind] = bitem.ArrayItem,\n _a[bitem.EqnArrayItem.prototype.kind] = bitem.EqnArrayItem,\n _a[bitem.EquationItem.prototype.kind] = bitem.EquationItem,\n _a),\n options: {\n maxMacros: 1000,\n baseURL: (typeof (document) === 'undefined' ||\n document.getElementsByTagName('base').length === 0) ?\n '' : String(document.location).replace(/#.*$/, '')\n },\n tags: {\n base: BaseTags\n },\n postprocessors: [[filterNonscript, -4]]\n});\n//# sourceMappingURL=BaseConfiguration.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EquationItem = exports.EqnArrayItem = exports.ArrayItem = exports.DotsItem = exports.NonscriptItem = exports.NotItem = exports.FnItem = exports.MmlItem = exports.CellItem = exports.PositionItem = exports.StyleItem = exports.EndItem = exports.BeginItem = exports.RightItem = exports.Middle = exports.LeftItem = exports.OverItem = exports.SubsupItem = exports.PrimeItem = exports.CloseItem = exports.OpenItem = exports.StopItem = exports.StartItem = void 0;\nvar MapHandler_js_1 = require(\"../MapHandler.js\");\nvar Entities_js_1 = require(\"../../../util/Entities.js\");\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar TexError_js_1 = __importDefault(require(\"../TexError.js\"));\nvar ParseUtil_js_1 = __importDefault(require(\"../ParseUtil.js\"));\nvar NodeUtil_js_1 = __importDefault(require(\"../NodeUtil.js\"));\nvar StackItem_js_1 = require(\"../StackItem.js\");\nvar StartItem = (function (_super) {\n __extends(StartItem, _super);\n function StartItem(factory, global) {\n var _this = _super.call(this, factory) || this;\n _this.global = global;\n return _this;\n }\n Object.defineProperty(StartItem.prototype, \"kind\", {\n get: function () {\n return 'start';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StartItem.prototype, \"isOpen\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n StartItem.prototype.checkItem = function (item) {\n if (item.isKind('stop')) {\n var node = this.toMml();\n if (!this.global.isInner) {\n node = this.factory.configuration.tags.finalize(node, this.env);\n }\n return [[this.factory.create('mml', node)], true];\n }\n return _super.prototype.checkItem.call(this, item);\n };\n return StartItem;\n}(StackItem_js_1.BaseItem));\nexports.StartItem = StartItem;\nvar StopItem = (function (_super) {\n __extends(StopItem, _super);\n function StopItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(StopItem.prototype, \"kind\", {\n get: function () {\n return 'stop';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StopItem.prototype, \"isClose\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n return StopItem;\n}(StackItem_js_1.BaseItem));\nexports.StopItem = StopItem;\nvar OpenItem = (function (_super) {\n __extends(OpenItem, _super);\n function OpenItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(OpenItem.prototype, \"kind\", {\n get: function () {\n return 'open';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OpenItem.prototype, \"isOpen\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n OpenItem.prototype.checkItem = function (item) {\n if (item.isKind('close')) {\n var mml = this.toMml();\n var node = this.create('node', 'TeXAtom', [mml]);\n return [[this.factory.create('mml', node)], true];\n }\n return _super.prototype.checkItem.call(this, item);\n };\n OpenItem.errors = Object.assign(Object.create(StackItem_js_1.BaseItem.errors), {\n 'stop': ['ExtraOpenMissingClose',\n 'Extra open brace or missing close brace']\n });\n return OpenItem;\n}(StackItem_js_1.BaseItem));\nexports.OpenItem = OpenItem;\nvar CloseItem = (function (_super) {\n __extends(CloseItem, _super);\n function CloseItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(CloseItem.prototype, \"kind\", {\n get: function () {\n return 'close';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CloseItem.prototype, \"isClose\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n return CloseItem;\n}(StackItem_js_1.BaseItem));\nexports.CloseItem = CloseItem;\nvar PrimeItem = (function (_super) {\n __extends(PrimeItem, _super);\n function PrimeItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(PrimeItem.prototype, \"kind\", {\n get: function () {\n return 'prime';\n },\n enumerable: false,\n configurable: true\n });\n PrimeItem.prototype.checkItem = function (item) {\n var _a = __read(this.Peek(2), 2), top0 = _a[0], top1 = _a[1];\n if (!NodeUtil_js_1.default.isType(top0, 'msubsup') || NodeUtil_js_1.default.isType(top0, 'msup')) {\n var node = this.create('node', 'msup', [top0, top1]);\n return [[node, item], true];\n }\n NodeUtil_js_1.default.setChild(top0, top0.sup, top1);\n return [[top0, item], true];\n };\n return PrimeItem;\n}(StackItem_js_1.BaseItem));\nexports.PrimeItem = PrimeItem;\nvar SubsupItem = (function (_super) {\n __extends(SubsupItem, _super);\n function SubsupItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SubsupItem.prototype, \"kind\", {\n get: function () {\n return 'subsup';\n },\n enumerable: false,\n configurable: true\n });\n SubsupItem.prototype.checkItem = function (item) {\n if (item.isKind('open') || item.isKind('left')) {\n return StackItem_js_1.BaseItem.success;\n }\n var top = this.First;\n var position = this.getProperty('position');\n if (item.isKind('mml')) {\n if (this.getProperty('primes')) {\n if (position !== 2) {\n NodeUtil_js_1.default.setChild(top, 2, this.getProperty('primes'));\n }\n else {\n NodeUtil_js_1.default.setProperty(this.getProperty('primes'), 'variantForm', true);\n var node = this.create('node', 'mrow', [this.getProperty('primes'), item.First]);\n item.First = node;\n }\n }\n NodeUtil_js_1.default.setChild(top, position, item.First);\n if (this.getProperty('movesupsub') != null) {\n NodeUtil_js_1.default.setProperty(top, 'movesupsub', this.getProperty('movesupsub'));\n }\n var result = this.factory.create('mml', top);\n return [[result], true];\n }\n if (_super.prototype.checkItem.call(this, item)[1]) {\n var error = this.getErrors(['', 'sub', 'sup'][position]);\n throw new (TexError_js_1.default.bind.apply(TexError_js_1.default, __spreadArray([void 0, error[0], error[1]], __read(error.splice(2)), false)))();\n }\n return null;\n };\n SubsupItem.errors = Object.assign(Object.create(StackItem_js_1.BaseItem.errors), {\n 'stop': ['MissingScript',\n 'Missing superscript or subscript argument'],\n 'sup': ['MissingOpenForSup',\n 'Missing open brace for superscript'],\n 'sub': ['MissingOpenForSub',\n 'Missing open brace for subscript']\n });\n return SubsupItem;\n}(StackItem_js_1.BaseItem));\nexports.SubsupItem = SubsupItem;\nvar OverItem = (function (_super) {\n __extends(OverItem, _super);\n function OverItem(factory) {\n var _this = _super.call(this, factory) || this;\n _this.setProperty('name', '\\\\over');\n return _this;\n }\n Object.defineProperty(OverItem.prototype, \"kind\", {\n get: function () {\n return 'over';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OverItem.prototype, \"isClose\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n OverItem.prototype.checkItem = function (item) {\n if (item.isKind('over')) {\n throw new TexError_js_1.default('AmbiguousUseOf', 'Ambiguous use of %1', item.getName());\n }\n if (item.isClose) {\n var mml = this.create('node', 'mfrac', [this.getProperty('num'), this.toMml(false)]);\n if (this.getProperty('thickness') != null) {\n NodeUtil_js_1.default.setAttribute(mml, 'linethickness', this.getProperty('thickness'));\n }\n if (this.getProperty('open') || this.getProperty('close')) {\n NodeUtil_js_1.default.setProperty(mml, 'withDelims', true);\n mml = ParseUtil_js_1.default.fixedFence(this.factory.configuration, this.getProperty('open'), mml, this.getProperty('close'));\n }\n return [[this.factory.create('mml', mml), item], true];\n }\n return _super.prototype.checkItem.call(this, item);\n };\n OverItem.prototype.toString = function () {\n return 'over[' + this.getProperty('num') +\n ' / ' + this.nodes.join('; ') + ']';\n };\n return OverItem;\n}(StackItem_js_1.BaseItem));\nexports.OverItem = OverItem;\nvar LeftItem = (function (_super) {\n __extends(LeftItem, _super);\n function LeftItem(factory, delim) {\n var _this = _super.call(this, factory) || this;\n _this.setProperty('delim', delim);\n return _this;\n }\n Object.defineProperty(LeftItem.prototype, \"kind\", {\n get: function () {\n return 'left';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LeftItem.prototype, \"isOpen\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n LeftItem.prototype.checkItem = function (item) {\n if (item.isKind('right')) {\n return [[this.factory.create('mml', ParseUtil_js_1.default.fenced(this.factory.configuration, this.getProperty('delim'), this.toMml(), item.getProperty('delim'), '', item.getProperty('color')))], true];\n }\n if (item.isKind('middle')) {\n var def = { stretchy: true };\n if (item.getProperty('color')) {\n def.mathcolor = item.getProperty('color');\n }\n this.Push(this.create('node', 'TeXAtom', [], { texClass: MmlNode_js_1.TEXCLASS.CLOSE }), this.create('token', 'mo', def, item.getProperty('delim')), this.create('node', 'TeXAtom', [], { texClass: MmlNode_js_1.TEXCLASS.OPEN }));\n this.env = {};\n return [[this], true];\n }\n return _super.prototype.checkItem.call(this, item);\n };\n LeftItem.errors = Object.assign(Object.create(StackItem_js_1.BaseItem.errors), {\n 'stop': ['ExtraLeftMissingRight',\n 'Extra \\\\left or missing \\\\right']\n });\n return LeftItem;\n}(StackItem_js_1.BaseItem));\nexports.LeftItem = LeftItem;\nvar Middle = (function (_super) {\n __extends(Middle, _super);\n function Middle(factory, delim, color) {\n var _this = _super.call(this, factory) || this;\n _this.setProperty('delim', delim);\n color && _this.setProperty('color', color);\n return _this;\n }\n Object.defineProperty(Middle.prototype, \"kind\", {\n get: function () {\n return 'middle';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Middle.prototype, \"isClose\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n return Middle;\n}(StackItem_js_1.BaseItem));\nexports.Middle = Middle;\nvar RightItem = (function (_super) {\n __extends(RightItem, _super);\n function RightItem(factory, delim, color) {\n var _this = _super.call(this, factory) || this;\n _this.setProperty('delim', delim);\n color && _this.setProperty('color', color);\n return _this;\n }\n Object.defineProperty(RightItem.prototype, \"kind\", {\n get: function () {\n return 'right';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RightItem.prototype, \"isClose\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n return RightItem;\n}(StackItem_js_1.BaseItem));\nexports.RightItem = RightItem;\nvar BeginItem = (function (_super) {\n __extends(BeginItem, _super);\n function BeginItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(BeginItem.prototype, \"kind\", {\n get: function () {\n return 'begin';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BeginItem.prototype, \"isOpen\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n BeginItem.prototype.checkItem = function (item) {\n if (item.isKind('end')) {\n if (item.getName() !== this.getName()) {\n throw new TexError_js_1.default('EnvBadEnd', '\\\\begin{%1} ended with \\\\end{%2}', this.getName(), item.getName());\n }\n if (!this.getProperty('end')) {\n return [[this.factory.create('mml', this.toMml())], true];\n }\n return StackItem_js_1.BaseItem.fail;\n }\n if (item.isKind('stop')) {\n throw new TexError_js_1.default('EnvMissingEnd', 'Missing \\\\end{%1}', this.getName());\n }\n return _super.prototype.checkItem.call(this, item);\n };\n return BeginItem;\n}(StackItem_js_1.BaseItem));\nexports.BeginItem = BeginItem;\nvar EndItem = (function (_super) {\n __extends(EndItem, _super);\n function EndItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(EndItem.prototype, \"kind\", {\n get: function () {\n return 'end';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EndItem.prototype, \"isClose\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n return EndItem;\n}(StackItem_js_1.BaseItem));\nexports.EndItem = EndItem;\nvar StyleItem = (function (_super) {\n __extends(StyleItem, _super);\n function StyleItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(StyleItem.prototype, \"kind\", {\n get: function () {\n return 'style';\n },\n enumerable: false,\n configurable: true\n });\n StyleItem.prototype.checkItem = function (item) {\n if (!item.isClose) {\n return _super.prototype.checkItem.call(this, item);\n }\n var mml = this.create('node', 'mstyle', this.nodes, this.getProperty('styles'));\n return [[this.factory.create('mml', mml), item], true];\n };\n return StyleItem;\n}(StackItem_js_1.BaseItem));\nexports.StyleItem = StyleItem;\nvar PositionItem = (function (_super) {\n __extends(PositionItem, _super);\n function PositionItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(PositionItem.prototype, \"kind\", {\n get: function () {\n return 'position';\n },\n enumerable: false,\n configurable: true\n });\n PositionItem.prototype.checkItem = function (item) {\n if (item.isClose) {\n throw new TexError_js_1.default('MissingBoxFor', 'Missing box for %1', this.getName());\n }\n if (item.isFinal) {\n var mml = item.toMml();\n switch (this.getProperty('move')) {\n case 'vertical':\n mml = this.create('node', 'mpadded', [mml], { height: this.getProperty('dh'),\n depth: this.getProperty('dd'),\n voffset: this.getProperty('dh') });\n return [[this.factory.create('mml', mml)], true];\n case 'horizontal':\n return [[this.factory.create('mml', this.getProperty('left')), item,\n this.factory.create('mml', this.getProperty('right'))], true];\n }\n }\n return _super.prototype.checkItem.call(this, item);\n };\n return PositionItem;\n}(StackItem_js_1.BaseItem));\nexports.PositionItem = PositionItem;\nvar CellItem = (function (_super) {\n __extends(CellItem, _super);\n function CellItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(CellItem.prototype, \"kind\", {\n get: function () {\n return 'cell';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CellItem.prototype, \"isClose\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n return CellItem;\n}(StackItem_js_1.BaseItem));\nexports.CellItem = CellItem;\nvar MmlItem = (function (_super) {\n __extends(MmlItem, _super);\n function MmlItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MmlItem.prototype, \"isFinal\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MmlItem.prototype, \"kind\", {\n get: function () {\n return 'mml';\n },\n enumerable: false,\n configurable: true\n });\n return MmlItem;\n}(StackItem_js_1.BaseItem));\nexports.MmlItem = MmlItem;\nvar FnItem = (function (_super) {\n __extends(FnItem, _super);\n function FnItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(FnItem.prototype, \"kind\", {\n get: function () {\n return 'fn';\n },\n enumerable: false,\n configurable: true\n });\n FnItem.prototype.checkItem = function (item) {\n var top = this.First;\n if (top) {\n if (item.isOpen) {\n return StackItem_js_1.BaseItem.success;\n }\n if (!item.isKind('fn')) {\n var mml = item.First;\n if (!item.isKind('mml') || !mml) {\n return [[top, item], true];\n }\n if ((NodeUtil_js_1.default.isType(mml, 'mstyle') && mml.childNodes.length &&\n NodeUtil_js_1.default.isType(mml.childNodes[0].childNodes[0], 'mspace')) ||\n NodeUtil_js_1.default.isType(mml, 'mspace')) {\n return [[top, item], true];\n }\n if (NodeUtil_js_1.default.isEmbellished(mml)) {\n mml = NodeUtil_js_1.default.getCoreMO(mml);\n }\n var form = NodeUtil_js_1.default.getForm(mml);\n if (form != null && [0, 0, 1, 1, 0, 1, 1, 0, 0, 0][form[2]]) {\n return [[top, item], true];\n }\n }\n var node = this.create('token', 'mo', { texClass: MmlNode_js_1.TEXCLASS.NONE }, Entities_js_1.entities.ApplyFunction);\n return [[top, node, item], true];\n }\n return _super.prototype.checkItem.apply(this, arguments);\n };\n return FnItem;\n}(StackItem_js_1.BaseItem));\nexports.FnItem = FnItem;\nvar NotItem = (function (_super) {\n __extends(NotItem, _super);\n function NotItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.remap = MapHandler_js_1.MapHandler.getMap('not_remap');\n return _this;\n }\n Object.defineProperty(NotItem.prototype, \"kind\", {\n get: function () {\n return 'not';\n },\n enumerable: false,\n configurable: true\n });\n NotItem.prototype.checkItem = function (item) {\n var mml;\n var c;\n var textNode;\n if (item.isKind('open') || item.isKind('left')) {\n return StackItem_js_1.BaseItem.success;\n }\n if (item.isKind('mml') &&\n (NodeUtil_js_1.default.isType(item.First, 'mo') || NodeUtil_js_1.default.isType(item.First, 'mi') ||\n NodeUtil_js_1.default.isType(item.First, 'mtext'))) {\n mml = item.First;\n c = NodeUtil_js_1.default.getText(mml);\n if (c.length === 1 && !NodeUtil_js_1.default.getProperty(mml, 'movesupsub') &&\n NodeUtil_js_1.default.getChildren(mml).length === 1) {\n if (this.remap.contains(c)) {\n textNode = this.create('text', this.remap.lookup(c).char);\n NodeUtil_js_1.default.setChild(mml, 0, textNode);\n }\n else {\n textNode = this.create('text', '\\u0338');\n NodeUtil_js_1.default.appendChildren(mml, [textNode]);\n }\n return [[item], true];\n }\n }\n textNode = this.create('text', '\\u29F8');\n var mtextNode = this.create('node', 'mtext', [], {}, textNode);\n var paddedNode = this.create('node', 'mpadded', [mtextNode], { width: 0 });\n mml = this.create('node', 'TeXAtom', [paddedNode], { texClass: MmlNode_js_1.TEXCLASS.REL });\n return [[mml, item], true];\n };\n return NotItem;\n}(StackItem_js_1.BaseItem));\nexports.NotItem = NotItem;\nvar NonscriptItem = (function (_super) {\n __extends(NonscriptItem, _super);\n function NonscriptItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(NonscriptItem.prototype, \"kind\", {\n get: function () {\n return 'nonscript';\n },\n enumerable: false,\n configurable: true\n });\n NonscriptItem.prototype.checkItem = function (item) {\n if (item.isKind('mml') && item.Size() === 1) {\n var mml = item.First;\n if (mml.isKind('mstyle') && mml.notParent) {\n mml = NodeUtil_js_1.default.getChildren(NodeUtil_js_1.default.getChildren(mml)[0])[0];\n }\n if (mml.isKind('mspace')) {\n if (mml !== item.First) {\n var mrow = this.create('node', 'mrow', [item.Pop()]);\n item.Push(mrow);\n }\n this.factory.configuration.addNode('nonscript', item.First);\n }\n }\n return [[item], true];\n };\n return NonscriptItem;\n}(StackItem_js_1.BaseItem));\nexports.NonscriptItem = NonscriptItem;\nvar DotsItem = (function (_super) {\n __extends(DotsItem, _super);\n function DotsItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(DotsItem.prototype, \"kind\", {\n get: function () {\n return 'dots';\n },\n enumerable: false,\n configurable: true\n });\n DotsItem.prototype.checkItem = function (item) {\n if (item.isKind('open') || item.isKind('left')) {\n return StackItem_js_1.BaseItem.success;\n }\n var dots = this.getProperty('ldots');\n var top = item.First;\n if (item.isKind('mml') && NodeUtil_js_1.default.isEmbellished(top)) {\n var tclass = NodeUtil_js_1.default.getTexClass(NodeUtil_js_1.default.getCoreMO(top));\n if (tclass === MmlNode_js_1.TEXCLASS.BIN || tclass === MmlNode_js_1.TEXCLASS.REL) {\n dots = this.getProperty('cdots');\n }\n }\n return [[dots, item], true];\n };\n return DotsItem;\n}(StackItem_js_1.BaseItem));\nexports.DotsItem = DotsItem;\nvar ArrayItem = (function (_super) {\n __extends(ArrayItem, _super);\n function ArrayItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.table = [];\n _this.row = [];\n _this.frame = [];\n _this.hfill = [];\n _this.arraydef = {};\n _this.dashed = false;\n return _this;\n }\n Object.defineProperty(ArrayItem.prototype, \"kind\", {\n get: function () {\n return 'array';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArrayItem.prototype, \"isOpen\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ArrayItem.prototype, \"copyEnv\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n ArrayItem.prototype.checkItem = function (item) {\n if (item.isClose && !item.isKind('over')) {\n if (item.getProperty('isEntry')) {\n this.EndEntry();\n this.clearEnv();\n return StackItem_js_1.BaseItem.fail;\n }\n if (item.getProperty('isCR')) {\n this.EndEntry();\n this.EndRow();\n this.clearEnv();\n return StackItem_js_1.BaseItem.fail;\n }\n this.EndTable();\n this.clearEnv();\n var newItem = this.factory.create('mml', this.createMml());\n if (this.getProperty('requireClose')) {\n if (item.isKind('close')) {\n return [[newItem], true];\n }\n throw new TexError_js_1.default('MissingCloseBrace', 'Missing close brace');\n }\n return [[newItem, item], true];\n }\n return _super.prototype.checkItem.call(this, item);\n };\n ArrayItem.prototype.createMml = function () {\n var scriptlevel = this.arraydef['scriptlevel'];\n delete this.arraydef['scriptlevel'];\n var mml = this.create('node', 'mtable', this.table, this.arraydef);\n if (scriptlevel) {\n mml.setProperty('scriptlevel', scriptlevel);\n }\n if (this.frame.length === 4) {\n NodeUtil_js_1.default.setAttribute(mml, 'frame', this.dashed ? 'dashed' : 'solid');\n }\n else if (this.frame.length) {\n if (this.arraydef['rowlines']) {\n this.arraydef['rowlines'] =\n this.arraydef['rowlines'].replace(/none( none)+$/, 'none');\n }\n NodeUtil_js_1.default.setAttribute(mml, 'frame', '');\n mml = this.create('node', 'menclose', [mml], { notation: this.frame.join(' ') });\n if ((this.arraydef['columnlines'] || 'none') !== 'none' ||\n (this.arraydef['rowlines'] || 'none') !== 'none') {\n NodeUtil_js_1.default.setAttribute(mml, 'data-padding', 0);\n }\n }\n if (this.getProperty('open') || this.getProperty('close')) {\n mml = ParseUtil_js_1.default.fenced(this.factory.configuration, this.getProperty('open'), mml, this.getProperty('close'));\n }\n return mml;\n };\n ArrayItem.prototype.EndEntry = function () {\n var mtd = this.create('node', 'mtd', this.nodes);\n if (this.hfill.length) {\n if (this.hfill[0] === 0) {\n NodeUtil_js_1.default.setAttribute(mtd, 'columnalign', 'right');\n }\n if (this.hfill[this.hfill.length - 1] === this.Size()) {\n NodeUtil_js_1.default.setAttribute(mtd, 'columnalign', NodeUtil_js_1.default.getAttribute(mtd, 'columnalign') ? 'center' : 'left');\n }\n }\n this.row.push(mtd);\n this.Clear();\n this.hfill = [];\n };\n ArrayItem.prototype.EndRow = function () {\n var node;\n if (this.getProperty('isNumbered') && this.row.length === 3) {\n this.row.unshift(this.row.pop());\n node = this.create('node', 'mlabeledtr', this.row);\n }\n else {\n node = this.create('node', 'mtr', this.row);\n }\n this.table.push(node);\n this.row = [];\n };\n ArrayItem.prototype.EndTable = function () {\n if (this.Size() || this.row.length) {\n this.EndEntry();\n this.EndRow();\n }\n this.checkLines();\n };\n ArrayItem.prototype.checkLines = function () {\n if (this.arraydef['rowlines']) {\n var lines = this.arraydef['rowlines'].split(/ /);\n if (lines.length === this.table.length) {\n this.frame.push('bottom');\n lines.pop();\n this.arraydef['rowlines'] = lines.join(' ');\n }\n else if (lines.length < this.table.length - 1) {\n this.arraydef['rowlines'] += ' none';\n }\n }\n if (this.getProperty('rowspacing')) {\n var rows = this.arraydef['rowspacing'].split(/ /);\n while (rows.length < this.table.length) {\n rows.push(this.getProperty('rowspacing') + 'em');\n }\n this.arraydef['rowspacing'] = rows.join(' ');\n }\n };\n ArrayItem.prototype.addRowSpacing = function (spacing) {\n if (this.arraydef['rowspacing']) {\n var rows = this.arraydef['rowspacing'].split(/ /);\n if (!this.getProperty('rowspacing')) {\n var dimem = ParseUtil_js_1.default.dimen2em(rows[0]);\n this.setProperty('rowspacing', dimem);\n }\n var rowspacing = this.getProperty('rowspacing');\n while (rows.length < this.table.length) {\n rows.push(ParseUtil_js_1.default.Em(rowspacing));\n }\n rows[this.table.length - 1] = ParseUtil_js_1.default.Em(Math.max(0, rowspacing + ParseUtil_js_1.default.dimen2em(spacing)));\n this.arraydef['rowspacing'] = rows.join(' ');\n }\n };\n return ArrayItem;\n}(StackItem_js_1.BaseItem));\nexports.ArrayItem = ArrayItem;\nvar EqnArrayItem = (function (_super) {\n __extends(EqnArrayItem, _super);\n function EqnArrayItem(factory) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _this = _super.call(this, factory) || this;\n _this.maxrow = 0;\n _this.factory.configuration.tags.start(args[0], args[2], args[1]);\n return _this;\n }\n Object.defineProperty(EqnArrayItem.prototype, \"kind\", {\n get: function () {\n return 'eqnarray';\n },\n enumerable: false,\n configurable: true\n });\n EqnArrayItem.prototype.EndEntry = function () {\n if (this.row.length) {\n ParseUtil_js_1.default.fixInitialMO(this.factory.configuration, this.nodes);\n }\n var node = this.create('node', 'mtd', this.nodes);\n this.row.push(node);\n this.Clear();\n };\n EqnArrayItem.prototype.EndRow = function () {\n if (this.row.length > this.maxrow) {\n this.maxrow = this.row.length;\n }\n var mtr = 'mtr';\n var tag = this.factory.configuration.tags.getTag();\n if (tag) {\n this.row = [tag].concat(this.row);\n mtr = 'mlabeledtr';\n }\n this.factory.configuration.tags.clearTag();\n var node = this.create('node', mtr, this.row);\n this.table.push(node);\n this.row = [];\n };\n EqnArrayItem.prototype.EndTable = function () {\n _super.prototype.EndTable.call(this);\n this.factory.configuration.tags.end();\n this.extendArray('columnalign', this.maxrow);\n this.extendArray('columnwidth', this.maxrow);\n this.extendArray('columnspacing', this.maxrow - 1);\n };\n EqnArrayItem.prototype.extendArray = function (name, max) {\n if (!this.arraydef[name])\n return;\n var repeat = this.arraydef[name].split(/ /);\n var columns = __spreadArray([], __read(repeat), false);\n if (columns.length > 1) {\n while (columns.length < max) {\n columns.push.apply(columns, __spreadArray([], __read(repeat), false));\n }\n this.arraydef[name] = columns.slice(0, max).join(' ');\n }\n };\n return EqnArrayItem;\n}(ArrayItem));\nexports.EqnArrayItem = EqnArrayItem;\nvar EquationItem = (function (_super) {\n __extends(EquationItem, _super);\n function EquationItem(factory) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _this = _super.call(this, factory) || this;\n _this.factory.configuration.tags.start('equation', true, args[0]);\n return _this;\n }\n Object.defineProperty(EquationItem.prototype, \"kind\", {\n get: function () {\n return 'equation';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EquationItem.prototype, \"isOpen\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n EquationItem.prototype.checkItem = function (item) {\n if (item.isKind('end')) {\n var mml = this.toMml();\n var tag = this.factory.configuration.tags.getTag();\n this.factory.configuration.tags.end();\n return [[tag ? this.factory.configuration.tags.enTag(mml, tag) : mml, item], true];\n }\n if (item.isKind('stop')) {\n throw new TexError_js_1.default('EnvMissingEnd', 'Missing \\\\end{%1}', this.getName());\n }\n return _super.prototype.checkItem.call(this, item);\n };\n return EquationItem;\n}(StackItem_js_1.BaseItem));\nexports.EquationItem = EquationItem;\n//# sourceMappingURL=BaseItems.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar sm = __importStar(require(\"../SymbolMap.js\"));\nvar TexConstants_js_1 = require(\"../TexConstants.js\");\nvar BaseMethods_js_1 = __importDefault(require(\"./BaseMethods.js\"));\nvar ParseMethods_js_1 = __importDefault(require(\"../ParseMethods.js\"));\nvar ParseUtil_js_1 = __importDefault(require(\"../ParseUtil.js\"));\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar lengths_js_1 = require(\"../../../util/lengths.js\");\nnew sm.RegExpMap('letter', ParseMethods_js_1.default.variable, /[a-z]/i);\nnew sm.RegExpMap('digit', ParseMethods_js_1.default.digit, /[0-9.,]/);\nnew sm.RegExpMap('command', ParseMethods_js_1.default.controlSequence, /^\\\\/);\nnew sm.MacroMap('special', {\n '{': 'Open',\n '}': 'Close',\n '~': 'Tilde',\n '^': 'Superscript',\n '_': 'Subscript',\n ' ': 'Space',\n '\\t': 'Space',\n '\\r': 'Space',\n '\\n': 'Space',\n '\\'': 'Prime',\n '%': 'Comment',\n '&': 'Entry',\n '#': 'Hash',\n '\\u00A0': 'Space',\n '\\u2019': 'Prime'\n}, BaseMethods_js_1.default);\nnew sm.CharacterMap('mathchar0mi', ParseMethods_js_1.default.mathchar0mi, {\n alpha: '\\u03B1',\n beta: '\\u03B2',\n gamma: '\\u03B3',\n delta: '\\u03B4',\n epsilon: '\\u03F5',\n zeta: '\\u03B6',\n eta: '\\u03B7',\n theta: '\\u03B8',\n iota: '\\u03B9',\n kappa: '\\u03BA',\n lambda: '\\u03BB',\n mu: '\\u03BC',\n nu: '\\u03BD',\n xi: '\\u03BE',\n omicron: '\\u03BF',\n pi: '\\u03C0',\n rho: '\\u03C1',\n sigma: '\\u03C3',\n tau: '\\u03C4',\n upsilon: '\\u03C5',\n phi: '\\u03D5',\n chi: '\\u03C7',\n psi: '\\u03C8',\n omega: '\\u03C9',\n varepsilon: '\\u03B5',\n vartheta: '\\u03D1',\n varpi: '\\u03D6',\n varrho: '\\u03F1',\n varsigma: '\\u03C2',\n varphi: '\\u03C6',\n S: ['\\u00A7', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n aleph: ['\\u2135', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n hbar: ['\\u210F', { variantForm: true }],\n imath: '\\u0131',\n jmath: '\\u0237',\n ell: '\\u2113',\n wp: ['\\u2118', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n Re: ['\\u211C', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n Im: ['\\u2111', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n partial: ['\\u2202', { mathvariant: TexConstants_js_1.TexConstant.Variant.ITALIC }],\n infty: ['\\u221E', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n prime: ['\\u2032', { variantForm: true }],\n emptyset: ['\\u2205', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n nabla: ['\\u2207', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n top: ['\\u22A4', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n bot: ['\\u22A5', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n angle: ['\\u2220', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n triangle: ['\\u25B3', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n backslash: ['\\u2216', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n forall: ['\\u2200', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n exists: ['\\u2203', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n neg: ['\\u00AC', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n lnot: ['\\u00AC', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n flat: ['\\u266D', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n natural: ['\\u266E', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n sharp: ['\\u266F', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n clubsuit: ['\\u2663', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n diamondsuit: ['\\u2662', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n heartsuit: ['\\u2661', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }],\n spadesuit: ['\\u2660', { mathvariant: TexConstants_js_1.TexConstant.Variant.NORMAL }]\n});\nnew sm.CharacterMap('mathchar0mo', ParseMethods_js_1.default.mathchar0mo, {\n surd: '\\u221A',\n coprod: ['\\u2210', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n bigvee: ['\\u22C1', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n bigwedge: ['\\u22C0', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n biguplus: ['\\u2A04', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n bigcap: ['\\u22C2', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n bigcup: ['\\u22C3', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n 'int': ['\\u222B', { texClass: MmlNode_js_1.TEXCLASS.OP }],\n intop: ['\\u222B', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true, movablelimits: true }],\n iint: ['\\u222C', { texClass: MmlNode_js_1.TEXCLASS.OP }],\n iiint: ['\\u222D', { texClass: MmlNode_js_1.TEXCLASS.OP }],\n prod: ['\\u220F', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n sum: ['\\u2211', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n bigotimes: ['\\u2A02', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n bigoplus: ['\\u2A01', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n bigodot: ['\\u2A00', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n oint: ['\\u222E', { texClass: MmlNode_js_1.TEXCLASS.OP }],\n bigsqcup: ['\\u2A06', { texClass: MmlNode_js_1.TEXCLASS.OP,\n movesupsub: true }],\n smallint: ['\\u222B', { largeop: false }],\n triangleleft: '\\u25C3',\n triangleright: '\\u25B9',\n bigtriangleup: '\\u25B3',\n bigtriangledown: '\\u25BD',\n wedge: '\\u2227',\n land: '\\u2227',\n vee: '\\u2228',\n lor: '\\u2228',\n cap: '\\u2229',\n cup: '\\u222A',\n ddagger: '\\u2021',\n dagger: '\\u2020',\n sqcap: '\\u2293',\n sqcup: '\\u2294',\n uplus: '\\u228E',\n amalg: '\\u2A3F',\n diamond: '\\u22C4',\n bullet: '\\u2219',\n wr: '\\u2240',\n div: '\\u00F7',\n divsymbol: '\\u00F7',\n odot: ['\\u2299', { largeop: false }],\n oslash: ['\\u2298', { largeop: false }],\n otimes: ['\\u2297', { largeop: false }],\n ominus: ['\\u2296', { largeop: false }],\n oplus: ['\\u2295', { largeop: false }],\n mp: '\\u2213',\n pm: '\\u00B1',\n circ: '\\u2218',\n bigcirc: '\\u25EF',\n setminus: '\\u2216',\n cdot: '\\u22C5',\n ast: '\\u2217',\n times: '\\u00D7',\n star: '\\u22C6',\n propto: '\\u221D',\n sqsubseteq: '\\u2291',\n sqsupseteq: '\\u2292',\n parallel: '\\u2225',\n mid: '\\u2223',\n dashv: '\\u22A3',\n vdash: '\\u22A2',\n leq: '\\u2264',\n le: '\\u2264',\n geq: '\\u2265',\n ge: '\\u2265',\n lt: '\\u003C',\n gt: '\\u003E',\n succ: '\\u227B',\n prec: '\\u227A',\n approx: '\\u2248',\n succeq: '\\u2AB0',\n preceq: '\\u2AAF',\n supset: '\\u2283',\n subset: '\\u2282',\n supseteq: '\\u2287',\n subseteq: '\\u2286',\n 'in': '\\u2208',\n ni: '\\u220B',\n notin: '\\u2209',\n owns: '\\u220B',\n gg: '\\u226B',\n ll: '\\u226A',\n sim: '\\u223C',\n simeq: '\\u2243',\n perp: '\\u22A5',\n equiv: '\\u2261',\n asymp: '\\u224D',\n smile: '\\u2323',\n frown: '\\u2322',\n ne: '\\u2260',\n neq: '\\u2260',\n cong: '\\u2245',\n doteq: '\\u2250',\n bowtie: '\\u22C8',\n models: '\\u22A8',\n notChar: '\\u29F8',\n Leftrightarrow: '\\u21D4',\n Leftarrow: '\\u21D0',\n Rightarrow: '\\u21D2',\n leftrightarrow: '\\u2194',\n leftarrow: '\\u2190',\n gets: '\\u2190',\n rightarrow: '\\u2192',\n to: ['\\u2192', { accent: false }],\n mapsto: '\\u21A6',\n leftharpoonup: '\\u21BC',\n leftharpoondown: '\\u21BD',\n rightharpoonup: '\\u21C0',\n rightharpoondown: '\\u21C1',\n nearrow: '\\u2197',\n searrow: '\\u2198',\n nwarrow: '\\u2196',\n swarrow: '\\u2199',\n rightleftharpoons: '\\u21CC',\n hookrightarrow: '\\u21AA',\n hookleftarrow: '\\u21A9',\n longleftarrow: '\\u27F5',\n Longleftarrow: '\\u27F8',\n longrightarrow: '\\u27F6',\n Longrightarrow: '\\u27F9',\n Longleftrightarrow: '\\u27FA',\n longleftrightarrow: '\\u27F7',\n longmapsto: '\\u27FC',\n ldots: '\\u2026',\n cdots: '\\u22EF',\n vdots: '\\u22EE',\n ddots: '\\u22F1',\n dotsc: '\\u2026',\n dotsb: '\\u22EF',\n dotsm: '\\u22EF',\n dotsi: '\\u22EF',\n dotso: '\\u2026',\n ldotp: ['\\u002E', { texClass: MmlNode_js_1.TEXCLASS.PUNCT }],\n cdotp: ['\\u22C5', { texClass: MmlNode_js_1.TEXCLASS.PUNCT }],\n colon: ['\\u003A', { texClass: MmlNode_js_1.TEXCLASS.PUNCT }]\n});\nnew sm.CharacterMap('mathchar7', ParseMethods_js_1.default.mathchar7, {\n Gamma: '\\u0393',\n Delta: '\\u0394',\n Theta: '\\u0398',\n Lambda: '\\u039B',\n Xi: '\\u039E',\n Pi: '\\u03A0',\n Sigma: '\\u03A3',\n Upsilon: '\\u03A5',\n Phi: '\\u03A6',\n Psi: '\\u03A8',\n Omega: '\\u03A9',\n '_': '\\u005F',\n '#': '\\u0023',\n '$': '\\u0024',\n '%': '\\u0025',\n '&': '\\u0026',\n And: '\\u0026'\n});\nnew sm.DelimiterMap('delimiter', ParseMethods_js_1.default.delimiter, {\n '(': '(',\n ')': ')',\n '[': '[',\n ']': ']',\n '<': '\\u27E8',\n '>': '\\u27E9',\n '\\\\lt': '\\u27E8',\n '\\\\gt': '\\u27E9',\n '/': '/',\n '|': ['|', { texClass: MmlNode_js_1.TEXCLASS.ORD }],\n '.': '',\n '\\\\\\\\': '\\\\',\n '\\\\lmoustache': '\\u23B0',\n '\\\\rmoustache': '\\u23B1',\n '\\\\lgroup': '\\u27EE',\n '\\\\rgroup': '\\u27EF',\n '\\\\arrowvert': '\\u23D0',\n '\\\\Arrowvert': '\\u2016',\n '\\\\bracevert': '\\u23AA',\n '\\\\Vert': ['\\u2016', { texClass: MmlNode_js_1.TEXCLASS.ORD }],\n '\\\\|': ['\\u2016', { texClass: MmlNode_js_1.TEXCLASS.ORD }],\n '\\\\vert': ['|', { texClass: MmlNode_js_1.TEXCLASS.ORD }],\n '\\\\uparrow': '\\u2191',\n '\\\\downarrow': '\\u2193',\n '\\\\updownarrow': '\\u2195',\n '\\\\Uparrow': '\\u21D1',\n '\\\\Downarrow': '\\u21D3',\n '\\\\Updownarrow': '\\u21D5',\n '\\\\backslash': '\\\\',\n '\\\\rangle': '\\u27E9',\n '\\\\langle': '\\u27E8',\n '\\\\rbrace': '}',\n '\\\\lbrace': '{',\n '\\\\}': '}',\n '\\\\{': '{',\n '\\\\rceil': '\\u2309',\n '\\\\lceil': '\\u2308',\n '\\\\rfloor': '\\u230B',\n '\\\\lfloor': '\\u230A',\n '\\\\lbrack': '[',\n '\\\\rbrack': ']'\n});\nnew sm.CommandMap('macros', {\n displaystyle: ['SetStyle', 'D', true, 0],\n textstyle: ['SetStyle', 'T', false, 0],\n scriptstyle: ['SetStyle', 'S', false, 1],\n scriptscriptstyle: ['SetStyle', 'SS', false, 2],\n rm: ['SetFont', TexConstants_js_1.TexConstant.Variant.NORMAL],\n mit: ['SetFont', TexConstants_js_1.TexConstant.Variant.ITALIC],\n oldstyle: ['SetFont', TexConstants_js_1.TexConstant.Variant.OLDSTYLE],\n cal: ['SetFont', TexConstants_js_1.TexConstant.Variant.CALLIGRAPHIC],\n it: ['SetFont', TexConstants_js_1.TexConstant.Variant.MATHITALIC],\n bf: ['SetFont', TexConstants_js_1.TexConstant.Variant.BOLD],\n bbFont: ['SetFont', TexConstants_js_1.TexConstant.Variant.DOUBLESTRUCK],\n scr: ['SetFont', TexConstants_js_1.TexConstant.Variant.SCRIPT],\n frak: ['SetFont', TexConstants_js_1.TexConstant.Variant.FRAKTUR],\n sf: ['SetFont', TexConstants_js_1.TexConstant.Variant.SANSSERIF],\n tt: ['SetFont', TexConstants_js_1.TexConstant.Variant.MONOSPACE],\n mathrm: ['MathFont', TexConstants_js_1.TexConstant.Variant.NORMAL],\n mathup: ['MathFont', TexConstants_js_1.TexConstant.Variant.NORMAL],\n mathnormal: ['MathFont', ''],\n mathbf: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLD],\n mathbfup: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLD],\n mathit: ['MathFont', TexConstants_js_1.TexConstant.Variant.MATHITALIC],\n mathbfit: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDITALIC],\n mathbb: ['MathFont', TexConstants_js_1.TexConstant.Variant.DOUBLESTRUCK],\n Bbb: ['MathFont', TexConstants_js_1.TexConstant.Variant.DOUBLESTRUCK],\n mathfrak: ['MathFont', TexConstants_js_1.TexConstant.Variant.FRAKTUR],\n mathbffrak: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDFRAKTUR],\n mathscr: ['MathFont', TexConstants_js_1.TexConstant.Variant.SCRIPT],\n mathbfscr: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDSCRIPT],\n mathsf: ['MathFont', TexConstants_js_1.TexConstant.Variant.SANSSERIF],\n mathsfup: ['MathFont', TexConstants_js_1.TexConstant.Variant.SANSSERIF],\n mathbfsf: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDSANSSERIF],\n mathbfsfup: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDSANSSERIF],\n mathsfit: ['MathFont', TexConstants_js_1.TexConstant.Variant.SANSSERIFITALIC],\n mathbfsfit: ['MathFont', TexConstants_js_1.TexConstant.Variant.SANSSERIFBOLDITALIC],\n mathtt: ['MathFont', TexConstants_js_1.TexConstant.Variant.MONOSPACE],\n mathcal: ['MathFont', TexConstants_js_1.TexConstant.Variant.CALLIGRAPHIC],\n mathbfcal: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDCALLIGRAPHIC],\n symrm: ['MathFont', TexConstants_js_1.TexConstant.Variant.NORMAL],\n symup: ['MathFont', TexConstants_js_1.TexConstant.Variant.NORMAL],\n symnormal: ['MathFont', ''],\n symbf: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLD],\n symbfup: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLD],\n symit: ['MathFont', TexConstants_js_1.TexConstant.Variant.ITALIC],\n symbfit: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDITALIC],\n symbb: ['MathFont', TexConstants_js_1.TexConstant.Variant.DOUBLESTRUCK],\n symfrak: ['MathFont', TexConstants_js_1.TexConstant.Variant.FRAKTUR],\n symbffrak: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDFRAKTUR],\n symscr: ['MathFont', TexConstants_js_1.TexConstant.Variant.SCRIPT],\n symbfscr: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDSCRIPT],\n symsf: ['MathFont', TexConstants_js_1.TexConstant.Variant.SANSSERIF],\n symsfup: ['MathFont', TexConstants_js_1.TexConstant.Variant.SANSSERIF],\n symbfsf: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDSANSSERIF],\n symbfsfup: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDSANSSERIF],\n symsfit: ['MathFont', TexConstants_js_1.TexConstant.Variant.SANSSERIFITALIC],\n symbfsfit: ['MathFont', TexConstants_js_1.TexConstant.Variant.SANSSERIFBOLDITALIC],\n symtt: ['MathFont', TexConstants_js_1.TexConstant.Variant.MONOSPACE],\n symcal: ['MathFont', TexConstants_js_1.TexConstant.Variant.CALLIGRAPHIC],\n symbfcal: ['MathFont', TexConstants_js_1.TexConstant.Variant.BOLDCALLIGRAPHIC],\n textrm: ['HBox', null, TexConstants_js_1.TexConstant.Variant.NORMAL],\n textup: ['HBox', null, TexConstants_js_1.TexConstant.Variant.NORMAL],\n textnormal: ['HBox'],\n textit: ['HBox', null, TexConstants_js_1.TexConstant.Variant.ITALIC],\n textbf: ['HBox', null, TexConstants_js_1.TexConstant.Variant.BOLD],\n textsf: ['HBox', null, TexConstants_js_1.TexConstant.Variant.SANSSERIF],\n texttt: ['HBox', null, TexConstants_js_1.TexConstant.Variant.MONOSPACE],\n tiny: ['SetSize', 0.5],\n Tiny: ['SetSize', 0.6],\n scriptsize: ['SetSize', 0.7],\n small: ['SetSize', 0.85],\n normalsize: ['SetSize', 1.0],\n large: ['SetSize', 1.2],\n Large: ['SetSize', 1.44],\n LARGE: ['SetSize', 1.73],\n huge: ['SetSize', 2.07],\n Huge: ['SetSize', 2.49],\n arcsin: 'NamedFn',\n arccos: 'NamedFn',\n arctan: 'NamedFn',\n arg: 'NamedFn',\n cos: 'NamedFn',\n cosh: 'NamedFn',\n cot: 'NamedFn',\n coth: 'NamedFn',\n csc: 'NamedFn',\n deg: 'NamedFn',\n det: 'NamedOp',\n dim: 'NamedFn',\n exp: 'NamedFn',\n gcd: 'NamedOp',\n hom: 'NamedFn',\n inf: 'NamedOp',\n ker: 'NamedFn',\n lg: 'NamedFn',\n lim: 'NamedOp',\n liminf: ['NamedOp', 'lim inf'],\n limsup: ['NamedOp', 'lim sup'],\n ln: 'NamedFn',\n log: 'NamedFn',\n max: 'NamedOp',\n min: 'NamedOp',\n Pr: 'NamedOp',\n sec: 'NamedFn',\n sin: 'NamedFn',\n sinh: 'NamedFn',\n sup: 'NamedOp',\n tan: 'NamedFn',\n tanh: 'NamedFn',\n limits: ['Limits', 1],\n nolimits: ['Limits', 0],\n overline: ['UnderOver', '2015'],\n underline: ['UnderOver', '2015'],\n overbrace: ['UnderOver', '23DE', 1],\n underbrace: ['UnderOver', '23DF', 1],\n overparen: ['UnderOver', '23DC'],\n underparen: ['UnderOver', '23DD'],\n overrightarrow: ['UnderOver', '2192'],\n underrightarrow: ['UnderOver', '2192'],\n overleftarrow: ['UnderOver', '2190'],\n underleftarrow: ['UnderOver', '2190'],\n overleftrightarrow: ['UnderOver', '2194'],\n underleftrightarrow: ['UnderOver', '2194'],\n overset: 'Overset',\n underset: 'Underset',\n overunderset: 'Overunderset',\n stackrel: ['Macro', '\\\\mathrel{\\\\mathop{#2}\\\\limits^{#1}}', 2],\n stackbin: ['Macro', '\\\\mathbin{\\\\mathop{#2}\\\\limits^{#1}}', 2],\n over: 'Over',\n overwithdelims: 'Over',\n atop: 'Over',\n atopwithdelims: 'Over',\n above: 'Over',\n abovewithdelims: 'Over',\n brace: ['Over', '{', '}'],\n brack: ['Over', '[', ']'],\n choose: ['Over', '(', ')'],\n frac: 'Frac',\n sqrt: 'Sqrt',\n root: 'Root',\n uproot: ['MoveRoot', 'upRoot'],\n leftroot: ['MoveRoot', 'leftRoot'],\n left: 'LeftRight',\n right: 'LeftRight',\n middle: 'LeftRight',\n llap: 'Lap',\n rlap: 'Lap',\n raise: 'RaiseLower',\n lower: 'RaiseLower',\n moveleft: 'MoveLeftRight',\n moveright: 'MoveLeftRight',\n ',': ['Spacer', lengths_js_1.MATHSPACE.thinmathspace],\n ':': ['Spacer', lengths_js_1.MATHSPACE.mediummathspace],\n '>': ['Spacer', lengths_js_1.MATHSPACE.mediummathspace],\n ';': ['Spacer', lengths_js_1.MATHSPACE.thickmathspace],\n '!': ['Spacer', lengths_js_1.MATHSPACE.negativethinmathspace],\n enspace: ['Spacer', .5],\n quad: ['Spacer', 1],\n qquad: ['Spacer', 2],\n thinspace: ['Spacer', lengths_js_1.MATHSPACE.thinmathspace],\n negthinspace: ['Spacer', lengths_js_1.MATHSPACE.negativethinmathspace],\n hskip: 'Hskip',\n hspace: 'Hskip',\n kern: 'Hskip',\n mskip: 'Hskip',\n mspace: 'Hskip',\n mkern: 'Hskip',\n rule: 'rule',\n Rule: ['Rule'],\n Space: ['Rule', 'blank'],\n nonscript: 'Nonscript',\n big: ['MakeBig', MmlNode_js_1.TEXCLASS.ORD, 0.85],\n Big: ['MakeBig', MmlNode_js_1.TEXCLASS.ORD, 1.15],\n bigg: ['MakeBig', MmlNode_js_1.TEXCLASS.ORD, 1.45],\n Bigg: ['MakeBig', MmlNode_js_1.TEXCLASS.ORD, 1.75],\n bigl: ['MakeBig', MmlNode_js_1.TEXCLASS.OPEN, 0.85],\n Bigl: ['MakeBig', MmlNode_js_1.TEXCLASS.OPEN, 1.15],\n biggl: ['MakeBig', MmlNode_js_1.TEXCLASS.OPEN, 1.45],\n Biggl: ['MakeBig', MmlNode_js_1.TEXCLASS.OPEN, 1.75],\n bigr: ['MakeBig', MmlNode_js_1.TEXCLASS.CLOSE, 0.85],\n Bigr: ['MakeBig', MmlNode_js_1.TEXCLASS.CLOSE, 1.15],\n biggr: ['MakeBig', MmlNode_js_1.TEXCLASS.CLOSE, 1.45],\n Biggr: ['MakeBig', MmlNode_js_1.TEXCLASS.CLOSE, 1.75],\n bigm: ['MakeBig', MmlNode_js_1.TEXCLASS.REL, 0.85],\n Bigm: ['MakeBig', MmlNode_js_1.TEXCLASS.REL, 1.15],\n biggm: ['MakeBig', MmlNode_js_1.TEXCLASS.REL, 1.45],\n Biggm: ['MakeBig', MmlNode_js_1.TEXCLASS.REL, 1.75],\n mathord: ['TeXAtom', MmlNode_js_1.TEXCLASS.ORD],\n mathop: ['TeXAtom', MmlNode_js_1.TEXCLASS.OP],\n mathopen: ['TeXAtom', MmlNode_js_1.TEXCLASS.OPEN],\n mathclose: ['TeXAtom', MmlNode_js_1.TEXCLASS.CLOSE],\n mathbin: ['TeXAtom', MmlNode_js_1.TEXCLASS.BIN],\n mathrel: ['TeXAtom', MmlNode_js_1.TEXCLASS.REL],\n mathpunct: ['TeXAtom', MmlNode_js_1.TEXCLASS.PUNCT],\n mathinner: ['TeXAtom', MmlNode_js_1.TEXCLASS.INNER],\n vcenter: ['TeXAtom', MmlNode_js_1.TEXCLASS.VCENTER],\n buildrel: 'BuildRel',\n hbox: ['HBox', 0],\n text: 'HBox',\n mbox: ['HBox', 0],\n fbox: 'FBox',\n boxed: ['Macro', '\\\\fbox{$\\\\displaystyle{#1}$}', 1],\n framebox: 'FrameBox',\n strut: 'Strut',\n mathstrut: ['Macro', '\\\\vphantom{(}'],\n phantom: 'Phantom',\n vphantom: ['Phantom', 1, 0],\n hphantom: ['Phantom', 0, 1],\n smash: 'Smash',\n acute: ['Accent', '00B4'],\n grave: ['Accent', '0060'],\n ddot: ['Accent', '00A8'],\n tilde: ['Accent', '007E'],\n bar: ['Accent', '00AF'],\n breve: ['Accent', '02D8'],\n check: ['Accent', '02C7'],\n hat: ['Accent', '005E'],\n vec: ['Accent', '2192'],\n dot: ['Accent', '02D9'],\n widetilde: ['Accent', '007E', 1],\n widehat: ['Accent', '005E', 1],\n matrix: 'Matrix',\n array: 'Matrix',\n pmatrix: ['Matrix', '(', ')'],\n cases: ['Matrix', '{', '', 'left left', null, '.1em', null,\n true],\n eqalign: ['Matrix', null, null, 'right left',\n (0, lengths_js_1.em)(lengths_js_1.MATHSPACE.thickmathspace), '.5em', 'D'],\n displaylines: ['Matrix', null, null, 'center', null, '.5em', 'D'],\n cr: 'Cr',\n '\\\\': 'CrLaTeX',\n newline: ['CrLaTeX', true],\n hline: ['HLine', 'solid'],\n hdashline: ['HLine', 'dashed'],\n eqalignno: ['Matrix', null, null, 'right left',\n (0, lengths_js_1.em)(lengths_js_1.MATHSPACE.thickmathspace), '.5em', 'D', null,\n 'right'],\n leqalignno: ['Matrix', null, null, 'right left',\n (0, lengths_js_1.em)(lengths_js_1.MATHSPACE.thickmathspace), '.5em', 'D', null,\n 'left'],\n hfill: 'HFill',\n hfil: 'HFill',\n hfilll: 'HFill',\n bmod: ['Macro', '\\\\mmlToken{mo}[lspace=\"thickmathspace\"' +\n ' rspace=\"thickmathspace\"]{mod}'],\n pmod: ['Macro', '\\\\pod{\\\\mmlToken{mi}{mod}\\\\kern 6mu #1}', 1],\n mod: ['Macro', '\\\\mathchoice{\\\\kern18mu}{\\\\kern12mu}' +\n '{\\\\kern12mu}{\\\\kern12mu}\\\\mmlToken{mi}{mod}\\\\,\\\\,#1',\n 1],\n pod: ['Macro', '\\\\mathchoice{\\\\kern18mu}{\\\\kern8mu}' +\n '{\\\\kern8mu}{\\\\kern8mu}(#1)', 1],\n iff: ['Macro', '\\\\;\\\\Longleftrightarrow\\\\;'],\n skew: ['Macro', '{{#2{#3\\\\mkern#1mu}\\\\mkern-#1mu}{}}', 3],\n pmb: ['Macro', '\\\\rlap{#1}\\\\kern1px{#1}', 1],\n TeX: ['Macro', 'T\\\\kern-.14em\\\\lower.5ex{E}\\\\kern-.115em X'],\n LaTeX: ['Macro', 'L\\\\kern-.325em\\\\raise.21em' +\n '{\\\\scriptstyle{A}}\\\\kern-.17em\\\\TeX'],\n ' ': ['Macro', '\\\\text{ }'],\n not: 'Not',\n dots: 'Dots',\n space: 'Tilde',\n '\\u00A0': 'Tilde',\n begin: 'BeginEnd',\n end: 'BeginEnd',\n label: 'HandleLabel',\n ref: 'HandleRef',\n nonumber: 'HandleNoTag',\n mathchoice: 'MathChoice',\n mmlToken: 'MmlToken'\n}, BaseMethods_js_1.default);\nnew sm.EnvironmentMap('environment', ParseMethods_js_1.default.environment, {\n array: ['AlignedArray'],\n equation: ['Equation', null, true],\n eqnarray: ['EqnArray', null, true, true, 'rcl',\n ParseUtil_js_1.default.cols(0, lengths_js_1.MATHSPACE.thickmathspace), '.5em']\n}, BaseMethods_js_1.default);\nnew sm.CharacterMap('not_remap', null, {\n '\\u2190': '\\u219A',\n '\\u2192': '\\u219B',\n '\\u2194': '\\u21AE',\n '\\u21D0': '\\u21CD',\n '\\u21D2': '\\u21CF',\n '\\u21D4': '\\u21CE',\n '\\u2208': '\\u2209',\n '\\u220B': '\\u220C',\n '\\u2223': '\\u2224',\n '\\u2225': '\\u2226',\n '\\u223C': '\\u2241',\n '\\u007E': '\\u2241',\n '\\u2243': '\\u2244',\n '\\u2245': '\\u2247',\n '\\u2248': '\\u2249',\n '\\u224D': '\\u226D',\n '\\u003D': '\\u2260',\n '\\u2261': '\\u2262',\n '\\u003C': '\\u226E',\n '\\u003E': '\\u226F',\n '\\u2264': '\\u2270',\n '\\u2265': '\\u2271',\n '\\u2272': '\\u2274',\n '\\u2273': '\\u2275',\n '\\u2276': '\\u2278',\n '\\u2277': '\\u2279',\n '\\u227A': '\\u2280',\n '\\u227B': '\\u2281',\n '\\u2282': '\\u2284',\n '\\u2283': '\\u2285',\n '\\u2286': '\\u2288',\n '\\u2287': '\\u2289',\n '\\u22A2': '\\u22AC',\n '\\u22A8': '\\u22AD',\n '\\u22A9': '\\u22AE',\n '\\u22AB': '\\u22AF',\n '\\u227C': '\\u22E0',\n '\\u227D': '\\u22E1',\n '\\u2291': '\\u22E2',\n '\\u2292': '\\u22E3',\n '\\u22B2': '\\u22EA',\n '\\u22B3': '\\u22EB',\n '\\u22B4': '\\u22EC',\n '\\u22B5': '\\u22ED',\n '\\u2203': '\\u2204'\n});\n//# sourceMappingURL=BaseMappings.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar sitem = __importStar(require(\"./BaseItems.js\"));\nvar NodeUtil_js_1 = __importDefault(require(\"../NodeUtil.js\"));\nvar TexError_js_1 = __importDefault(require(\"../TexError.js\"));\nvar TexParser_js_1 = __importDefault(require(\"../TexParser.js\"));\nvar TexConstants_js_1 = require(\"../TexConstants.js\");\nvar ParseUtil_js_1 = __importDefault(require(\"../ParseUtil.js\"));\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar Tags_js_1 = require(\"../Tags.js\");\nvar lengths_js_1 = require(\"../../../util/lengths.js\");\nvar Entities_js_1 = require(\"../../../util/Entities.js\");\nvar Options_js_1 = require(\"../../../util/Options.js\");\nvar BaseMethods = {};\nvar P_HEIGHT = 1.2 / .85;\nvar MmlTokenAllow = {\n fontfamily: 1, fontsize: 1, fontweight: 1, fontstyle: 1,\n color: 1, background: 1,\n id: 1, 'class': 1, href: 1, style: 1\n};\nBaseMethods.Open = function (parser, _c) {\n parser.Push(parser.itemFactory.create('open'));\n};\nBaseMethods.Close = function (parser, _c) {\n parser.Push(parser.itemFactory.create('close'));\n};\nBaseMethods.Tilde = function (parser, _c) {\n parser.Push(parser.create('token', 'mtext', {}, Entities_js_1.entities.nbsp));\n};\nBaseMethods.Space = function (_parser, _c) { };\nBaseMethods.Superscript = function (parser, _c) {\n var _a;\n if (parser.GetNext().match(/\\d/)) {\n parser.string = parser.string.substr(0, parser.i + 1) +\n ' ' + parser.string.substr(parser.i + 1);\n }\n var primes;\n var base;\n var top = parser.stack.Top();\n if (top.isKind('prime')) {\n _a = __read(top.Peek(2), 2), base = _a[0], primes = _a[1];\n parser.stack.Pop();\n }\n else {\n base = parser.stack.Prev();\n if (!base) {\n base = parser.create('token', 'mi', {}, '');\n }\n }\n var movesupsub = NodeUtil_js_1.default.getProperty(base, 'movesupsub');\n var position = NodeUtil_js_1.default.isType(base, 'msubsup') ? base.sup :\n base.over;\n if ((NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') &&\n NodeUtil_js_1.default.getChildAt(base, base.sup)) ||\n (NodeUtil_js_1.default.isType(base, 'munderover') && !NodeUtil_js_1.default.isType(base, 'mover') &&\n NodeUtil_js_1.default.getChildAt(base, base.over) &&\n !NodeUtil_js_1.default.getProperty(base, 'subsupOK'))) {\n throw new TexError_js_1.default('DoubleExponent', 'Double exponent: use braces to clarify');\n }\n if (!NodeUtil_js_1.default.isType(base, 'msubsup') || NodeUtil_js_1.default.isType(base, 'msup')) {\n if (movesupsub) {\n if (!NodeUtil_js_1.default.isType(base, 'munderover') || NodeUtil_js_1.default.isType(base, 'mover') ||\n NodeUtil_js_1.default.getChildAt(base, base.over)) {\n base = parser.create('node', 'munderover', [base], { movesupsub: true });\n }\n position = base.over;\n }\n else {\n base = parser.create('node', 'msubsup', [base]);\n position = base.sup;\n }\n }\n parser.Push(parser.itemFactory.create('subsup', base).setProperties({\n position: position, primes: primes, movesupsub: movesupsub\n }));\n};\nBaseMethods.Subscript = function (parser, _c) {\n var _a;\n if (parser.GetNext().match(/\\d/)) {\n parser.string =\n parser.string.substr(0, parser.i + 1) + ' ' +\n parser.string.substr(parser.i + 1);\n }\n var primes, base;\n var top = parser.stack.Top();\n if (top.isKind('prime')) {\n _a = __read(top.Peek(2), 2), base = _a[0], primes = _a[1];\n parser.stack.Pop();\n }\n else {\n base = parser.stack.Prev();\n if (!base) {\n base = parser.create('token', 'mi', {}, '');\n }\n }\n var movesupsub = NodeUtil_js_1.default.getProperty(base, 'movesupsub');\n var position = NodeUtil_js_1.default.isType(base, 'msubsup') ?\n base.sub : base.under;\n if ((NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') &&\n NodeUtil_js_1.default.getChildAt(base, base.sub)) ||\n (NodeUtil_js_1.default.isType(base, 'munderover') && !NodeUtil_js_1.default.isType(base, 'mover') &&\n NodeUtil_js_1.default.getChildAt(base, base.under) &&\n !NodeUtil_js_1.default.getProperty(base, 'subsupOK'))) {\n throw new TexError_js_1.default('DoubleSubscripts', 'Double subscripts: use braces to clarify');\n }\n if (!NodeUtil_js_1.default.isType(base, 'msubsup') || NodeUtil_js_1.default.isType(base, 'msup')) {\n if (movesupsub) {\n if (!NodeUtil_js_1.default.isType(base, 'munderover') || NodeUtil_js_1.default.isType(base, 'mover') ||\n NodeUtil_js_1.default.getChildAt(base, base.under)) {\n base = parser.create('node', 'munderover', [base], { movesupsub: true });\n }\n position = base.under;\n }\n else {\n base = parser.create('node', 'msubsup', [base]);\n position = base.sub;\n }\n }\n parser.Push(parser.itemFactory.create('subsup', base).setProperties({\n position: position, primes: primes, movesupsub: movesupsub\n }));\n};\nBaseMethods.Prime = function (parser, c) {\n var base = parser.stack.Prev();\n if (!base) {\n base = parser.create('node', 'mi');\n }\n if (NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') &&\n NodeUtil_js_1.default.getChildAt(base, base.sup)) {\n throw new TexError_js_1.default('DoubleExponentPrime', 'Prime causes double exponent: use braces to clarify');\n }\n var sup = '';\n parser.i--;\n do {\n sup += Entities_js_1.entities.prime;\n parser.i++, c = parser.GetNext();\n } while (c === '\\'' || c === Entities_js_1.entities.rsquo);\n sup = ['', '\\u2032', '\\u2033', '\\u2034', '\\u2057'][sup.length] || sup;\n var node = parser.create('token', 'mo', { variantForm: true }, sup);\n parser.Push(parser.itemFactory.create('prime', base, node));\n};\nBaseMethods.Comment = function (parser, _c) {\n while (parser.i < parser.string.length && parser.string.charAt(parser.i) !== '\\n') {\n parser.i++;\n }\n};\nBaseMethods.Hash = function (_parser, _c) {\n throw new TexError_js_1.default('CantUseHash1', 'You can\\'t use \\'macro parameter character #\\' in math mode');\n};\nBaseMethods.MathFont = function (parser, name, variant) {\n var text = parser.GetArgument(name);\n var mml = new TexParser_js_1.default(text, __assign(__assign({}, parser.stack.env), { font: variant, multiLetterIdentifiers: /^[a-zA-Z]+/, noAutoOP: true }), parser.configuration).mml();\n parser.Push(parser.create('node', 'TeXAtom', [mml]));\n};\nBaseMethods.SetFont = function (parser, _name, font) {\n parser.stack.env['font'] = font;\n};\nBaseMethods.SetStyle = function (parser, _name, texStyle, style, level) {\n parser.stack.env['style'] = texStyle;\n parser.stack.env['level'] = level;\n parser.Push(parser.itemFactory.create('style').setProperty('styles', { displaystyle: style, scriptlevel: level }));\n};\nBaseMethods.SetSize = function (parser, _name, size) {\n parser.stack.env['size'] = size;\n parser.Push(parser.itemFactory.create('style').setProperty('styles', { mathsize: (0, lengths_js_1.em)(size) }));\n};\nBaseMethods.Spacer = function (parser, _name, space) {\n var node = parser.create('node', 'mspace', [], { width: (0, lengths_js_1.em)(space) });\n var style = parser.create('node', 'mstyle', [node], { scriptlevel: 0 });\n parser.Push(style);\n};\nBaseMethods.LeftRight = function (parser, name) {\n var first = name.substr(1);\n parser.Push(parser.itemFactory.create(first, parser.GetDelimiter(name), parser.stack.env.color));\n};\nBaseMethods.NamedFn = function (parser, name, id) {\n if (!id) {\n id = name.substr(1);\n }\n var mml = parser.create('token', 'mi', { texClass: MmlNode_js_1.TEXCLASS.OP }, id);\n parser.Push(parser.itemFactory.create('fn', mml));\n};\nBaseMethods.NamedOp = function (parser, name, id) {\n if (!id) {\n id = name.substr(1);\n }\n id = id.replace(/ /, '\\u2006');\n var mml = parser.create('token', 'mo', {\n movablelimits: true,\n movesupsub: true,\n form: TexConstants_js_1.TexConstant.Form.PREFIX,\n texClass: MmlNode_js_1.TEXCLASS.OP\n }, id);\n parser.Push(mml);\n};\nBaseMethods.Limits = function (parser, _name, limits) {\n var op = parser.stack.Prev(true);\n if (!op || (NodeUtil_js_1.default.getTexClass(NodeUtil_js_1.default.getCoreMO(op)) !== MmlNode_js_1.TEXCLASS.OP &&\n NodeUtil_js_1.default.getProperty(op, 'movesupsub') == null)) {\n throw new TexError_js_1.default('MisplacedLimits', '%1 is allowed only on operators', parser.currentCS);\n }\n var top = parser.stack.Top();\n var node;\n if (NodeUtil_js_1.default.isType(op, 'munderover') && !limits) {\n node = parser.create('node', 'msubsup');\n NodeUtil_js_1.default.copyChildren(op, node);\n op = top.Last = node;\n }\n else if (NodeUtil_js_1.default.isType(op, 'msubsup') && limits) {\n node = parser.create('node', 'munderover');\n NodeUtil_js_1.default.copyChildren(op, node);\n op = top.Last = node;\n }\n NodeUtil_js_1.default.setProperty(op, 'movesupsub', limits ? true : false);\n NodeUtil_js_1.default.setProperties(NodeUtil_js_1.default.getCoreMO(op), { 'movablelimits': false });\n if (NodeUtil_js_1.default.getAttribute(op, 'movablelimits') ||\n NodeUtil_js_1.default.getProperty(op, 'movablelimits')) {\n NodeUtil_js_1.default.setProperties(op, { 'movablelimits': false });\n }\n};\nBaseMethods.Over = function (parser, name, open, close) {\n var mml = parser.itemFactory.create('over').setProperty('name', parser.currentCS);\n if (open || close) {\n mml.setProperty('open', open);\n mml.setProperty('close', close);\n }\n else if (name.match(/withdelims$/)) {\n mml.setProperty('open', parser.GetDelimiter(name));\n mml.setProperty('close', parser.GetDelimiter(name));\n }\n if (name.match(/^\\\\above/)) {\n mml.setProperty('thickness', parser.GetDimen(name));\n }\n else if (name.match(/^\\\\atop/) || open || close) {\n mml.setProperty('thickness', 0);\n }\n parser.Push(mml);\n};\nBaseMethods.Frac = function (parser, name) {\n var num = parser.ParseArg(name);\n var den = parser.ParseArg(name);\n var node = parser.create('node', 'mfrac', [num, den]);\n parser.Push(node);\n};\nBaseMethods.Sqrt = function (parser, name) {\n var n = parser.GetBrackets(name);\n var arg = parser.GetArgument(name);\n if (arg === '\\\\frac') {\n arg += '{' + parser.GetArgument(arg) + '}{' + parser.GetArgument(arg) + '}';\n }\n var mml = new TexParser_js_1.default(arg, parser.stack.env, parser.configuration).mml();\n if (!n) {\n mml = parser.create('node', 'msqrt', [mml]);\n }\n else {\n mml = parser.create('node', 'mroot', [mml, parseRoot(parser, n)]);\n }\n parser.Push(mml);\n};\nfunction parseRoot(parser, n) {\n var env = parser.stack.env;\n var inRoot = env['inRoot'];\n env['inRoot'] = true;\n var newParser = new TexParser_js_1.default(n, env, parser.configuration);\n var node = newParser.mml();\n var global = newParser.stack.global;\n if (global['leftRoot'] || global['upRoot']) {\n var def = {};\n if (global['leftRoot']) {\n def['width'] = global['leftRoot'];\n }\n if (global['upRoot']) {\n def['voffset'] = global['upRoot'];\n def['height'] = global['upRoot'];\n }\n node = parser.create('node', 'mpadded', [node], def);\n }\n env['inRoot'] = inRoot;\n return node;\n}\nBaseMethods.Root = function (parser, name) {\n var n = parser.GetUpTo(name, '\\\\of');\n var arg = parser.ParseArg(name);\n var node = parser.create('node', 'mroot', [arg, parseRoot(parser, n)]);\n parser.Push(node);\n};\nBaseMethods.MoveRoot = function (parser, name, id) {\n if (!parser.stack.env['inRoot']) {\n throw new TexError_js_1.default('MisplacedMoveRoot', '%1 can appear only within a root', parser.currentCS);\n }\n if (parser.stack.global[id]) {\n throw new TexError_js_1.default('MultipleMoveRoot', 'Multiple use of %1', parser.currentCS);\n }\n var n = parser.GetArgument(name);\n if (!n.match(/-?[0-9]+/)) {\n throw new TexError_js_1.default('IntegerArg', 'The argument to %1 must be an integer', parser.currentCS);\n }\n n = (parseInt(n, 10) / 15) + 'em';\n if (n.substr(0, 1) !== '-') {\n n = '+' + n;\n }\n parser.stack.global[id] = n;\n};\nBaseMethods.Accent = function (parser, name, accent, stretchy) {\n var c = parser.ParseArg(name);\n var def = __assign(__assign({}, ParseUtil_js_1.default.getFontDef(parser)), { accent: true, mathaccent: true });\n var entity = NodeUtil_js_1.default.createEntity(accent);\n var moNode = parser.create('token', 'mo', def, entity);\n var mml = moNode;\n NodeUtil_js_1.default.setAttribute(mml, 'stretchy', stretchy ? true : false);\n var mo = (NodeUtil_js_1.default.isEmbellished(c) ? NodeUtil_js_1.default.getCoreMO(c) : c);\n if (NodeUtil_js_1.default.isType(mo, 'mo') || NodeUtil_js_1.default.getProperty(mo, 'movablelimits')) {\n NodeUtil_js_1.default.setProperties(mo, { 'movablelimits': false });\n }\n var muoNode = parser.create('node', 'munderover');\n NodeUtil_js_1.default.setChild(muoNode, 0, c);\n NodeUtil_js_1.default.setChild(muoNode, 1, null);\n NodeUtil_js_1.default.setChild(muoNode, 2, mml);\n var texAtom = parser.create('node', 'TeXAtom', [muoNode]);\n parser.Push(texAtom);\n};\nBaseMethods.UnderOver = function (parser, name, c, stack) {\n var entity = NodeUtil_js_1.default.createEntity(c);\n var mo = parser.create('token', 'mo', { stretchy: true, accent: true }, entity);\n var pos = (name.charAt(1) === 'o' ? 'over' : 'under');\n var base = parser.ParseArg(name);\n parser.Push(ParseUtil_js_1.default.underOver(parser, base, mo, pos, stack));\n};\nBaseMethods.Overset = function (parser, name) {\n var top = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (top.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(top, 'accent', false);\n }\n var node = parser.create('node', 'mover', [base, top]);\n parser.Push(node);\n};\nBaseMethods.Underset = function (parser, name) {\n var bot = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (bot.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(bot, 'accent', false);\n }\n var node = parser.create('node', 'munder', [base, bot], { accentunder: false });\n parser.Push(node);\n};\nBaseMethods.Overunderset = function (parser, name) {\n var top = parser.ParseArg(name);\n var bot = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (top.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(top, 'accent', false);\n }\n if (bot.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(bot, 'accent', false);\n }\n var node = parser.create('node', 'munderover', [base, bot, top], { accent: false, accentunder: false });\n parser.Push(node);\n};\nBaseMethods.TeXAtom = function (parser, name, mclass) {\n var def = { texClass: mclass };\n var mml;\n var node;\n var parsed;\n if (mclass === MmlNode_js_1.TEXCLASS.OP) {\n def['movesupsub'] = def['movablelimits'] = true;\n var arg = parser.GetArgument(name);\n var match = arg.match(/^\\s*\\\\rm\\s+([a-zA-Z0-9 ]+)$/);\n if (match) {\n def['mathvariant'] = TexConstants_js_1.TexConstant.Variant.NORMAL;\n node = parser.create('token', 'mi', def, match[1]);\n }\n else {\n parsed = new TexParser_js_1.default(arg, parser.stack.env, parser.configuration).mml();\n node = parser.create('node', 'TeXAtom', [parsed], def);\n }\n mml = parser.itemFactory.create('fn', node);\n }\n else {\n parsed = parser.ParseArg(name);\n mml = parser.create('node', 'TeXAtom', [parsed], def);\n }\n parser.Push(mml);\n};\nBaseMethods.MmlToken = function (parser, name) {\n var kind = parser.GetArgument(name);\n var attr = parser.GetBrackets(name, '').replace(/^\\s+/, '');\n var text = parser.GetArgument(name);\n var def = {};\n var keep = [];\n var node;\n try {\n node = parser.create('node', kind);\n }\n catch (e) {\n node = null;\n }\n if (!node || !node.isToken) {\n throw new TexError_js_1.default('NotMathMLToken', '%1 is not a token element', kind);\n }\n while (attr !== '') {\n var match = attr.match(/^([a-z]+)\\s*=\\s*('[^']*'|\"[^\"]*\"|[^ ,]*)\\s*,?\\s*/i);\n if (!match) {\n throw new TexError_js_1.default('InvalidMathMLAttr', 'Invalid MathML attribute: %1', attr);\n }\n if (!node.attributes.hasDefault(match[1]) && !MmlTokenAllow[match[1]]) {\n throw new TexError_js_1.default('UnknownAttrForElement', '%1 is not a recognized attribute for %2', match[1], kind);\n }\n var value = ParseUtil_js_1.default.MmlFilterAttribute(parser, match[1], match[2].replace(/^(['\"])(.*)\\1$/, '$2'));\n if (value) {\n if (value.toLowerCase() === 'true') {\n value = true;\n }\n else if (value.toLowerCase() === 'false') {\n value = false;\n }\n def[match[1]] = value;\n keep.push(match[1]);\n }\n attr = attr.substr(match[0].length);\n }\n if (keep.length) {\n def['mjx-keep-attrs'] = keep.join(' ');\n }\n var textNode = parser.create('text', text);\n node.appendChild(textNode);\n NodeUtil_js_1.default.setProperties(node, def);\n parser.Push(node);\n};\nBaseMethods.Strut = function (parser, _name) {\n var row = parser.create('node', 'mrow');\n var padded = parser.create('node', 'mpadded', [row], { height: '8.6pt', depth: '3pt', width: 0 });\n parser.Push(padded);\n};\nBaseMethods.Phantom = function (parser, name, v, h) {\n var box = parser.create('node', 'mphantom', [parser.ParseArg(name)]);\n if (v || h) {\n box = parser.create('node', 'mpadded', [box]);\n if (h) {\n NodeUtil_js_1.default.setAttribute(box, 'height', 0);\n NodeUtil_js_1.default.setAttribute(box, 'depth', 0);\n }\n if (v) {\n NodeUtil_js_1.default.setAttribute(box, 'width', 0);\n }\n }\n var atom = parser.create('node', 'TeXAtom', [box]);\n parser.Push(atom);\n};\nBaseMethods.Smash = function (parser, name) {\n var bt = ParseUtil_js_1.default.trimSpaces(parser.GetBrackets(name, ''));\n var smash = parser.create('node', 'mpadded', [parser.ParseArg(name)]);\n switch (bt) {\n case 'b':\n NodeUtil_js_1.default.setAttribute(smash, 'depth', 0);\n break;\n case 't':\n NodeUtil_js_1.default.setAttribute(smash, 'height', 0);\n break;\n default:\n NodeUtil_js_1.default.setAttribute(smash, 'height', 0);\n NodeUtil_js_1.default.setAttribute(smash, 'depth', 0);\n }\n var atom = parser.create('node', 'TeXAtom', [smash]);\n parser.Push(atom);\n};\nBaseMethods.Lap = function (parser, name) {\n var mml = parser.create('node', 'mpadded', [parser.ParseArg(name)], { width: 0 });\n if (name === '\\\\llap') {\n NodeUtil_js_1.default.setAttribute(mml, 'lspace', '-1width');\n }\n var atom = parser.create('node', 'TeXAtom', [mml]);\n parser.Push(atom);\n};\nBaseMethods.RaiseLower = function (parser, name) {\n var h = parser.GetDimen(name);\n var item = parser.itemFactory.create('position').setProperties({ name: parser.currentCS, move: 'vertical' });\n if (h.charAt(0) === '-') {\n h = h.slice(1);\n name = name.substr(1) === 'raise' ? '\\\\lower' : '\\\\raise';\n }\n if (name === '\\\\lower') {\n item.setProperty('dh', '-' + h);\n item.setProperty('dd', '+' + h);\n }\n else {\n item.setProperty('dh', '+' + h);\n item.setProperty('dd', '-' + h);\n }\n parser.Push(item);\n};\nBaseMethods.MoveLeftRight = function (parser, name) {\n var h = parser.GetDimen(name);\n var nh = (h.charAt(0) === '-' ? h.slice(1) : '-' + h);\n if (name === '\\\\moveleft') {\n var tmp = h;\n h = nh;\n nh = tmp;\n }\n parser.Push(parser.itemFactory.create('position').setProperties({\n name: parser.currentCS, move: 'horizontal',\n left: parser.create('node', 'mspace', [], { width: h }),\n right: parser.create('node', 'mspace', [], { width: nh })\n }));\n};\nBaseMethods.Hskip = function (parser, name) {\n var node = parser.create('node', 'mspace', [], { width: parser.GetDimen(name) });\n parser.Push(node);\n};\nBaseMethods.Nonscript = function (parser, _name) {\n parser.Push(parser.itemFactory.create('nonscript'));\n};\nBaseMethods.Rule = function (parser, name, style) {\n var w = parser.GetDimen(name), h = parser.GetDimen(name), d = parser.GetDimen(name);\n var def = { width: w, height: h, depth: d };\n if (style !== 'blank') {\n def['mathbackground'] = (parser.stack.env['color'] || 'black');\n }\n var node = parser.create('node', 'mspace', [], def);\n parser.Push(node);\n};\nBaseMethods.rule = function (parser, name) {\n var v = parser.GetBrackets(name), w = parser.GetDimen(name), h = parser.GetDimen(name);\n var mml = parser.create('node', 'mspace', [], {\n width: w, height: h,\n mathbackground: (parser.stack.env['color'] || 'black')\n });\n if (v) {\n mml = parser.create('node', 'mpadded', [mml], { voffset: v });\n if (v.match(/^\\-/)) {\n NodeUtil_js_1.default.setAttribute(mml, 'height', v);\n NodeUtil_js_1.default.setAttribute(mml, 'depth', '+' + v.substr(1));\n }\n else {\n NodeUtil_js_1.default.setAttribute(mml, 'height', '+' + v);\n }\n }\n parser.Push(mml);\n};\nBaseMethods.MakeBig = function (parser, name, mclass, size) {\n size *= P_HEIGHT;\n var sizeStr = String(size).replace(/(\\.\\d\\d\\d).+/, '$1') + 'em';\n var delim = parser.GetDelimiter(name, true);\n var mo = parser.create('token', 'mo', {\n minsize: sizeStr, maxsize: sizeStr,\n fence: true, stretchy: true, symmetric: true\n }, delim);\n var node = parser.create('node', 'TeXAtom', [mo], { texClass: mclass });\n parser.Push(node);\n};\nBaseMethods.BuildRel = function (parser, name) {\n var top = parser.ParseUpTo(name, '\\\\over');\n var bot = parser.ParseArg(name);\n var node = parser.create('node', 'munderover');\n NodeUtil_js_1.default.setChild(node, 0, bot);\n NodeUtil_js_1.default.setChild(node, 1, null);\n NodeUtil_js_1.default.setChild(node, 2, top);\n var atom = parser.create('node', 'TeXAtom', [node], { texClass: MmlNode_js_1.TEXCLASS.REL });\n parser.Push(atom);\n};\nBaseMethods.HBox = function (parser, name, style, font) {\n parser.PushAll(ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name), style, font));\n};\nBaseMethods.FBox = function (parser, name) {\n var internal = ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name));\n var node = parser.create('node', 'menclose', internal, { notation: 'box' });\n parser.Push(node);\n};\nBaseMethods.FrameBox = function (parser, name) {\n var width = parser.GetBrackets(name);\n var pos = parser.GetBrackets(name) || 'c';\n var mml = ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name));\n if (width) {\n mml = [parser.create('node', 'mpadded', mml, {\n width: width,\n 'data-align': (0, Options_js_1.lookup)(pos, { l: 'left', r: 'right' }, 'center')\n })];\n }\n var node = parser.create('node', 'TeXAtom', [parser.create('node', 'menclose', mml, { notation: 'box' })], { texClass: MmlNode_js_1.TEXCLASS.ORD });\n parser.Push(node);\n};\nBaseMethods.Not = function (parser, _name) {\n parser.Push(parser.itemFactory.create('not'));\n};\nBaseMethods.Dots = function (parser, _name) {\n var ldotsEntity = NodeUtil_js_1.default.createEntity('2026');\n var cdotsEntity = NodeUtil_js_1.default.createEntity('22EF');\n var ldots = parser.create('token', 'mo', { stretchy: false }, ldotsEntity);\n var cdots = parser.create('token', 'mo', { stretchy: false }, cdotsEntity);\n parser.Push(parser.itemFactory.create('dots').setProperties({\n ldots: ldots,\n cdots: cdots\n }));\n};\nBaseMethods.Matrix = function (parser, _name, open, close, align, spacing, vspacing, style, cases, numbered) {\n var c = parser.GetNext();\n if (c === '') {\n throw new TexError_js_1.default('MissingArgFor', 'Missing argument for %1', parser.currentCS);\n }\n if (c === '{') {\n parser.i++;\n }\n else {\n parser.string = c + '}' + parser.string.slice(parser.i + 1);\n parser.i = 0;\n }\n var array = parser.itemFactory.create('array').setProperty('requireClose', true);\n array.arraydef = {\n rowspacing: (vspacing || '4pt'),\n columnspacing: (spacing || '1em')\n };\n if (cases) {\n array.setProperty('isCases', true);\n }\n if (numbered) {\n array.setProperty('isNumbered', true);\n array.arraydef.side = numbered;\n }\n if (open || close) {\n array.setProperty('open', open);\n array.setProperty('close', close);\n }\n if (style === 'D') {\n array.arraydef.displaystyle = true;\n }\n if (align != null) {\n array.arraydef.columnalign = align;\n }\n parser.Push(array);\n};\nBaseMethods.Entry = function (parser, name) {\n parser.Push(parser.itemFactory.create('cell').setProperties({ isEntry: true, name: name }));\n var top = parser.stack.Top();\n var env = top.getProperty('casesEnv');\n var cases = top.getProperty('isCases');\n if (!cases && !env)\n return;\n var str = parser.string;\n var braces = 0, close = -1, i = parser.i, m = str.length;\n var end = (env ? new RegExp(\"^\\\\\\\\end\\\\s*\\\\{\".concat(env.replace(/\\*/, '\\\\*'), \"\\\\}\")) : null);\n while (i < m) {\n var c = str.charAt(i);\n if (c === '{') {\n braces++;\n i++;\n }\n else if (c === '}') {\n if (braces === 0) {\n m = 0;\n }\n else {\n braces--;\n if (braces === 0 && close < 0) {\n close = i - parser.i;\n }\n i++;\n }\n }\n else if (c === '&' && braces === 0) {\n throw new TexError_js_1.default('ExtraAlignTab', 'Extra alignment tab in \\\\cases text');\n }\n else if (c === '\\\\') {\n var rest = str.substr(i);\n if (rest.match(/^((\\\\cr)[^a-zA-Z]|\\\\\\\\)/) || (end && rest.match(end))) {\n m = 0;\n }\n else {\n i += 2;\n }\n }\n else {\n i++;\n }\n }\n var text = str.substr(parser.i, i - parser.i);\n if (!text.match(/^\\s*\\\\text[^a-zA-Z]/) || close !== text.replace(/\\s+$/, '').length - 1) {\n var internal = ParseUtil_js_1.default.internalMath(parser, ParseUtil_js_1.default.trimSpaces(text), 0);\n parser.PushAll(internal);\n parser.i = i;\n }\n};\nBaseMethods.Cr = function (parser, name) {\n parser.Push(parser.itemFactory.create('cell').setProperties({ isCR: true, name: name }));\n};\nBaseMethods.CrLaTeX = function (parser, name, nobrackets) {\n if (nobrackets === void 0) { nobrackets = false; }\n var n;\n if (!nobrackets) {\n if (parser.string.charAt(parser.i) === '*') {\n parser.i++;\n }\n if (parser.string.charAt(parser.i) === '[') {\n var dim = parser.GetBrackets(name, '');\n var _a = __read(ParseUtil_js_1.default.matchDimen(dim), 2), value = _a[0], unit = _a[1];\n if (dim && !value) {\n throw new TexError_js_1.default('BracketMustBeDimension', 'Bracket argument to %1 must be a dimension', parser.currentCS);\n }\n n = value + unit;\n }\n }\n parser.Push(parser.itemFactory.create('cell').setProperties({ isCR: true, name: name, linebreak: true }));\n var top = parser.stack.Top();\n var node;\n if (top instanceof sitem.ArrayItem) {\n if (n) {\n top.addRowSpacing(n);\n }\n }\n else {\n if (n) {\n node = parser.create('node', 'mspace', [], { depth: n });\n parser.Push(node);\n }\n node = parser.create('node', 'mspace', [], { linebreak: TexConstants_js_1.TexConstant.LineBreak.NEWLINE });\n parser.Push(node);\n }\n};\nBaseMethods.HLine = function (parser, _name, style) {\n if (style == null) {\n style = 'solid';\n }\n var top = parser.stack.Top();\n if (!(top instanceof sitem.ArrayItem) || top.Size()) {\n throw new TexError_js_1.default('Misplaced', 'Misplaced %1', parser.currentCS);\n }\n if (!top.table.length) {\n top.frame.push('top');\n }\n else {\n var lines = (top.arraydef['rowlines'] ? top.arraydef['rowlines'].split(/ /) : []);\n while (lines.length < top.table.length) {\n lines.push('none');\n }\n lines[top.table.length - 1] = style;\n top.arraydef['rowlines'] = lines.join(' ');\n }\n};\nBaseMethods.HFill = function (parser, _name) {\n var top = parser.stack.Top();\n if (top instanceof sitem.ArrayItem) {\n top.hfill.push(top.Size());\n }\n else {\n throw new TexError_js_1.default('UnsupportedHFill', 'Unsupported use of %1', parser.currentCS);\n }\n};\nBaseMethods.BeginEnd = function (parser, name) {\n var env = parser.GetArgument(name);\n if (env.match(/\\\\/i)) {\n throw new TexError_js_1.default('InvalidEnv', 'Invalid environment name \\'%1\\'', env);\n }\n var macro = parser.configuration.handlers.get('environment').lookup(env);\n if (macro && name === '\\\\end') {\n if (!macro.args[0]) {\n var mml = parser.itemFactory.create('end').setProperty('name', env);\n parser.Push(mml);\n return;\n }\n parser.stack.env['closing'] = env;\n }\n ParseUtil_js_1.default.checkMaxMacros(parser, false);\n parser.parse('environment', [parser, env]);\n};\nBaseMethods.Array = function (parser, begin, open, close, align, spacing, vspacing, style, raggedHeight) {\n if (!align) {\n align = parser.GetArgument('\\\\begin{' + begin.getName() + '}');\n }\n var lines = ('c' + align).replace(/[^clr|:]/g, '').replace(/[^|:]([|:])+/g, '$1');\n align = align.replace(/[^clr]/g, '').split('').join(' ');\n align = align.replace(/l/g, 'left').replace(/r/g, 'right').replace(/c/g, 'center');\n var array = parser.itemFactory.create('array');\n array.arraydef = {\n columnalign: align,\n columnspacing: (spacing || '1em'),\n rowspacing: (vspacing || '4pt')\n };\n if (lines.match(/[|:]/)) {\n if (lines.charAt(0).match(/[|:]/)) {\n array.frame.push('left');\n array.dashed = lines.charAt(0) === ':';\n }\n if (lines.charAt(lines.length - 1).match(/[|:]/)) {\n array.frame.push('right');\n }\n lines = lines.substr(1, lines.length - 2);\n array.arraydef.columnlines =\n lines.split('').join(' ').replace(/[^|: ]/g, 'none').replace(/\\|/g, 'solid').replace(/:/g, 'dashed');\n }\n if (open) {\n array.setProperty('open', parser.convertDelimiter(open));\n }\n if (close) {\n array.setProperty('close', parser.convertDelimiter(close));\n }\n if ((style || '').charAt(1) === '\\'') {\n array.arraydef['data-cramped'] = true;\n style = style.charAt(0);\n }\n if (style === 'D') {\n array.arraydef['displaystyle'] = true;\n }\n else if (style) {\n array.arraydef['displaystyle'] = false;\n }\n if (style === 'S') {\n array.arraydef['scriptlevel'] = 1;\n }\n if (raggedHeight) {\n array.arraydef['useHeight'] = false;\n }\n parser.Push(begin);\n return array;\n};\nBaseMethods.AlignedArray = function (parser, begin) {\n var align = parser.GetBrackets('\\\\begin{' + begin.getName() + '}');\n var item = BaseMethods.Array(parser, begin);\n return ParseUtil_js_1.default.setArrayAlign(item, align);\n};\nBaseMethods.Equation = function (parser, begin, numbered) {\n parser.Push(begin);\n ParseUtil_js_1.default.checkEqnEnv(parser);\n return parser.itemFactory.create('equation', numbered).\n setProperty('name', begin.getName());\n};\nBaseMethods.EqnArray = function (parser, begin, numbered, taggable, align, spacing) {\n parser.Push(begin);\n if (taggable) {\n ParseUtil_js_1.default.checkEqnEnv(parser);\n }\n align = align.replace(/[^clr]/g, '').split('').join(' ');\n align = align.replace(/l/g, 'left').replace(/r/g, 'right').replace(/c/g, 'center');\n var newItem = parser.itemFactory.create('eqnarray', begin.getName(), numbered, taggable, parser.stack.global);\n newItem.arraydef = {\n displaystyle: true,\n columnalign: align,\n columnspacing: (spacing || '1em'),\n rowspacing: '3pt',\n side: parser.options['tagSide'],\n minlabelspacing: parser.options['tagIndent']\n };\n return newItem;\n};\nBaseMethods.HandleNoTag = function (parser, _name) {\n parser.tags.notag();\n};\nBaseMethods.HandleLabel = function (parser, name) {\n var label = parser.GetArgument(name);\n if (label === '') {\n return;\n }\n if (!parser.tags.refUpdate) {\n if (parser.tags.label) {\n throw new TexError_js_1.default('MultipleCommand', 'Multiple %1', parser.currentCS);\n }\n parser.tags.label = label;\n if ((parser.tags.allLabels[label] || parser.tags.labels[label]) && !parser.options['ignoreDuplicateLabels']) {\n throw new TexError_js_1.default('MultipleLabel', 'Label \\'%1\\' multiply defined', label);\n }\n parser.tags.labels[label] = new Tags_js_1.Label();\n }\n};\nBaseMethods.HandleRef = function (parser, name, eqref) {\n var label = parser.GetArgument(name);\n var ref = parser.tags.allLabels[label] || parser.tags.labels[label];\n if (!ref) {\n if (!parser.tags.refUpdate) {\n parser.tags.redo = true;\n }\n ref = new Tags_js_1.Label();\n }\n var tag = ref.tag;\n if (eqref) {\n tag = parser.tags.formatTag(tag);\n }\n var node = parser.create('node', 'mrow', ParseUtil_js_1.default.internalMath(parser, tag), {\n href: parser.tags.formatUrl(ref.id, parser.options.baseURL), 'class': 'MathJax_ref'\n });\n parser.Push(node);\n};\nBaseMethods.Macro = function (parser, name, macro, argcount, def) {\n if (argcount) {\n var args = [];\n if (def != null) {\n var optional = parser.GetBrackets(name);\n args.push(optional == null ? def : optional);\n }\n for (var i = args.length; i < argcount; i++) {\n args.push(parser.GetArgument(name));\n }\n macro = ParseUtil_js_1.default.substituteArgs(parser, args, macro);\n }\n parser.string = ParseUtil_js_1.default.addArgs(parser, macro, parser.string.slice(parser.i));\n parser.i = 0;\n ParseUtil_js_1.default.checkMaxMacros(parser);\n};\nBaseMethods.MathChoice = function (parser, name) {\n var D = parser.ParseArg(name);\n var T = parser.ParseArg(name);\n var S = parser.ParseArg(name);\n var SS = parser.ParseArg(name);\n parser.Push(parser.create('node', 'MathChoice', [D, T, S, SS]));\n};\nexports.default = BaseMethods;\n//# sourceMappingURL=BaseMethods.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HtmlConfiguration = void 0;\nvar Configuration_js_1 = require(\"../Configuration.js\");\nvar SymbolMap_js_1 = require(\"../SymbolMap.js\");\nvar HtmlMethods_js_1 = __importDefault(require(\"./HtmlMethods.js\"));\nnew SymbolMap_js_1.CommandMap('html_macros', {\n href: 'Href',\n 'class': 'Class',\n style: 'Style',\n cssId: 'Id'\n}, HtmlMethods_js_1.default);\nexports.HtmlConfiguration = Configuration_js_1.Configuration.create('html', { handler: { macro: ['html_macros'] } });\n//# sourceMappingURL=HtmlConfiguration.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NodeUtil_js_1 = __importDefault(require(\"../NodeUtil.js\"));\nvar HtmlMethods = {};\nHtmlMethods.Href = function (parser, name) {\n var url = parser.GetArgument(name);\n var arg = GetArgumentMML(parser, name);\n NodeUtil_js_1.default.setAttribute(arg, 'href', url);\n parser.Push(arg);\n};\nHtmlMethods.Class = function (parser, name) {\n var CLASS = parser.GetArgument(name);\n var arg = GetArgumentMML(parser, name);\n var oldClass = NodeUtil_js_1.default.getAttribute(arg, 'class');\n if (oldClass) {\n CLASS = oldClass + ' ' + CLASS;\n }\n NodeUtil_js_1.default.setAttribute(arg, 'class', CLASS);\n parser.Push(arg);\n};\nHtmlMethods.Style = function (parser, name) {\n var style = parser.GetArgument(name);\n var arg = GetArgumentMML(parser, name);\n var oldStyle = NodeUtil_js_1.default.getAttribute(arg, 'style');\n if (oldStyle) {\n if (style.charAt(style.length - 1) !== ';') {\n style += ';';\n }\n style = oldStyle + ' ' + style;\n }\n NodeUtil_js_1.default.setAttribute(arg, 'style', style);\n parser.Push(arg);\n};\nHtmlMethods.Id = function (parser, name) {\n var ID = parser.GetArgument(name);\n var arg = GetArgumentMML(parser, name);\n NodeUtil_js_1.default.setAttribute(arg, 'id', ID);\n parser.Push(arg);\n};\nvar GetArgumentMML = function (parser, name) {\n var arg = parser.ParseArg(name);\n if (!NodeUtil_js_1.default.isInferred(arg)) {\n return arg;\n }\n var children = NodeUtil_js_1.default.getChildren(arg);\n if (children.length === 1) {\n return children[0];\n }\n var mrow = parser.create('node', 'mrow');\n NodeUtil_js_1.default.copyChildren(arg, mrow);\n NodeUtil_js_1.default.copyAttributes(arg, mrow);\n return mrow;\n};\nexports.default = HtmlMethods;\n//# sourceMappingURL=HtmlMethods.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mathjax = void 0;\nvar version_js_1 = require(\"./components/version.js\");\nvar HandlerList_js_1 = require(\"./core/HandlerList.js\");\nvar Retries_js_1 = require(\"./util/Retries.js\");\nexports.mathjax = {\n version: version_js_1.VERSION,\n handlers: new HandlerList_js_1.HandlerList(),\n document: function (document, options) {\n return exports.mathjax.handlers.document(document, options);\n },\n handleRetriesFor: Retries_js_1.handleRetriesFor,\n retryAfter: Retries_js_1.retryAfter,\n asyncLoad: null,\n};\n//# sourceMappingURL=mathjax.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTML = void 0;\nvar OutputJax_js_1 = require(\"./common/OutputJax.js\");\nvar StyleList_js_1 = require(\"../util/StyleList.js\");\nvar WrapperFactory_js_1 = require(\"./chtml/WrapperFactory.js\");\nvar Usage_js_1 = require(\"./chtml/Usage.js\");\nvar tex_js_1 = require(\"./chtml/fonts/tex.js\");\nvar LENGTHS = __importStar(require(\"../util/lengths.js\"));\nvar string_js_1 = require(\"../util/string.js\");\nvar CHTML = (function (_super) {\n __extends(CHTML, _super);\n function CHTML(options) {\n if (options === void 0) { options = null; }\n var _this = _super.call(this, options, WrapperFactory_js_1.CHTMLWrapperFactory, tex_js_1.TeXFont) || this;\n _this.chtmlStyles = null;\n _this.font.adaptiveCSS(_this.options.adaptiveCSS);\n _this.wrapperUsage = new Usage_js_1.Usage();\n return _this;\n }\n CHTML.prototype.escaped = function (math, html) {\n this.setDocument(html);\n return this.html('span', {}, [this.text(math.math)]);\n };\n CHTML.prototype.styleSheet = function (html) {\n if (this.chtmlStyles) {\n if (this.options.adaptiveCSS) {\n var styles = new StyleList_js_1.CssStyles();\n this.addWrapperStyles(styles);\n this.updateFontStyles(styles);\n this.adaptor.insertRules(this.chtmlStyles, styles.getStyleRules());\n }\n return this.chtmlStyles;\n }\n var sheet = this.chtmlStyles = _super.prototype.styleSheet.call(this, html);\n this.adaptor.setAttribute(sheet, 'id', CHTML.STYLESHEETID);\n this.wrapperUsage.update();\n return sheet;\n };\n CHTML.prototype.updateFontStyles = function (styles) {\n styles.addStyles(this.font.updateStyles({}));\n };\n CHTML.prototype.addWrapperStyles = function (styles) {\n var e_1, _a;\n if (!this.options.adaptiveCSS) {\n _super.prototype.addWrapperStyles.call(this, styles);\n return;\n }\n try {\n for (var _b = __values(this.wrapperUsage.update()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var kind = _c.value;\n var wrapper = this.factory.getNodeClass(kind);\n wrapper && this.addClassStyles(wrapper, styles);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n CHTML.prototype.addClassStyles = function (wrapper, styles) {\n var _a;\n var CLASS = wrapper;\n if (CLASS.autoStyle && CLASS.kind !== 'unknown') {\n styles.addStyles((_a = {},\n _a['mjx-' + CLASS.kind] = {\n display: 'inline-block',\n 'text-align': 'left'\n },\n _a));\n }\n this.wrapperUsage.add(CLASS.kind);\n _super.prototype.addClassStyles.call(this, wrapper, styles);\n };\n CHTML.prototype.processMath = function (math, parent) {\n this.factory.wrap(math).toCHTML(parent);\n };\n CHTML.prototype.clearCache = function () {\n this.cssStyles.clear();\n this.font.clearCache();\n this.wrapperUsage.clear();\n this.chtmlStyles = null;\n };\n CHTML.prototype.reset = function () {\n this.clearCache();\n };\n CHTML.prototype.unknownText = function (text, variant, width) {\n if (width === void 0) { width = null; }\n var styles = {};\n var scale = 100 / this.math.metrics.scale;\n if (scale !== 100) {\n styles['font-size'] = this.fixed(scale, 1) + '%';\n styles.padding = LENGTHS.em(75 / scale) + ' 0 ' + LENGTHS.em(20 / scale) + ' 0';\n }\n if (variant !== '-explicitFont') {\n var c = (0, string_js_1.unicodeChars)(text);\n if (c.length !== 1 || c[0] < 0x1D400 || c[0] > 0x1D7FF) {\n this.cssFontStyles(this.font.getCssFont(variant), styles);\n }\n }\n if (width !== null) {\n var metrics = this.math.metrics;\n styles.width = Math.round(width * metrics.em * metrics.scale) + 'px';\n }\n return this.html('mjx-utext', { variant: variant, style: styles }, [this.text(text)]);\n };\n CHTML.prototype.measureTextNode = function (textNode) {\n var adaptor = this.adaptor;\n var text = adaptor.clone(textNode);\n adaptor.setStyle(text, 'font-family', adaptor.getStyle(text, 'font-family').replace(/MJXZERO, /g, ''));\n var style = { position: 'absolute', 'white-space': 'nowrap' };\n var node = this.html('mjx-measure-text', { style: style }, [text]);\n adaptor.append(adaptor.parent(this.math.start.node), this.container);\n adaptor.append(this.container, node);\n var w = adaptor.nodeSize(text, this.math.metrics.em)[0] / this.math.metrics.scale;\n adaptor.remove(this.container);\n adaptor.remove(node);\n return { w: w, h: .75, d: .2 };\n };\n CHTML.NAME = 'CHTML';\n CHTML.OPTIONS = __assign(__assign({}, OutputJax_js_1.CommonOutputJax.OPTIONS), { adaptiveCSS: true, matchFontHeight: true });\n CHTML.commonStyles = {\n 'mjx-container[jax=\"CHTML\"]': { 'line-height': 0 },\n 'mjx-container [space=\"1\"]': { 'margin-left': '.111em' },\n 'mjx-container [space=\"2\"]': { 'margin-left': '.167em' },\n 'mjx-container [space=\"3\"]': { 'margin-left': '.222em' },\n 'mjx-container [space=\"4\"]': { 'margin-left': '.278em' },\n 'mjx-container [space=\"5\"]': { 'margin-left': '.333em' },\n 'mjx-container [rspace=\"1\"]': { 'margin-right': '.111em' },\n 'mjx-container [rspace=\"2\"]': { 'margin-right': '.167em' },\n 'mjx-container [rspace=\"3\"]': { 'margin-right': '.222em' },\n 'mjx-container [rspace=\"4\"]': { 'margin-right': '.278em' },\n 'mjx-container [rspace=\"5\"]': { 'margin-right': '.333em' },\n 'mjx-container [size=\"s\"]': { 'font-size': '70.7%' },\n 'mjx-container [size=\"ss\"]': { 'font-size': '50%' },\n 'mjx-container [size=\"Tn\"]': { 'font-size': '60%' },\n 'mjx-container [size=\"sm\"]': { 'font-size': '85%' },\n 'mjx-container [size=\"lg\"]': { 'font-size': '120%' },\n 'mjx-container [size=\"Lg\"]': { 'font-size': '144%' },\n 'mjx-container [size=\"LG\"]': { 'font-size': '173%' },\n 'mjx-container [size=\"hg\"]': { 'font-size': '207%' },\n 'mjx-container [size=\"HG\"]': { 'font-size': '249%' },\n 'mjx-container [width=\"full\"]': { width: '100%' },\n 'mjx-box': { display: 'inline-block' },\n 'mjx-block': { display: 'block' },\n 'mjx-itable': { display: 'inline-table' },\n 'mjx-row': { display: 'table-row' },\n 'mjx-row > *': { display: 'table-cell' },\n 'mjx-mtext': {\n display: 'inline-block'\n },\n 'mjx-mstyle': {\n display: 'inline-block'\n },\n 'mjx-merror': {\n display: 'inline-block',\n color: 'red',\n 'background-color': 'yellow'\n },\n 'mjx-mphantom': {\n visibility: 'hidden'\n },\n '_::-webkit-full-page-media, _:future, :root mjx-container': {\n 'will-change': 'opacity'\n }\n };\n CHTML.STYLESHEETID = 'MJX-CHTML-styles';\n return CHTML;\n}(OutputJax_js_1.CommonOutputJax));\nexports.CHTML = CHTML;\n//# sourceMappingURL=chtml.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AddCSS = exports.CHTMLFontData = void 0;\nvar FontData_js_1 = require(\"../common/FontData.js\");\nvar Usage_js_1 = require(\"./Usage.js\");\nvar lengths_js_1 = require(\"../../util/lengths.js\");\n__exportStar(require(\"../common/FontData.js\"), exports);\nvar CHTMLFontData = (function (_super) {\n __extends(CHTMLFontData, _super);\n function CHTMLFontData() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.charUsage = new Usage_js_1.Usage();\n _this.delimUsage = new Usage_js_1.Usage();\n return _this;\n }\n CHTMLFontData.charOptions = function (font, n) {\n return _super.charOptions.call(this, font, n);\n };\n CHTMLFontData.prototype.adaptiveCSS = function (adapt) {\n this.options.adaptiveCSS = adapt;\n };\n CHTMLFontData.prototype.clearCache = function () {\n if (this.options.adaptiveCSS) {\n this.charUsage.clear();\n this.delimUsage.clear();\n }\n };\n CHTMLFontData.prototype.createVariant = function (name, inherit, link) {\n if (inherit === void 0) { inherit = null; }\n if (link === void 0) { link = null; }\n _super.prototype.createVariant.call(this, name, inherit, link);\n var CLASS = this.constructor;\n this.variant[name].classes = CLASS.defaultVariantClasses[name];\n this.variant[name].letter = CLASS.defaultVariantLetters[name];\n };\n CHTMLFontData.prototype.defineChars = function (name, chars) {\n var e_1, _a;\n _super.prototype.defineChars.call(this, name, chars);\n var letter = this.variant[name].letter;\n try {\n for (var _b = __values(Object.keys(chars)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var n = _c.value;\n var options = CHTMLFontData.charOptions(chars, parseInt(n));\n if (options.f === undefined) {\n options.f = letter;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n Object.defineProperty(CHTMLFontData.prototype, \"styles\", {\n get: function () {\n var CLASS = this.constructor;\n var styles = __assign({}, CLASS.defaultStyles);\n this.addFontURLs(styles, CLASS.defaultFonts, this.options.fontURL);\n if (this.options.adaptiveCSS) {\n this.updateStyles(styles);\n }\n else {\n this.allStyles(styles);\n }\n return styles;\n },\n enumerable: false,\n configurable: true\n });\n CHTMLFontData.prototype.updateStyles = function (styles) {\n var e_2, _a, e_3, _b;\n try {\n for (var _c = __values(this.delimUsage.update()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var N = _d.value;\n this.addDelimiterStyles(styles, N, this.delimiters[N]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n try {\n for (var _e = __values(this.charUsage.update()), _f = _e.next(); !_f.done; _f = _e.next()) {\n var _g = __read(_f.value, 2), name_1 = _g[0], N = _g[1];\n var variant = this.variant[name_1];\n this.addCharStyles(styles, variant.letter, N, variant.chars[N]);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return styles;\n };\n CHTMLFontData.prototype.allStyles = function (styles) {\n var e_4, _a, e_5, _b, e_6, _c;\n try {\n for (var _d = __values(Object.keys(this.delimiters)), _e = _d.next(); !_e.done; _e = _d.next()) {\n var n = _e.value;\n var N = parseInt(n);\n this.addDelimiterStyles(styles, N, this.delimiters[N]);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_4) throw e_4.error; }\n }\n try {\n for (var _f = __values(Object.keys(this.variant)), _g = _f.next(); !_g.done; _g = _f.next()) {\n var name_2 = _g.value;\n var variant = this.variant[name_2];\n var vletter = variant.letter;\n try {\n for (var _h = (e_6 = void 0, __values(Object.keys(variant.chars))), _j = _h.next(); !_j.done; _j = _h.next()) {\n var n = _j.value;\n var N = parseInt(n);\n var char = variant.chars[N];\n if ((char[3] || {}).smp)\n continue;\n if (char.length < 4) {\n char[3] = {};\n }\n this.addCharStyles(styles, vletter, N, char);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_c = _h.return)) _c.call(_h);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_5) throw e_5.error; }\n }\n };\n CHTMLFontData.prototype.addFontURLs = function (styles, fonts, url) {\n var e_7, _a;\n try {\n for (var _b = __values(Object.keys(fonts)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_3 = _c.value;\n var font = __assign({}, fonts[name_3]);\n font.src = font.src.replace(/%%URL%%/, url);\n styles[name_3] = font;\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n };\n CHTMLFontData.prototype.addDelimiterStyles = function (styles, n, data) {\n var c = this.charSelector(n);\n if (data.c && data.c !== n) {\n c = this.charSelector(data.c);\n styles['.mjx-stretched mjx-c' + c + '::before'] = {\n content: this.charContent(data.c)\n };\n }\n if (!data.stretch)\n return;\n if (data.dir === 1) {\n this.addDelimiterVStyles(styles, c, data);\n }\n else {\n this.addDelimiterHStyles(styles, c, data);\n }\n };\n CHTMLFontData.prototype.addDelimiterVStyles = function (styles, c, data) {\n var HDW = data.HDW;\n var _a = __read(data.stretch, 4), beg = _a[0], ext = _a[1], end = _a[2], mid = _a[3];\n var Hb = this.addDelimiterVPart(styles, c, 'beg', beg, HDW);\n this.addDelimiterVPart(styles, c, 'ext', ext, HDW);\n var He = this.addDelimiterVPart(styles, c, 'end', end, HDW);\n var css = {};\n if (mid) {\n var Hm = this.addDelimiterVPart(styles, c, 'mid', mid, HDW);\n css.height = '50%';\n styles['mjx-stretchy-v' + c + ' > mjx-mid'] = {\n 'margin-top': this.em(-Hm / 2),\n 'margin-bottom': this.em(-Hm / 2)\n };\n }\n if (Hb) {\n css['border-top-width'] = this.em0(Hb - .03);\n }\n if (He) {\n css['border-bottom-width'] = this.em0(He - .03);\n styles['mjx-stretchy-v' + c + ' > mjx-end'] = { 'margin-top': this.em(-He) };\n }\n if (Object.keys(css).length) {\n styles['mjx-stretchy-v' + c + ' > mjx-ext'] = css;\n }\n };\n CHTMLFontData.prototype.addDelimiterVPart = function (styles, c, part, n, HDW) {\n if (!n)\n return 0;\n var data = this.getDelimiterData(n);\n var dw = (HDW[2] - data[2]) / 2;\n var css = { content: this.charContent(n) };\n if (part !== 'ext') {\n css.padding = this.padding(data, dw);\n }\n else {\n css.width = this.em0(HDW[2]);\n if (dw) {\n css['padding-left'] = this.em0(dw);\n }\n }\n styles['mjx-stretchy-v' + c + ' mjx-' + part + ' mjx-c::before'] = css;\n return data[0] + data[1];\n };\n CHTMLFontData.prototype.addDelimiterHStyles = function (styles, c, data) {\n var _a = __read(data.stretch, 4), beg = _a[0], ext = _a[1], end = _a[2], mid = _a[3];\n var HDW = data.HDW;\n this.addDelimiterHPart(styles, c, 'beg', beg, HDW);\n this.addDelimiterHPart(styles, c, 'ext', ext, HDW);\n this.addDelimiterHPart(styles, c, 'end', end, HDW);\n if (mid) {\n this.addDelimiterHPart(styles, c, 'mid', mid, HDW);\n styles['mjx-stretchy-h' + c + ' > mjx-ext'] = { width: '50%' };\n }\n };\n CHTMLFontData.prototype.addDelimiterHPart = function (styles, c, part, n, HDW) {\n if (!n)\n return;\n var data = this.getDelimiterData(n);\n var options = data[3];\n var css = { content: (options && options.c ? '\"' + options.c + '\"' : this.charContent(n)) };\n css.padding = this.padding(HDW, 0, -HDW[2]);\n styles['mjx-stretchy-h' + c + ' mjx-' + part + ' mjx-c::before'] = css;\n };\n CHTMLFontData.prototype.addCharStyles = function (styles, vletter, n, data) {\n var options = data[3];\n var letter = (options.f !== undefined ? options.f : vletter);\n var selector = 'mjx-c' + this.charSelector(n) + (letter ? '.TEX-' + letter : '');\n styles[selector + '::before'] = {\n padding: this.padding(data, 0, options.ic || 0),\n content: (options.c != null ? '\"' + options.c + '\"' : this.charContent(n))\n };\n };\n CHTMLFontData.prototype.getDelimiterData = function (n) {\n return this.getChar('-smallop', n);\n };\n CHTMLFontData.prototype.em = function (n) {\n return (0, lengths_js_1.em)(n);\n };\n CHTMLFontData.prototype.em0 = function (n) {\n return (0, lengths_js_1.em)(Math.max(0, n));\n };\n CHTMLFontData.prototype.padding = function (_a, dw, ic) {\n var _b = __read(_a, 3), h = _b[0], d = _b[1], w = _b[2];\n if (dw === void 0) { dw = 0; }\n if (ic === void 0) { ic = 0; }\n return [h, w + ic, d, dw].map(this.em0).join(' ');\n };\n CHTMLFontData.prototype.charContent = function (n) {\n return '\"' + (n >= 0x20 && n <= 0x7E && n !== 0x22 && n !== 0x27 && n !== 0x5C ?\n String.fromCharCode(n) : '\\\\' + n.toString(16).toUpperCase()) + '\"';\n };\n CHTMLFontData.prototype.charSelector = function (n) {\n return '.mjx-c' + n.toString(16).toUpperCase();\n };\n CHTMLFontData.OPTIONS = __assign(__assign({}, FontData_js_1.FontData.OPTIONS), { fontURL: 'js/output/chtml/fonts/tex-woff-v2' });\n CHTMLFontData.JAX = 'CHTML';\n CHTMLFontData.defaultVariantClasses = {};\n CHTMLFontData.defaultVariantLetters = {};\n CHTMLFontData.defaultStyles = {\n 'mjx-c::before': {\n display: 'block',\n width: 0\n }\n };\n CHTMLFontData.defaultFonts = {\n '@font-face /* 0 */': {\n 'font-family': 'MJXZERO',\n src: 'url(\"%%URL%%/MathJax_Zero.woff\") format(\"woff\")'\n }\n };\n return CHTMLFontData;\n}(FontData_js_1.FontData));\nexports.CHTMLFontData = CHTMLFontData;\nfunction AddCSS(font, options) {\n var e_8, _a;\n try {\n for (var _b = __values(Object.keys(options)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var c = _c.value;\n var n = parseInt(c);\n Object.assign(FontData_js_1.FontData.charOptions(font, n), options[n]);\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_8) throw e_8.error; }\n }\n return font;\n}\nexports.AddCSS = AddCSS;\n//# sourceMappingURL=FontData.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Arrow = exports.DiagonalArrow = exports.DiagonalStrike = exports.Border2 = exports.Border = exports.RenderElement = void 0;\nvar Notation = __importStar(require(\"../common/Notation.js\"));\n__exportStar(require(\"../common/Notation.js\"), exports);\nvar RenderElement = function (name, offset) {\n if (offset === void 0) { offset = ''; }\n return (function (node, _child) {\n var shape = node.adjustBorder(node.html('mjx-' + name));\n if (offset) {\n var d = node.getOffset(offset);\n if (node.thickness !== Notation.THICKNESS || d) {\n var transform = \"translate\".concat(offset, \"(\").concat(node.em(node.thickness / 2 - d), \")\");\n node.adaptor.setStyle(shape, 'transform', transform);\n }\n }\n node.adaptor.append(node.chtml, shape);\n });\n};\nexports.RenderElement = RenderElement;\nvar Border = function (side) {\n return Notation.CommonBorder(function (node, child) {\n node.adaptor.setStyle(child, 'border-' + side, node.em(node.thickness) + ' solid');\n })(side);\n};\nexports.Border = Border;\nvar Border2 = function (name, side1, side2) {\n return Notation.CommonBorder2(function (node, child) {\n var border = node.em(node.thickness) + ' solid';\n node.adaptor.setStyle(child, 'border-' + side1, border);\n node.adaptor.setStyle(child, 'border-' + side2, border);\n })(name, side1, side2);\n};\nexports.Border2 = Border2;\nvar DiagonalStrike = function (name, neg) {\n return Notation.CommonDiagonalStrike(function (cname) { return function (node, _child) {\n var _a = node.getBBox(), w = _a.w, h = _a.h, d = _a.d;\n var _b = __read(node.getArgMod(w, h + d), 2), a = _b[0], W = _b[1];\n var t = neg * node.thickness / 2;\n var strike = node.adjustBorder(node.html(cname, { style: {\n width: node.em(W),\n transform: 'rotate(' + node.fixed(-neg * a) + 'rad) translateY(' + t + 'em)',\n } }));\n node.adaptor.append(node.chtml, strike);\n }; })(name);\n};\nexports.DiagonalStrike = DiagonalStrike;\nvar DiagonalArrow = function (name) {\n return Notation.CommonDiagonalArrow(function (node, arrow) {\n node.adaptor.append(node.chtml, arrow);\n })(name);\n};\nexports.DiagonalArrow = DiagonalArrow;\nvar Arrow = function (name) {\n return Notation.CommonArrow(function (node, arrow) {\n node.adaptor.append(node.chtml, arrow);\n })(name);\n};\nexports.Arrow = Arrow;\n//# sourceMappingURL=Notation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Usage = void 0;\nvar Usage = (function () {\n function Usage() {\n this.used = new Set();\n this.needsUpdate = [];\n }\n Usage.prototype.add = function (item) {\n var name = JSON.stringify(item);\n if (!this.used.has(name)) {\n this.needsUpdate.push(item);\n }\n this.used.add(name);\n };\n Usage.prototype.has = function (item) {\n return this.used.has(JSON.stringify(item));\n };\n Usage.prototype.clear = function () {\n this.used.clear();\n this.needsUpdate = [];\n };\n Usage.prototype.update = function () {\n var update = this.needsUpdate;\n this.needsUpdate = [];\n return update;\n };\n return Usage;\n}());\nexports.Usage = Usage;\n//# sourceMappingURL=Usage.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLWrapper = exports.SPACE = exports.FONTSIZE = void 0;\nvar LENGTHS = __importStar(require(\"../../util/lengths.js\"));\nvar Wrapper_js_1 = require(\"../common/Wrapper.js\");\nvar BBox_js_1 = require(\"../../util/BBox.js\");\nexports.FONTSIZE = {\n '70.7%': 's',\n '70%': 's',\n '50%': 'ss',\n '60%': 'Tn',\n '85%': 'sm',\n '120%': 'lg',\n '144%': 'Lg',\n '173%': 'LG',\n '207%': 'hg',\n '249%': 'HG'\n};\nexports.SPACE = (_a = {},\n _a[LENGTHS.em(2 / 18)] = '1',\n _a[LENGTHS.em(3 / 18)] = '2',\n _a[LENGTHS.em(4 / 18)] = '3',\n _a[LENGTHS.em(5 / 18)] = '4',\n _a[LENGTHS.em(6 / 18)] = '5',\n _a);\nvar CHTMLWrapper = (function (_super) {\n __extends(CHTMLWrapper, _super);\n function CHTMLWrapper() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.chtml = null;\n return _this;\n }\n CHTMLWrapper.prototype.toCHTML = function (parent) {\n var e_1, _a;\n var chtml = this.standardCHTMLnode(parent);\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.toCHTML(chtml);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n CHTMLWrapper.prototype.standardCHTMLnode = function (parent) {\n this.markUsed();\n var chtml = this.createCHTMLnode(parent);\n this.handleStyles();\n this.handleVariant();\n this.handleScale();\n this.handleColor();\n this.handleSpace();\n this.handleAttributes();\n this.handlePWidth();\n return chtml;\n };\n CHTMLWrapper.prototype.markUsed = function () {\n this.jax.wrapperUsage.add(this.kind);\n };\n CHTMLWrapper.prototype.createCHTMLnode = function (parent) {\n var href = this.node.attributes.get('href');\n if (href) {\n parent = this.adaptor.append(parent, this.html('a', { href: href }));\n }\n this.chtml = this.adaptor.append(parent, this.html('mjx-' + this.node.kind));\n return this.chtml;\n };\n CHTMLWrapper.prototype.handleStyles = function () {\n if (!this.styles)\n return;\n var styles = this.styles.cssText;\n if (styles) {\n this.adaptor.setAttribute(this.chtml, 'style', styles);\n var family = this.styles.get('font-family');\n if (family) {\n this.adaptor.setStyle(this.chtml, 'font-family', 'MJXZERO, ' + family);\n }\n }\n };\n CHTMLWrapper.prototype.handleVariant = function () {\n if (this.node.isToken && this.variant !== '-explicitFont') {\n this.adaptor.setAttribute(this.chtml, 'class', (this.font.getVariant(this.variant) || this.font.getVariant('normal')).classes);\n }\n };\n CHTMLWrapper.prototype.handleScale = function () {\n this.setScale(this.chtml, this.bbox.rscale);\n };\n CHTMLWrapper.prototype.setScale = function (chtml, rscale) {\n var scale = (Math.abs(rscale - 1) < .001 ? 1 : rscale);\n if (chtml && scale !== 1) {\n var size = this.percent(scale);\n if (exports.FONTSIZE[size]) {\n this.adaptor.setAttribute(chtml, 'size', exports.FONTSIZE[size]);\n }\n else {\n this.adaptor.setStyle(chtml, 'fontSize', size);\n }\n }\n return chtml;\n };\n CHTMLWrapper.prototype.handleSpace = function () {\n var e_2, _a;\n try {\n for (var _b = __values([[this.bbox.L, 'space', 'marginLeft'],\n [this.bbox.R, 'rspace', 'marginRight']]), _c = _b.next(); !_c.done; _c = _b.next()) {\n var data = _c.value;\n var _d = __read(data, 3), dimen = _d[0], name_1 = _d[1], margin = _d[2];\n if (dimen) {\n var space = this.em(dimen);\n if (exports.SPACE[space]) {\n this.adaptor.setAttribute(this.chtml, name_1, exports.SPACE[space]);\n }\n else {\n this.adaptor.setStyle(this.chtml, margin, space);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n CHTMLWrapper.prototype.handleColor = function () {\n var attributes = this.node.attributes;\n var mathcolor = attributes.getExplicit('mathcolor');\n var color = attributes.getExplicit('color');\n var mathbackground = attributes.getExplicit('mathbackground');\n var background = attributes.getExplicit('background');\n if (mathcolor || color) {\n this.adaptor.setStyle(this.chtml, 'color', mathcolor || color);\n }\n if (mathbackground || background) {\n this.adaptor.setStyle(this.chtml, 'backgroundColor', mathbackground || background);\n }\n };\n CHTMLWrapper.prototype.handleAttributes = function () {\n var e_3, _a, e_4, _b;\n var attributes = this.node.attributes;\n var defaults = attributes.getAllDefaults();\n var skip = CHTMLWrapper.skipAttributes;\n try {\n for (var _c = __values(attributes.getExplicitNames()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_2 = _d.value;\n if (skip[name_2] === false || (!(name_2 in defaults) && !skip[name_2] &&\n !this.adaptor.hasAttribute(this.chtml, name_2))) {\n this.adaptor.setAttribute(this.chtml, name_2, attributes.getExplicit(name_2));\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n if (attributes.get('class')) {\n var names = attributes.get('class').trim().split(/ +/);\n try {\n for (var names_1 = __values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name_3 = names_1_1.value;\n this.adaptor.addClass(this.chtml, name_3);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_b = names_1.return)) _b.call(names_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n };\n CHTMLWrapper.prototype.handlePWidth = function () {\n if (this.bbox.pwidth) {\n if (this.bbox.pwidth === BBox_js_1.BBox.fullWidth) {\n this.adaptor.setAttribute(this.chtml, 'width', 'full');\n }\n else {\n this.adaptor.setStyle(this.chtml, 'width', this.bbox.pwidth);\n }\n }\n };\n CHTMLWrapper.prototype.setIndent = function (chtml, align, shift) {\n var adaptor = this.adaptor;\n if (align === 'center' || align === 'left') {\n var L = this.getBBox().L;\n adaptor.setStyle(chtml, 'margin-left', this.em(shift + L));\n }\n if (align === 'center' || align === 'right') {\n var R = this.getBBox().R;\n adaptor.setStyle(chtml, 'margin-right', this.em(-shift + R));\n }\n };\n CHTMLWrapper.prototype.drawBBox = function () {\n var _a = this.getBBox(), w = _a.w, h = _a.h, d = _a.d, R = _a.R;\n var box = this.html('mjx-box', { style: {\n opacity: .25, 'margin-left': this.em(-w - R)\n } }, [\n this.html('mjx-box', { style: {\n height: this.em(h),\n width: this.em(w),\n 'background-color': 'red'\n } }),\n this.html('mjx-box', { style: {\n height: this.em(d),\n width: this.em(w),\n 'margin-left': this.em(-w),\n 'vertical-align': this.em(-d),\n 'background-color': 'green'\n } })\n ]);\n var node = this.chtml || this.parent.chtml;\n var size = this.adaptor.getAttribute(node, 'size');\n if (size) {\n this.adaptor.setAttribute(box, 'size', size);\n }\n var fontsize = this.adaptor.getStyle(node, 'fontSize');\n if (fontsize) {\n this.adaptor.setStyle(box, 'fontSize', fontsize);\n }\n this.adaptor.append(this.adaptor.parent(node), box);\n this.adaptor.setStyle(node, 'backgroundColor', '#FFEE00');\n };\n CHTMLWrapper.prototype.html = function (type, def, content) {\n if (def === void 0) { def = {}; }\n if (content === void 0) { content = []; }\n return this.jax.html(type, def, content);\n };\n CHTMLWrapper.prototype.text = function (text) {\n return this.jax.text(text);\n };\n CHTMLWrapper.prototype.char = function (n) {\n return this.font.charSelector(n).substr(1);\n };\n CHTMLWrapper.kind = 'unknown';\n CHTMLWrapper.autoStyle = true;\n return CHTMLWrapper;\n}(Wrapper_js_1.CommonWrapper));\nexports.CHTMLWrapper = CHTMLWrapper;\n//# sourceMappingURL=Wrapper.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLWrapperFactory = void 0;\nvar WrapperFactory_js_1 = require(\"../common/WrapperFactory.js\");\nvar Wrappers_js_1 = require(\"./Wrappers.js\");\nvar CHTMLWrapperFactory = (function (_super) {\n __extends(CHTMLWrapperFactory, _super);\n function CHTMLWrapperFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLWrapperFactory.defaultNodes = Wrappers_js_1.CHTMLWrappers;\n return CHTMLWrapperFactory;\n}(WrapperFactory_js_1.CommonWrapperFactory));\nexports.CHTMLWrapperFactory = CHTMLWrapperFactory;\n//# sourceMappingURL=WrapperFactory.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLWrappers = void 0;\nvar Wrapper_js_1 = require(\"./Wrapper.js\");\nvar math_js_1 = require(\"./Wrappers/math.js\");\nvar mi_js_1 = require(\"./Wrappers/mi.js\");\nvar mo_js_1 = require(\"./Wrappers/mo.js\");\nvar mn_js_1 = require(\"./Wrappers/mn.js\");\nvar ms_js_1 = require(\"./Wrappers/ms.js\");\nvar mtext_js_1 = require(\"./Wrappers/mtext.js\");\nvar mspace_js_1 = require(\"./Wrappers/mspace.js\");\nvar mpadded_js_1 = require(\"./Wrappers/mpadded.js\");\nvar menclose_js_1 = require(\"./Wrappers/menclose.js\");\nvar mrow_js_1 = require(\"./Wrappers/mrow.js\");\nvar mfenced_js_1 = require(\"./Wrappers/mfenced.js\");\nvar mfrac_js_1 = require(\"./Wrappers/mfrac.js\");\nvar msqrt_js_1 = require(\"./Wrappers/msqrt.js\");\nvar mroot_js_1 = require(\"./Wrappers/mroot.js\");\nvar msubsup_js_1 = require(\"./Wrappers/msubsup.js\");\nvar munderover_js_1 = require(\"./Wrappers/munderover.js\");\nvar mmultiscripts_js_1 = require(\"./Wrappers/mmultiscripts.js\");\nvar mtable_js_1 = require(\"./Wrappers/mtable.js\");\nvar mtr_js_1 = require(\"./Wrappers/mtr.js\");\nvar mtd_js_1 = require(\"./Wrappers/mtd.js\");\nvar maction_js_1 = require(\"./Wrappers/maction.js\");\nvar mglyph_js_1 = require(\"./Wrappers/mglyph.js\");\nvar semantics_js_1 = require(\"./Wrappers/semantics.js\");\nvar TeXAtom_js_1 = require(\"./Wrappers/TeXAtom.js\");\nvar TextNode_js_1 = require(\"./Wrappers/TextNode.js\");\nexports.CHTMLWrappers = (_a = {},\n _a[math_js_1.CHTMLmath.kind] = math_js_1.CHTMLmath,\n _a[mrow_js_1.CHTMLmrow.kind] = mrow_js_1.CHTMLmrow,\n _a[mrow_js_1.CHTMLinferredMrow.kind] = mrow_js_1.CHTMLinferredMrow,\n _a[mi_js_1.CHTMLmi.kind] = mi_js_1.CHTMLmi,\n _a[mo_js_1.CHTMLmo.kind] = mo_js_1.CHTMLmo,\n _a[mn_js_1.CHTMLmn.kind] = mn_js_1.CHTMLmn,\n _a[ms_js_1.CHTMLms.kind] = ms_js_1.CHTMLms,\n _a[mtext_js_1.CHTMLmtext.kind] = mtext_js_1.CHTMLmtext,\n _a[mspace_js_1.CHTMLmspace.kind] = mspace_js_1.CHTMLmspace,\n _a[mpadded_js_1.CHTMLmpadded.kind] = mpadded_js_1.CHTMLmpadded,\n _a[menclose_js_1.CHTMLmenclose.kind] = menclose_js_1.CHTMLmenclose,\n _a[mfrac_js_1.CHTMLmfrac.kind] = mfrac_js_1.CHTMLmfrac,\n _a[msqrt_js_1.CHTMLmsqrt.kind] = msqrt_js_1.CHTMLmsqrt,\n _a[mroot_js_1.CHTMLmroot.kind] = mroot_js_1.CHTMLmroot,\n _a[msubsup_js_1.CHTMLmsub.kind] = msubsup_js_1.CHTMLmsub,\n _a[msubsup_js_1.CHTMLmsup.kind] = msubsup_js_1.CHTMLmsup,\n _a[msubsup_js_1.CHTMLmsubsup.kind] = msubsup_js_1.CHTMLmsubsup,\n _a[munderover_js_1.CHTMLmunder.kind] = munderover_js_1.CHTMLmunder,\n _a[munderover_js_1.CHTMLmover.kind] = munderover_js_1.CHTMLmover,\n _a[munderover_js_1.CHTMLmunderover.kind] = munderover_js_1.CHTMLmunderover,\n _a[mmultiscripts_js_1.CHTMLmmultiscripts.kind] = mmultiscripts_js_1.CHTMLmmultiscripts,\n _a[mfenced_js_1.CHTMLmfenced.kind] = mfenced_js_1.CHTMLmfenced,\n _a[mtable_js_1.CHTMLmtable.kind] = mtable_js_1.CHTMLmtable,\n _a[mtr_js_1.CHTMLmtr.kind] = mtr_js_1.CHTMLmtr,\n _a[mtr_js_1.CHTMLmlabeledtr.kind] = mtr_js_1.CHTMLmlabeledtr,\n _a[mtd_js_1.CHTMLmtd.kind] = mtd_js_1.CHTMLmtd,\n _a[maction_js_1.CHTMLmaction.kind] = maction_js_1.CHTMLmaction,\n _a[mglyph_js_1.CHTMLmglyph.kind] = mglyph_js_1.CHTMLmglyph,\n _a[semantics_js_1.CHTMLsemantics.kind] = semantics_js_1.CHTMLsemantics,\n _a[semantics_js_1.CHTMLannotation.kind] = semantics_js_1.CHTMLannotation,\n _a[semantics_js_1.CHTMLannotationXML.kind] = semantics_js_1.CHTMLannotationXML,\n _a[semantics_js_1.CHTMLxml.kind] = semantics_js_1.CHTMLxml,\n _a[TeXAtom_js_1.CHTMLTeXAtom.kind] = TeXAtom_js_1.CHTMLTeXAtom,\n _a[TextNode_js_1.CHTMLTextNode.kind] = TextNode_js_1.CHTMLTextNode,\n _a[Wrapper_js_1.CHTMLWrapper.kind] = Wrapper_js_1.CHTMLWrapper,\n _a);\n//# sourceMappingURL=Wrappers.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLTeXAtom = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar TeXAtom_js_1 = require(\"../../common/Wrappers/TeXAtom.js\");\nvar TeXAtom_js_2 = require(\"../../../core/MmlTree/MmlNodes/TeXAtom.js\");\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar CHTMLTeXAtom = (function (_super) {\n __extends(CHTMLTeXAtom, _super);\n function CHTMLTeXAtom() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLTeXAtom.prototype.toCHTML = function (parent) {\n _super.prototype.toCHTML.call(this, parent);\n this.adaptor.setAttribute(this.chtml, 'texclass', MmlNode_js_1.TEXCLASSNAMES[this.node.texClass]);\n if (this.node.texClass === MmlNode_js_1.TEXCLASS.VCENTER) {\n var bbox = this.childNodes[0].getBBox();\n var h = bbox.h, d = bbox.d;\n var a = this.font.params.axis_height;\n var dh = ((h + d) / 2 + a) - h;\n this.adaptor.setStyle(this.chtml, 'verticalAlign', this.em(dh));\n }\n };\n CHTMLTeXAtom.kind = TeXAtom_js_2.TeXAtom.prototype.kind;\n return CHTMLTeXAtom;\n}((0, TeXAtom_js_1.CommonTeXAtomMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLTeXAtom = CHTMLTeXAtom;\n//# sourceMappingURL=TeXAtom.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLTextNode = void 0;\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar TextNode_js_1 = require(\"../../common/Wrappers/TextNode.js\");\nvar CHTMLTextNode = (function (_super) {\n __extends(CHTMLTextNode, _super);\n function CHTMLTextNode() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLTextNode.prototype.toCHTML = function (parent) {\n var e_1, _a;\n this.markUsed();\n var adaptor = this.adaptor;\n var variant = this.parent.variant;\n var text = this.node.getText();\n if (text.length === 0)\n return;\n if (variant === '-explicitFont') {\n adaptor.append(parent, this.jax.unknownText(text, variant, this.getBBox().w));\n }\n else {\n var chars = this.remappedText(text, variant);\n try {\n for (var chars_1 = __values(chars), chars_1_1 = chars_1.next(); !chars_1_1.done; chars_1_1 = chars_1.next()) {\n var n = chars_1_1.value;\n var data = this.getVariantChar(variant, n)[3];\n var font = (data.f ? ' TEX-' + data.f : '');\n var node = (data.unknown ?\n this.jax.unknownText(String.fromCodePoint(n), variant) :\n this.html('mjx-c', { class: this.char(n) + font }));\n adaptor.append(parent, node);\n !data.unknown && this.font.charUsage.add([variant, n]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (chars_1_1 && !chars_1_1.done && (_a = chars_1.return)) _a.call(chars_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n };\n CHTMLTextNode.kind = MmlNode_js_1.TextNode.prototype.kind;\n CHTMLTextNode.autoStyle = false;\n CHTMLTextNode.styles = {\n 'mjx-c': {\n display: 'inline-block'\n },\n 'mjx-utext': {\n display: 'inline-block',\n padding: '.75em 0 .2em 0'\n }\n };\n return CHTMLTextNode;\n}((0, TextNode_js_1.CommonTextNodeMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLTextNode = CHTMLTextNode;\n//# sourceMappingURL=TextNode.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmaction = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar maction_js_1 = require(\"../../common/Wrappers/maction.js\");\nvar maction_js_2 = require(\"../../common/Wrappers/maction.js\");\nvar maction_js_3 = require(\"../../../core/MmlTree/MmlNodes/maction.js\");\nvar CHTMLmaction = (function (_super) {\n __extends(CHTMLmaction, _super);\n function CHTMLmaction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmaction.prototype.toCHTML = function (parent) {\n var chtml = this.standardCHTMLnode(parent);\n var child = this.selected;\n child.toCHTML(chtml);\n this.action(this, this.data);\n };\n CHTMLmaction.prototype.setEventHandler = function (type, handler) {\n this.chtml.addEventListener(type, handler);\n };\n CHTMLmaction.kind = maction_js_3.MmlMaction.prototype.kind;\n CHTMLmaction.styles = {\n 'mjx-maction': {\n position: 'relative'\n },\n 'mjx-maction > mjx-tool': {\n display: 'none',\n position: 'absolute',\n bottom: 0, right: 0,\n width: 0, height: 0,\n 'z-index': 500\n },\n 'mjx-tool > mjx-tip': {\n display: 'inline-block',\n padding: '.2em',\n border: '1px solid #888',\n 'font-size': '70%',\n 'background-color': '#F8F8F8',\n color: 'black',\n 'box-shadow': '2px 2px 5px #AAAAAA'\n },\n 'mjx-maction[toggle]': {\n cursor: 'pointer'\n },\n 'mjx-status': {\n display: 'block',\n position: 'fixed',\n left: '1em',\n bottom: '1em',\n 'min-width': '25%',\n padding: '.2em .4em',\n border: '1px solid #888',\n 'font-size': '90%',\n 'background-color': '#F8F8F8',\n color: 'black'\n }\n };\n CHTMLmaction.actions = new Map([\n ['toggle', [function (node, _data) {\n node.adaptor.setAttribute(node.chtml, 'toggle', node.node.attributes.get('selection'));\n var math = node.factory.jax.math;\n var document = node.factory.jax.document;\n var mml = node.node;\n node.setEventHandler('click', function (event) {\n if (!math.end.node) {\n math.start.node = math.end.node = math.typesetRoot;\n math.start.n = math.end.n = 0;\n }\n mml.nextToggleSelection();\n math.rerender(document);\n event.stopPropagation();\n });\n }, {}]],\n ['tooltip', [function (node, data) {\n var tip = node.childNodes[1];\n if (!tip)\n return;\n if (tip.node.isKind('mtext')) {\n var text = tip.node.getText();\n node.adaptor.setAttribute(node.chtml, 'title', text);\n }\n else {\n var adaptor_1 = node.adaptor;\n var tool_1 = adaptor_1.append(node.chtml, node.html('mjx-tool', {\n style: { bottom: node.em(-node.dy), right: node.em(-node.dx) }\n }, [node.html('mjx-tip')]));\n tip.toCHTML(adaptor_1.firstChild(tool_1));\n node.setEventHandler('mouseover', function (event) {\n data.stopTimers(node, data);\n var timeout = setTimeout(function () { return adaptor_1.setStyle(tool_1, 'display', 'block'); }, data.postDelay);\n data.hoverTimer.set(node, timeout);\n event.stopPropagation();\n });\n node.setEventHandler('mouseout', function (event) {\n data.stopTimers(node, data);\n var timeout = setTimeout(function () { return adaptor_1.setStyle(tool_1, 'display', ''); }, data.clearDelay);\n data.clearTimer.set(node, timeout);\n event.stopPropagation();\n });\n }\n }, maction_js_2.TooltipData]],\n ['statusline', [function (node, data) {\n var tip = node.childNodes[1];\n if (!tip)\n return;\n if (tip.node.isKind('mtext')) {\n var adaptor_2 = node.adaptor;\n var text_1 = tip.node.getText();\n adaptor_2.setAttribute(node.chtml, 'statusline', text_1);\n node.setEventHandler('mouseover', function (event) {\n if (data.status === null) {\n var body = adaptor_2.body(adaptor_2.document);\n data.status = adaptor_2.append(body, node.html('mjx-status', {}, [node.text(text_1)]));\n }\n event.stopPropagation();\n });\n node.setEventHandler('mouseout', function (event) {\n if (data.status) {\n adaptor_2.remove(data.status);\n data.status = null;\n }\n event.stopPropagation();\n });\n }\n }, {\n status: null\n }]]\n ]);\n return CHTMLmaction;\n}((0, maction_js_1.CommonMactionMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmaction = CHTMLmaction;\n//# sourceMappingURL=maction.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmath = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar math_js_1 = require(\"../../common/Wrappers/math.js\");\nvar math_js_2 = require(\"../../../core/MmlTree/MmlNodes/math.js\");\nvar BBox_js_1 = require(\"../../../util/BBox.js\");\nvar CHTMLmath = (function (_super) {\n __extends(CHTMLmath, _super);\n function CHTMLmath() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmath.prototype.toCHTML = function (parent) {\n _super.prototype.toCHTML.call(this, parent);\n var chtml = this.chtml;\n var adaptor = this.adaptor;\n var display = (this.node.attributes.get('display') === 'block');\n if (display) {\n adaptor.setAttribute(chtml, 'display', 'true');\n adaptor.setAttribute(parent, 'display', 'true');\n this.handleDisplay(parent);\n }\n else {\n this.handleInline(parent);\n }\n adaptor.addClass(chtml, 'MJX-TEX');\n };\n CHTMLmath.prototype.handleDisplay = function (parent) {\n var adaptor = this.adaptor;\n var _a = __read(this.getAlignShift(), 2), align = _a[0], shift = _a[1];\n if (align !== 'center') {\n adaptor.setAttribute(parent, 'justify', align);\n }\n if (this.bbox.pwidth === BBox_js_1.BBox.fullWidth) {\n adaptor.setAttribute(parent, 'width', 'full');\n if (this.jax.table) {\n var _b = this.jax.table.getOuterBBox(), L = _b.L, w = _b.w, R = _b.R;\n if (align === 'right') {\n R = Math.max(R || -shift, -shift);\n }\n else if (align === 'left') {\n L = Math.max(L || shift, shift);\n }\n else if (align === 'center') {\n w += 2 * Math.abs(shift);\n }\n var W = this.em(Math.max(0, L + w + R));\n adaptor.setStyle(parent, 'min-width', W);\n adaptor.setStyle(this.jax.table.chtml, 'min-width', W);\n }\n }\n else {\n this.setIndent(this.chtml, align, shift);\n }\n };\n CHTMLmath.prototype.handleInline = function (parent) {\n var adaptor = this.adaptor;\n var margin = adaptor.getStyle(this.chtml, 'margin-right');\n if (margin) {\n adaptor.setStyle(this.chtml, 'margin-right', '');\n adaptor.setStyle(parent, 'margin-right', margin);\n adaptor.setStyle(parent, 'width', '0');\n }\n };\n CHTMLmath.prototype.setChildPWidths = function (recompute, w, clear) {\n if (w === void 0) { w = null; }\n if (clear === void 0) { clear = true; }\n return (this.parent ? _super.prototype.setChildPWidths.call(this, recompute, w, clear) : false);\n };\n CHTMLmath.kind = math_js_2.MmlMath.prototype.kind;\n CHTMLmath.styles = {\n 'mjx-math': {\n 'line-height': 0,\n 'text-align': 'left',\n 'text-indent': 0,\n 'font-style': 'normal',\n 'font-weight': 'normal',\n 'font-size': '100%',\n 'font-size-adjust': 'none',\n 'letter-spacing': 'normal',\n 'border-collapse': 'collapse',\n 'word-wrap': 'normal',\n 'word-spacing': 'normal',\n 'white-space': 'nowrap',\n 'direction': 'ltr',\n 'padding': '1px 0'\n },\n 'mjx-container[jax=\"CHTML\"][display=\"true\"]': {\n display: 'block',\n 'text-align': 'center',\n margin: '1em 0'\n },\n 'mjx-container[jax=\"CHTML\"][display=\"true\"][width=\"full\"]': {\n display: 'flex'\n },\n 'mjx-container[jax=\"CHTML\"][display=\"true\"] mjx-math': {\n padding: 0\n },\n 'mjx-container[jax=\"CHTML\"][justify=\"left\"]': {\n 'text-align': 'left'\n },\n 'mjx-container[jax=\"CHTML\"][justify=\"right\"]': {\n 'text-align': 'right'\n }\n };\n return CHTMLmath;\n}((0, math_js_1.CommonMathMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmath = CHTMLmath;\n//# sourceMappingURL=math.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmenclose = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar menclose_js_1 = require(\"../../common/Wrappers/menclose.js\");\nvar Notation = __importStar(require(\"../Notation.js\"));\nvar menclose_js_2 = require(\"../../../core/MmlTree/MmlNodes/menclose.js\");\nvar lengths_js_1 = require(\"../../../util/lengths.js\");\nfunction Angle(x, y) {\n return Math.atan2(x, y).toFixed(3).replace(/\\.?0+$/, '');\n}\nvar ANGLE = Angle(Notation.ARROWDX, Notation.ARROWY);\nvar CHTMLmenclose = (function (_super) {\n __extends(CHTMLmenclose, _super);\n function CHTMLmenclose() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmenclose.prototype.toCHTML = function (parent) {\n var e_1, _a, e_2, _b;\n var adaptor = this.adaptor;\n var chtml = this.standardCHTMLnode(parent);\n var block = adaptor.append(chtml, this.html('mjx-box'));\n if (this.renderChild) {\n this.renderChild(this, block);\n }\n else {\n this.childNodes[0].toCHTML(block);\n }\n try {\n for (var _c = __values(Object.keys(this.notations)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_1 = _d.value;\n var notation = this.notations[name_1];\n !notation.renderChild && notation.renderer(this, block);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var pbox = this.getPadding();\n try {\n for (var _e = __values(Notation.sideNames), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name_2 = _f.value;\n var i = Notation.sideIndex[name_2];\n pbox[i] > 0 && adaptor.setStyle(block, 'padding-' + name_2, this.em(pbox[i]));\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n CHTMLmenclose.prototype.arrow = function (w, a, double, offset, dist) {\n if (offset === void 0) { offset = ''; }\n if (dist === void 0) { dist = 0; }\n var W = this.getBBox().w;\n var style = { width: this.em(w) };\n if (W !== w) {\n style.left = this.em((W - w) / 2);\n }\n if (a) {\n style.transform = 'rotate(' + this.fixed(a) + 'rad)';\n }\n var arrow = this.html('mjx-arrow', { style: style }, [\n this.html('mjx-aline'), this.html('mjx-rthead'), this.html('mjx-rbhead')\n ]);\n if (double) {\n this.adaptor.append(arrow, this.html('mjx-lthead'));\n this.adaptor.append(arrow, this.html('mjx-lbhead'));\n this.adaptor.setAttribute(arrow, 'double', 'true');\n }\n this.adjustArrow(arrow, double);\n this.moveArrow(arrow, offset, dist);\n return arrow;\n };\n CHTMLmenclose.prototype.adjustArrow = function (arrow, double) {\n var _this = this;\n var t = this.thickness;\n var head = this.arrowhead;\n if (head.x === Notation.ARROWX && head.y === Notation.ARROWY &&\n head.dx === Notation.ARROWDX && t === Notation.THICKNESS)\n return;\n var _a = __read([t * head.x, t * head.y].map(function (x) { return _this.em(x); }), 2), x = _a[0], y = _a[1];\n var a = Angle(head.dx, head.y);\n var _b = __read(this.adaptor.childNodes(arrow), 5), line = _b[0], rthead = _b[1], rbhead = _b[2], lthead = _b[3], lbhead = _b[4];\n this.adjustHead(rthead, [y, '0', '1px', x], a);\n this.adjustHead(rbhead, ['1px', '0', y, x], '-' + a);\n this.adjustHead(lthead, [y, x, '1px', '0'], '-' + a);\n this.adjustHead(lbhead, ['1px', x, y, '0'], a);\n this.adjustLine(line, t, head.x, double);\n };\n CHTMLmenclose.prototype.adjustHead = function (head, border, a) {\n if (head) {\n this.adaptor.setStyle(head, 'border-width', border.join(' '));\n this.adaptor.setStyle(head, 'transform', 'skewX(' + a + 'rad)');\n }\n };\n CHTMLmenclose.prototype.adjustLine = function (line, t, x, double) {\n this.adaptor.setStyle(line, 'borderTop', this.em(t) + ' solid');\n this.adaptor.setStyle(line, 'top', this.em(-t / 2));\n this.adaptor.setStyle(line, 'right', this.em(t * (x - 1)));\n if (double) {\n this.adaptor.setStyle(line, 'left', this.em(t * (x - 1)));\n }\n };\n CHTMLmenclose.prototype.moveArrow = function (arrow, offset, d) {\n if (!d)\n return;\n var transform = this.adaptor.getStyle(arrow, 'transform');\n this.adaptor.setStyle(arrow, 'transform', \"translate\".concat(offset, \"(\").concat(this.em(-d), \")\").concat((transform ? ' ' + transform : '')));\n };\n CHTMLmenclose.prototype.adjustBorder = function (node) {\n if (this.thickness !== Notation.THICKNESS) {\n this.adaptor.setStyle(node, 'borderWidth', this.em(this.thickness));\n }\n return node;\n };\n CHTMLmenclose.prototype.adjustThickness = function (shape) {\n if (this.thickness !== Notation.THICKNESS) {\n this.adaptor.setStyle(shape, 'strokeWidth', this.fixed(this.thickness));\n }\n return shape;\n };\n CHTMLmenclose.prototype.fixed = function (m, n) {\n if (n === void 0) { n = 3; }\n if (Math.abs(m) < .0006) {\n return '0';\n }\n return m.toFixed(n).replace(/\\.?0+$/, '');\n };\n CHTMLmenclose.prototype.em = function (m) {\n return _super.prototype.em.call(this, m);\n };\n CHTMLmenclose.kind = menclose_js_2.MmlMenclose.prototype.kind;\n CHTMLmenclose.styles = {\n 'mjx-menclose': {\n position: 'relative'\n },\n 'mjx-menclose > mjx-dstrike': {\n display: 'inline-block',\n left: 0, top: 0,\n position: 'absolute',\n 'border-top': Notation.SOLID,\n 'transform-origin': 'top left'\n },\n 'mjx-menclose > mjx-ustrike': {\n display: 'inline-block',\n left: 0, bottom: 0,\n position: 'absolute',\n 'border-top': Notation.SOLID,\n 'transform-origin': 'bottom left'\n },\n 'mjx-menclose > mjx-hstrike': {\n 'border-top': Notation.SOLID,\n position: 'absolute',\n left: 0, right: 0, bottom: '50%',\n transform: 'translateY(' + (0, lengths_js_1.em)(Notation.THICKNESS / 2) + ')'\n },\n 'mjx-menclose > mjx-vstrike': {\n 'border-left': Notation.SOLID,\n position: 'absolute',\n top: 0, bottom: 0, right: '50%',\n transform: 'translateX(' + (0, lengths_js_1.em)(Notation.THICKNESS / 2) + ')'\n },\n 'mjx-menclose > mjx-rbox': {\n position: 'absolute',\n top: 0, bottom: 0, right: 0, left: 0,\n 'border': Notation.SOLID,\n 'border-radius': (0, lengths_js_1.em)(Notation.THICKNESS + Notation.PADDING)\n },\n 'mjx-menclose > mjx-cbox': {\n position: 'absolute',\n top: 0, bottom: 0, right: 0, left: 0,\n 'border': Notation.SOLID,\n 'border-radius': '50%'\n },\n 'mjx-menclose > mjx-arrow': {\n position: 'absolute',\n left: 0, bottom: '50%', height: 0, width: 0\n },\n 'mjx-menclose > mjx-arrow > *': {\n display: 'block',\n position: 'absolute',\n 'transform-origin': 'bottom',\n 'border-left': (0, lengths_js_1.em)(Notation.THICKNESS * Notation.ARROWX) + ' solid',\n 'border-right': 0,\n 'box-sizing': 'border-box'\n },\n 'mjx-menclose > mjx-arrow > mjx-aline': {\n left: 0, top: (0, lengths_js_1.em)(-Notation.THICKNESS / 2),\n right: (0, lengths_js_1.em)(Notation.THICKNESS * (Notation.ARROWX - 1)), height: 0,\n 'border-top': (0, lengths_js_1.em)(Notation.THICKNESS) + ' solid',\n 'border-left': 0\n },\n 'mjx-menclose > mjx-arrow[double] > mjx-aline': {\n left: (0, lengths_js_1.em)(Notation.THICKNESS * (Notation.ARROWX - 1)), height: 0,\n },\n 'mjx-menclose > mjx-arrow > mjx-rthead': {\n transform: 'skewX(' + ANGLE + 'rad)',\n right: 0, bottom: '-1px',\n 'border-bottom': '1px solid transparent',\n 'border-top': (0, lengths_js_1.em)(Notation.THICKNESS * Notation.ARROWY) + ' solid transparent'\n },\n 'mjx-menclose > mjx-arrow > mjx-rbhead': {\n transform: 'skewX(-' + ANGLE + 'rad)',\n 'transform-origin': 'top',\n right: 0, top: '-1px',\n 'border-top': '1px solid transparent',\n 'border-bottom': (0, lengths_js_1.em)(Notation.THICKNESS * Notation.ARROWY) + ' solid transparent'\n },\n 'mjx-menclose > mjx-arrow > mjx-lthead': {\n transform: 'skewX(-' + ANGLE + 'rad)',\n left: 0, bottom: '-1px',\n 'border-left': 0,\n 'border-right': (0, lengths_js_1.em)(Notation.THICKNESS * Notation.ARROWX) + ' solid',\n 'border-bottom': '1px solid transparent',\n 'border-top': (0, lengths_js_1.em)(Notation.THICKNESS * Notation.ARROWY) + ' solid transparent'\n },\n 'mjx-menclose > mjx-arrow > mjx-lbhead': {\n transform: 'skewX(' + ANGLE + 'rad)',\n 'transform-origin': 'top',\n left: 0, top: '-1px',\n 'border-left': 0,\n 'border-right': (0, lengths_js_1.em)(Notation.THICKNESS * Notation.ARROWX) + ' solid',\n 'border-top': '1px solid transparent',\n 'border-bottom': (0, lengths_js_1.em)(Notation.THICKNESS * Notation.ARROWY) + ' solid transparent'\n },\n 'mjx-menclose > dbox': {\n position: 'absolute',\n top: 0, bottom: 0, left: (0, lengths_js_1.em)(-1.5 * Notation.PADDING),\n width: (0, lengths_js_1.em)(3 * Notation.PADDING),\n border: (0, lengths_js_1.em)(Notation.THICKNESS) + ' solid',\n 'border-radius': '50%',\n 'clip-path': 'inset(0 0 0 ' + (0, lengths_js_1.em)(1.5 * Notation.PADDING) + ')',\n 'box-sizing': 'border-box'\n }\n };\n CHTMLmenclose.notations = new Map([\n Notation.Border('top'),\n Notation.Border('right'),\n Notation.Border('bottom'),\n Notation.Border('left'),\n Notation.Border2('actuarial', 'top', 'right'),\n Notation.Border2('madruwb', 'bottom', 'right'),\n Notation.DiagonalStrike('up', 1),\n Notation.DiagonalStrike('down', -1),\n ['horizontalstrike', {\n renderer: Notation.RenderElement('hstrike', 'Y'),\n bbox: function (node) { return [0, node.padding, 0, node.padding]; }\n }],\n ['verticalstrike', {\n renderer: Notation.RenderElement('vstrike', 'X'),\n bbox: function (node) { return [node.padding, 0, node.padding, 0]; }\n }],\n ['box', {\n renderer: function (node, child) {\n node.adaptor.setStyle(child, 'border', node.em(node.thickness) + ' solid');\n },\n bbox: Notation.fullBBox,\n border: Notation.fullBorder,\n remove: 'left right top bottom'\n }],\n ['roundedbox', {\n renderer: Notation.RenderElement('rbox'),\n bbox: Notation.fullBBox\n }],\n ['circle', {\n renderer: Notation.RenderElement('cbox'),\n bbox: Notation.fullBBox\n }],\n ['phasorangle', {\n renderer: function (node, child) {\n var _a = node.getBBox(), h = _a.h, d = _a.d;\n var _b = __read(node.getArgMod(1.75 * node.padding, h + d), 2), a = _b[0], W = _b[1];\n var t = node.thickness * Math.sin(a) * .9;\n node.adaptor.setStyle(child, 'border-bottom', node.em(node.thickness) + ' solid');\n var strike = node.adjustBorder(node.html('mjx-ustrike', { style: {\n width: node.em(W),\n transform: 'translateX(' + node.em(t) + ') rotate(' + node.fixed(-a) + 'rad)',\n } }));\n node.adaptor.append(node.chtml, strike);\n },\n bbox: function (node) {\n var p = node.padding / 2;\n var t = node.thickness;\n return [2 * p, p, p + t, 3 * p + t];\n },\n border: function (node) { return [0, 0, node.thickness, 0]; },\n remove: 'bottom'\n }],\n Notation.Arrow('up'),\n Notation.Arrow('down'),\n Notation.Arrow('left'),\n Notation.Arrow('right'),\n Notation.Arrow('updown'),\n Notation.Arrow('leftright'),\n Notation.DiagonalArrow('updiagonal'),\n Notation.DiagonalArrow('northeast'),\n Notation.DiagonalArrow('southeast'),\n Notation.DiagonalArrow('northwest'),\n Notation.DiagonalArrow('southwest'),\n Notation.DiagonalArrow('northeastsouthwest'),\n Notation.DiagonalArrow('northwestsoutheast'),\n ['longdiv', {\n renderer: function (node, child) {\n var adaptor = node.adaptor;\n adaptor.setStyle(child, 'border-top', node.em(node.thickness) + ' solid');\n var arc = adaptor.append(node.chtml, node.html('dbox'));\n var t = node.thickness;\n var p = node.padding;\n if (t !== Notation.THICKNESS) {\n adaptor.setStyle(arc, 'border-width', node.em(t));\n }\n if (p !== Notation.PADDING) {\n adaptor.setStyle(arc, 'left', node.em(-1.5 * p));\n adaptor.setStyle(arc, 'width', node.em(3 * p));\n adaptor.setStyle(arc, 'clip-path', 'inset(0 0 0 ' + node.em(1.5 * p) + ')');\n }\n },\n bbox: function (node) {\n var p = node.padding;\n var t = node.thickness;\n return [p + t, p, p, 2 * p + t / 2];\n }\n }],\n ['radical', {\n renderer: function (node, child) {\n node.msqrt.toCHTML(child);\n var TRBL = node.sqrtTRBL();\n node.adaptor.setStyle(node.msqrt.chtml, 'margin', TRBL.map(function (x) { return node.em(-x); }).join(' '));\n },\n init: function (node) {\n node.msqrt = node.createMsqrt(node.childNodes[0]);\n },\n bbox: function (node) { return node.sqrtTRBL(); },\n renderChild: true\n }]\n ]);\n return CHTMLmenclose;\n}((0, menclose_js_1.CommonMencloseMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmenclose = CHTMLmenclose;\n//# sourceMappingURL=menclose.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmfenced = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mfenced_js_1 = require(\"../../common/Wrappers/mfenced.js\");\nvar mfenced_js_2 = require(\"../../../core/MmlTree/MmlNodes/mfenced.js\");\nvar CHTMLmfenced = (function (_super) {\n __extends(CHTMLmfenced, _super);\n function CHTMLmfenced() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmfenced.prototype.toCHTML = function (parent) {\n var chtml = this.standardCHTMLnode(parent);\n this.mrow.toCHTML(chtml);\n };\n CHTMLmfenced.kind = mfenced_js_2.MmlMfenced.prototype.kind;\n return CHTMLmfenced;\n}((0, mfenced_js_1.CommonMfencedMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmfenced = CHTMLmfenced;\n//# sourceMappingURL=mfenced.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmfrac = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mfrac_js_1 = require(\"../../common/Wrappers/mfrac.js\");\nvar mfrac_js_2 = require(\"../../../core/MmlTree/MmlNodes/mfrac.js\");\nvar CHTMLmfrac = (function (_super) {\n __extends(CHTMLmfrac, _super);\n function CHTMLmfrac() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmfrac.prototype.toCHTML = function (parent) {\n this.standardCHTMLnode(parent);\n var _a = this.node.attributes.getList('linethickness', 'bevelled'), linethickness = _a.linethickness, bevelled = _a.bevelled;\n var display = this.isDisplay();\n if (bevelled) {\n this.makeBevelled(display);\n }\n else {\n var thickness = this.length2em(String(linethickness), .06);\n if (thickness === 0) {\n this.makeAtop(display);\n }\n else {\n this.makeFraction(display, thickness);\n }\n }\n };\n CHTMLmfrac.prototype.makeFraction = function (display, t) {\n var _a = this.node.attributes.getList('numalign', 'denomalign'), numalign = _a.numalign, denomalign = _a.denomalign;\n var withDelims = this.node.getProperty('withDelims');\n var attr = (display ? { type: 'd' } : {});\n var fattr = (withDelims ? __assign(__assign({}, attr), { delims: 'true' }) : __assign({}, attr));\n var nattr = (numalign !== 'center' ? { align: numalign } : {});\n var dattr = (denomalign !== 'center' ? { align: denomalign } : {});\n var dsattr = __assign({}, attr), nsattr = __assign({}, attr);\n var tex = this.font.params;\n if (t !== .06) {\n var a = tex.axis_height;\n var tEm = this.em(t);\n var _b = this.getTUV(display, t), T = _b.T, u = _b.u, v = _b.v;\n var m = (display ? this.em(3 * t) : tEm) + ' -.1em';\n attr.style = { height: tEm, 'border-top': tEm + ' solid', margin: m };\n var nh = this.em(Math.max(0, u));\n nsattr.style = { height: nh, 'vertical-align': '-' + nh };\n dsattr.style = { height: this.em(Math.max(0, v)) };\n fattr.style = { 'vertical-align': this.em(a - T) };\n }\n var num, den;\n this.adaptor.append(this.chtml, this.html('mjx-frac', fattr, [\n num = this.html('mjx-num', nattr, [this.html('mjx-nstrut', nsattr)]),\n this.html('mjx-dbox', {}, [\n this.html('mjx-dtable', {}, [\n this.html('mjx-line', attr),\n this.html('mjx-row', {}, [\n den = this.html('mjx-den', dattr, [this.html('mjx-dstrut', dsattr)])\n ])\n ])\n ])\n ]));\n this.childNodes[0].toCHTML(num);\n this.childNodes[1].toCHTML(den);\n };\n CHTMLmfrac.prototype.makeAtop = function (display) {\n var _a = this.node.attributes.getList('numalign', 'denomalign'), numalign = _a.numalign, denomalign = _a.denomalign;\n var withDelims = this.node.getProperty('withDelims');\n var attr = (display ? { type: 'd', atop: true } : { atop: true });\n var fattr = (withDelims ? __assign(__assign({}, attr), { delims: true }) : __assign({}, attr));\n var nattr = (numalign !== 'center' ? { align: numalign } : {});\n var dattr = (denomalign !== 'center' ? { align: denomalign } : {});\n var _b = this.getUVQ(display), v = _b.v, q = _b.q;\n nattr.style = { 'padding-bottom': this.em(q) };\n fattr.style = { 'vertical-align': this.em(-v) };\n var num, den;\n this.adaptor.append(this.chtml, this.html('mjx-frac', fattr, [\n num = this.html('mjx-num', nattr),\n den = this.html('mjx-den', dattr)\n ]));\n this.childNodes[0].toCHTML(num);\n this.childNodes[1].toCHTML(den);\n };\n CHTMLmfrac.prototype.makeBevelled = function (display) {\n var adaptor = this.adaptor;\n adaptor.setAttribute(this.chtml, 'bevelled', 'ture');\n var num = adaptor.append(this.chtml, this.html('mjx-num'));\n this.childNodes[0].toCHTML(num);\n this.bevel.toCHTML(this.chtml);\n var den = adaptor.append(this.chtml, this.html('mjx-den'));\n this.childNodes[1].toCHTML(den);\n var _a = this.getBevelData(display), u = _a.u, v = _a.v, delta = _a.delta, nbox = _a.nbox, dbox = _a.dbox;\n if (u) {\n adaptor.setStyle(num, 'verticalAlign', this.em(u / nbox.scale));\n }\n if (v) {\n adaptor.setStyle(den, 'verticalAlign', this.em(v / dbox.scale));\n }\n var dx = this.em(-delta / 2);\n adaptor.setStyle(this.bevel.chtml, 'marginLeft', dx);\n adaptor.setStyle(this.bevel.chtml, 'marginRight', dx);\n };\n CHTMLmfrac.kind = mfrac_js_2.MmlMfrac.prototype.kind;\n CHTMLmfrac.styles = {\n 'mjx-frac': {\n display: 'inline-block',\n 'vertical-align': '0.17em',\n padding: '0 .22em'\n },\n 'mjx-frac[type=\"d\"]': {\n 'vertical-align': '.04em'\n },\n 'mjx-frac[delims]': {\n padding: '0 .1em'\n },\n 'mjx-frac[atop]': {\n padding: '0 .12em'\n },\n 'mjx-frac[atop][delims]': {\n padding: '0'\n },\n 'mjx-dtable': {\n display: 'inline-table',\n width: '100%'\n },\n 'mjx-dtable > *': {\n 'font-size': '2000%'\n },\n 'mjx-dbox': {\n display: 'block',\n 'font-size': '5%'\n },\n 'mjx-num': {\n display: 'block',\n 'text-align': 'center'\n },\n 'mjx-den': {\n display: 'block',\n 'text-align': 'center'\n },\n 'mjx-mfrac[bevelled] > mjx-num': {\n display: 'inline-block'\n },\n 'mjx-mfrac[bevelled] > mjx-den': {\n display: 'inline-block'\n },\n 'mjx-den[align=\"right\"], mjx-num[align=\"right\"]': {\n 'text-align': 'right'\n },\n 'mjx-den[align=\"left\"], mjx-num[align=\"left\"]': {\n 'text-align': 'left'\n },\n 'mjx-nstrut': {\n display: 'inline-block',\n height: '.054em',\n width: 0,\n 'vertical-align': '-.054em'\n },\n 'mjx-nstrut[type=\"d\"]': {\n height: '.217em',\n 'vertical-align': '-.217em',\n },\n 'mjx-dstrut': {\n display: 'inline-block',\n height: '.505em',\n width: 0\n },\n 'mjx-dstrut[type=\"d\"]': {\n height: '.726em',\n },\n 'mjx-line': {\n display: 'block',\n 'box-sizing': 'border-box',\n 'min-height': '1px',\n height: '.06em',\n 'border-top': '.06em solid',\n margin: '.06em -.1em',\n overflow: 'hidden'\n },\n 'mjx-line[type=\"d\"]': {\n margin: '.18em -.1em'\n }\n };\n return CHTMLmfrac;\n}((0, mfrac_js_1.CommonMfracMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmfrac = CHTMLmfrac;\n//# sourceMappingURL=mfrac.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmglyph = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mglyph_js_1 = require(\"../../common/Wrappers/mglyph.js\");\nvar mglyph_js_2 = require(\"../../../core/MmlTree/MmlNodes/mglyph.js\");\nvar CHTMLmglyph = (function (_super) {\n __extends(CHTMLmglyph, _super);\n function CHTMLmglyph() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmglyph.prototype.toCHTML = function (parent) {\n var chtml = this.standardCHTMLnode(parent);\n if (this.charWrapper) {\n this.charWrapper.toCHTML(chtml);\n return;\n }\n var _a = this.node.attributes.getList('src', 'alt'), src = _a.src, alt = _a.alt;\n var styles = {\n width: this.em(this.width),\n height: this.em(this.height)\n };\n if (this.valign) {\n styles.verticalAlign = this.em(this.valign);\n }\n var img = this.html('img', { src: src, style: styles, alt: alt, title: alt });\n this.adaptor.append(chtml, img);\n };\n CHTMLmglyph.kind = mglyph_js_2.MmlMglyph.prototype.kind;\n CHTMLmglyph.styles = {\n 'mjx-mglyph > img': {\n display: 'inline-block',\n border: 0,\n padding: 0\n }\n };\n return CHTMLmglyph;\n}((0, mglyph_js_1.CommonMglyphMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmglyph = CHTMLmglyph;\n//# sourceMappingURL=mglyph.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmi = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mi_js_1 = require(\"../../common/Wrappers/mi.js\");\nvar mi_js_2 = require(\"../../../core/MmlTree/MmlNodes/mi.js\");\nvar CHTMLmi = (function (_super) {\n __extends(CHTMLmi, _super);\n function CHTMLmi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmi.kind = mi_js_2.MmlMi.prototype.kind;\n return CHTMLmi;\n}((0, mi_js_1.CommonMiMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmi = CHTMLmi;\n//# sourceMappingURL=mi.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmmultiscripts = void 0;\nvar msubsup_js_1 = require(\"./msubsup.js\");\nvar mmultiscripts_js_1 = require(\"../../common/Wrappers/mmultiscripts.js\");\nvar mmultiscripts_js_2 = require(\"../../../core/MmlTree/MmlNodes/mmultiscripts.js\");\nvar string_js_1 = require(\"../../../util/string.js\");\nvar CHTMLmmultiscripts = (function (_super) {\n __extends(CHTMLmmultiscripts, _super);\n function CHTMLmmultiscripts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmmultiscripts.prototype.toCHTML = function (parent) {\n var chtml = this.standardCHTMLnode(parent);\n var data = this.scriptData;\n var scriptalign = this.node.getProperty('scriptalign') || 'right left';\n var _a = __read((0, string_js_1.split)(scriptalign + ' ' + scriptalign), 2), preAlign = _a[0], postAlign = _a[1];\n var sub = this.combinePrePost(data.sub, data.psub);\n var sup = this.combinePrePost(data.sup, data.psup);\n var _b = __read(this.getUVQ(sub, sup), 2), u = _b[0], v = _b[1];\n if (data.numPrescripts) {\n var scripts = this.addScripts(u, -v, true, data.psub, data.psup, this.firstPrescript, data.numPrescripts);\n preAlign !== 'right' && this.adaptor.setAttribute(scripts, 'script-align', preAlign);\n }\n this.childNodes[0].toCHTML(chtml);\n if (data.numScripts) {\n var scripts = this.addScripts(u, -v, false, data.sub, data.sup, 1, data.numScripts);\n postAlign !== 'left' && this.adaptor.setAttribute(scripts, 'script-align', postAlign);\n }\n };\n CHTMLmmultiscripts.prototype.addScripts = function (u, v, isPre, sub, sup, i, n) {\n var adaptor = this.adaptor;\n var q = (u - sup.d) + (v - sub.h);\n var U = (u < 0 && v === 0 ? sub.h + u : u);\n var rowdef = (q > 0 ? { style: { height: this.em(q) } } : {});\n var tabledef = (U ? { style: { 'vertical-align': this.em(U) } } : {});\n var supRow = this.html('mjx-row');\n var sepRow = this.html('mjx-row', rowdef);\n var subRow = this.html('mjx-row');\n var name = 'mjx-' + (isPre ? 'pre' : '') + 'scripts';\n var m = i + 2 * n;\n while (i < m) {\n this.childNodes[i++].toCHTML(adaptor.append(subRow, this.html('mjx-cell')));\n this.childNodes[i++].toCHTML(adaptor.append(supRow, this.html('mjx-cell')));\n }\n return adaptor.append(this.chtml, this.html(name, tabledef, [supRow, sepRow, subRow]));\n };\n CHTMLmmultiscripts.kind = mmultiscripts_js_2.MmlMmultiscripts.prototype.kind;\n CHTMLmmultiscripts.styles = {\n 'mjx-prescripts': {\n display: 'inline-table',\n 'padding-left': '.05em'\n },\n 'mjx-scripts': {\n display: 'inline-table',\n 'padding-right': '.05em'\n },\n 'mjx-prescripts > mjx-row > mjx-cell': {\n 'text-align': 'right'\n },\n '[script-align=\"left\"] > mjx-row > mjx-cell': {\n 'text-align': 'left'\n },\n '[script-align=\"center\"] > mjx-row > mjx-cell': {\n 'text-align': 'center'\n },\n '[script-align=\"right\"] > mjx-row > mjx-cell': {\n 'text-align': 'right'\n }\n };\n return CHTMLmmultiscripts;\n}((0, mmultiscripts_js_1.CommonMmultiscriptsMixin)(msubsup_js_1.CHTMLmsubsup)));\nexports.CHTMLmmultiscripts = CHTMLmmultiscripts;\n//# sourceMappingURL=mmultiscripts.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmn = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mn_js_1 = require(\"../../common/Wrappers/mn.js\");\nvar mn_js_2 = require(\"../../../core/MmlTree/MmlNodes/mn.js\");\nvar CHTMLmn = (function (_super) {\n __extends(CHTMLmn, _super);\n function CHTMLmn() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmn.kind = mn_js_2.MmlMn.prototype.kind;\n return CHTMLmn;\n}((0, mn_js_1.CommonMnMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmn = CHTMLmn;\n//# sourceMappingURL=mn.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmo = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mo_js_1 = require(\"../../common/Wrappers/mo.js\");\nvar mo_js_2 = require(\"../../../core/MmlTree/MmlNodes/mo.js\");\nvar CHTMLmo = (function (_super) {\n __extends(CHTMLmo, _super);\n function CHTMLmo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmo.prototype.toCHTML = function (parent) {\n var e_1, _a;\n var attributes = this.node.attributes;\n var symmetric = attributes.get('symmetric') && this.stretch.dir !== 2;\n var stretchy = this.stretch.dir !== 0;\n if (stretchy && this.size === null) {\n this.getStretchedVariant([]);\n }\n var chtml = this.standardCHTMLnode(parent);\n if (stretchy && this.size < 0) {\n this.stretchHTML(chtml);\n }\n else {\n if (symmetric || attributes.get('largeop')) {\n var u = this.em(this.getCenterOffset());\n if (u !== '0') {\n this.adaptor.setStyle(chtml, 'verticalAlign', u);\n }\n }\n if (this.node.getProperty('mathaccent')) {\n this.adaptor.setStyle(chtml, 'width', '0');\n this.adaptor.setStyle(chtml, 'margin-left', this.em(this.getAccentOffset()));\n }\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.toCHTML(chtml);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n };\n CHTMLmo.prototype.stretchHTML = function (chtml) {\n var c = this.getText().codePointAt(0);\n this.font.delimUsage.add(c);\n this.childNodes[0].markUsed();\n var delim = this.stretch;\n var stretch = delim.stretch;\n var content = [];\n if (stretch[0]) {\n content.push(this.html('mjx-beg', {}, [this.html('mjx-c')]));\n }\n content.push(this.html('mjx-ext', {}, [this.html('mjx-c')]));\n if (stretch.length === 4) {\n content.push(this.html('mjx-mid', {}, [this.html('mjx-c')]), this.html('mjx-ext', {}, [this.html('mjx-c')]));\n }\n if (stretch[2]) {\n content.push(this.html('mjx-end', {}, [this.html('mjx-c')]));\n }\n var styles = {};\n var _a = this.bbox, h = _a.h, d = _a.d, w = _a.w;\n if (delim.dir === 1) {\n content.push(this.html('mjx-mark'));\n styles.height = this.em(h + d);\n styles.verticalAlign = this.em(-d);\n }\n else {\n styles.width = this.em(w);\n }\n var dir = mo_js_1.DirectionVH[delim.dir];\n var properties = { class: this.char(delim.c || c), style: styles };\n var html = this.html('mjx-stretchy-' + dir, properties, content);\n this.adaptor.append(chtml, html);\n };\n CHTMLmo.kind = mo_js_2.MmlMo.prototype.kind;\n CHTMLmo.styles = {\n 'mjx-stretchy-h': {\n display: 'inline-table',\n width: '100%'\n },\n 'mjx-stretchy-h > *': {\n display: 'table-cell',\n width: 0\n },\n 'mjx-stretchy-h > * > mjx-c': {\n display: 'inline-block',\n transform: 'scalex(1.0000001)'\n },\n 'mjx-stretchy-h > * > mjx-c::before': {\n display: 'inline-block',\n width: 'initial'\n },\n 'mjx-stretchy-h > mjx-ext': {\n '/* IE */ overflow': 'hidden',\n '/* others */ overflow': 'clip visible',\n width: '100%'\n },\n 'mjx-stretchy-h > mjx-ext > mjx-c::before': {\n transform: 'scalex(500)'\n },\n 'mjx-stretchy-h > mjx-ext > mjx-c': {\n width: 0\n },\n 'mjx-stretchy-h > mjx-beg > mjx-c': {\n 'margin-right': '-.1em'\n },\n 'mjx-stretchy-h > mjx-end > mjx-c': {\n 'margin-left': '-.1em'\n },\n 'mjx-stretchy-v': {\n display: 'inline-block'\n },\n 'mjx-stretchy-v > *': {\n display: 'block'\n },\n 'mjx-stretchy-v > mjx-beg': {\n height: 0\n },\n 'mjx-stretchy-v > mjx-end > mjx-c': {\n display: 'block'\n },\n 'mjx-stretchy-v > * > mjx-c': {\n transform: 'scaley(1.0000001)',\n 'transform-origin': 'left center',\n overflow: 'hidden'\n },\n 'mjx-stretchy-v > mjx-ext': {\n display: 'block',\n height: '100%',\n 'box-sizing': 'border-box',\n border: '0px solid transparent',\n '/* IE */ overflow': 'hidden',\n '/* others */ overflow': 'visible clip',\n },\n 'mjx-stretchy-v > mjx-ext > mjx-c::before': {\n width: 'initial',\n 'box-sizing': 'border-box'\n },\n 'mjx-stretchy-v > mjx-ext > mjx-c': {\n transform: 'scaleY(500) translateY(.075em)',\n overflow: 'visible'\n },\n 'mjx-mark': {\n display: 'inline-block',\n height: '0px'\n }\n };\n return CHTMLmo;\n}((0, mo_js_1.CommonMoMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmo = CHTMLmo;\n//# sourceMappingURL=mo.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmpadded = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mpadded_js_1 = require(\"../../common/Wrappers/mpadded.js\");\nvar mpadded_js_2 = require(\"../../../core/MmlTree/MmlNodes/mpadded.js\");\nvar CHTMLmpadded = (function (_super) {\n __extends(CHTMLmpadded, _super);\n function CHTMLmpadded() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmpadded.prototype.toCHTML = function (parent) {\n var e_1, _a;\n var chtml = this.standardCHTMLnode(parent);\n var content = [];\n var style = {};\n var _b = __read(this.getDimens(), 9), W = _b[2], dh = _b[3], dd = _b[4], dw = _b[5], x = _b[6], y = _b[7], dx = _b[8];\n if (dw) {\n style.width = this.em(W + dw);\n }\n if (dh || dd) {\n style.margin = this.em(dh) + ' 0 ' + this.em(dd);\n }\n if (x + dx || y) {\n style.position = 'relative';\n var rbox = this.html('mjx-rbox', {\n style: { left: this.em(x + dx), top: this.em(-y), 'max-width': style.width }\n });\n if (x + dx && this.childNodes[0].getBBox().pwidth) {\n this.adaptor.setAttribute(rbox, 'width', 'full');\n this.adaptor.setStyle(rbox, 'left', this.em(x));\n }\n content.push(rbox);\n }\n chtml = this.adaptor.append(chtml, this.html('mjx-block', { style: style }, content));\n try {\n for (var _c = __values(this.childNodes), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n child.toCHTML(content[0] || chtml);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n CHTMLmpadded.kind = mpadded_js_2.MmlMpadded.prototype.kind;\n CHTMLmpadded.styles = {\n 'mjx-mpadded': {\n display: 'inline-block'\n },\n 'mjx-rbox': {\n display: 'inline-block',\n position: 'relative'\n }\n };\n return CHTMLmpadded;\n}((0, mpadded_js_1.CommonMpaddedMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmpadded = CHTMLmpadded;\n//# sourceMappingURL=mpadded.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmroot = void 0;\nvar msqrt_js_1 = require(\"./msqrt.js\");\nvar mroot_js_1 = require(\"../../common/Wrappers/mroot.js\");\nvar mroot_js_2 = require(\"../../../core/MmlTree/MmlNodes/mroot.js\");\nvar CHTMLmroot = (function (_super) {\n __extends(CHTMLmroot, _super);\n function CHTMLmroot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmroot.prototype.addRoot = function (ROOT, root, sbox, H) {\n root.toCHTML(ROOT);\n var _a = __read(this.getRootDimens(sbox, H), 3), x = _a[0], h = _a[1], dx = _a[2];\n this.adaptor.setStyle(ROOT, 'verticalAlign', this.em(h));\n this.adaptor.setStyle(ROOT, 'width', this.em(x));\n if (dx) {\n this.adaptor.setStyle(this.adaptor.firstChild(ROOT), 'paddingLeft', this.em(dx));\n }\n };\n CHTMLmroot.kind = mroot_js_2.MmlMroot.prototype.kind;\n return CHTMLmroot;\n}((0, mroot_js_1.CommonMrootMixin)(msqrt_js_1.CHTMLmsqrt)));\nexports.CHTMLmroot = CHTMLmroot;\n//# sourceMappingURL=mroot.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLinferredMrow = exports.CHTMLmrow = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mrow_js_1 = require(\"../../common/Wrappers/mrow.js\");\nvar mrow_js_2 = require(\"../../common/Wrappers/mrow.js\");\nvar mrow_js_3 = require(\"../../../core/MmlTree/MmlNodes/mrow.js\");\nvar CHTMLmrow = (function (_super) {\n __extends(CHTMLmrow, _super);\n function CHTMLmrow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmrow.prototype.toCHTML = function (parent) {\n var e_1, _a;\n var chtml = (this.node.isInferred ? (this.chtml = parent) : this.standardCHTMLnode(parent));\n var hasNegative = false;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.toCHTML(chtml);\n if (child.bbox.w < 0) {\n hasNegative = true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (hasNegative) {\n var w = this.getBBox().w;\n if (w) {\n this.adaptor.setStyle(chtml, 'width', this.em(Math.max(0, w)));\n if (w < 0) {\n this.adaptor.setStyle(chtml, 'marginRight', this.em(w));\n }\n }\n }\n };\n CHTMLmrow.kind = mrow_js_3.MmlMrow.prototype.kind;\n return CHTMLmrow;\n}((0, mrow_js_1.CommonMrowMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmrow = CHTMLmrow;\nvar CHTMLinferredMrow = (function (_super) {\n __extends(CHTMLinferredMrow, _super);\n function CHTMLinferredMrow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLinferredMrow.kind = mrow_js_3.MmlInferredMrow.prototype.kind;\n return CHTMLinferredMrow;\n}((0, mrow_js_2.CommonInferredMrowMixin)(CHTMLmrow)));\nexports.CHTMLinferredMrow = CHTMLinferredMrow;\n//# sourceMappingURL=mrow.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLms = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar ms_js_1 = require(\"../../common/Wrappers/ms.js\");\nvar ms_js_2 = require(\"../../../core/MmlTree/MmlNodes/ms.js\");\nvar CHTMLms = (function (_super) {\n __extends(CHTMLms, _super);\n function CHTMLms() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLms.kind = ms_js_2.MmlMs.prototype.kind;\n return CHTMLms;\n}((0, ms_js_1.CommonMsMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLms = CHTMLms;\n//# sourceMappingURL=ms.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmspace = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mspace_js_1 = require(\"../../common/Wrappers/mspace.js\");\nvar mspace_js_2 = require(\"../../../core/MmlTree/MmlNodes/mspace.js\");\nvar CHTMLmspace = (function (_super) {\n __extends(CHTMLmspace, _super);\n function CHTMLmspace() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmspace.prototype.toCHTML = function (parent) {\n var chtml = this.standardCHTMLnode(parent);\n var _a = this.getBBox(), w = _a.w, h = _a.h, d = _a.d;\n if (w < 0) {\n this.adaptor.setStyle(chtml, 'marginRight', this.em(w));\n w = 0;\n }\n if (w) {\n this.adaptor.setStyle(chtml, 'width', this.em(w));\n }\n h = Math.max(0, h + d);\n if (h) {\n this.adaptor.setStyle(chtml, 'height', this.em(Math.max(0, h)));\n }\n if (d) {\n this.adaptor.setStyle(chtml, 'verticalAlign', this.em(-d));\n }\n };\n CHTMLmspace.kind = mspace_js_2.MmlMspace.prototype.kind;\n return CHTMLmspace;\n}((0, mspace_js_1.CommonMspaceMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmspace = CHTMLmspace;\n//# sourceMappingURL=mspace.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmsqrt = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar msqrt_js_1 = require(\"../../common/Wrappers/msqrt.js\");\nvar msqrt_js_2 = require(\"../../../core/MmlTree/MmlNodes/msqrt.js\");\nvar CHTMLmsqrt = (function (_super) {\n __extends(CHTMLmsqrt, _super);\n function CHTMLmsqrt() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmsqrt.prototype.toCHTML = function (parent) {\n var surd = this.childNodes[this.surd];\n var base = this.childNodes[this.base];\n var sbox = surd.getBBox();\n var bbox = base.getOuterBBox();\n var _a = __read(this.getPQ(sbox), 2), q = _a[1];\n var t = this.font.params.rule_thickness;\n var H = bbox.h + q + t;\n var CHTML = this.standardCHTMLnode(parent);\n var SURD, BASE, ROOT, root;\n if (this.root != null) {\n ROOT = this.adaptor.append(CHTML, this.html('mjx-root'));\n root = this.childNodes[this.root];\n }\n var SQRT = this.adaptor.append(CHTML, this.html('mjx-sqrt', {}, [\n SURD = this.html('mjx-surd'),\n BASE = this.html('mjx-box', { style: { paddingTop: this.em(q) } })\n ]));\n this.addRoot(ROOT, root, sbox, H);\n surd.toCHTML(SURD);\n base.toCHTML(BASE);\n if (surd.size < 0) {\n this.adaptor.addClass(SQRT, 'mjx-tall');\n }\n };\n CHTMLmsqrt.prototype.addRoot = function (_ROOT, _root, _sbox, _H) {\n };\n CHTMLmsqrt.kind = msqrt_js_2.MmlMsqrt.prototype.kind;\n CHTMLmsqrt.styles = {\n 'mjx-root': {\n display: 'inline-block',\n 'white-space': 'nowrap'\n },\n 'mjx-surd': {\n display: 'inline-block',\n 'vertical-align': 'top'\n },\n 'mjx-sqrt': {\n display: 'inline-block',\n 'padding-top': '.07em'\n },\n 'mjx-sqrt > mjx-box': {\n 'border-top': '.07em solid'\n },\n 'mjx-sqrt.mjx-tall > mjx-box': {\n 'padding-left': '.3em',\n 'margin-left': '-.3em'\n }\n };\n return CHTMLmsqrt;\n}((0, msqrt_js_1.CommonMsqrtMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmsqrt = CHTMLmsqrt;\n//# sourceMappingURL=msqrt.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmsubsup = exports.CHTMLmsup = exports.CHTMLmsub = void 0;\nvar scriptbase_js_1 = require(\"./scriptbase.js\");\nvar msubsup_js_1 = require(\"../../common/Wrappers/msubsup.js\");\nvar msubsup_js_2 = require(\"../../common/Wrappers/msubsup.js\");\nvar msubsup_js_3 = require(\"../../common/Wrappers/msubsup.js\");\nvar msubsup_js_4 = require(\"../../../core/MmlTree/MmlNodes/msubsup.js\");\nvar CHTMLmsub = (function (_super) {\n __extends(CHTMLmsub, _super);\n function CHTMLmsub() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmsub.kind = msubsup_js_4.MmlMsub.prototype.kind;\n return CHTMLmsub;\n}((0, msubsup_js_1.CommonMsubMixin)(scriptbase_js_1.CHTMLscriptbase)));\nexports.CHTMLmsub = CHTMLmsub;\nvar CHTMLmsup = (function (_super) {\n __extends(CHTMLmsup, _super);\n function CHTMLmsup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmsup.kind = msubsup_js_4.MmlMsup.prototype.kind;\n return CHTMLmsup;\n}((0, msubsup_js_2.CommonMsupMixin)(scriptbase_js_1.CHTMLscriptbase)));\nexports.CHTMLmsup = CHTMLmsup;\nvar CHTMLmsubsup = (function (_super) {\n __extends(CHTMLmsubsup, _super);\n function CHTMLmsubsup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmsubsup.prototype.toCHTML = function (parent) {\n var adaptor = this.adaptor;\n var chtml = this.standardCHTMLnode(parent);\n var _a = __read([this.baseChild, this.supChild, this.subChild], 3), base = _a[0], sup = _a[1], sub = _a[2];\n var _b = __read(this.getUVQ(), 3), v = _b[1], q = _b[2];\n var style = { 'vertical-align': this.em(v) };\n base.toCHTML(chtml);\n var stack = adaptor.append(chtml, this.html('mjx-script', { style: style }));\n sup.toCHTML(stack);\n adaptor.append(stack, this.html('mjx-spacer', { style: { 'margin-top': this.em(q) } }));\n sub.toCHTML(stack);\n var ic = this.getAdjustedIc();\n if (ic) {\n adaptor.setStyle(sup.chtml, 'marginLeft', this.em(ic / sup.bbox.rscale));\n }\n if (this.baseRemoveIc) {\n adaptor.setStyle(stack, 'marginLeft', this.em(-this.baseIc));\n }\n };\n CHTMLmsubsup.kind = msubsup_js_4.MmlMsubsup.prototype.kind;\n CHTMLmsubsup.styles = {\n 'mjx-script': {\n display: 'inline-block',\n 'padding-right': '.05em',\n 'padding-left': '.033em'\n },\n 'mjx-script > mjx-spacer': {\n display: 'block'\n }\n };\n return CHTMLmsubsup;\n}((0, msubsup_js_3.CommonMsubsupMixin)(scriptbase_js_1.CHTMLscriptbase)));\nexports.CHTMLmsubsup = CHTMLmsubsup;\n//# sourceMappingURL=msubsup.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmtable = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mtable_js_1 = require(\"../../common/Wrappers/mtable.js\");\nvar mtable_js_2 = require(\"../../../core/MmlTree/MmlNodes/mtable.js\");\nvar string_js_1 = require(\"../../../util/string.js\");\nvar CHTMLmtable = (function (_super) {\n __extends(CHTMLmtable, _super);\n function CHTMLmtable(factory, node, parent) {\n if (parent === void 0) { parent = null; }\n var _this = _super.call(this, factory, node, parent) || this;\n _this.itable = _this.html('mjx-itable');\n _this.labels = _this.html('mjx-itable');\n return _this;\n }\n CHTMLmtable.prototype.getAlignShift = function () {\n var data = _super.prototype.getAlignShift.call(this);\n if (!this.isTop) {\n data[1] = 0;\n }\n return data;\n };\n CHTMLmtable.prototype.toCHTML = function (parent) {\n var e_1, _a;\n var chtml = this.standardCHTMLnode(parent);\n this.adaptor.append(chtml, this.html('mjx-table', {}, [this.itable]));\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.toCHTML(this.itable);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.padRows();\n this.handleColumnSpacing();\n this.handleColumnLines();\n this.handleColumnWidths();\n this.handleRowSpacing();\n this.handleRowLines();\n this.handleRowHeights();\n this.handleFrame();\n this.handleWidth();\n this.handleLabels();\n this.handleAlign();\n this.handleJustify();\n this.shiftColor();\n };\n CHTMLmtable.prototype.shiftColor = function () {\n var adaptor = this.adaptor;\n var color = adaptor.getStyle(this.chtml, 'backgroundColor');\n if (color) {\n adaptor.setStyle(this.chtml, 'backgroundColor', '');\n adaptor.setStyle(this.itable, 'backgroundColor', color);\n }\n };\n CHTMLmtable.prototype.padRows = function () {\n var e_2, _a;\n var adaptor = this.adaptor;\n try {\n for (var _b = __values(adaptor.childNodes(this.itable)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var row = _c.value;\n while (adaptor.childNodes(row).length < this.numCols) {\n adaptor.append(row, this.html('mjx-mtd', { 'extra': true }));\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n CHTMLmtable.prototype.handleColumnSpacing = function () {\n var e_3, _a, e_4, _b;\n var scale = (this.childNodes[0] ? 1 / this.childNodes[0].getBBox().rscale : 1);\n var spacing = this.getEmHalfSpacing(this.fSpace[0], this.cSpace, scale);\n var frame = this.frame;\n try {\n for (var _c = __values(this.tableRows), _d = _c.next(); !_d.done; _d = _c.next()) {\n var row = _d.value;\n var i = 0;\n try {\n for (var _e = (e_4 = void 0, __values(row.tableCells)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var cell = _f.value;\n var lspace = spacing[i++];\n var rspace = spacing[i];\n var styleNode = (cell ? cell.chtml : this.adaptor.childNodes(row.chtml)[i]);\n if ((i > 1 && lspace !== '0.4em') || (frame && i === 1)) {\n this.adaptor.setStyle(styleNode, 'paddingLeft', lspace);\n }\n if ((i < this.numCols && rspace !== '0.4em') || (frame && i === this.numCols)) {\n this.adaptor.setStyle(styleNode, 'paddingRight', rspace);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n CHTMLmtable.prototype.handleColumnLines = function () {\n var e_5, _a, e_6, _b;\n if (this.node.attributes.get('columnlines') === 'none')\n return;\n var lines = this.getColumnAttributes('columnlines');\n try {\n for (var _c = __values(this.childNodes), _d = _c.next(); !_d.done; _d = _c.next()) {\n var row = _d.value;\n var i = 0;\n try {\n for (var _e = (e_6 = void 0, __values(this.adaptor.childNodes(row.chtml).slice(1))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var cell = _f.value;\n var line = lines[i++];\n if (line === 'none')\n continue;\n this.adaptor.setStyle(cell, 'borderLeft', '.07em ' + line);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n };\n CHTMLmtable.prototype.handleColumnWidths = function () {\n var e_7, _a, e_8, _b;\n try {\n for (var _c = __values(this.childNodes), _d = _c.next(); !_d.done; _d = _c.next()) {\n var row = _d.value;\n var i = 0;\n try {\n for (var _e = (e_8 = void 0, __values(this.adaptor.childNodes(row.chtml))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var cell = _f.value;\n var w = this.cWidths[i++];\n if (w !== null) {\n var width = (typeof w === 'number' ? this.em(w) : w);\n this.adaptor.setStyle(cell, 'width', width);\n this.adaptor.setStyle(cell, 'maxWidth', width);\n this.adaptor.setStyle(cell, 'minWidth', width);\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_8) throw e_8.error; }\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_7) throw e_7.error; }\n }\n };\n CHTMLmtable.prototype.handleRowSpacing = function () {\n var e_9, _a, e_10, _b;\n var scale = (this.childNodes[0] ? 1 / this.childNodes[0].getBBox().rscale : 1);\n var spacing = this.getEmHalfSpacing(this.fSpace[1], this.rSpace, scale);\n var frame = this.frame;\n var i = 0;\n try {\n for (var _c = __values(this.childNodes), _d = _c.next(); !_d.done; _d = _c.next()) {\n var row = _d.value;\n var tspace = spacing[i++];\n var bspace = spacing[i];\n try {\n for (var _e = (e_10 = void 0, __values(row.childNodes)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var cell = _f.value;\n if ((i > 1 && tspace !== '0.215em') || (frame && i === 1)) {\n this.adaptor.setStyle(cell.chtml, 'paddingTop', tspace);\n }\n if ((i < this.numRows && bspace !== '0.215em') || (frame && i === this.numRows)) {\n this.adaptor.setStyle(cell.chtml, 'paddingBottom', bspace);\n }\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_10) throw e_10.error; }\n }\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_9) throw e_9.error; }\n }\n };\n CHTMLmtable.prototype.handleRowLines = function () {\n var e_11, _a, e_12, _b;\n if (this.node.attributes.get('rowlines') === 'none')\n return;\n var lines = this.getRowAttributes('rowlines');\n var i = 0;\n try {\n for (var _c = __values(this.childNodes.slice(1)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var row = _d.value;\n var line = lines[i++];\n if (line === 'none')\n continue;\n try {\n for (var _e = (e_12 = void 0, __values(this.adaptor.childNodes(row.chtml))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var cell = _f.value;\n this.adaptor.setStyle(cell, 'borderTop', '.07em ' + line);\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_12) throw e_12.error; }\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_11) throw e_11.error; }\n }\n };\n CHTMLmtable.prototype.handleRowHeights = function () {\n if (this.node.attributes.get('equalrows')) {\n this.handleEqualRows();\n }\n };\n CHTMLmtable.prototype.handleEqualRows = function () {\n var space = this.getRowHalfSpacing();\n var _a = this.getTableData(), H = _a.H, D = _a.D, NH = _a.NH, ND = _a.ND;\n var HD = this.getEqualRowHeight();\n for (var i = 0; i < this.numRows; i++) {\n var row = this.childNodes[i];\n this.setRowHeight(row, HD + space[i] + space[i + 1] + this.rLines[i]);\n if (HD !== NH[i] + ND[i]) {\n this.setRowBaseline(row, HD, (HD - H[i] + D[i]) / 2);\n }\n }\n };\n CHTMLmtable.prototype.setRowHeight = function (row, HD) {\n this.adaptor.setStyle(row.chtml, 'height', this.em(HD));\n };\n CHTMLmtable.prototype.setRowBaseline = function (row, HD, D) {\n var e_13, _a;\n var ralign = row.node.attributes.get('rowalign');\n try {\n for (var _b = __values(row.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var cell = _c.value;\n if (this.setCellBaseline(cell, ralign, HD, D))\n break;\n }\n }\n catch (e_13_1) { e_13 = { error: e_13_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_13) throw e_13.error; }\n }\n };\n CHTMLmtable.prototype.setCellBaseline = function (cell, ralign, HD, D) {\n var calign = cell.node.attributes.get('rowalign');\n if (calign === 'baseline' || calign === 'axis') {\n var adaptor = this.adaptor;\n var child = adaptor.lastChild(cell.chtml);\n adaptor.setStyle(child, 'height', this.em(HD));\n adaptor.setStyle(child, 'verticalAlign', this.em(-D));\n var row = cell.parent;\n if ((!row.node.isKind('mlabeledtr') || cell !== row.childNodes[0]) &&\n (ralign === 'baseline' || ralign === 'axis')) {\n return true;\n }\n }\n return false;\n };\n CHTMLmtable.prototype.handleFrame = function () {\n if (this.frame && this.fLine) {\n this.adaptor.setStyle(this.itable, 'border', '.07em ' + this.node.attributes.get('frame'));\n }\n };\n CHTMLmtable.prototype.handleWidth = function () {\n var adaptor = this.adaptor;\n var _a = this.getBBox(), w = _a.w, L = _a.L, R = _a.R;\n adaptor.setStyle(this.chtml, 'minWidth', this.em(L + w + R));\n var W = this.node.attributes.get('width');\n if ((0, string_js_1.isPercent)(W)) {\n adaptor.setStyle(this.chtml, 'width', '');\n adaptor.setAttribute(this.chtml, 'width', 'full');\n }\n else if (!this.hasLabels) {\n if (W === 'auto')\n return;\n W = this.em(this.length2em(W) + 2 * this.fLine);\n }\n var table = adaptor.firstChild(this.chtml);\n adaptor.setStyle(table, 'width', W);\n adaptor.setStyle(table, 'minWidth', this.em(w));\n if (L || R) {\n adaptor.setStyle(this.chtml, 'margin', '');\n var style = (this.node.attributes.get('data-width-includes-label') ? 'padding' : 'margin');\n if (L === R) {\n adaptor.setStyle(table, style, '0 ' + this.em(R));\n }\n else {\n adaptor.setStyle(table, style, '0 ' + this.em(R) + ' 0 ' + this.em(L));\n }\n }\n adaptor.setAttribute(this.itable, 'width', 'full');\n };\n CHTMLmtable.prototype.handleAlign = function () {\n var _a = __read(this.getAlignmentRow(), 2), align = _a[0], row = _a[1];\n if (row === null) {\n if (align !== 'axis') {\n this.adaptor.setAttribute(this.chtml, 'align', align);\n }\n }\n else {\n var y = this.getVerticalPosition(row, align);\n this.adaptor.setAttribute(this.chtml, 'align', 'top');\n this.adaptor.setStyle(this.chtml, 'verticalAlign', this.em(y));\n }\n };\n CHTMLmtable.prototype.handleJustify = function () {\n var align = this.getAlignShift()[0];\n if (align !== 'center') {\n this.adaptor.setAttribute(this.chtml, 'justify', align);\n }\n };\n CHTMLmtable.prototype.handleLabels = function () {\n if (!this.hasLabels)\n return;\n var labels = this.labels;\n var attributes = this.node.attributes;\n var adaptor = this.adaptor;\n var side = attributes.get('side');\n adaptor.setAttribute(this.chtml, 'side', side);\n adaptor.setAttribute(labels, 'align', side);\n adaptor.setStyle(labels, side, '0');\n var _a = __read(this.addLabelPadding(side), 2), align = _a[0], shift = _a[1];\n if (shift) {\n var table = adaptor.firstChild(this.chtml);\n this.setIndent(table, align, shift);\n }\n this.updateRowHeights();\n this.addLabelSpacing();\n };\n CHTMLmtable.prototype.addLabelPadding = function (side) {\n var _a = __read(this.getPadAlignShift(side), 3), align = _a[1], shift = _a[2];\n var styles = {};\n if (side === 'right' && !this.node.attributes.get('data-width-includes-label')) {\n var W = this.node.attributes.get('width');\n var _b = this.getBBox(), w = _b.w, L = _b.L, R = _b.R;\n styles.style = {\n width: ((0, string_js_1.isPercent)(W) ? 'calc(' + W + ' + ' + this.em(L + R) + ')' : this.em(L + w + R))\n };\n }\n this.adaptor.append(this.chtml, this.html('mjx-labels', styles, [this.labels]));\n return [align, shift];\n };\n CHTMLmtable.prototype.updateRowHeights = function () {\n var _a = this.getTableData(), H = _a.H, D = _a.D, NH = _a.NH, ND = _a.ND;\n var space = this.getRowHalfSpacing();\n for (var i = 0; i < this.numRows; i++) {\n var row = this.childNodes[i];\n this.setRowHeight(row, H[i] + D[i] + space[i] + space[i + 1] + this.rLines[i]);\n if (H[i] !== NH[i] || D[i] !== ND[i]) {\n this.setRowBaseline(row, H[i] + D[i], D[i]);\n }\n else if (row.node.isKind('mlabeledtr')) {\n this.setCellBaseline(row.childNodes[0], '', H[i] + D[i], D[i]);\n }\n }\n };\n CHTMLmtable.prototype.addLabelSpacing = function () {\n var adaptor = this.adaptor;\n var equal = this.node.attributes.get('equalrows');\n var _a = this.getTableData(), H = _a.H, D = _a.D;\n var HD = (equal ? this.getEqualRowHeight() : 0);\n var space = this.getRowHalfSpacing();\n var h = this.fLine;\n var current = adaptor.firstChild(this.labels);\n for (var i = 0; i < this.numRows; i++) {\n var row = this.childNodes[i];\n if (row.node.isKind('mlabeledtr')) {\n h && adaptor.insert(this.html('mjx-mtr', { style: { height: this.em(h) } }), current);\n adaptor.setStyle(current, 'height', this.em((equal ? HD : H[i] + D[i]) + space[i] + space[i + 1]));\n current = adaptor.next(current);\n h = this.rLines[i];\n }\n else {\n h += space[i] + (equal ? HD : H[i] + D[i]) + space[i + 1] + this.rLines[i];\n }\n }\n };\n CHTMLmtable.kind = mtable_js_2.MmlMtable.prototype.kind;\n CHTMLmtable.styles = {\n 'mjx-mtable': {\n 'vertical-align': '.25em',\n 'text-align': 'center',\n 'position': 'relative',\n 'box-sizing': 'border-box',\n 'border-spacing': 0,\n 'border-collapse': 'collapse'\n },\n 'mjx-mstyle[size=\"s\"] mjx-mtable': {\n 'vertical-align': '.354em'\n },\n 'mjx-labels': {\n position: 'absolute',\n left: 0,\n top: 0\n },\n 'mjx-table': {\n 'display': 'inline-block',\n 'vertical-align': '-.5ex',\n 'box-sizing': 'border-box'\n },\n 'mjx-table > mjx-itable': {\n 'vertical-align': 'middle',\n 'text-align': 'left',\n 'box-sizing': 'border-box'\n },\n 'mjx-labels > mjx-itable': {\n position: 'absolute',\n top: 0\n },\n 'mjx-mtable[justify=\"left\"]': {\n 'text-align': 'left'\n },\n 'mjx-mtable[justify=\"right\"]': {\n 'text-align': 'right'\n },\n 'mjx-mtable[justify=\"left\"][side=\"left\"]': {\n 'padding-right': '0 ! important'\n },\n 'mjx-mtable[justify=\"left\"][side=\"right\"]': {\n 'padding-left': '0 ! important'\n },\n 'mjx-mtable[justify=\"right\"][side=\"left\"]': {\n 'padding-right': '0 ! important'\n },\n 'mjx-mtable[justify=\"right\"][side=\"right\"]': {\n 'padding-left': '0 ! important'\n },\n 'mjx-mtable[align]': {\n 'vertical-align': 'baseline'\n },\n 'mjx-mtable[align=\"top\"] > mjx-table': {\n 'vertical-align': 'top'\n },\n 'mjx-mtable[align=\"bottom\"] > mjx-table': {\n 'vertical-align': 'bottom'\n },\n 'mjx-mtable[side=\"right\"] mjx-labels': {\n 'min-width': '100%'\n }\n };\n return CHTMLmtable;\n}((0, mtable_js_1.CommonMtableMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmtable = CHTMLmtable;\n//# sourceMappingURL=mtable.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmtd = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mtd_js_1 = require(\"../../common/Wrappers/mtd.js\");\nvar mtd_js_2 = require(\"../../../core/MmlTree/MmlNodes/mtd.js\");\nvar CHTMLmtd = (function (_super) {\n __extends(CHTMLmtd, _super);\n function CHTMLmtd() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmtd.prototype.toCHTML = function (parent) {\n _super.prototype.toCHTML.call(this, parent);\n var ralign = this.node.attributes.get('rowalign');\n var calign = this.node.attributes.get('columnalign');\n var palign = this.parent.node.attributes.get('rowalign');\n if (ralign !== palign) {\n this.adaptor.setAttribute(this.chtml, 'rowalign', ralign);\n }\n if (calign !== 'center' &&\n (this.parent.kind !== 'mlabeledtr' || this !== this.parent.childNodes[0] ||\n calign !== this.parent.parent.node.attributes.get('side'))) {\n this.adaptor.setStyle(this.chtml, 'textAlign', calign);\n }\n if (this.parent.parent.node.getProperty('useHeight')) {\n this.adaptor.append(this.chtml, this.html('mjx-tstrut'));\n }\n };\n CHTMLmtd.kind = mtd_js_2.MmlMtd.prototype.kind;\n CHTMLmtd.styles = {\n 'mjx-mtd': {\n display: 'table-cell',\n 'text-align': 'center',\n 'padding': '.215em .4em'\n },\n 'mjx-mtd:first-child': {\n 'padding-left': 0\n },\n 'mjx-mtd:last-child': {\n 'padding-right': 0\n },\n 'mjx-mtable > * > mjx-itable > *:first-child > mjx-mtd': {\n 'padding-top': 0\n },\n 'mjx-mtable > * > mjx-itable > *:last-child > mjx-mtd': {\n 'padding-bottom': 0\n },\n 'mjx-tstrut': {\n display: 'inline-block',\n height: '1em',\n 'vertical-align': '-.25em'\n },\n 'mjx-labels[align=\"left\"] > mjx-mtr > mjx-mtd': {\n 'text-align': 'left'\n },\n 'mjx-labels[align=\"right\"] > mjx-mtr > mjx-mtd': {\n 'text-align': 'right'\n },\n 'mjx-mtd[extra]': {\n padding: 0\n },\n 'mjx-mtd[rowalign=\"top\"]': {\n 'vertical-align': 'top'\n },\n 'mjx-mtd[rowalign=\"center\"]': {\n 'vertical-align': 'middle'\n },\n 'mjx-mtd[rowalign=\"bottom\"]': {\n 'vertical-align': 'bottom'\n },\n 'mjx-mtd[rowalign=\"baseline\"]': {\n 'vertical-align': 'baseline'\n },\n 'mjx-mtd[rowalign=\"axis\"]': {\n 'vertical-align': '.25em'\n }\n };\n return CHTMLmtd;\n}((0, mtd_js_1.CommonMtdMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmtd = CHTMLmtd;\n//# sourceMappingURL=mtd.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmtext = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mtext_js_1 = require(\"../../common/Wrappers/mtext.js\");\nvar mtext_js_2 = require(\"../../../core/MmlTree/MmlNodes/mtext.js\");\nvar CHTMLmtext = (function (_super) {\n __extends(CHTMLmtext, _super);\n function CHTMLmtext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmtext.kind = mtext_js_2.MmlMtext.prototype.kind;\n return CHTMLmtext;\n}((0, mtext_js_1.CommonMtextMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmtext = CHTMLmtext;\n//# sourceMappingURL=mtext.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmlabeledtr = exports.CHTMLmtr = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar mtr_js_1 = require(\"../../common/Wrappers/mtr.js\");\nvar mtr_js_2 = require(\"../../common/Wrappers/mtr.js\");\nvar mtr_js_3 = require(\"../../../core/MmlTree/MmlNodes/mtr.js\");\nvar CHTMLmtr = (function (_super) {\n __extends(CHTMLmtr, _super);\n function CHTMLmtr() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmtr.prototype.toCHTML = function (parent) {\n _super.prototype.toCHTML.call(this, parent);\n var align = this.node.attributes.get('rowalign');\n if (align !== 'baseline') {\n this.adaptor.setAttribute(this.chtml, 'rowalign', align);\n }\n };\n CHTMLmtr.kind = mtr_js_3.MmlMtr.prototype.kind;\n CHTMLmtr.styles = {\n 'mjx-mtr': {\n display: 'table-row',\n },\n 'mjx-mtr[rowalign=\"top\"] > mjx-mtd': {\n 'vertical-align': 'top'\n },\n 'mjx-mtr[rowalign=\"center\"] > mjx-mtd': {\n 'vertical-align': 'middle'\n },\n 'mjx-mtr[rowalign=\"bottom\"] > mjx-mtd': {\n 'vertical-align': 'bottom'\n },\n 'mjx-mtr[rowalign=\"baseline\"] > mjx-mtd': {\n 'vertical-align': 'baseline'\n },\n 'mjx-mtr[rowalign=\"axis\"] > mjx-mtd': {\n 'vertical-align': '.25em'\n }\n };\n return CHTMLmtr;\n}((0, mtr_js_1.CommonMtrMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLmtr = CHTMLmtr;\nvar CHTMLmlabeledtr = (function (_super) {\n __extends(CHTMLmlabeledtr, _super);\n function CHTMLmlabeledtr() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmlabeledtr.prototype.toCHTML = function (parent) {\n _super.prototype.toCHTML.call(this, parent);\n var child = this.adaptor.firstChild(this.chtml);\n if (child) {\n this.adaptor.remove(child);\n var align = this.node.attributes.get('rowalign');\n var attr = (align !== 'baseline' && align !== 'axis' ? { rowalign: align } : {});\n var row = this.html('mjx-mtr', attr, [child]);\n this.adaptor.append(this.parent.labels, row);\n }\n };\n CHTMLmlabeledtr.prototype.markUsed = function () {\n _super.prototype.markUsed.call(this);\n this.jax.wrapperUsage.add(CHTMLmtr.kind);\n };\n CHTMLmlabeledtr.kind = mtr_js_3.MmlMlabeledtr.prototype.kind;\n CHTMLmlabeledtr.styles = {\n 'mjx-mlabeledtr': {\n display: 'table-row'\n },\n 'mjx-mlabeledtr[rowalign=\"top\"] > mjx-mtd': {\n 'vertical-align': 'top'\n },\n 'mjx-mlabeledtr[rowalign=\"center\"] > mjx-mtd': {\n 'vertical-align': 'middle'\n },\n 'mjx-mlabeledtr[rowalign=\"bottom\"] > mjx-mtd': {\n 'vertical-align': 'bottom'\n },\n 'mjx-mlabeledtr[rowalign=\"baseline\"] > mjx-mtd': {\n 'vertical-align': 'baseline'\n },\n 'mjx-mlabeledtr[rowalign=\"axis\"] > mjx-mtd': {\n 'vertical-align': '.25em'\n }\n };\n return CHTMLmlabeledtr;\n}((0, mtr_js_2.CommonMlabeledtrMixin)(CHTMLmtr)));\nexports.CHTMLmlabeledtr = CHTMLmlabeledtr;\n//# sourceMappingURL=mtr.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLmunderover = exports.CHTMLmover = exports.CHTMLmunder = void 0;\nvar msubsup_js_1 = require(\"./msubsup.js\");\nvar munderover_js_1 = require(\"../../common/Wrappers/munderover.js\");\nvar munderover_js_2 = require(\"../../common/Wrappers/munderover.js\");\nvar munderover_js_3 = require(\"../../common/Wrappers/munderover.js\");\nvar munderover_js_4 = require(\"../../../core/MmlTree/MmlNodes/munderover.js\");\nvar CHTMLmunder = (function (_super) {\n __extends(CHTMLmunder, _super);\n function CHTMLmunder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmunder.prototype.toCHTML = function (parent) {\n if (this.hasMovableLimits()) {\n _super.prototype.toCHTML.call(this, parent);\n this.adaptor.setAttribute(this.chtml, 'limits', 'false');\n return;\n }\n this.chtml = this.standardCHTMLnode(parent);\n var base = this.adaptor.append(this.adaptor.append(this.chtml, this.html('mjx-row')), this.html('mjx-base'));\n var under = this.adaptor.append(this.adaptor.append(this.chtml, this.html('mjx-row')), this.html('mjx-under'));\n this.baseChild.toCHTML(base);\n this.scriptChild.toCHTML(under);\n var basebox = this.baseChild.getOuterBBox();\n var underbox = this.scriptChild.getOuterBBox();\n var k = this.getUnderKV(basebox, underbox)[0];\n var delta = (this.isLineBelow ? 0 : this.getDelta(true));\n this.adaptor.setStyle(under, 'paddingTop', this.em(k));\n this.setDeltaW([base, under], this.getDeltaW([basebox, underbox], [0, -delta]));\n this.adjustUnderDepth(under, underbox);\n };\n CHTMLmunder.kind = munderover_js_4.MmlMunder.prototype.kind;\n CHTMLmunder.styles = {\n 'mjx-over': {\n 'text-align': 'left'\n },\n 'mjx-munder:not([limits=\"false\"])': {\n display: 'inline-table',\n },\n 'mjx-munder > mjx-row': {\n 'text-align': 'left'\n },\n 'mjx-under': {\n 'padding-bottom': '.1em'\n }\n };\n return CHTMLmunder;\n}((0, munderover_js_1.CommonMunderMixin)(msubsup_js_1.CHTMLmsub)));\nexports.CHTMLmunder = CHTMLmunder;\nvar CHTMLmover = (function (_super) {\n __extends(CHTMLmover, _super);\n function CHTMLmover() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmover.prototype.toCHTML = function (parent) {\n if (this.hasMovableLimits()) {\n _super.prototype.toCHTML.call(this, parent);\n this.adaptor.setAttribute(this.chtml, 'limits', 'false');\n return;\n }\n this.chtml = this.standardCHTMLnode(parent);\n var over = this.adaptor.append(this.chtml, this.html('mjx-over'));\n var base = this.adaptor.append(this.chtml, this.html('mjx-base'));\n this.scriptChild.toCHTML(over);\n this.baseChild.toCHTML(base);\n var overbox = this.scriptChild.getOuterBBox();\n var basebox = this.baseChild.getOuterBBox();\n this.adjustBaseHeight(base, basebox);\n var k = this.getOverKU(basebox, overbox)[0];\n var delta = (this.isLineAbove ? 0 : this.getDelta());\n this.adaptor.setStyle(over, 'paddingBottom', this.em(k));\n this.setDeltaW([base, over], this.getDeltaW([basebox, overbox], [0, delta]));\n this.adjustOverDepth(over, overbox);\n };\n CHTMLmover.kind = munderover_js_4.MmlMover.prototype.kind;\n CHTMLmover.styles = {\n 'mjx-mover:not([limits=\"false\"])': {\n 'padding-top': '.1em'\n },\n 'mjx-mover:not([limits=\"false\"]) > *': {\n display: 'block',\n 'text-align': 'left'\n }\n };\n return CHTMLmover;\n}((0, munderover_js_2.CommonMoverMixin)(msubsup_js_1.CHTMLmsup)));\nexports.CHTMLmover = CHTMLmover;\nvar CHTMLmunderover = (function (_super) {\n __extends(CHTMLmunderover, _super);\n function CHTMLmunderover() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLmunderover.prototype.toCHTML = function (parent) {\n if (this.hasMovableLimits()) {\n _super.prototype.toCHTML.call(this, parent);\n this.adaptor.setAttribute(this.chtml, 'limits', 'false');\n return;\n }\n this.chtml = this.standardCHTMLnode(parent);\n var over = this.adaptor.append(this.chtml, this.html('mjx-over'));\n var table = this.adaptor.append(this.adaptor.append(this.chtml, this.html('mjx-box')), this.html('mjx-munder'));\n var base = this.adaptor.append(this.adaptor.append(table, this.html('mjx-row')), this.html('mjx-base'));\n var under = this.adaptor.append(this.adaptor.append(table, this.html('mjx-row')), this.html('mjx-under'));\n this.overChild.toCHTML(over);\n this.baseChild.toCHTML(base);\n this.underChild.toCHTML(under);\n var overbox = this.overChild.getOuterBBox();\n var basebox = this.baseChild.getOuterBBox();\n var underbox = this.underChild.getOuterBBox();\n this.adjustBaseHeight(base, basebox);\n var ok = this.getOverKU(basebox, overbox)[0];\n var uk = this.getUnderKV(basebox, underbox)[0];\n var delta = this.getDelta();\n this.adaptor.setStyle(over, 'paddingBottom', this.em(ok));\n this.adaptor.setStyle(under, 'paddingTop', this.em(uk));\n this.setDeltaW([base, under, over], this.getDeltaW([basebox, underbox, overbox], [0, this.isLineBelow ? 0 : -delta, this.isLineAbove ? 0 : delta]));\n this.adjustOverDepth(over, overbox);\n this.adjustUnderDepth(under, underbox);\n };\n CHTMLmunderover.prototype.markUsed = function () {\n _super.prototype.markUsed.call(this);\n this.jax.wrapperUsage.add(msubsup_js_1.CHTMLmsubsup.kind);\n };\n CHTMLmunderover.kind = munderover_js_4.MmlMunderover.prototype.kind;\n CHTMLmunderover.styles = {\n 'mjx-munderover:not([limits=\"false\"])': {\n 'padding-top': '.1em'\n },\n 'mjx-munderover:not([limits=\"false\"]) > *': {\n display: 'block'\n },\n };\n return CHTMLmunderover;\n}((0, munderover_js_3.CommonMunderoverMixin)(msubsup_js_1.CHTMLmsubsup)));\nexports.CHTMLmunderover = CHTMLmunderover;\n//# sourceMappingURL=munderover.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLscriptbase = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar scriptbase_js_1 = require(\"../../common/Wrappers/scriptbase.js\");\nvar CHTMLscriptbase = (function (_super) {\n __extends(CHTMLscriptbase, _super);\n function CHTMLscriptbase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLscriptbase.prototype.toCHTML = function (parent) {\n this.chtml = this.standardCHTMLnode(parent);\n var _a = __read(this.getOffset(), 2), x = _a[0], v = _a[1];\n var dx = x - (this.baseRemoveIc ? this.baseIc : 0);\n var style = { 'vertical-align': this.em(v) };\n if (dx) {\n style['margin-left'] = this.em(dx);\n }\n this.baseChild.toCHTML(this.chtml);\n this.scriptChild.toCHTML(this.adaptor.append(this.chtml, this.html('mjx-script', { style: style })));\n };\n CHTMLscriptbase.prototype.setDeltaW = function (nodes, dx) {\n for (var i = 0; i < dx.length; i++) {\n if (dx[i]) {\n this.adaptor.setStyle(nodes[i], 'paddingLeft', this.em(dx[i]));\n }\n }\n };\n CHTMLscriptbase.prototype.adjustOverDepth = function (over, overbox) {\n if (overbox.d >= 0)\n return;\n this.adaptor.setStyle(over, 'marginBottom', this.em(overbox.d * overbox.rscale));\n };\n CHTMLscriptbase.prototype.adjustUnderDepth = function (under, underbox) {\n var e_1, _a;\n if (underbox.d >= 0)\n return;\n var adaptor = this.adaptor;\n var v = this.em(underbox.d);\n var box = this.html('mjx-box', { style: { 'margin-bottom': v, 'vertical-align': v } });\n try {\n for (var _b = __values(adaptor.childNodes(adaptor.firstChild(under))), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n adaptor.append(box, child);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n adaptor.append(adaptor.firstChild(under), box);\n };\n CHTMLscriptbase.prototype.adjustBaseHeight = function (base, basebox) {\n if (this.node.attributes.get('accent')) {\n var minH = this.font.params.x_height * basebox.scale;\n if (basebox.h < minH) {\n this.adaptor.setStyle(base, 'paddingTop', this.em(minH - basebox.h));\n basebox.h = minH;\n }\n }\n };\n CHTMLscriptbase.kind = 'scriptbase';\n return CHTMLscriptbase;\n}((0, scriptbase_js_1.CommonScriptbaseMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLscriptbase = CHTMLscriptbase;\n//# sourceMappingURL=scriptbase.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHTMLxml = exports.CHTMLannotationXML = exports.CHTMLannotation = exports.CHTMLsemantics = void 0;\nvar Wrapper_js_1 = require(\"../Wrapper.js\");\nvar semantics_js_1 = require(\"../../common/Wrappers/semantics.js\");\nvar semantics_js_2 = require(\"../../../core/MmlTree/MmlNodes/semantics.js\");\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar CHTMLsemantics = (function (_super) {\n __extends(CHTMLsemantics, _super);\n function CHTMLsemantics() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLsemantics.prototype.toCHTML = function (parent) {\n var chtml = this.standardCHTMLnode(parent);\n if (this.childNodes.length) {\n this.childNodes[0].toCHTML(chtml);\n }\n };\n CHTMLsemantics.kind = semantics_js_2.MmlSemantics.prototype.kind;\n return CHTMLsemantics;\n}((0, semantics_js_1.CommonSemanticsMixin)(Wrapper_js_1.CHTMLWrapper)));\nexports.CHTMLsemantics = CHTMLsemantics;\nvar CHTMLannotation = (function (_super) {\n __extends(CHTMLannotation, _super);\n function CHTMLannotation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLannotation.prototype.toCHTML = function (parent) {\n _super.prototype.toCHTML.call(this, parent);\n };\n CHTMLannotation.prototype.computeBBox = function () {\n return this.bbox;\n };\n CHTMLannotation.kind = semantics_js_2.MmlAnnotation.prototype.kind;\n return CHTMLannotation;\n}(Wrapper_js_1.CHTMLWrapper));\nexports.CHTMLannotation = CHTMLannotation;\nvar CHTMLannotationXML = (function (_super) {\n __extends(CHTMLannotationXML, _super);\n function CHTMLannotationXML() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLannotationXML.kind = semantics_js_2.MmlAnnotationXML.prototype.kind;\n CHTMLannotationXML.styles = {\n 'mjx-annotation-xml': {\n 'font-family': 'initial',\n 'line-height': 'normal'\n }\n };\n return CHTMLannotationXML;\n}(Wrapper_js_1.CHTMLWrapper));\nexports.CHTMLannotationXML = CHTMLannotationXML;\nvar CHTMLxml = (function (_super) {\n __extends(CHTMLxml, _super);\n function CHTMLxml() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CHTMLxml.prototype.toCHTML = function (parent) {\n this.chtml = this.adaptor.append(parent, this.adaptor.clone(this.node.getXML()));\n };\n CHTMLxml.prototype.computeBBox = function (bbox, _recompute) {\n if (_recompute === void 0) { _recompute = false; }\n var _a = this.jax.measureXMLnode(this.node.getXML()), w = _a.w, h = _a.h, d = _a.d;\n bbox.w = w;\n bbox.h = h;\n bbox.d = d;\n };\n CHTMLxml.prototype.getStyles = function () { };\n CHTMLxml.prototype.getScale = function () { };\n CHTMLxml.prototype.getVariant = function () { };\n CHTMLxml.kind = MmlNode_js_1.XMLNode.prototype.kind;\n CHTMLxml.autoStyle = false;\n return CHTMLxml;\n}(Wrapper_js_1.CHTMLWrapper));\nexports.CHTMLxml = CHTMLxml;\n//# sourceMappingURL=semantics.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TeXFont = void 0;\nvar FontData_js_1 = require(\"../FontData.js\");\nvar tex_js_1 = require(\"../../common/fonts/tex.js\");\nvar bold_italic_js_1 = require(\"./tex/bold-italic.js\");\nvar bold_js_1 = require(\"./tex/bold.js\");\nvar double_struck_js_1 = require(\"./tex/double-struck.js\");\nvar fraktur_bold_js_1 = require(\"./tex/fraktur-bold.js\");\nvar fraktur_js_1 = require(\"./tex/fraktur.js\");\nvar italic_js_1 = require(\"./tex/italic.js\");\nvar largeop_js_1 = require(\"./tex/largeop.js\");\nvar monospace_js_1 = require(\"./tex/monospace.js\");\nvar normal_js_1 = require(\"./tex/normal.js\");\nvar sans_serif_bold_italic_js_1 = require(\"./tex/sans-serif-bold-italic.js\");\nvar sans_serif_bold_js_1 = require(\"./tex/sans-serif-bold.js\");\nvar sans_serif_italic_js_1 = require(\"./tex/sans-serif-italic.js\");\nvar sans_serif_js_1 = require(\"./tex/sans-serif.js\");\nvar script_bold_js_1 = require(\"./tex/script-bold.js\");\nvar script_js_1 = require(\"./tex/script.js\");\nvar smallop_js_1 = require(\"./tex/smallop.js\");\nvar tex_calligraphic_bold_js_1 = require(\"./tex/tex-calligraphic-bold.js\");\nvar tex_calligraphic_js_1 = require(\"./tex/tex-calligraphic.js\");\nvar tex_mathit_js_1 = require(\"./tex/tex-mathit.js\");\nvar tex_oldstyle_bold_js_1 = require(\"./tex/tex-oldstyle-bold.js\");\nvar tex_oldstyle_js_1 = require(\"./tex/tex-oldstyle.js\");\nvar tex_size3_js_1 = require(\"./tex/tex-size3.js\");\nvar tex_size4_js_1 = require(\"./tex/tex-size4.js\");\nvar tex_variant_js_1 = require(\"./tex/tex-variant.js\");\nvar delimiters_js_1 = require(\"../../common/fonts/tex/delimiters.js\");\nvar TeXFont = (function (_super) {\n __extends(TeXFont, _super);\n function TeXFont() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TeXFont.defaultCssFamilyPrefix = 'MJXZERO';\n TeXFont.defaultVariantClasses = {\n 'normal': 'mjx-n',\n 'bold': 'mjx-b',\n 'italic': 'mjx-i',\n 'bold-italic': 'mjx-b mjx-i',\n 'double-struck': 'mjx-ds mjx-b',\n 'fraktur': 'mjx-fr',\n 'bold-fraktur': 'mjx-fr mjx-b',\n 'script': 'mjx-sc mjx-i',\n 'bold-script': 'mjx-sc mjx-b mjx-i',\n 'sans-serif': 'mjx-ss',\n 'bold-sans-serif': 'mjx-ss mjx-b',\n 'sans-serif-italic': 'mjx-ss mjx-i',\n 'sans-serif-bold-italic': 'mjx-ss mjx-b mjx-i',\n 'monospace': 'mjx-ty',\n '-smallop': 'mjx-sop',\n '-largeop': 'mjx-lop',\n '-size3': 'mjx-s3',\n '-size4': 'mjx-s4',\n '-tex-calligraphic': 'mjx-cal mjx-i',\n '-tex-bold-calligraphic': 'mjx-cal mjx-b',\n '-tex-mathit': 'mjx-mit mjx-i',\n '-tex-oldstyle': 'mjx-os',\n '-tex-bold-oldstyle': 'mjx-os mjx-b',\n '-tex-variant': 'mjx-var'\n };\n TeXFont.defaultVariantLetters = {\n 'normal': '',\n 'bold': 'B',\n 'italic': 'MI',\n 'bold-italic': 'BI',\n 'double-struck': 'A',\n 'fraktur': 'FR',\n 'bold-fraktur': 'FRB',\n 'script': 'SC',\n 'bold-script': 'SCB',\n 'sans-serif': 'SS',\n 'bold-sans-serif': 'SSB',\n 'sans-serif-italic': 'SSI',\n 'sans-serif-bold-italic': 'SSBI',\n 'monospace': 'T',\n '-smallop': 'S1',\n '-largeop': 'S2',\n '-size3': 'S3',\n '-size4': 'S4',\n '-tex-calligraphic': 'C',\n '-tex-bold-calligraphic': 'CB',\n '-tex-mathit': 'MI',\n '-tex-oldstyle': 'C',\n '-tex-bold-oldstyle': 'CB',\n '-tex-variant': 'A'\n };\n TeXFont.defaultDelimiters = delimiters_js_1.delimiters;\n TeXFont.defaultChars = {\n 'normal': normal_js_1.normal,\n 'bold': bold_js_1.bold,\n 'italic': italic_js_1.italic,\n 'bold-italic': bold_italic_js_1.boldItalic,\n 'double-struck': double_struck_js_1.doubleStruck,\n 'fraktur': fraktur_js_1.fraktur,\n 'bold-fraktur': fraktur_bold_js_1.frakturBold,\n 'script': script_js_1.script,\n 'bold-script': script_bold_js_1.scriptBold,\n 'sans-serif': sans_serif_js_1.sansSerif,\n 'bold-sans-serif': sans_serif_bold_js_1.sansSerifBold,\n 'sans-serif-italic': sans_serif_italic_js_1.sansSerifItalic,\n 'sans-serif-bold-italic': sans_serif_bold_italic_js_1.sansSerifBoldItalic,\n 'monospace': monospace_js_1.monospace,\n '-smallop': smallop_js_1.smallop,\n '-largeop': largeop_js_1.largeop,\n '-size3': tex_size3_js_1.texSize3,\n '-size4': tex_size4_js_1.texSize4,\n '-tex-calligraphic': tex_calligraphic_js_1.texCalligraphic,\n '-tex-bold-calligraphic': tex_calligraphic_bold_js_1.texCalligraphicBold,\n '-tex-mathit': tex_mathit_js_1.texMathit,\n '-tex-oldstyle': tex_oldstyle_js_1.texOldstyle,\n '-tex-bold-oldstyle': tex_oldstyle_bold_js_1.texOldstyleBold,\n '-tex-variant': tex_variant_js_1.texVariant\n };\n TeXFont.defaultStyles = __assign(__assign({}, FontData_js_1.CHTMLFontData.defaultStyles), { '.MJX-TEX': {\n 'font-family': 'MJXZERO, MJXTEX'\n }, '.TEX-B': {\n 'font-family': 'MJXZERO, MJXTEX-B'\n }, '.TEX-I': {\n 'font-family': 'MJXZERO, MJXTEX-I'\n }, '.TEX-MI': {\n 'font-family': 'MJXZERO, MJXTEX-MI'\n }, '.TEX-BI': {\n 'font-family': 'MJXZERO, MJXTEX-BI'\n }, '.TEX-S1': {\n 'font-family': 'MJXZERO, MJXTEX-S1'\n }, '.TEX-S2': {\n 'font-family': 'MJXZERO, MJXTEX-S2'\n }, '.TEX-S3': {\n 'font-family': 'MJXZERO, MJXTEX-S3'\n }, '.TEX-S4': {\n 'font-family': 'MJXZERO, MJXTEX-S4'\n }, '.TEX-A': {\n 'font-family': 'MJXZERO, MJXTEX-A'\n }, '.TEX-C': {\n 'font-family': 'MJXZERO, MJXTEX-C'\n }, '.TEX-CB': {\n 'font-family': 'MJXZERO, MJXTEX-CB'\n }, '.TEX-FR': {\n 'font-family': 'MJXZERO, MJXTEX-FR'\n }, '.TEX-FRB': {\n 'font-family': 'MJXZERO, MJXTEX-FRB'\n }, '.TEX-SS': {\n 'font-family': 'MJXZERO, MJXTEX-SS'\n }, '.TEX-SSB': {\n 'font-family': 'MJXZERO, MJXTEX-SSB'\n }, '.TEX-SSI': {\n 'font-family': 'MJXZERO, MJXTEX-SSI'\n }, '.TEX-SC': {\n 'font-family': 'MJXZERO, MJXTEX-SC'\n }, '.TEX-T': {\n 'font-family': 'MJXZERO, MJXTEX-T'\n }, '.TEX-V': {\n 'font-family': 'MJXZERO, MJXTEX-V'\n }, '.TEX-VB': {\n 'font-family': 'MJXZERO, MJXTEX-VB'\n }, 'mjx-stretchy-v mjx-c, mjx-stretchy-h mjx-c': {\n 'font-family': 'MJXZERO, MJXTEX-S1, MJXTEX-S4, MJXTEX, MJXTEX-A ! important'\n } });\n TeXFont.defaultFonts = __assign(__assign({}, FontData_js_1.CHTMLFontData.defaultFonts), { '@font-face /* 1 */': {\n 'font-family': 'MJXTEX',\n src: 'url(\"%%URL%%/MathJax_Main-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 2 */': {\n 'font-family': 'MJXTEX-B',\n src: 'url(\"%%URL%%/MathJax_Main-Bold.woff\") format(\"woff\")'\n }, '@font-face /* 3 */': {\n 'font-family': 'MJXTEX-I',\n src: 'url(\"%%URL%%/MathJax_Math-Italic.woff\") format(\"woff\")'\n }, '@font-face /* 4 */': {\n 'font-family': 'MJXTEX-MI',\n src: 'url(\"%%URL%%/MathJax_Main-Italic.woff\") format(\"woff\")'\n }, '@font-face /* 5 */': {\n 'font-family': 'MJXTEX-BI',\n src: 'url(\"%%URL%%/MathJax_Math-BoldItalic.woff\") format(\"woff\")'\n }, '@font-face /* 6 */': {\n 'font-family': 'MJXTEX-S1',\n src: 'url(\"%%URL%%/MathJax_Size1-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 7 */': {\n 'font-family': 'MJXTEX-S2',\n src: 'url(\"%%URL%%/MathJax_Size2-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 8 */': {\n 'font-family': 'MJXTEX-S3',\n src: 'url(\"%%URL%%/MathJax_Size3-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 9 */': {\n 'font-family': 'MJXTEX-S4',\n src: 'url(\"%%URL%%/MathJax_Size4-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 10 */': {\n 'font-family': 'MJXTEX-A',\n src: 'url(\"%%URL%%/MathJax_AMS-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 11 */': {\n 'font-family': 'MJXTEX-C',\n src: 'url(\"%%URL%%/MathJax_Calligraphic-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 12 */': {\n 'font-family': 'MJXTEX-CB',\n src: 'url(\"%%URL%%/MathJax_Calligraphic-Bold.woff\") format(\"woff\")'\n }, '@font-face /* 13 */': {\n 'font-family': 'MJXTEX-FR',\n src: 'url(\"%%URL%%/MathJax_Fraktur-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 14 */': {\n 'font-family': 'MJXTEX-FRB',\n src: 'url(\"%%URL%%/MathJax_Fraktur-Bold.woff\") format(\"woff\")'\n }, '@font-face /* 15 */': {\n 'font-family': 'MJXTEX-SS',\n src: 'url(\"%%URL%%/MathJax_SansSerif-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 16 */': {\n 'font-family': 'MJXTEX-SSB',\n src: 'url(\"%%URL%%/MathJax_SansSerif-Bold.woff\") format(\"woff\")'\n }, '@font-face /* 17 */': {\n 'font-family': 'MJXTEX-SSI',\n src: 'url(\"%%URL%%/MathJax_SansSerif-Italic.woff\") format(\"woff\")'\n }, '@font-face /* 18 */': {\n 'font-family': 'MJXTEX-SC',\n src: 'url(\"%%URL%%/MathJax_Script-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 19 */': {\n 'font-family': 'MJXTEX-T',\n src: 'url(\"%%URL%%/MathJax_Typewriter-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 20 */': {\n 'font-family': 'MJXTEX-V',\n src: 'url(\"%%URL%%/MathJax_Vector-Regular.woff\") format(\"woff\")'\n }, '@font-face /* 21 */': {\n 'font-family': 'MJXTEX-VB',\n src: 'url(\"%%URL%%/MathJax_Vector-Bold.woff\") format(\"woff\")'\n } });\n return TeXFont;\n}((0, tex_js_1.CommonTeXFontMixin)(FontData_js_1.CHTMLFontData)));\nexports.TeXFont = TeXFont;\n//# sourceMappingURL=tex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boldItalic = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar bold_italic_js_1 = require(\"../../../common/fonts/tex/bold-italic.js\");\nexports.boldItalic = (0, FontData_js_1.AddCSS)(bold_italic_js_1.boldItalic, {\n 0x131: { f: 'B' },\n 0x237: { f: 'B' },\n 0x2044: { c: '/' },\n 0x2206: { c: '\\\\394' },\n 0x29F8: { c: '/' },\n});\n//# sourceMappingURL=bold-italic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bold = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar bold_js_1 = require(\"../../../common/fonts/tex/bold.js\");\nexports.bold = (0, FontData_js_1.AddCSS)(bold_js_1.bold, {\n 0xB7: { c: '\\\\22C5' },\n 0x131: { f: '' },\n 0x237: { f: '' },\n 0x2B9: { c: '\\\\2032' },\n 0x2002: { c: '' },\n 0x2003: { c: '' },\n 0x2004: { c: '' },\n 0x2005: { c: '' },\n 0x2006: { c: '' },\n 0x2009: { c: '' },\n 0x200A: { c: '' },\n 0x2015: { c: '\\\\2014' },\n 0x2016: { c: '\\\\2225' },\n 0x2017: { c: '_' },\n 0x2022: { c: '\\\\2219' },\n 0x2033: { c: '\\\\2032\\\\2032' },\n 0x2034: { c: '\\\\2032\\\\2032\\\\2032' },\n 0x203E: { c: '\\\\2C9' },\n 0x2044: { c: '/' },\n 0x2057: { c: '\\\\2032\\\\2032\\\\2032\\\\2032' },\n 0x20D7: { c: '\\\\2192', f: 'VB' },\n 0x219A: { c: '\\\\2190\\\\338' },\n 0x219B: { c: '\\\\2192\\\\338' },\n 0x21AE: { c: '\\\\2194\\\\338' },\n 0x21CD: { c: '\\\\21D0\\\\338' },\n 0x21CE: { c: '\\\\21D4\\\\338' },\n 0x21CF: { c: '\\\\21D2\\\\338' },\n 0x2204: { c: '\\\\2203\\\\338' },\n 0x2206: { c: '\\\\394' },\n 0x220C: { c: '\\\\220B\\\\338' },\n 0x2224: { c: '\\\\2223\\\\338' },\n 0x2226: { c: '\\\\2225\\\\338' },\n 0x2241: { c: '\\\\223C\\\\338' },\n 0x2244: { c: '\\\\2243\\\\338' },\n 0x2247: { c: '\\\\2245\\\\338' },\n 0x2249: { c: '\\\\2248\\\\338' },\n 0x2262: { c: '\\\\2261\\\\338' },\n 0x226D: { c: '\\\\224D\\\\338' },\n 0x226E: { c: '<\\\\338' },\n 0x226F: { c: '>\\\\338' },\n 0x2270: { c: '\\\\2264\\\\338' },\n 0x2271: { c: '\\\\2265\\\\338' },\n 0x2280: { c: '\\\\227A\\\\338' },\n 0x2281: { c: '\\\\227B\\\\338' },\n 0x2284: { c: '\\\\2282\\\\338' },\n 0x2285: { c: '\\\\2283\\\\338' },\n 0x2288: { c: '\\\\2286\\\\338' },\n 0x2289: { c: '\\\\2287\\\\338' },\n 0x22AC: { c: '\\\\22A2\\\\338' },\n 0x22AD: { c: '\\\\22A8\\\\338' },\n 0x22E2: { c: '\\\\2291\\\\338' },\n 0x22E3: { c: '\\\\2292\\\\338' },\n 0x2329: { c: '\\\\27E8' },\n 0x232A: { c: '\\\\27E9' },\n 0x25B5: { c: '\\\\25B3' },\n 0x25BF: { c: '\\\\25BD' },\n 0x2758: { c: '\\\\2223' },\n 0x29F8: { c: '/', f: 'BI' },\n 0x2A2F: { c: '\\\\D7' },\n 0x3008: { c: '\\\\27E8' },\n 0x3009: { c: '\\\\27E9' },\n});\n//# sourceMappingURL=bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.doubleStruck = void 0;\nvar double_struck_js_1 = require(\"../../../common/fonts/tex/double-struck.js\");\nObject.defineProperty(exports, \"doubleStruck\", { enumerable: true, get: function () { return double_struck_js_1.doubleStruck; } });\n//# sourceMappingURL=double-struck.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.frakturBold = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar fraktur_bold_js_1 = require(\"../../../common/fonts/tex/fraktur-bold.js\");\nexports.frakturBold = (0, FontData_js_1.AddCSS)(fraktur_bold_js_1.frakturBold, {\n 0x2044: { c: '/' },\n});\n//# sourceMappingURL=fraktur-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fraktur = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar fraktur_js_1 = require(\"../../../common/fonts/tex/fraktur.js\");\nexports.fraktur = (0, FontData_js_1.AddCSS)(fraktur_js_1.fraktur, {\n 0x2044: { c: '/' },\n});\n//# sourceMappingURL=fraktur.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.italic = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar italic_js_1 = require(\"../../../common/fonts/tex/italic.js\");\nexports.italic = (0, FontData_js_1.AddCSS)(italic_js_1.italic, {\n 0x2F: { f: 'I' },\n 0x3DD: { c: '\\\\E008', f: 'A' },\n 0x2015: { c: '\\\\2014' },\n 0x2017: { c: '_' },\n 0x2044: { c: '/', f: 'I' },\n 0x2206: { c: '\\\\394', f: 'I' },\n 0x29F8: { c: '/', f: 'I' },\n});\n//# sourceMappingURL=italic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.largeop = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar largeop_js_1 = require(\"../../../common/fonts/tex/largeop.js\");\nexports.largeop = (0, FontData_js_1.AddCSS)(largeop_js_1.largeop, {\n 0x2016: { f: 'S1' },\n 0x2044: { c: '/' },\n 0x2191: { f: 'S1' },\n 0x2193: { f: 'S1' },\n 0x21D1: { f: 'S1' },\n 0x21D3: { f: 'S1' },\n 0x2223: { f: 'S1' },\n 0x2225: { f: 'S1' },\n 0x2329: { c: '\\\\27E8' },\n 0x232A: { c: '\\\\27E9' },\n 0x23D0: { f: 'S1' },\n 0x2758: { c: '\\\\2223', f: 'S1' },\n 0x2A0C: { c: '\\\\222C\\\\222C' },\n 0x3008: { c: '\\\\27E8' },\n 0x3009: { c: '\\\\27E9' },\n});\n//# sourceMappingURL=largeop.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.monospace = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar monospace_js_1 = require(\"../../../common/fonts/tex/monospace.js\");\nexports.monospace = (0, FontData_js_1.AddCSS)(monospace_js_1.monospace, {\n 0x2B9: { c: '\\\\2032' },\n 0x391: { c: 'A' },\n 0x392: { c: 'B' },\n 0x395: { c: 'E' },\n 0x396: { c: 'Z' },\n 0x397: { c: 'H' },\n 0x399: { c: 'I' },\n 0x39A: { c: 'K' },\n 0x39C: { c: 'M' },\n 0x39D: { c: 'N' },\n 0x39F: { c: 'O' },\n 0x3A1: { c: 'P' },\n 0x3A4: { c: 'T' },\n 0x3A7: { c: 'X' },\n 0x2017: { c: '_' },\n 0x2033: { c: '\\\\2032\\\\2032' },\n 0x2034: { c: '\\\\2032\\\\2032\\\\2032' },\n 0x2044: { c: '/' },\n 0x2057: { c: '\\\\2032\\\\2032\\\\2032\\\\2032' },\n 0x2206: { c: '\\\\394' },\n});\n//# sourceMappingURL=monospace.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normal = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar normal_js_1 = require(\"../../../common/fonts/tex/normal.js\");\nexports.normal = (0, FontData_js_1.AddCSS)(normal_js_1.normal, {\n 0xA3: { f: 'MI' },\n 0xA5: { f: 'A' },\n 0xAE: { f: 'A' },\n 0xB7: { c: '\\\\22C5' },\n 0xF0: { f: 'A' },\n 0x2B9: { c: '\\\\2032' },\n 0x391: { c: 'A' },\n 0x392: { c: 'B' },\n 0x395: { c: 'E' },\n 0x396: { c: 'Z' },\n 0x397: { c: 'H' },\n 0x399: { c: 'I' },\n 0x39A: { c: 'K' },\n 0x39C: { c: 'M' },\n 0x39D: { c: 'N' },\n 0x39F: { c: 'O' },\n 0x3A1: { c: 'P' },\n 0x3A4: { c: 'T' },\n 0x3A7: { c: 'X' },\n 0x2000: { c: '' },\n 0x2001: { c: '' },\n 0x2002: { c: '' },\n 0x2003: { c: '' },\n 0x2004: { c: '' },\n 0x2005: { c: '' },\n 0x2006: { c: '' },\n 0x2009: { c: '' },\n 0x200A: { c: '' },\n 0x200B: { c: '' },\n 0x200C: { c: '' },\n 0x2015: { c: '\\\\2014' },\n 0x2016: { c: '\\\\2225' },\n 0x2017: { c: '_' },\n 0x2022: { c: '\\\\2219' },\n 0x2033: { c: '\\\\2032\\\\2032' },\n 0x2034: { c: '\\\\2032\\\\2032\\\\2032' },\n 0x2035: { f: 'A' },\n 0x2036: { c: '\\\\2035\\\\2035', f: 'A' },\n 0x2037: { c: '\\\\2035\\\\2035\\\\2035', f: 'A' },\n 0x203E: { c: '\\\\2C9' },\n 0x2044: { c: '/' },\n 0x2057: { c: '\\\\2032\\\\2032\\\\2032\\\\2032' },\n 0x2060: { c: '' },\n 0x2061: { c: '' },\n 0x2062: { c: '' },\n 0x2063: { c: '' },\n 0x2064: { c: '' },\n 0x20D7: { c: '\\\\2192', f: 'V' },\n 0x2102: { c: 'C', f: 'A' },\n 0x210B: { c: 'H', f: 'SC' },\n 0x210C: { c: 'H', f: 'FR' },\n 0x210D: { c: 'H', f: 'A' },\n 0x210E: { c: 'h', f: 'I' },\n 0x210F: { f: 'A' },\n 0x2110: { c: 'I', f: 'SC' },\n 0x2111: { c: 'I', f: 'FR' },\n 0x2112: { c: 'L', f: 'SC' },\n 0x2115: { c: 'N', f: 'A' },\n 0x2119: { c: 'P', f: 'A' },\n 0x211A: { c: 'Q', f: 'A' },\n 0x211B: { c: 'R', f: 'SC' },\n 0x211C: { c: 'R', f: 'FR' },\n 0x211D: { c: 'R', f: 'A' },\n 0x2124: { c: 'Z', f: 'A' },\n 0x2126: { c: '\\\\3A9' },\n 0x2127: { f: 'A' },\n 0x2128: { c: 'Z', f: 'FR' },\n 0x212C: { c: 'B', f: 'SC' },\n 0x212D: { c: 'C', f: 'FR' },\n 0x2130: { c: 'E', f: 'SC' },\n 0x2131: { c: 'F', f: 'SC' },\n 0x2132: { f: 'A' },\n 0x2133: { c: 'M', f: 'SC' },\n 0x2136: { f: 'A' },\n 0x2137: { f: 'A' },\n 0x2138: { f: 'A' },\n 0x2141: { f: 'A' },\n 0x219A: { f: 'A' },\n 0x219B: { f: 'A' },\n 0x219E: { f: 'A' },\n 0x21A0: { f: 'A' },\n 0x21A2: { f: 'A' },\n 0x21A3: { f: 'A' },\n 0x21AB: { f: 'A' },\n 0x21AC: { f: 'A' },\n 0x21AD: { f: 'A' },\n 0x21AE: { f: 'A' },\n 0x21B0: { f: 'A' },\n 0x21B1: { f: 'A' },\n 0x21B6: { f: 'A' },\n 0x21B7: { f: 'A' },\n 0x21BA: { f: 'A' },\n 0x21BB: { f: 'A' },\n 0x21BE: { f: 'A' },\n 0x21BF: { f: 'A' },\n 0x21C2: { f: 'A' },\n 0x21C3: { f: 'A' },\n 0x21C4: { f: 'A' },\n 0x21C6: { f: 'A' },\n 0x21C7: { f: 'A' },\n 0x21C8: { f: 'A' },\n 0x21C9: { f: 'A' },\n 0x21CA: { f: 'A' },\n 0x21CB: { f: 'A' },\n 0x21CD: { f: 'A' },\n 0x21CE: { f: 'A' },\n 0x21CF: { f: 'A' },\n 0x21DA: { f: 'A' },\n 0x21DB: { f: 'A' },\n 0x21DD: { f: 'A' },\n 0x21E0: { f: 'A' },\n 0x21E2: { f: 'A' },\n 0x2201: { f: 'A' },\n 0x2204: { c: '\\\\2203\\\\338' },\n 0x2206: { c: '\\\\394' },\n 0x220C: { c: '\\\\220B\\\\338' },\n 0x220D: { f: 'A' },\n 0x220F: { f: 'S1' },\n 0x2210: { f: 'S1' },\n 0x2211: { f: 'S1' },\n 0x2214: { f: 'A' },\n 0x2221: { f: 'A' },\n 0x2222: { f: 'A' },\n 0x2224: { f: 'A' },\n 0x2226: { f: 'A' },\n 0x222C: { f: 'S1' },\n 0x222D: { f: 'S1' },\n 0x222E: { f: 'S1' },\n 0x2234: { f: 'A' },\n 0x2235: { f: 'A' },\n 0x223D: { f: 'A' },\n 0x2241: { f: 'A' },\n 0x2242: { f: 'A' },\n 0x2244: { c: '\\\\2243\\\\338' },\n 0x2247: { c: '\\\\2246', f: 'A' },\n 0x2249: { c: '\\\\2248\\\\338' },\n 0x224A: { f: 'A' },\n 0x224E: { f: 'A' },\n 0x224F: { f: 'A' },\n 0x2251: { f: 'A' },\n 0x2252: { f: 'A' },\n 0x2253: { f: 'A' },\n 0x2256: { f: 'A' },\n 0x2257: { f: 'A' },\n 0x225C: { f: 'A' },\n 0x2262: { c: '\\\\2261\\\\338' },\n 0x2266: { f: 'A' },\n 0x2267: { f: 'A' },\n 0x2268: { f: 'A' },\n 0x2269: { f: 'A' },\n 0x226C: { f: 'A' },\n 0x226D: { c: '\\\\224D\\\\338' },\n 0x226E: { f: 'A' },\n 0x226F: { f: 'A' },\n 0x2270: { f: 'A' },\n 0x2271: { f: 'A' },\n 0x2272: { f: 'A' },\n 0x2273: { f: 'A' },\n 0x2274: { c: '\\\\2272\\\\338' },\n 0x2275: { c: '\\\\2273\\\\338' },\n 0x2276: { f: 'A' },\n 0x2277: { f: 'A' },\n 0x2278: { c: '\\\\2276\\\\338' },\n 0x2279: { c: '\\\\2277\\\\338' },\n 0x227C: { f: 'A' },\n 0x227D: { f: 'A' },\n 0x227E: { f: 'A' },\n 0x227F: { f: 'A' },\n 0x2280: { f: 'A' },\n 0x2281: { f: 'A' },\n 0x2284: { c: '\\\\2282\\\\338' },\n 0x2285: { c: '\\\\2283\\\\338' },\n 0x2288: { f: 'A' },\n 0x2289: { f: 'A' },\n 0x228A: { f: 'A' },\n 0x228B: { f: 'A' },\n 0x228F: { f: 'A' },\n 0x2290: { f: 'A' },\n 0x229A: { f: 'A' },\n 0x229B: { f: 'A' },\n 0x229D: { f: 'A' },\n 0x229E: { f: 'A' },\n 0x229F: { f: 'A' },\n 0x22A0: { f: 'A' },\n 0x22A1: { f: 'A' },\n 0x22A9: { f: 'A' },\n 0x22AA: { f: 'A' },\n 0x22AC: { f: 'A' },\n 0x22AD: { f: 'A' },\n 0x22AE: { f: 'A' },\n 0x22AF: { f: 'A' },\n 0x22B2: { f: 'A' },\n 0x22B3: { f: 'A' },\n 0x22B4: { f: 'A' },\n 0x22B5: { f: 'A' },\n 0x22B8: { f: 'A' },\n 0x22BA: { f: 'A' },\n 0x22BB: { f: 'A' },\n 0x22BC: { f: 'A' },\n 0x22C0: { f: 'S1' },\n 0x22C1: { f: 'S1' },\n 0x22C2: { f: 'S1' },\n 0x22C3: { f: 'S1' },\n 0x22C7: { f: 'A' },\n 0x22C9: { f: 'A' },\n 0x22CA: { f: 'A' },\n 0x22CB: { f: 'A' },\n 0x22CC: { f: 'A' },\n 0x22CD: { f: 'A' },\n 0x22CE: { f: 'A' },\n 0x22CF: { f: 'A' },\n 0x22D0: { f: 'A' },\n 0x22D1: { f: 'A' },\n 0x22D2: { f: 'A' },\n 0x22D3: { f: 'A' },\n 0x22D4: { f: 'A' },\n 0x22D6: { f: 'A' },\n 0x22D7: { f: 'A' },\n 0x22D8: { f: 'A' },\n 0x22D9: { f: 'A' },\n 0x22DA: { f: 'A' },\n 0x22DB: { f: 'A' },\n 0x22DE: { f: 'A' },\n 0x22DF: { f: 'A' },\n 0x22E0: { f: 'A' },\n 0x22E1: { f: 'A' },\n 0x22E2: { c: '\\\\2291\\\\338' },\n 0x22E3: { c: '\\\\2292\\\\338' },\n 0x22E6: { f: 'A' },\n 0x22E7: { f: 'A' },\n 0x22E8: { f: 'A' },\n 0x22E9: { f: 'A' },\n 0x22EA: { f: 'A' },\n 0x22EB: { f: 'A' },\n 0x22EC: { f: 'A' },\n 0x22ED: { f: 'A' },\n 0x2305: { c: '\\\\22BC', f: 'A' },\n 0x2306: { c: '\\\\2A5E', f: 'A' },\n 0x231C: { c: '\\\\250C', f: 'A' },\n 0x231D: { c: '\\\\2510', f: 'A' },\n 0x231E: { c: '\\\\2514', f: 'A' },\n 0x231F: { c: '\\\\2518', f: 'A' },\n 0x2329: { c: '\\\\27E8' },\n 0x232A: { c: '\\\\27E9' },\n 0x23D0: { f: 'S1' },\n 0x24C8: { f: 'A' },\n 0x250C: { f: 'A' },\n 0x2510: { f: 'A' },\n 0x2514: { f: 'A' },\n 0x2518: { f: 'A' },\n 0x2571: { f: 'A' },\n 0x2572: { f: 'A' },\n 0x25A0: { f: 'A' },\n 0x25A1: { f: 'A' },\n 0x25AA: { c: '\\\\25A0', f: 'A' },\n 0x25B2: { f: 'A' },\n 0x25B4: { c: '\\\\25B2', f: 'A' },\n 0x25B5: { c: '\\\\25B3' },\n 0x25B6: { f: 'A' },\n 0x25B8: { c: '\\\\25B6', f: 'A' },\n 0x25BC: { f: 'A' },\n 0x25BE: { c: '\\\\25BC', f: 'A' },\n 0x25BF: { c: '\\\\25BD' },\n 0x25C0: { f: 'A' },\n 0x25C2: { c: '\\\\25C0', f: 'A' },\n 0x25CA: { f: 'A' },\n 0x25FB: { c: '\\\\25A1', f: 'A' },\n 0x25FC: { c: '\\\\25A0', f: 'A' },\n 0x2605: { f: 'A' },\n 0x2713: { f: 'A' },\n 0x2720: { f: 'A' },\n 0x2758: { c: '\\\\2223' },\n 0x29EB: { f: 'A' },\n 0x29F8: { c: '/', f: 'I' },\n 0x2A00: { f: 'S1' },\n 0x2A01: { f: 'S1' },\n 0x2A02: { f: 'S1' },\n 0x2A04: { f: 'S1' },\n 0x2A06: { f: 'S1' },\n 0x2A0C: { c: '\\\\222C\\\\222C', f: 'S1' },\n 0x2A2F: { c: '\\\\D7' },\n 0x2A5E: { f: 'A' },\n 0x2A7D: { f: 'A' },\n 0x2A7E: { f: 'A' },\n 0x2A85: { f: 'A' },\n 0x2A86: { f: 'A' },\n 0x2A87: { f: 'A' },\n 0x2A88: { f: 'A' },\n 0x2A89: { f: 'A' },\n 0x2A8A: { f: 'A' },\n 0x2A8B: { f: 'A' },\n 0x2A8C: { f: 'A' },\n 0x2A95: { f: 'A' },\n 0x2A96: { f: 'A' },\n 0x2AB5: { f: 'A' },\n 0x2AB6: { f: 'A' },\n 0x2AB7: { f: 'A' },\n 0x2AB8: { f: 'A' },\n 0x2AB9: { f: 'A' },\n 0x2ABA: { f: 'A' },\n 0x2AC5: { f: 'A' },\n 0x2AC6: { f: 'A' },\n 0x2ACB: { f: 'A' },\n 0x2ACC: { f: 'A' },\n 0x3008: { c: '\\\\27E8' },\n 0x3009: { c: '\\\\27E9' },\n 0xE006: { f: 'A' },\n 0xE007: { f: 'A' },\n 0xE008: { f: 'A' },\n 0xE009: { f: 'A' },\n 0xE00C: { f: 'A' },\n 0xE00D: { f: 'A' },\n 0xE00E: { f: 'A' },\n 0xE00F: { f: 'A' },\n 0xE010: { f: 'A' },\n 0xE011: { f: 'A' },\n 0xE016: { f: 'A' },\n 0xE017: { f: 'A' },\n 0xE018: { f: 'A' },\n 0xE019: { f: 'A' },\n 0xE01A: { f: 'A' },\n 0xE01B: { f: 'A' },\n 0x1D400: { c: 'A', f: 'B' },\n 0x1D401: { c: 'B', f: 'B' },\n 0x1D402: { c: 'C', f: 'B' },\n 0x1D403: { c: 'D', f: 'B' },\n 0x1D404: { c: 'E', f: 'B' },\n 0x1D405: { c: 'F', f: 'B' },\n 0x1D406: { c: 'G', f: 'B' },\n 0x1D407: { c: 'H', f: 'B' },\n 0x1D408: { c: 'I', f: 'B' },\n 0x1D409: { c: 'J', f: 'B' },\n 0x1D40A: { c: 'K', f: 'B' },\n 0x1D40B: { c: 'L', f: 'B' },\n 0x1D40C: { c: 'M', f: 'B' },\n 0x1D40D: { c: 'N', f: 'B' },\n 0x1D40E: { c: 'O', f: 'B' },\n 0x1D40F: { c: 'P', f: 'B' },\n 0x1D410: { c: 'Q', f: 'B' },\n 0x1D411: { c: 'R', f: 'B' },\n 0x1D412: { c: 'S', f: 'B' },\n 0x1D413: { c: 'T', f: 'B' },\n 0x1D414: { c: 'U', f: 'B' },\n 0x1D415: { c: 'V', f: 'B' },\n 0x1D416: { c: 'W', f: 'B' },\n 0x1D417: { c: 'X', f: 'B' },\n 0x1D418: { c: 'Y', f: 'B' },\n 0x1D419: { c: 'Z', f: 'B' },\n 0x1D41A: { c: 'a', f: 'B' },\n 0x1D41B: { c: 'b', f: 'B' },\n 0x1D41C: { c: 'c', f: 'B' },\n 0x1D41D: { c: 'd', f: 'B' },\n 0x1D41E: { c: 'e', f: 'B' },\n 0x1D41F: { c: 'f', f: 'B' },\n 0x1D420: { c: 'g', f: 'B' },\n 0x1D421: { c: 'h', f: 'B' },\n 0x1D422: { c: 'i', f: 'B' },\n 0x1D423: { c: 'j', f: 'B' },\n 0x1D424: { c: 'k', f: 'B' },\n 0x1D425: { c: 'l', f: 'B' },\n 0x1D426: { c: 'm', f: 'B' },\n 0x1D427: { c: 'n', f: 'B' },\n 0x1D428: { c: 'o', f: 'B' },\n 0x1D429: { c: 'p', f: 'B' },\n 0x1D42A: { c: 'q', f: 'B' },\n 0x1D42B: { c: 'r', f: 'B' },\n 0x1D42C: { c: 's', f: 'B' },\n 0x1D42D: { c: 't', f: 'B' },\n 0x1D42E: { c: 'u', f: 'B' },\n 0x1D42F: { c: 'v', f: 'B' },\n 0x1D430: { c: 'w', f: 'B' },\n 0x1D431: { c: 'x', f: 'B' },\n 0x1D432: { c: 'y', f: 'B' },\n 0x1D433: { c: 'z', f: 'B' },\n 0x1D434: { c: 'A', f: 'I' },\n 0x1D435: { c: 'B', f: 'I' },\n 0x1D436: { c: 'C', f: 'I' },\n 0x1D437: { c: 'D', f: 'I' },\n 0x1D438: { c: 'E', f: 'I' },\n 0x1D439: { c: 'F', f: 'I' },\n 0x1D43A: { c: 'G', f: 'I' },\n 0x1D43B: { c: 'H', f: 'I' },\n 0x1D43C: { c: 'I', f: 'I' },\n 0x1D43D: { c: 'J', f: 'I' },\n 0x1D43E: { c: 'K', f: 'I' },\n 0x1D43F: { c: 'L', f: 'I' },\n 0x1D440: { c: 'M', f: 'I' },\n 0x1D441: { c: 'N', f: 'I' },\n 0x1D442: { c: 'O', f: 'I' },\n 0x1D443: { c: 'P', f: 'I' },\n 0x1D444: { c: 'Q', f: 'I' },\n 0x1D445: { c: 'R', f: 'I' },\n 0x1D446: { c: 'S', f: 'I' },\n 0x1D447: { c: 'T', f: 'I' },\n 0x1D448: { c: 'U', f: 'I' },\n 0x1D449: { c: 'V', f: 'I' },\n 0x1D44A: { c: 'W', f: 'I' },\n 0x1D44B: { c: 'X', f: 'I' },\n 0x1D44C: { c: 'Y', f: 'I' },\n 0x1D44D: { c: 'Z', f: 'I' },\n 0x1D44E: { c: 'a', f: 'I' },\n 0x1D44F: { c: 'b', f: 'I' },\n 0x1D450: { c: 'c', f: 'I' },\n 0x1D451: { c: 'd', f: 'I' },\n 0x1D452: { c: 'e', f: 'I' },\n 0x1D453: { c: 'f', f: 'I' },\n 0x1D454: { c: 'g', f: 'I' },\n 0x1D456: { c: 'i', f: 'I' },\n 0x1D457: { c: 'j', f: 'I' },\n 0x1D458: { c: 'k', f: 'I' },\n 0x1D459: { c: 'l', f: 'I' },\n 0x1D45A: { c: 'm', f: 'I' },\n 0x1D45B: { c: 'n', f: 'I' },\n 0x1D45C: { c: 'o', f: 'I' },\n 0x1D45D: { c: 'p', f: 'I' },\n 0x1D45E: { c: 'q', f: 'I' },\n 0x1D45F: { c: 'r', f: 'I' },\n 0x1D460: { c: 's', f: 'I' },\n 0x1D461: { c: 't', f: 'I' },\n 0x1D462: { c: 'u', f: 'I' },\n 0x1D463: { c: 'v', f: 'I' },\n 0x1D464: { c: 'w', f: 'I' },\n 0x1D465: { c: 'x', f: 'I' },\n 0x1D466: { c: 'y', f: 'I' },\n 0x1D467: { c: 'z', f: 'I' },\n 0x1D468: { c: 'A', f: 'BI' },\n 0x1D469: { c: 'B', f: 'BI' },\n 0x1D46A: { c: 'C', f: 'BI' },\n 0x1D46B: { c: 'D', f: 'BI' },\n 0x1D46C: { c: 'E', f: 'BI' },\n 0x1D46D: { c: 'F', f: 'BI' },\n 0x1D46E: { c: 'G', f: 'BI' },\n 0x1D46F: { c: 'H', f: 'BI' },\n 0x1D470: { c: 'I', f: 'BI' },\n 0x1D471: { c: 'J', f: 'BI' },\n 0x1D472: { c: 'K', f: 'BI' },\n 0x1D473: { c: 'L', f: 'BI' },\n 0x1D474: { c: 'M', f: 'BI' },\n 0x1D475: { c: 'N', f: 'BI' },\n 0x1D476: { c: 'O', f: 'BI' },\n 0x1D477: { c: 'P', f: 'BI' },\n 0x1D478: { c: 'Q', f: 'BI' },\n 0x1D479: { c: 'R', f: 'BI' },\n 0x1D47A: { c: 'S', f: 'BI' },\n 0x1D47B: { c: 'T', f: 'BI' },\n 0x1D47C: { c: 'U', f: 'BI' },\n 0x1D47D: { c: 'V', f: 'BI' },\n 0x1D47E: { c: 'W', f: 'BI' },\n 0x1D47F: { c: 'X', f: 'BI' },\n 0x1D480: { c: 'Y', f: 'BI' },\n 0x1D481: { c: 'Z', f: 'BI' },\n 0x1D482: { c: 'a', f: 'BI' },\n 0x1D483: { c: 'b', f: 'BI' },\n 0x1D484: { c: 'c', f: 'BI' },\n 0x1D485: { c: 'd', f: 'BI' },\n 0x1D486: { c: 'e', f: 'BI' },\n 0x1D487: { c: 'f', f: 'BI' },\n 0x1D488: { c: 'g', f: 'BI' },\n 0x1D489: { c: 'h', f: 'BI' },\n 0x1D48A: { c: 'i', f: 'BI' },\n 0x1D48B: { c: 'j', f: 'BI' },\n 0x1D48C: { c: 'k', f: 'BI' },\n 0x1D48D: { c: 'l', f: 'BI' },\n 0x1D48E: { c: 'm', f: 'BI' },\n 0x1D48F: { c: 'n', f: 'BI' },\n 0x1D490: { c: 'o', f: 'BI' },\n 0x1D491: { c: 'p', f: 'BI' },\n 0x1D492: { c: 'q', f: 'BI' },\n 0x1D493: { c: 'r', f: 'BI' },\n 0x1D494: { c: 's', f: 'BI' },\n 0x1D495: { c: 't', f: 'BI' },\n 0x1D496: { c: 'u', f: 'BI' },\n 0x1D497: { c: 'v', f: 'BI' },\n 0x1D498: { c: 'w', f: 'BI' },\n 0x1D499: { c: 'x', f: 'BI' },\n 0x1D49A: { c: 'y', f: 'BI' },\n 0x1D49B: { c: 'z', f: 'BI' },\n 0x1D49C: { c: 'A', f: 'SC' },\n 0x1D49E: { c: 'C', f: 'SC' },\n 0x1D49F: { c: 'D', f: 'SC' },\n 0x1D4A2: { c: 'G', f: 'SC' },\n 0x1D4A5: { c: 'J', f: 'SC' },\n 0x1D4A6: { c: 'K', f: 'SC' },\n 0x1D4A9: { c: 'N', f: 'SC' },\n 0x1D4AA: { c: 'O', f: 'SC' },\n 0x1D4AB: { c: 'P', f: 'SC' },\n 0x1D4AC: { c: 'Q', f: 'SC' },\n 0x1D4AE: { c: 'S', f: 'SC' },\n 0x1D4AF: { c: 'T', f: 'SC' },\n 0x1D4B0: { c: 'U', f: 'SC' },\n 0x1D4B1: { c: 'V', f: 'SC' },\n 0x1D4B2: { c: 'W', f: 'SC' },\n 0x1D4B3: { c: 'X', f: 'SC' },\n 0x1D4B4: { c: 'Y', f: 'SC' },\n 0x1D4B5: { c: 'Z', f: 'SC' },\n 0x1D504: { c: 'A', f: 'FR' },\n 0x1D505: { c: 'B', f: 'FR' },\n 0x1D507: { c: 'D', f: 'FR' },\n 0x1D508: { c: 'E', f: 'FR' },\n 0x1D509: { c: 'F', f: 'FR' },\n 0x1D50A: { c: 'G', f: 'FR' },\n 0x1D50D: { c: 'J', f: 'FR' },\n 0x1D50E: { c: 'K', f: 'FR' },\n 0x1D50F: { c: 'L', f: 'FR' },\n 0x1D510: { c: 'M', f: 'FR' },\n 0x1D511: { c: 'N', f: 'FR' },\n 0x1D512: { c: 'O', f: 'FR' },\n 0x1D513: { c: 'P', f: 'FR' },\n 0x1D514: { c: 'Q', f: 'FR' },\n 0x1D516: { c: 'S', f: 'FR' },\n 0x1D517: { c: 'T', f: 'FR' },\n 0x1D518: { c: 'U', f: 'FR' },\n 0x1D519: { c: 'V', f: 'FR' },\n 0x1D51A: { c: 'W', f: 'FR' },\n 0x1D51B: { c: 'X', f: 'FR' },\n 0x1D51C: { c: 'Y', f: 'FR' },\n 0x1D51E: { c: 'a', f: 'FR' },\n 0x1D51F: { c: 'b', f: 'FR' },\n 0x1D520: { c: 'c', f: 'FR' },\n 0x1D521: { c: 'd', f: 'FR' },\n 0x1D522: { c: 'e', f: 'FR' },\n 0x1D523: { c: 'f', f: 'FR' },\n 0x1D524: { c: 'g', f: 'FR' },\n 0x1D525: { c: 'h', f: 'FR' },\n 0x1D526: { c: 'i', f: 'FR' },\n 0x1D527: { c: 'j', f: 'FR' },\n 0x1D528: { c: 'k', f: 'FR' },\n 0x1D529: { c: 'l', f: 'FR' },\n 0x1D52A: { c: 'm', f: 'FR' },\n 0x1D52B: { c: 'n', f: 'FR' },\n 0x1D52C: { c: 'o', f: 'FR' },\n 0x1D52D: { c: 'p', f: 'FR' },\n 0x1D52E: { c: 'q', f: 'FR' },\n 0x1D52F: { c: 'r', f: 'FR' },\n 0x1D530: { c: 's', f: 'FR' },\n 0x1D531: { c: 't', f: 'FR' },\n 0x1D532: { c: 'u', f: 'FR' },\n 0x1D533: { c: 'v', f: 'FR' },\n 0x1D534: { c: 'w', f: 'FR' },\n 0x1D535: { c: 'x', f: 'FR' },\n 0x1D536: { c: 'y', f: 'FR' },\n 0x1D537: { c: 'z', f: 'FR' },\n 0x1D538: { c: 'A', f: 'A' },\n 0x1D539: { c: 'B', f: 'A' },\n 0x1D53B: { c: 'D', f: 'A' },\n 0x1D53C: { c: 'E', f: 'A' },\n 0x1D53D: { c: 'F', f: 'A' },\n 0x1D53E: { c: 'G', f: 'A' },\n 0x1D540: { c: 'I', f: 'A' },\n 0x1D541: { c: 'J', f: 'A' },\n 0x1D542: { c: 'K', f: 'A' },\n 0x1D543: { c: 'L', f: 'A' },\n 0x1D544: { c: 'M', f: 'A' },\n 0x1D546: { c: 'O', f: 'A' },\n 0x1D54A: { c: 'S', f: 'A' },\n 0x1D54B: { c: 'T', f: 'A' },\n 0x1D54C: { c: 'U', f: 'A' },\n 0x1D54D: { c: 'V', f: 'A' },\n 0x1D54E: { c: 'W', f: 'A' },\n 0x1D54F: { c: 'X', f: 'A' },\n 0x1D550: { c: 'Y', f: 'A' },\n 0x1D56C: { c: 'A', f: 'FRB' },\n 0x1D56D: { c: 'B', f: 'FRB' },\n 0x1D56E: { c: 'C', f: 'FRB' },\n 0x1D56F: { c: 'D', f: 'FRB' },\n 0x1D570: { c: 'E', f: 'FRB' },\n 0x1D571: { c: 'F', f: 'FRB' },\n 0x1D572: { c: 'G', f: 'FRB' },\n 0x1D573: { c: 'H', f: 'FRB' },\n 0x1D574: { c: 'I', f: 'FRB' },\n 0x1D575: { c: 'J', f: 'FRB' },\n 0x1D576: { c: 'K', f: 'FRB' },\n 0x1D577: { c: 'L', f: 'FRB' },\n 0x1D578: { c: 'M', f: 'FRB' },\n 0x1D579: { c: 'N', f: 'FRB' },\n 0x1D57A: { c: 'O', f: 'FRB' },\n 0x1D57B: { c: 'P', f: 'FRB' },\n 0x1D57C: { c: 'Q', f: 'FRB' },\n 0x1D57D: { c: 'R', f: 'FRB' },\n 0x1D57E: { c: 'S', f: 'FRB' },\n 0x1D57F: { c: 'T', f: 'FRB' },\n 0x1D580: { c: 'U', f: 'FRB' },\n 0x1D581: { c: 'V', f: 'FRB' },\n 0x1D582: { c: 'W', f: 'FRB' },\n 0x1D583: { c: 'X', f: 'FRB' },\n 0x1D584: { c: 'Y', f: 'FRB' },\n 0x1D585: { c: 'Z', f: 'FRB' },\n 0x1D586: { c: 'a', f: 'FRB' },\n 0x1D587: { c: 'b', f: 'FRB' },\n 0x1D588: { c: 'c', f: 'FRB' },\n 0x1D589: { c: 'd', f: 'FRB' },\n 0x1D58A: { c: 'e', f: 'FRB' },\n 0x1D58B: { c: 'f', f: 'FRB' },\n 0x1D58C: { c: 'g', f: 'FRB' },\n 0x1D58D: { c: 'h', f: 'FRB' },\n 0x1D58E: { c: 'i', f: 'FRB' },\n 0x1D58F: { c: 'j', f: 'FRB' },\n 0x1D590: { c: 'k', f: 'FRB' },\n 0x1D591: { c: 'l', f: 'FRB' },\n 0x1D592: { c: 'm', f: 'FRB' },\n 0x1D593: { c: 'n', f: 'FRB' },\n 0x1D594: { c: 'o', f: 'FRB' },\n 0x1D595: { c: 'p', f: 'FRB' },\n 0x1D596: { c: 'q', f: 'FRB' },\n 0x1D597: { c: 'r', f: 'FRB' },\n 0x1D598: { c: 's', f: 'FRB' },\n 0x1D599: { c: 't', f: 'FRB' },\n 0x1D59A: { c: 'u', f: 'FRB' },\n 0x1D59B: { c: 'v', f: 'FRB' },\n 0x1D59C: { c: 'w', f: 'FRB' },\n 0x1D59D: { c: 'x', f: 'FRB' },\n 0x1D59E: { c: 'y', f: 'FRB' },\n 0x1D59F: { c: 'z', f: 'FRB' },\n 0x1D5A0: { c: 'A', f: 'SS' },\n 0x1D5A1: { c: 'B', f: 'SS' },\n 0x1D5A2: { c: 'C', f: 'SS' },\n 0x1D5A3: { c: 'D', f: 'SS' },\n 0x1D5A4: { c: 'E', f: 'SS' },\n 0x1D5A5: { c: 'F', f: 'SS' },\n 0x1D5A6: { c: 'G', f: 'SS' },\n 0x1D5A7: { c: 'H', f: 'SS' },\n 0x1D5A8: { c: 'I', f: 'SS' },\n 0x1D5A9: { c: 'J', f: 'SS' },\n 0x1D5AA: { c: 'K', f: 'SS' },\n 0x1D5AB: { c: 'L', f: 'SS' },\n 0x1D5AC: { c: 'M', f: 'SS' },\n 0x1D5AD: { c: 'N', f: 'SS' },\n 0x1D5AE: { c: 'O', f: 'SS' },\n 0x1D5AF: { c: 'P', f: 'SS' },\n 0x1D5B0: { c: 'Q', f: 'SS' },\n 0x1D5B1: { c: 'R', f: 'SS' },\n 0x1D5B2: { c: 'S', f: 'SS' },\n 0x1D5B3: { c: 'T', f: 'SS' },\n 0x1D5B4: { c: 'U', f: 'SS' },\n 0x1D5B5: { c: 'V', f: 'SS' },\n 0x1D5B6: { c: 'W', f: 'SS' },\n 0x1D5B7: { c: 'X', f: 'SS' },\n 0x1D5B8: { c: 'Y', f: 'SS' },\n 0x1D5B9: { c: 'Z', f: 'SS' },\n 0x1D5BA: { c: 'a', f: 'SS' },\n 0x1D5BB: { c: 'b', f: 'SS' },\n 0x1D5BC: { c: 'c', f: 'SS' },\n 0x1D5BD: { c: 'd', f: 'SS' },\n 0x1D5BE: { c: 'e', f: 'SS' },\n 0x1D5BF: { c: 'f', f: 'SS' },\n 0x1D5C0: { c: 'g', f: 'SS' },\n 0x1D5C1: { c: 'h', f: 'SS' },\n 0x1D5C2: { c: 'i', f: 'SS' },\n 0x1D5C3: { c: 'j', f: 'SS' },\n 0x1D5C4: { c: 'k', f: 'SS' },\n 0x1D5C5: { c: 'l', f: 'SS' },\n 0x1D5C6: { c: 'm', f: 'SS' },\n 0x1D5C7: { c: 'n', f: 'SS' },\n 0x1D5C8: { c: 'o', f: 'SS' },\n 0x1D5C9: { c: 'p', f: 'SS' },\n 0x1D5CA: { c: 'q', f: 'SS' },\n 0x1D5CB: { c: 'r', f: 'SS' },\n 0x1D5CC: { c: 's', f: 'SS' },\n 0x1D5CD: { c: 't', f: 'SS' },\n 0x1D5CE: { c: 'u', f: 'SS' },\n 0x1D5CF: { c: 'v', f: 'SS' },\n 0x1D5D0: { c: 'w', f: 'SS' },\n 0x1D5D1: { c: 'x', f: 'SS' },\n 0x1D5D2: { c: 'y', f: 'SS' },\n 0x1D5D3: { c: 'z', f: 'SS' },\n 0x1D5D4: { c: 'A', f: 'SSB' },\n 0x1D5D5: { c: 'B', f: 'SSB' },\n 0x1D5D6: { c: 'C', f: 'SSB' },\n 0x1D5D7: { c: 'D', f: 'SSB' },\n 0x1D5D8: { c: 'E', f: 'SSB' },\n 0x1D5D9: { c: 'F', f: 'SSB' },\n 0x1D5DA: { c: 'G', f: 'SSB' },\n 0x1D5DB: { c: 'H', f: 'SSB' },\n 0x1D5DC: { c: 'I', f: 'SSB' },\n 0x1D5DD: { c: 'J', f: 'SSB' },\n 0x1D5DE: { c: 'K', f: 'SSB' },\n 0x1D5DF: { c: 'L', f: 'SSB' },\n 0x1D5E0: { c: 'M', f: 'SSB' },\n 0x1D5E1: { c: 'N', f: 'SSB' },\n 0x1D5E2: { c: 'O', f: 'SSB' },\n 0x1D5E3: { c: 'P', f: 'SSB' },\n 0x1D5E4: { c: 'Q', f: 'SSB' },\n 0x1D5E5: { c: 'R', f: 'SSB' },\n 0x1D5E6: { c: 'S', f: 'SSB' },\n 0x1D5E7: { c: 'T', f: 'SSB' },\n 0x1D5E8: { c: 'U', f: 'SSB' },\n 0x1D5E9: { c: 'V', f: 'SSB' },\n 0x1D5EA: { c: 'W', f: 'SSB' },\n 0x1D5EB: { c: 'X', f: 'SSB' },\n 0x1D5EC: { c: 'Y', f: 'SSB' },\n 0x1D5ED: { c: 'Z', f: 'SSB' },\n 0x1D5EE: { c: 'a', f: 'SSB' },\n 0x1D5EF: { c: 'b', f: 'SSB' },\n 0x1D5F0: { c: 'c', f: 'SSB' },\n 0x1D5F1: { c: 'd', f: 'SSB' },\n 0x1D5F2: { c: 'e', f: 'SSB' },\n 0x1D5F3: { c: 'f', f: 'SSB' },\n 0x1D5F4: { c: 'g', f: 'SSB' },\n 0x1D5F5: { c: 'h', f: 'SSB' },\n 0x1D5F6: { c: 'i', f: 'SSB' },\n 0x1D5F7: { c: 'j', f: 'SSB' },\n 0x1D5F8: { c: 'k', f: 'SSB' },\n 0x1D5F9: { c: 'l', f: 'SSB' },\n 0x1D5FA: { c: 'm', f: 'SSB' },\n 0x1D5FB: { c: 'n', f: 'SSB' },\n 0x1D5FC: { c: 'o', f: 'SSB' },\n 0x1D5FD: { c: 'p', f: 'SSB' },\n 0x1D5FE: { c: 'q', f: 'SSB' },\n 0x1D5FF: { c: 'r', f: 'SSB' },\n 0x1D600: { c: 's', f: 'SSB' },\n 0x1D601: { c: 't', f: 'SSB' },\n 0x1D602: { c: 'u', f: 'SSB' },\n 0x1D603: { c: 'v', f: 'SSB' },\n 0x1D604: { c: 'w', f: 'SSB' },\n 0x1D605: { c: 'x', f: 'SSB' },\n 0x1D606: { c: 'y', f: 'SSB' },\n 0x1D607: { c: 'z', f: 'SSB' },\n 0x1D608: { c: 'A', f: 'SSI' },\n 0x1D609: { c: 'B', f: 'SSI' },\n 0x1D60A: { c: 'C', f: 'SSI' },\n 0x1D60B: { c: 'D', f: 'SSI' },\n 0x1D60C: { c: 'E', f: 'SSI' },\n 0x1D60D: { c: 'F', f: 'SSI' },\n 0x1D60E: { c: 'G', f: 'SSI' },\n 0x1D60F: { c: 'H', f: 'SSI' },\n 0x1D610: { c: 'I', f: 'SSI' },\n 0x1D611: { c: 'J', f: 'SSI' },\n 0x1D612: { c: 'K', f: 'SSI' },\n 0x1D613: { c: 'L', f: 'SSI' },\n 0x1D614: { c: 'M', f: 'SSI' },\n 0x1D615: { c: 'N', f: 'SSI' },\n 0x1D616: { c: 'O', f: 'SSI' },\n 0x1D617: { c: 'P', f: 'SSI' },\n 0x1D618: { c: 'Q', f: 'SSI' },\n 0x1D619: { c: 'R', f: 'SSI' },\n 0x1D61A: { c: 'S', f: 'SSI' },\n 0x1D61B: { c: 'T', f: 'SSI' },\n 0x1D61C: { c: 'U', f: 'SSI' },\n 0x1D61D: { c: 'V', f: 'SSI' },\n 0x1D61E: { c: 'W', f: 'SSI' },\n 0x1D61F: { c: 'X', f: 'SSI' },\n 0x1D620: { c: 'Y', f: 'SSI' },\n 0x1D621: { c: 'Z', f: 'SSI' },\n 0x1D622: { c: 'a', f: 'SSI' },\n 0x1D623: { c: 'b', f: 'SSI' },\n 0x1D624: { c: 'c', f: 'SSI' },\n 0x1D625: { c: 'd', f: 'SSI' },\n 0x1D626: { c: 'e', f: 'SSI' },\n 0x1D627: { c: 'f', f: 'SSI' },\n 0x1D628: { c: 'g', f: 'SSI' },\n 0x1D629: { c: 'h', f: 'SSI' },\n 0x1D62A: { c: 'i', f: 'SSI' },\n 0x1D62B: { c: 'j', f: 'SSI' },\n 0x1D62C: { c: 'k', f: 'SSI' },\n 0x1D62D: { c: 'l', f: 'SSI' },\n 0x1D62E: { c: 'm', f: 'SSI' },\n 0x1D62F: { c: 'n', f: 'SSI' },\n 0x1D630: { c: 'o', f: 'SSI' },\n 0x1D631: { c: 'p', f: 'SSI' },\n 0x1D632: { c: 'q', f: 'SSI' },\n 0x1D633: { c: 'r', f: 'SSI' },\n 0x1D634: { c: 's', f: 'SSI' },\n 0x1D635: { c: 't', f: 'SSI' },\n 0x1D636: { c: 'u', f: 'SSI' },\n 0x1D637: { c: 'v', f: 'SSI' },\n 0x1D638: { c: 'w', f: 'SSI' },\n 0x1D639: { c: 'x', f: 'SSI' },\n 0x1D63A: { c: 'y', f: 'SSI' },\n 0x1D63B: { c: 'z', f: 'SSI' },\n 0x1D670: { c: 'A', f: 'T' },\n 0x1D671: { c: 'B', f: 'T' },\n 0x1D672: { c: 'C', f: 'T' },\n 0x1D673: { c: 'D', f: 'T' },\n 0x1D674: { c: 'E', f: 'T' },\n 0x1D675: { c: 'F', f: 'T' },\n 0x1D676: { c: 'G', f: 'T' },\n 0x1D677: { c: 'H', f: 'T' },\n 0x1D678: { c: 'I', f: 'T' },\n 0x1D679: { c: 'J', f: 'T' },\n 0x1D67A: { c: 'K', f: 'T' },\n 0x1D67B: { c: 'L', f: 'T' },\n 0x1D67C: { c: 'M', f: 'T' },\n 0x1D67D: { c: 'N', f: 'T' },\n 0x1D67E: { c: 'O', f: 'T' },\n 0x1D67F: { c: 'P', f: 'T' },\n 0x1D680: { c: 'Q', f: 'T' },\n 0x1D681: { c: 'R', f: 'T' },\n 0x1D682: { c: 'S', f: 'T' },\n 0x1D683: { c: 'T', f: 'T' },\n 0x1D684: { c: 'U', f: 'T' },\n 0x1D685: { c: 'V', f: 'T' },\n 0x1D686: { c: 'W', f: 'T' },\n 0x1D687: { c: 'X', f: 'T' },\n 0x1D688: { c: 'Y', f: 'T' },\n 0x1D689: { c: 'Z', f: 'T' },\n 0x1D68A: { c: 'a', f: 'T' },\n 0x1D68B: { c: 'b', f: 'T' },\n 0x1D68C: { c: 'c', f: 'T' },\n 0x1D68D: { c: 'd', f: 'T' },\n 0x1D68E: { c: 'e', f: 'T' },\n 0x1D68F: { c: 'f', f: 'T' },\n 0x1D690: { c: 'g', f: 'T' },\n 0x1D691: { c: 'h', f: 'T' },\n 0x1D692: { c: 'i', f: 'T' },\n 0x1D693: { c: 'j', f: 'T' },\n 0x1D694: { c: 'k', f: 'T' },\n 0x1D695: { c: 'l', f: 'T' },\n 0x1D696: { c: 'm', f: 'T' },\n 0x1D697: { c: 'n', f: 'T' },\n 0x1D698: { c: 'o', f: 'T' },\n 0x1D699: { c: 'p', f: 'T' },\n 0x1D69A: { c: 'q', f: 'T' },\n 0x1D69B: { c: 'r', f: 'T' },\n 0x1D69C: { c: 's', f: 'T' },\n 0x1D69D: { c: 't', f: 'T' },\n 0x1D69E: { c: 'u', f: 'T' },\n 0x1D69F: { c: 'v', f: 'T' },\n 0x1D6A0: { c: 'w', f: 'T' },\n 0x1D6A1: { c: 'x', f: 'T' },\n 0x1D6A2: { c: 'y', f: 'T' },\n 0x1D6A3: { c: 'z', f: 'T' },\n 0x1D6A8: { c: 'A', f: 'B' },\n 0x1D6A9: { c: 'B', f: 'B' },\n 0x1D6AA: { c: '\\\\393', f: 'B' },\n 0x1D6AB: { c: '\\\\394', f: 'B' },\n 0x1D6AC: { c: 'E', f: 'B' },\n 0x1D6AD: { c: 'Z', f: 'B' },\n 0x1D6AE: { c: 'H', f: 'B' },\n 0x1D6AF: { c: '\\\\398', f: 'B' },\n 0x1D6B0: { c: 'I', f: 'B' },\n 0x1D6B1: { c: 'K', f: 'B' },\n 0x1D6B2: { c: '\\\\39B', f: 'B' },\n 0x1D6B3: { c: 'M', f: 'B' },\n 0x1D6B4: { c: 'N', f: 'B' },\n 0x1D6B5: { c: '\\\\39E', f: 'B' },\n 0x1D6B6: { c: 'O', f: 'B' },\n 0x1D6B7: { c: '\\\\3A0', f: 'B' },\n 0x1D6B8: { c: 'P', f: 'B' },\n 0x1D6BA: { c: '\\\\3A3', f: 'B' },\n 0x1D6BB: { c: 'T', f: 'B' },\n 0x1D6BC: { c: '\\\\3A5', f: 'B' },\n 0x1D6BD: { c: '\\\\3A6', f: 'B' },\n 0x1D6BE: { c: 'X', f: 'B' },\n 0x1D6BF: { c: '\\\\3A8', f: 'B' },\n 0x1D6C0: { c: '\\\\3A9', f: 'B' },\n 0x1D6C1: { c: '\\\\2207', f: 'B' },\n 0x1D6E2: { c: 'A', f: 'I' },\n 0x1D6E3: { c: 'B', f: 'I' },\n 0x1D6E4: { c: '\\\\393', f: 'I' },\n 0x1D6E5: { c: '\\\\394', f: 'I' },\n 0x1D6E6: { c: 'E', f: 'I' },\n 0x1D6E7: { c: 'Z', f: 'I' },\n 0x1D6E8: { c: 'H', f: 'I' },\n 0x1D6E9: { c: '\\\\398', f: 'I' },\n 0x1D6EA: { c: 'I', f: 'I' },\n 0x1D6EB: { c: 'K', f: 'I' },\n 0x1D6EC: { c: '\\\\39B', f: 'I' },\n 0x1D6ED: { c: 'M', f: 'I' },\n 0x1D6EE: { c: 'N', f: 'I' },\n 0x1D6EF: { c: '\\\\39E', f: 'I' },\n 0x1D6F0: { c: 'O', f: 'I' },\n 0x1D6F1: { c: '\\\\3A0', f: 'I' },\n 0x1D6F2: { c: 'P', f: 'I' },\n 0x1D6F4: { c: '\\\\3A3', f: 'I' },\n 0x1D6F5: { c: 'T', f: 'I' },\n 0x1D6F6: { c: '\\\\3A5', f: 'I' },\n 0x1D6F7: { c: '\\\\3A6', f: 'I' },\n 0x1D6F8: { c: 'X', f: 'I' },\n 0x1D6F9: { c: '\\\\3A8', f: 'I' },\n 0x1D6FA: { c: '\\\\3A9', f: 'I' },\n 0x1D6FC: { c: '\\\\3B1', f: 'I' },\n 0x1D6FD: { c: '\\\\3B2', f: 'I' },\n 0x1D6FE: { c: '\\\\3B3', f: 'I' },\n 0x1D6FF: { c: '\\\\3B4', f: 'I' },\n 0x1D700: { c: '\\\\3B5', f: 'I' },\n 0x1D701: { c: '\\\\3B6', f: 'I' },\n 0x1D702: { c: '\\\\3B7', f: 'I' },\n 0x1D703: { c: '\\\\3B8', f: 'I' },\n 0x1D704: { c: '\\\\3B9', f: 'I' },\n 0x1D705: { c: '\\\\3BA', f: 'I' },\n 0x1D706: { c: '\\\\3BB', f: 'I' },\n 0x1D707: { c: '\\\\3BC', f: 'I' },\n 0x1D708: { c: '\\\\3BD', f: 'I' },\n 0x1D709: { c: '\\\\3BE', f: 'I' },\n 0x1D70A: { c: '\\\\3BF', f: 'I' },\n 0x1D70B: { c: '\\\\3C0', f: 'I' },\n 0x1D70C: { c: '\\\\3C1', f: 'I' },\n 0x1D70D: { c: '\\\\3C2', f: 'I' },\n 0x1D70E: { c: '\\\\3C3', f: 'I' },\n 0x1D70F: { c: '\\\\3C4', f: 'I' },\n 0x1D710: { c: '\\\\3C5', f: 'I' },\n 0x1D711: { c: '\\\\3C6', f: 'I' },\n 0x1D712: { c: '\\\\3C7', f: 'I' },\n 0x1D713: { c: '\\\\3C8', f: 'I' },\n 0x1D714: { c: '\\\\3C9', f: 'I' },\n 0x1D715: { c: '\\\\2202' },\n 0x1D716: { c: '\\\\3F5', f: 'I' },\n 0x1D717: { c: '\\\\3D1', f: 'I' },\n 0x1D718: { c: '\\\\E009', f: 'A' },\n 0x1D719: { c: '\\\\3D5', f: 'I' },\n 0x1D71A: { c: '\\\\3F1', f: 'I' },\n 0x1D71B: { c: '\\\\3D6', f: 'I' },\n 0x1D71C: { c: 'A', f: 'BI' },\n 0x1D71D: { c: 'B', f: 'BI' },\n 0x1D71E: { c: '\\\\393', f: 'BI' },\n 0x1D71F: { c: '\\\\394', f: 'BI' },\n 0x1D720: { c: 'E', f: 'BI' },\n 0x1D721: { c: 'Z', f: 'BI' },\n 0x1D722: { c: 'H', f: 'BI' },\n 0x1D723: { c: '\\\\398', f: 'BI' },\n 0x1D724: { c: 'I', f: 'BI' },\n 0x1D725: { c: 'K', f: 'BI' },\n 0x1D726: { c: '\\\\39B', f: 'BI' },\n 0x1D727: { c: 'M', f: 'BI' },\n 0x1D728: { c: 'N', f: 'BI' },\n 0x1D729: { c: '\\\\39E', f: 'BI' },\n 0x1D72A: { c: 'O', f: 'BI' },\n 0x1D72B: { c: '\\\\3A0', f: 'BI' },\n 0x1D72C: { c: 'P', f: 'BI' },\n 0x1D72E: { c: '\\\\3A3', f: 'BI' },\n 0x1D72F: { c: 'T', f: 'BI' },\n 0x1D730: { c: '\\\\3A5', f: 'BI' },\n 0x1D731: { c: '\\\\3A6', f: 'BI' },\n 0x1D732: { c: 'X', f: 'BI' },\n 0x1D733: { c: '\\\\3A8', f: 'BI' },\n 0x1D734: { c: '\\\\3A9', f: 'BI' },\n 0x1D736: { c: '\\\\3B1', f: 'BI' },\n 0x1D737: { c: '\\\\3B2', f: 'BI' },\n 0x1D738: { c: '\\\\3B3', f: 'BI' },\n 0x1D739: { c: '\\\\3B4', f: 'BI' },\n 0x1D73A: { c: '\\\\3B5', f: 'BI' },\n 0x1D73B: { c: '\\\\3B6', f: 'BI' },\n 0x1D73C: { c: '\\\\3B7', f: 'BI' },\n 0x1D73D: { c: '\\\\3B8', f: 'BI' },\n 0x1D73E: { c: '\\\\3B9', f: 'BI' },\n 0x1D73F: { c: '\\\\3BA', f: 'BI' },\n 0x1D740: { c: '\\\\3BB', f: 'BI' },\n 0x1D741: { c: '\\\\3BC', f: 'BI' },\n 0x1D742: { c: '\\\\3BD', f: 'BI' },\n 0x1D743: { c: '\\\\3BE', f: 'BI' },\n 0x1D744: { c: '\\\\3BF', f: 'BI' },\n 0x1D745: { c: '\\\\3C0', f: 'BI' },\n 0x1D746: { c: '\\\\3C1', f: 'BI' },\n 0x1D747: { c: '\\\\3C2', f: 'BI' },\n 0x1D748: { c: '\\\\3C3', f: 'BI' },\n 0x1D749: { c: '\\\\3C4', f: 'BI' },\n 0x1D74A: { c: '\\\\3C5', f: 'BI' },\n 0x1D74B: { c: '\\\\3C6', f: 'BI' },\n 0x1D74C: { c: '\\\\3C7', f: 'BI' },\n 0x1D74D: { c: '\\\\3C8', f: 'BI' },\n 0x1D74E: { c: '\\\\3C9', f: 'BI' },\n 0x1D74F: { c: '\\\\2202', f: 'B' },\n 0x1D750: { c: '\\\\3F5', f: 'BI' },\n 0x1D751: { c: '\\\\3D1', f: 'BI' },\n 0x1D752: { c: '\\\\E009', f: 'A' },\n 0x1D753: { c: '\\\\3D5', f: 'BI' },\n 0x1D754: { c: '\\\\3F1', f: 'BI' },\n 0x1D755: { c: '\\\\3D6', f: 'BI' },\n 0x1D756: { c: 'A', f: 'SSB' },\n 0x1D757: { c: 'B', f: 'SSB' },\n 0x1D758: { c: '\\\\393', f: 'SSB' },\n 0x1D759: { c: '\\\\394', f: 'SSB' },\n 0x1D75A: { c: 'E', f: 'SSB' },\n 0x1D75B: { c: 'Z', f: 'SSB' },\n 0x1D75C: { c: 'H', f: 'SSB' },\n 0x1D75D: { c: '\\\\398', f: 'SSB' },\n 0x1D75E: { c: 'I', f: 'SSB' },\n 0x1D75F: { c: 'K', f: 'SSB' },\n 0x1D760: { c: '\\\\39B', f: 'SSB' },\n 0x1D761: { c: 'M', f: 'SSB' },\n 0x1D762: { c: 'N', f: 'SSB' },\n 0x1D763: { c: '\\\\39E', f: 'SSB' },\n 0x1D764: { c: 'O', f: 'SSB' },\n 0x1D765: { c: '\\\\3A0', f: 'SSB' },\n 0x1D766: { c: 'P', f: 'SSB' },\n 0x1D768: { c: '\\\\3A3', f: 'SSB' },\n 0x1D769: { c: 'T', f: 'SSB' },\n 0x1D76A: { c: '\\\\3A5', f: 'SSB' },\n 0x1D76B: { c: '\\\\3A6', f: 'SSB' },\n 0x1D76C: { c: 'X', f: 'SSB' },\n 0x1D76D: { c: '\\\\3A8', f: 'SSB' },\n 0x1D76E: { c: '\\\\3A9', f: 'SSB' },\n 0x1D7CE: { c: '0', f: 'B' },\n 0x1D7CF: { c: '1', f: 'B' },\n 0x1D7D0: { c: '2', f: 'B' },\n 0x1D7D1: { c: '3', f: 'B' },\n 0x1D7D2: { c: '4', f: 'B' },\n 0x1D7D3: { c: '5', f: 'B' },\n 0x1D7D4: { c: '6', f: 'B' },\n 0x1D7D5: { c: '7', f: 'B' },\n 0x1D7D6: { c: '8', f: 'B' },\n 0x1D7D7: { c: '9', f: 'B' },\n 0x1D7E2: { c: '0', f: 'SS' },\n 0x1D7E3: { c: '1', f: 'SS' },\n 0x1D7E4: { c: '2', f: 'SS' },\n 0x1D7E5: { c: '3', f: 'SS' },\n 0x1D7E6: { c: '4', f: 'SS' },\n 0x1D7E7: { c: '5', f: 'SS' },\n 0x1D7E8: { c: '6', f: 'SS' },\n 0x1D7E9: { c: '7', f: 'SS' },\n 0x1D7EA: { c: '8', f: 'SS' },\n 0x1D7EB: { c: '9', f: 'SS' },\n 0x1D7EC: { c: '0', f: 'SSB' },\n 0x1D7ED: { c: '1', f: 'SSB' },\n 0x1D7EE: { c: '2', f: 'SSB' },\n 0x1D7EF: { c: '3', f: 'SSB' },\n 0x1D7F0: { c: '4', f: 'SSB' },\n 0x1D7F1: { c: '5', f: 'SSB' },\n 0x1D7F2: { c: '6', f: 'SSB' },\n 0x1D7F3: { c: '7', f: 'SSB' },\n 0x1D7F4: { c: '8', f: 'SSB' },\n 0x1D7F5: { c: '9', f: 'SSB' },\n 0x1D7F6: { c: '0', f: 'T' },\n 0x1D7F7: { c: '1', f: 'T' },\n 0x1D7F8: { c: '2', f: 'T' },\n 0x1D7F9: { c: '3', f: 'T' },\n 0x1D7FA: { c: '4', f: 'T' },\n 0x1D7FB: { c: '5', f: 'T' },\n 0x1D7FC: { c: '6', f: 'T' },\n 0x1D7FD: { c: '7', f: 'T' },\n 0x1D7FE: { c: '8', f: 'T' },\n 0x1D7FF: { c: '9', f: 'T' },\n});\n//# sourceMappingURL=normal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sansSerifBoldItalic = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar sans_serif_bold_italic_js_1 = require(\"../../../common/fonts/tex/sans-serif-bold-italic.js\");\nexports.sansSerifBoldItalic = (0, FontData_js_1.AddCSS)(sans_serif_bold_italic_js_1.sansSerifBoldItalic, {\n 0x131: { f: 'SSB' },\n 0x237: { f: 'SSB' },\n});\n//# sourceMappingURL=sans-serif-bold-italic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sansSerifBold = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar sans_serif_bold_js_1 = require(\"../../../common/fonts/tex/sans-serif-bold.js\");\nexports.sansSerifBold = (0, FontData_js_1.AddCSS)(sans_serif_bold_js_1.sansSerifBold, {\n 0x2015: { c: '\\\\2014' },\n 0x2017: { c: '_' },\n 0x2044: { c: '/' },\n 0x2206: { c: '\\\\394' },\n});\n//# sourceMappingURL=sans-serif-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sansSerifItalic = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar sans_serif_italic_js_1 = require(\"../../../common/fonts/tex/sans-serif-italic.js\");\nexports.sansSerifItalic = (0, FontData_js_1.AddCSS)(sans_serif_italic_js_1.sansSerifItalic, {\n 0x391: { c: 'A' },\n 0x392: { c: 'B' },\n 0x395: { c: 'E' },\n 0x396: { c: 'Z' },\n 0x397: { c: 'H' },\n 0x399: { c: 'I' },\n 0x39A: { c: 'K' },\n 0x39C: { c: 'M' },\n 0x39D: { c: 'N' },\n 0x39F: { c: 'O' },\n 0x3A1: { c: 'P' },\n 0x3A4: { c: 'T' },\n 0x3A7: { c: 'X' },\n 0x2015: { c: '\\\\2014' },\n 0x2017: { c: '_' },\n 0x2044: { c: '/' },\n 0x2206: { c: '\\\\394' },\n});\n//# sourceMappingURL=sans-serif-italic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sansSerif = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar sans_serif_js_1 = require(\"../../../common/fonts/tex/sans-serif.js\");\nexports.sansSerif = (0, FontData_js_1.AddCSS)(sans_serif_js_1.sansSerif, {\n 0x391: { c: 'A' },\n 0x392: { c: 'B' },\n 0x395: { c: 'E' },\n 0x396: { c: 'Z' },\n 0x397: { c: 'H' },\n 0x399: { c: 'I' },\n 0x39A: { c: 'K' },\n 0x39C: { c: 'M' },\n 0x39D: { c: 'N' },\n 0x39F: { c: 'O' },\n 0x3A1: { c: 'P' },\n 0x3A4: { c: 'T' },\n 0x3A7: { c: 'X' },\n 0x2015: { c: '\\\\2014' },\n 0x2017: { c: '_' },\n 0x2044: { c: '/' },\n 0x2206: { c: '\\\\394' },\n});\n//# sourceMappingURL=sans-serif.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scriptBold = void 0;\nvar script_bold_js_1 = require(\"../../../common/fonts/tex/script-bold.js\");\nObject.defineProperty(exports, \"scriptBold\", { enumerable: true, get: function () { return script_bold_js_1.scriptBold; } });\n//# sourceMappingURL=script-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.script = void 0;\nvar script_js_1 = require(\"../../../common/fonts/tex/script.js\");\nObject.defineProperty(exports, \"script\", { enumerable: true, get: function () { return script_js_1.script; } });\n//# sourceMappingURL=script.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.smallop = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar smallop_js_1 = require(\"../../../common/fonts/tex/smallop.js\");\nexports.smallop = (0, FontData_js_1.AddCSS)(smallop_js_1.smallop, {\n 0x2044: { c: '/' },\n 0x2329: { c: '\\\\27E8' },\n 0x232A: { c: '\\\\27E9' },\n 0x2758: { c: '\\\\2223' },\n 0x2A0C: { c: '\\\\222C\\\\222C' },\n 0x3008: { c: '\\\\27E8' },\n 0x3009: { c: '\\\\27E9' },\n});\n//# sourceMappingURL=smallop.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texCalligraphicBold = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar tex_calligraphic_bold_js_1 = require(\"../../../common/fonts/tex/tex-calligraphic-bold.js\");\nexports.texCalligraphicBold = (0, FontData_js_1.AddCSS)(tex_calligraphic_bold_js_1.texCalligraphicBold, {\n 0x131: { f: 'B' },\n 0x237: { f: 'B' },\n});\n//# sourceMappingURL=tex-calligraphic-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texCalligraphic = void 0;\nvar tex_calligraphic_js_1 = require(\"../../../common/fonts/tex/tex-calligraphic.js\");\nObject.defineProperty(exports, \"texCalligraphic\", { enumerable: true, get: function () { return tex_calligraphic_js_1.texCalligraphic; } });\n//# sourceMappingURL=tex-calligraphic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texMathit = void 0;\nvar tex_mathit_js_1 = require(\"../../../common/fonts/tex/tex-mathit.js\");\nObject.defineProperty(exports, \"texMathit\", { enumerable: true, get: function () { return tex_mathit_js_1.texMathit; } });\n//# sourceMappingURL=tex-mathit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texOldstyleBold = void 0;\nvar tex_oldstyle_bold_js_1 = require(\"../../../common/fonts/tex/tex-oldstyle-bold.js\");\nObject.defineProperty(exports, \"texOldstyleBold\", { enumerable: true, get: function () { return tex_oldstyle_bold_js_1.texOldstyleBold; } });\n//# sourceMappingURL=tex-oldstyle-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texOldstyle = void 0;\nvar tex_oldstyle_js_1 = require(\"../../../common/fonts/tex/tex-oldstyle.js\");\nObject.defineProperty(exports, \"texOldstyle\", { enumerable: true, get: function () { return tex_oldstyle_js_1.texOldstyle; } });\n//# sourceMappingURL=tex-oldstyle.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texSize3 = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar tex_size3_js_1 = require(\"../../../common/fonts/tex/tex-size3.js\");\nexports.texSize3 = (0, FontData_js_1.AddCSS)(tex_size3_js_1.texSize3, {\n 0x2044: { c: '/' },\n 0x2329: { c: '\\\\27E8' },\n 0x232A: { c: '\\\\27E9' },\n 0x3008: { c: '\\\\27E8' },\n 0x3009: { c: '\\\\27E9' },\n});\n//# sourceMappingURL=tex-size3.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texSize4 = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar tex_size4_js_1 = require(\"../../../common/fonts/tex/tex-size4.js\");\nexports.texSize4 = (0, FontData_js_1.AddCSS)(tex_size4_js_1.texSize4, {\n 0x2044: { c: '/' },\n 0x2329: { c: '\\\\27E8' },\n 0x232A: { c: '\\\\27E9' },\n 0x3008: { c: '\\\\27E8' },\n 0x3009: { c: '\\\\27E9' },\n 0xE155: { c: '\\\\E153\\\\E152' },\n 0xE156: { c: '\\\\E151\\\\E150' },\n});\n//# sourceMappingURL=tex-size4.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texVariant = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nvar tex_variant_js_1 = require(\"../../../common/fonts/tex/tex-variant.js\");\nexports.texVariant = (0, FontData_js_1.AddCSS)(tex_variant_js_1.texVariant, {\n 0x3F0: { c: '\\\\E009' },\n 0x210F: { f: '' },\n 0x2224: { c: '\\\\E006' },\n 0x2226: { c: '\\\\E007' },\n 0x2268: { c: '\\\\E00C' },\n 0x2269: { c: '\\\\E00D' },\n 0x2270: { c: '\\\\E011' },\n 0x2271: { c: '\\\\E00E' },\n 0x2288: { c: '\\\\E016' },\n 0x2289: { c: '\\\\E018' },\n 0x228A: { c: '\\\\E01A' },\n 0x228B: { c: '\\\\E01B' },\n 0x2A87: { c: '\\\\E010' },\n 0x2A88: { c: '\\\\E00F' },\n 0x2ACB: { c: '\\\\E017' },\n 0x2ACC: { c: '\\\\E019' },\n});\n//# sourceMappingURL=tex-variant.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FontData = exports.NOSTRETCH = exports.H = exports.V = void 0;\nvar Options_js_1 = require(\"../../util/Options.js\");\nexports.V = 1;\nexports.H = 2;\nexports.NOSTRETCH = { dir: 0 };\nvar FontData = (function () {\n function FontData(options) {\n var e_1, _a, e_2, _b;\n if (options === void 0) { options = null; }\n this.variant = {};\n this.delimiters = {};\n this.cssFontMap = {};\n this.remapChars = {};\n this.skewIcFactor = .75;\n var CLASS = this.constructor;\n this.options = (0, Options_js_1.userOptions)((0, Options_js_1.defaultOptions)({}, CLASS.OPTIONS), options);\n this.params = __assign({}, CLASS.defaultParams);\n this.sizeVariants = __spreadArray([], __read(CLASS.defaultSizeVariants), false);\n this.stretchVariants = __spreadArray([], __read(CLASS.defaultStretchVariants), false);\n this.cssFontMap = __assign({}, CLASS.defaultCssFonts);\n try {\n for (var _c = __values(Object.keys(this.cssFontMap)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_1 = _d.value;\n if (this.cssFontMap[name_1][0] === 'unknown') {\n this.cssFontMap[name_1][0] = this.options.unknownFamily;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.cssFamilyPrefix = CLASS.defaultCssFamilyPrefix;\n this.createVariants(CLASS.defaultVariants);\n this.defineDelimiters(CLASS.defaultDelimiters);\n try {\n for (var _e = __values(Object.keys(CLASS.defaultChars)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name_2 = _f.value;\n this.defineChars(name_2, CLASS.defaultChars[name_2]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n this.defineRemap('accent', CLASS.defaultAccentMap);\n this.defineRemap('mo', CLASS.defaultMoMap);\n this.defineRemap('mn', CLASS.defaultMnMap);\n }\n FontData.charOptions = function (font, n) {\n var char = font[n];\n if (char.length === 3) {\n char[3] = {};\n }\n return char[3];\n };\n Object.defineProperty(FontData.prototype, \"styles\", {\n get: function () {\n return this._styles;\n },\n set: function (style) {\n this._styles = style;\n },\n enumerable: false,\n configurable: true\n });\n FontData.prototype.createVariant = function (name, inherit, link) {\n if (inherit === void 0) { inherit = null; }\n if (link === void 0) { link = null; }\n var variant = {\n linked: [],\n chars: (inherit ? Object.create(this.variant[inherit].chars) : {})\n };\n if (link && this.variant[link]) {\n Object.assign(variant.chars, this.variant[link].chars);\n this.variant[link].linked.push(variant.chars);\n variant.chars = Object.create(variant.chars);\n }\n this.remapSmpChars(variant.chars, name);\n this.variant[name] = variant;\n };\n FontData.prototype.remapSmpChars = function (chars, name) {\n var e_3, _a, e_4, _b;\n var CLASS = this.constructor;\n if (CLASS.VariantSmp[name]) {\n var SmpRemap = CLASS.SmpRemap;\n var SmpGreek = [null, null, CLASS.SmpRemapGreekU, CLASS.SmpRemapGreekL];\n try {\n for (var _c = __values(CLASS.SmpRanges), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = __read(_d.value, 3), i = _e[0], lo = _e[1], hi = _e[2];\n var base = CLASS.VariantSmp[name][i];\n if (!base)\n continue;\n for (var n = lo; n <= hi; n++) {\n if (n === 0x3A2)\n continue;\n var smp = base + n - lo;\n chars[n] = this.smpChar(SmpRemap[smp] || smp);\n }\n if (SmpGreek[i]) {\n try {\n for (var _f = (e_4 = void 0, __values(Object.keys(SmpGreek[i]).map(function (x) { return parseInt(x); }))), _g = _f.next(); !_g.done; _g = _f.next()) {\n var n = _g.value;\n chars[n] = this.smpChar(base + SmpGreek[i][n]);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n if (name === 'bold') {\n chars[0x3DC] = this.smpChar(0x1D7CA);\n chars[0x3DD] = this.smpChar(0x1D7CB);\n }\n };\n FontData.prototype.smpChar = function (n) {\n return [, , , { smp: n }];\n };\n FontData.prototype.createVariants = function (variants) {\n var e_5, _a;\n try {\n for (var variants_1 = __values(variants), variants_1_1 = variants_1.next(); !variants_1_1.done; variants_1_1 = variants_1.next()) {\n var variant = variants_1_1.value;\n this.createVariant(variant[0], variant[1], variant[2]);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (variants_1_1 && !variants_1_1.done && (_a = variants_1.return)) _a.call(variants_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n };\n FontData.prototype.defineChars = function (name, chars) {\n var e_6, _a;\n var variant = this.variant[name];\n Object.assign(variant.chars, chars);\n try {\n for (var _b = __values(variant.linked), _c = _b.next(); !_c.done; _c = _b.next()) {\n var link = _c.value;\n Object.assign(link, chars);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n };\n FontData.prototype.defineDelimiters = function (delims) {\n Object.assign(this.delimiters, delims);\n };\n FontData.prototype.defineRemap = function (name, remap) {\n if (!this.remapChars.hasOwnProperty(name)) {\n this.remapChars[name] = {};\n }\n Object.assign(this.remapChars[name], remap);\n };\n FontData.prototype.getDelimiter = function (n) {\n return this.delimiters[n];\n };\n FontData.prototype.getSizeVariant = function (n, i) {\n if (this.delimiters[n].variants) {\n i = this.delimiters[n].variants[i];\n }\n return this.sizeVariants[i];\n };\n FontData.prototype.getStretchVariant = function (n, i) {\n return this.stretchVariants[this.delimiters[n].stretchv ? this.delimiters[n].stretchv[i] : 0];\n };\n FontData.prototype.getChar = function (name, n) {\n return this.variant[name].chars[n];\n };\n FontData.prototype.getVariant = function (name) {\n return this.variant[name];\n };\n FontData.prototype.getCssFont = function (variant) {\n return this.cssFontMap[variant] || ['serif', false, false];\n };\n FontData.prototype.getFamily = function (family) {\n return (this.cssFamilyPrefix ? this.cssFamilyPrefix + ', ' + family : family);\n };\n FontData.prototype.getRemappedChar = function (name, c) {\n var map = this.remapChars[name] || {};\n return map[c];\n };\n FontData.OPTIONS = {\n unknownFamily: 'serif'\n };\n FontData.JAX = 'common';\n FontData.NAME = '';\n FontData.defaultVariants = [\n ['normal'],\n ['bold', 'normal'],\n ['italic', 'normal'],\n ['bold-italic', 'italic', 'bold'],\n ['double-struck', 'bold'],\n ['fraktur', 'normal'],\n ['bold-fraktur', 'bold', 'fraktur'],\n ['script', 'italic'],\n ['bold-script', 'bold-italic', 'script'],\n ['sans-serif', 'normal'],\n ['bold-sans-serif', 'bold', 'sans-serif'],\n ['sans-serif-italic', 'italic', 'sans-serif'],\n ['sans-serif-bold-italic', 'bold-italic', 'bold-sans-serif'],\n ['monospace', 'normal']\n ];\n FontData.defaultCssFonts = {\n normal: ['unknown', false, false],\n bold: ['unknown', false, true],\n italic: ['unknown', true, false],\n 'bold-italic': ['unknown', true, true],\n 'double-struck': ['unknown', false, true],\n fraktur: ['unknown', false, false],\n 'bold-fraktur': ['unknown', false, true],\n script: ['cursive', false, false],\n 'bold-script': ['cursive', false, true],\n 'sans-serif': ['sans-serif', false, false],\n 'bold-sans-serif': ['sans-serif', false, true],\n 'sans-serif-italic': ['sans-serif', true, false],\n 'sans-serif-bold-italic': ['sans-serif', true, true],\n monospace: ['monospace', false, false]\n };\n FontData.defaultCssFamilyPrefix = '';\n FontData.VariantSmp = {\n bold: [0x1D400, 0x1D41A, 0x1D6A8, 0x1D6C2, 0x1D7CE],\n italic: [0x1D434, 0x1D44E, 0x1D6E2, 0x1D6FC],\n 'bold-italic': [0x1D468, 0x1D482, 0x1D71C, 0x1D736],\n script: [0x1D49C, 0x1D4B6],\n 'bold-script': [0x1D4D0, 0x1D4EA],\n fraktur: [0x1D504, 0x1D51E],\n 'double-struck': [0x1D538, 0x1D552, , , 0x1D7D8],\n 'bold-fraktur': [0x1D56C, 0x1D586],\n 'sans-serif': [0x1D5A0, 0x1D5BA, , , 0x1D7E2],\n 'bold-sans-serif': [0x1D5D4, 0x1D5EE, 0x1D756, 0x1D770, 0x1D7EC],\n 'sans-serif-italic': [0x1D608, 0x1D622],\n 'sans-serif-bold-italic': [0x1D63C, 0x1D656, 0x1D790, 0x1D7AA],\n 'monospace': [0x1D670, 0x1D68A, , , 0x1D7F6]\n };\n FontData.SmpRanges = [\n [0, 0x41, 0x5A],\n [1, 0x61, 0x7A],\n [2, 0x391, 0x3A9],\n [3, 0x3B1, 0x3C9],\n [4, 0x30, 0x39]\n ];\n FontData.SmpRemap = {\n 0x1D455: 0x210E,\n 0x1D49D: 0x212C,\n 0x1D4A0: 0x2130,\n 0x1D4A1: 0x2131,\n 0x1D4A3: 0x210B,\n 0x1D4A4: 0x2110,\n 0x1D4A7: 0x2112,\n 0x1D4A8: 0x2133,\n 0x1D4AD: 0x211B,\n 0x1D4BA: 0x212F,\n 0x1D4BC: 0x210A,\n 0x1D4C4: 0x2134,\n 0x1D506: 0x212D,\n 0x1D50B: 0x210C,\n 0x1D50C: 0x2111,\n 0x1D515: 0x211C,\n 0x1D51D: 0x2128,\n 0x1D53A: 0x2102,\n 0x1D53F: 0x210D,\n 0x1D545: 0x2115,\n 0x1D547: 0x2119,\n 0x1D548: 0x211A,\n 0x1D549: 0x211D,\n 0x1D551: 0x2124,\n };\n FontData.SmpRemapGreekU = {\n 0x2207: 0x19,\n 0x03F4: 0x11\n };\n FontData.SmpRemapGreekL = {\n 0x3D1: 0x1B,\n 0x3D5: 0x1D,\n 0x3D6: 0x1F,\n 0x3F0: 0x1C,\n 0x3F1: 0x1E,\n 0x3F5: 0x1A,\n 0x2202: 0x19\n };\n FontData.defaultAccentMap = {\n 0x0300: '\\u02CB',\n 0x0301: '\\u02CA',\n 0x0302: '\\u02C6',\n 0x0303: '\\u02DC',\n 0x0304: '\\u02C9',\n 0x0306: '\\u02D8',\n 0x0307: '\\u02D9',\n 0x0308: '\\u00A8',\n 0x030A: '\\u02DA',\n 0x030C: '\\u02C7',\n 0x2192: '\\u20D7',\n 0x2032: '\\'',\n 0x2033: '\\'\\'',\n 0x2034: '\\'\\'\\'',\n 0x2035: '`',\n 0x2036: '``',\n 0x2037: '```',\n 0x2057: '\\'\\'\\'\\'',\n 0x20D0: '\\u21BC',\n 0x20D1: '\\u21C0',\n 0x20D6: '\\u2190',\n 0x20E1: '\\u2194',\n 0x20F0: '*',\n 0x20DB: '...',\n 0x20DC: '....',\n 0x20EC: '\\u21C1',\n 0x20ED: '\\u21BD',\n 0x20EE: '\\u2190',\n 0x20EF: '\\u2192'\n };\n FontData.defaultMoMap = {\n 0x002D: '\\u2212'\n };\n FontData.defaultMnMap = {\n 0x002D: '\\u2212'\n };\n FontData.defaultParams = {\n x_height: .442,\n quad: 1,\n num1: .676,\n num2: .394,\n num3: .444,\n denom1: .686,\n denom2: .345,\n sup1: .413,\n sup2: .363,\n sup3: .289,\n sub1: .15,\n sub2: .247,\n sup_drop: .386,\n sub_drop: .05,\n delim1: 2.39,\n delim2: 1.0,\n axis_height: .25,\n rule_thickness: .06,\n big_op_spacing1: .111,\n big_op_spacing2: .167,\n big_op_spacing3: .2,\n big_op_spacing4: .6,\n big_op_spacing5: .1,\n surd_height: .075,\n scriptspace: .05,\n nulldelimiterspace: .12,\n delimiterfactor: 901,\n delimitershortfall: .3,\n min_rule_thickness: 1.25,\n separation_factor: 1.75,\n extra_ic: .033\n };\n FontData.defaultDelimiters = {};\n FontData.defaultChars = {};\n FontData.defaultSizeVariants = [];\n FontData.defaultStretchVariants = [];\n return FontData;\n}());\nexports.FontData = FontData;\n//# sourceMappingURL=FontData.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonArrow = exports.CommonDiagonalArrow = exports.CommonDiagonalStrike = exports.CommonBorder2 = exports.CommonBorder = exports.arrowBBox = exports.diagonalArrowDef = exports.arrowDef = exports.arrowBBoxW = exports.arrowBBoxHD = exports.arrowHead = exports.fullBorder = exports.fullPadding = exports.fullBBox = exports.sideNames = exports.sideIndex = exports.SOLID = exports.PADDING = exports.THICKNESS = exports.ARROWY = exports.ARROWDX = exports.ARROWX = void 0;\nexports.ARROWX = 4, exports.ARROWDX = 1, exports.ARROWY = 2;\nexports.THICKNESS = .067;\nexports.PADDING = .2;\nexports.SOLID = exports.THICKNESS + 'em solid';\nexports.sideIndex = { top: 0, right: 1, bottom: 2, left: 3 };\nexports.sideNames = Object.keys(exports.sideIndex);\nexports.fullBBox = (function (node) { return new Array(4).fill(node.thickness + node.padding); });\nexports.fullPadding = (function (node) { return new Array(4).fill(node.padding); });\nexports.fullBorder = (function (node) { return new Array(4).fill(node.thickness); });\nvar arrowHead = function (node) {\n return Math.max(node.padding, node.thickness * (node.arrowhead.x + node.arrowhead.dx + 1));\n};\nexports.arrowHead = arrowHead;\nvar arrowBBoxHD = function (node, TRBL) {\n if (node.childNodes[0]) {\n var _a = node.childNodes[0].getBBox(), h = _a.h, d = _a.d;\n TRBL[0] = TRBL[2] = Math.max(0, node.thickness * node.arrowhead.y - (h + d) / 2);\n }\n return TRBL;\n};\nexports.arrowBBoxHD = arrowBBoxHD;\nvar arrowBBoxW = function (node, TRBL) {\n if (node.childNodes[0]) {\n var w = node.childNodes[0].getBBox().w;\n TRBL[1] = TRBL[3] = Math.max(0, node.thickness * node.arrowhead.y - w / 2);\n }\n return TRBL;\n};\nexports.arrowBBoxW = arrowBBoxW;\nexports.arrowDef = {\n up: [-Math.PI / 2, false, true, 'verticalstrike'],\n down: [Math.PI / 2, false, true, 'verticakstrike'],\n right: [0, false, false, 'horizontalstrike'],\n left: [Math.PI, false, false, 'horizontalstrike'],\n updown: [Math.PI / 2, true, true, 'verticalstrike uparrow downarrow'],\n leftright: [0, true, false, 'horizontalstrike leftarrow rightarrow']\n};\nexports.diagonalArrowDef = {\n updiagonal: [-1, 0, false, 'updiagonalstrike northeastarrow'],\n northeast: [-1, 0, false, 'updiagonalstrike updiagonalarrow'],\n southeast: [1, 0, false, 'downdiagonalstrike'],\n northwest: [1, Math.PI, false, 'downdiagonalstrike'],\n southwest: [-1, Math.PI, false, 'updiagonalstrike'],\n northeastsouthwest: [-1, 0, true, 'updiagonalstrike northeastarrow updiagonalarrow southwestarrow'],\n northwestsoutheast: [1, 0, true, 'downdiagonalstrike northwestarrow southeastarrow']\n};\nexports.arrowBBox = {\n up: function (node) { return (0, exports.arrowBBoxW)(node, [(0, exports.arrowHead)(node), 0, node.padding, 0]); },\n down: function (node) { return (0, exports.arrowBBoxW)(node, [node.padding, 0, (0, exports.arrowHead)(node), 0]); },\n right: function (node) { return (0, exports.arrowBBoxHD)(node, [0, (0, exports.arrowHead)(node), 0, node.padding]); },\n left: function (node) { return (0, exports.arrowBBoxHD)(node, [0, node.padding, 0, (0, exports.arrowHead)(node)]); },\n updown: function (node) { return (0, exports.arrowBBoxW)(node, [(0, exports.arrowHead)(node), 0, (0, exports.arrowHead)(node), 0]); },\n leftright: function (node) { return (0, exports.arrowBBoxHD)(node, [0, (0, exports.arrowHead)(node), 0, (0, exports.arrowHead)(node)]); }\n};\nvar CommonBorder = function (render) {\n return function (side) {\n var i = exports.sideIndex[side];\n return [side, {\n renderer: render,\n bbox: function (node) {\n var bbox = [0, 0, 0, 0];\n bbox[i] = node.thickness + node.padding;\n return bbox;\n },\n border: function (node) {\n var bbox = [0, 0, 0, 0];\n bbox[i] = node.thickness;\n return bbox;\n }\n }];\n };\n};\nexports.CommonBorder = CommonBorder;\nvar CommonBorder2 = function (render) {\n return function (name, side1, side2) {\n var i1 = exports.sideIndex[side1];\n var i2 = exports.sideIndex[side2];\n return [name, {\n renderer: render,\n bbox: function (node) {\n var t = node.thickness + node.padding;\n var bbox = [0, 0, 0, 0];\n bbox[i1] = bbox[i2] = t;\n return bbox;\n },\n border: function (node) {\n var bbox = [0, 0, 0, 0];\n bbox[i1] = bbox[i2] = node.thickness;\n return bbox;\n },\n remove: side1 + ' ' + side2\n }];\n };\n};\nexports.CommonBorder2 = CommonBorder2;\nvar CommonDiagonalStrike = function (render) {\n return function (name) {\n var cname = 'mjx-' + name.charAt(0) + 'strike';\n return [name + 'diagonalstrike', {\n renderer: render(cname),\n bbox: exports.fullBBox\n }];\n };\n};\nexports.CommonDiagonalStrike = CommonDiagonalStrike;\nvar CommonDiagonalArrow = function (render) {\n return function (name) {\n var _a = __read(exports.diagonalArrowDef[name], 4), c = _a[0], pi = _a[1], double = _a[2], remove = _a[3];\n return [name + 'arrow', {\n renderer: function (node, _child) {\n var _a = __read(node.arrowAW(), 2), a = _a[0], W = _a[1];\n var arrow = node.arrow(W, c * (a - pi), double);\n render(node, arrow);\n },\n bbox: function (node) {\n var _a = node.arrowData(), a = _a.a, x = _a.x, y = _a.y;\n var _b = __read([node.arrowhead.x, node.arrowhead.y, node.arrowhead.dx], 3), ax = _b[0], ay = _b[1], adx = _b[2];\n var _c = __read(node.getArgMod(ax + adx, ay), 2), b = _c[0], ar = _c[1];\n var dy = y + (b > a ? node.thickness * ar * Math.sin(b - a) : 0);\n var dx = x + (b > Math.PI / 2 - a ? node.thickness * ar * Math.sin(b + a - Math.PI / 2) : 0);\n return [dy, dx, dy, dx];\n },\n remove: remove\n }];\n };\n};\nexports.CommonDiagonalArrow = CommonDiagonalArrow;\nvar CommonArrow = function (render) {\n return function (name) {\n var _a = __read(exports.arrowDef[name], 4), angle = _a[0], double = _a[1], isVertical = _a[2], remove = _a[3];\n return [name + 'arrow', {\n renderer: function (node, _child) {\n var _a = node.getBBox(), w = _a.w, h = _a.h, d = _a.d;\n var _b = __read((isVertical ? [h + d, 'X'] : [w, 'Y']), 2), W = _b[0], offset = _b[1];\n var dd = node.getOffset(offset);\n var arrow = node.arrow(W, angle, double, offset, dd);\n render(node, arrow);\n },\n bbox: exports.arrowBBox[name],\n remove: remove\n }];\n };\n};\nexports.CommonArrow = CommonArrow;\n//# sourceMappingURL=Notation.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonOutputJax = void 0;\nvar OutputJax_js_1 = require(\"../../core/OutputJax.js\");\nvar MathItem_js_1 = require(\"../../core/MathItem.js\");\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar lengths_js_1 = require(\"../../util/lengths.js\");\nvar Styles_js_1 = require(\"../../util/Styles.js\");\nvar StyleList_js_1 = require(\"../../util/StyleList.js\");\nvar CommonOutputJax = (function (_super) {\n __extends(CommonOutputJax, _super);\n function CommonOutputJax(options, defaultFactory, defaultFont) {\n if (options === void 0) { options = null; }\n if (defaultFactory === void 0) { defaultFactory = null; }\n if (defaultFont === void 0) { defaultFont = null; }\n var _this = this;\n var _a = __read((0, Options_js_1.separateOptions)(options, defaultFont.OPTIONS), 2), jaxOptions = _a[0], fontOptions = _a[1];\n _this = _super.call(this, jaxOptions) || this;\n _this.factory = _this.options.wrapperFactory ||\n new defaultFactory();\n _this.factory.jax = _this;\n _this.cssStyles = _this.options.cssStyles || new StyleList_js_1.CssStyles();\n _this.font = _this.options.font || new defaultFont(fontOptions);\n _this.unknownCache = new Map();\n return _this;\n }\n CommonOutputJax.prototype.typeset = function (math, html) {\n this.setDocument(html);\n var node = this.createNode();\n this.toDOM(math, node, html);\n return node;\n };\n CommonOutputJax.prototype.createNode = function () {\n var jax = this.constructor.NAME;\n return this.html('mjx-container', { 'class': 'MathJax', jax: jax });\n };\n CommonOutputJax.prototype.setScale = function (node) {\n var scale = this.math.metrics.scale * this.options.scale;\n if (scale !== 1) {\n this.adaptor.setStyle(node, 'fontSize', (0, lengths_js_1.percent)(scale));\n }\n };\n CommonOutputJax.prototype.toDOM = function (math, node, html) {\n if (html === void 0) { html = null; }\n this.setDocument(html);\n this.math = math;\n this.pxPerEm = math.metrics.ex / this.font.params.x_height;\n math.root.setTeXclass(null);\n this.setScale(node);\n this.nodeMap = new Map();\n this.container = node;\n this.processMath(math.root, node);\n this.nodeMap = null;\n this.executeFilters(this.postFilters, math, html, node);\n };\n CommonOutputJax.prototype.getBBox = function (math, html) {\n this.setDocument(html);\n this.math = math;\n math.root.setTeXclass(null);\n this.nodeMap = new Map();\n var bbox = this.factory.wrap(math.root).getOuterBBox();\n this.nodeMap = null;\n return bbox;\n };\n CommonOutputJax.prototype.getMetrics = function (html) {\n var e_1, _a;\n this.setDocument(html);\n var adaptor = this.adaptor;\n var maps = this.getMetricMaps(html);\n try {\n for (var _b = __values(html.math), _c = _b.next(); !_c.done; _c = _b.next()) {\n var math = _c.value;\n var parent_1 = adaptor.parent(math.start.node);\n if (math.state() < MathItem_js_1.STATE.METRICS && parent_1) {\n var map = maps[math.display ? 1 : 0];\n var _d = map.get(parent_1), em = _d.em, ex = _d.ex, containerWidth = _d.containerWidth, lineWidth = _d.lineWidth, scale = _d.scale, family = _d.family;\n math.setMetrics(em, ex, containerWidth, lineWidth, scale);\n if (this.options.mtextInheritFont) {\n math.outputData.mtextFamily = family;\n }\n if (this.options.merrorInheritFont) {\n math.outputData.merrorFamily = family;\n }\n math.state(MathItem_js_1.STATE.METRICS);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n CommonOutputJax.prototype.getMetricsFor = function (node, display) {\n var getFamily = (this.options.mtextInheritFont || this.options.merrorInheritFont);\n var test = this.getTestElement(node, display);\n var metrics = this.measureMetrics(test, getFamily);\n this.adaptor.remove(test);\n return metrics;\n };\n CommonOutputJax.prototype.getMetricMaps = function (html) {\n var e_2, _a, e_3, _b, e_4, _c, e_5, _d, e_6, _e;\n var adaptor = this.adaptor;\n var domMaps = [new Map(), new Map()];\n try {\n for (var _f = __values(html.math), _g = _f.next(); !_g.done; _g = _f.next()) {\n var math = _g.value;\n var node = adaptor.parent(math.start.node);\n if (node && math.state() < MathItem_js_1.STATE.METRICS) {\n var map = domMaps[math.display ? 1 : 0];\n if (!map.has(node)) {\n map.set(node, this.getTestElement(node, math.display));\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var getFamily = this.options.mtextInheritFont || this.options.merrorInheritFont;\n var maps = [new Map(), new Map()];\n try {\n for (var _h = __values(maps.keys()), _j = _h.next(); !_j.done; _j = _h.next()) {\n var i = _j.value;\n try {\n for (var _k = (e_4 = void 0, __values(domMaps[i].keys())), _l = _k.next(); !_l.done; _l = _k.next()) {\n var node = _l.value;\n maps[i].set(node, this.measureMetrics(domMaps[i].get(node), getFamily));\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_l && !_l.done && (_c = _k.return)) _c.call(_k);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var _m = __values(maps.keys()), _o = _m.next(); !_o.done; _o = _m.next()) {\n var i = _o.value;\n try {\n for (var _p = (e_6 = void 0, __values(domMaps[i].values())), _q = _p.next(); !_q.done; _q = _p.next()) {\n var node = _q.value;\n adaptor.remove(node);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_q && !_q.done && (_e = _p.return)) _e.call(_p);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_o && !_o.done && (_d = _m.return)) _d.call(_m);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return maps;\n };\n CommonOutputJax.prototype.getTestElement = function (node, display) {\n var adaptor = this.adaptor;\n if (!this.testInline) {\n this.testInline = this.html('mjx-test', { style: {\n display: 'inline-block',\n width: '100%',\n 'font-style': 'normal',\n 'font-weight': 'normal',\n 'font-size': '100%',\n 'font-size-adjust': 'none',\n 'text-indent': 0,\n 'text-transform': 'none',\n 'letter-spacing': 'normal',\n 'word-spacing': 'normal',\n overflow: 'hidden',\n height: '1px',\n 'margin-right': '-1px'\n } }, [\n this.html('mjx-left-box', { style: {\n display: 'inline-block',\n width: 0,\n 'float': 'left'\n } }),\n this.html('mjx-ex-box', { style: {\n position: 'absolute',\n overflow: 'hidden',\n width: '1px', height: '60ex'\n } }),\n this.html('mjx-right-box', { style: {\n display: 'inline-block',\n width: 0,\n 'float': 'right'\n } })\n ]);\n this.testDisplay = adaptor.clone(this.testInline);\n adaptor.setStyle(this.testDisplay, 'display', 'table');\n adaptor.setStyle(this.testDisplay, 'margin-right', '');\n adaptor.setStyle(adaptor.firstChild(this.testDisplay), 'display', 'none');\n var right = adaptor.lastChild(this.testDisplay);\n adaptor.setStyle(right, 'display', 'table-cell');\n adaptor.setStyle(right, 'width', '10000em');\n adaptor.setStyle(right, 'float', '');\n }\n return adaptor.append(node, adaptor.clone(display ? this.testDisplay : this.testInline));\n };\n CommonOutputJax.prototype.measureMetrics = function (node, getFamily) {\n var adaptor = this.adaptor;\n var family = (getFamily ? adaptor.fontFamily(node) : '');\n var em = adaptor.fontSize(node);\n var _a = __read(adaptor.nodeSize(adaptor.childNode(node, 1)), 2), w = _a[0], h = _a[1];\n var ex = (w ? h / 60 : em * this.options.exFactor);\n var containerWidth = (!w ? 1000000 : adaptor.getStyle(node, 'display') === 'table' ?\n adaptor.nodeSize(adaptor.lastChild(node))[0] - 1 :\n adaptor.nodeBBox(adaptor.lastChild(node)).left -\n adaptor.nodeBBox(adaptor.firstChild(node)).left - 2);\n var scale = Math.max(this.options.minScale, this.options.matchFontHeight ? ex / this.font.params.x_height / em : 1);\n var lineWidth = 1000000;\n return { em: em, ex: ex, containerWidth: containerWidth, lineWidth: lineWidth, scale: scale, family: family };\n };\n CommonOutputJax.prototype.styleSheet = function (html) {\n var e_7, _a;\n this.setDocument(html);\n this.cssStyles.clear();\n this.cssStyles.addStyles(this.constructor.commonStyles);\n if ('getStyles' in html) {\n try {\n for (var _b = __values(html.getStyles()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var styles = _c.value;\n this.cssStyles.addStyles(styles);\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n }\n this.addWrapperStyles(this.cssStyles);\n this.addFontStyles(this.cssStyles);\n var sheet = this.html('style', { id: 'MJX-styles' }, [this.text('\\n' + this.cssStyles.cssText + '\\n')]);\n return sheet;\n };\n CommonOutputJax.prototype.addFontStyles = function (styles) {\n styles.addStyles(this.font.styles);\n };\n CommonOutputJax.prototype.addWrapperStyles = function (styles) {\n var e_8, _a;\n try {\n for (var _b = __values(this.factory.getKinds()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var kind = _c.value;\n this.addClassStyles(this.factory.getNodeClass(kind), styles);\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_8) throw e_8.error; }\n }\n };\n CommonOutputJax.prototype.addClassStyles = function (CLASS, styles) {\n styles.addStyles(CLASS.styles);\n };\n CommonOutputJax.prototype.setDocument = function (html) {\n if (html) {\n this.document = html;\n this.adaptor.document = html.document;\n }\n };\n CommonOutputJax.prototype.html = function (type, def, content, ns) {\n if (def === void 0) { def = {}; }\n if (content === void 0) { content = []; }\n return this.adaptor.node(type, def, content, ns);\n };\n CommonOutputJax.prototype.text = function (text) {\n return this.adaptor.text(text);\n };\n CommonOutputJax.prototype.fixed = function (m, n) {\n if (n === void 0) { n = 3; }\n if (Math.abs(m) < .0006) {\n return '0';\n }\n return m.toFixed(n).replace(/\\.?0+$/, '');\n };\n CommonOutputJax.prototype.measureText = function (text, variant, font) {\n if (font === void 0) { font = ['', false, false]; }\n var node = this.unknownText(text, variant);\n if (variant === '-explicitFont') {\n var styles = this.cssFontStyles(font);\n this.adaptor.setAttributes(node, { style: styles });\n }\n return this.measureTextNodeWithCache(node, text, variant, font);\n };\n CommonOutputJax.prototype.measureTextNodeWithCache = function (text, chars, variant, font) {\n if (font === void 0) { font = ['', false, false]; }\n if (variant === '-explicitFont') {\n variant = [font[0], font[1] ? 'T' : 'F', font[2] ? 'T' : 'F', ''].join('-');\n }\n if (!this.unknownCache.has(variant)) {\n this.unknownCache.set(variant, new Map());\n }\n var map = this.unknownCache.get(variant);\n var cached = map.get(chars);\n if (cached)\n return cached;\n var bbox = this.measureTextNode(text);\n map.set(chars, bbox);\n return bbox;\n };\n CommonOutputJax.prototype.measureXMLnode = function (xml) {\n var adaptor = this.adaptor;\n var content = this.html('mjx-xml-block', { style: { display: 'inline-block' } }, [adaptor.clone(xml)]);\n var base = this.html('mjx-baseline', { style: { display: 'inline-block', width: 0, height: 0 } });\n var style = {\n position: 'absolute',\n display: 'inline-block',\n 'font-family': 'initial',\n 'line-height': 'normal'\n };\n var node = this.html('mjx-measure-xml', { style: style }, [base, content]);\n adaptor.append(adaptor.parent(this.math.start.node), this.container);\n adaptor.append(this.container, node);\n var em = this.math.metrics.em * this.math.metrics.scale;\n var _a = adaptor.nodeBBox(content), left = _a.left, right = _a.right, bottom = _a.bottom, top = _a.top;\n var w = (right - left) / em;\n var h = (adaptor.nodeBBox(base).top - top) / em;\n var d = (bottom - top) / em - h;\n adaptor.remove(this.container);\n adaptor.remove(node);\n return { w: w, h: h, d: d };\n };\n CommonOutputJax.prototype.cssFontStyles = function (font, styles) {\n if (styles === void 0) { styles = {}; }\n var _a = __read(font, 3), family = _a[0], italic = _a[1], bold = _a[2];\n styles['font-family'] = this.font.getFamily(family);\n if (italic)\n styles['font-style'] = 'italic';\n if (bold)\n styles['font-weight'] = 'bold';\n return styles;\n };\n CommonOutputJax.prototype.getFontData = function (styles) {\n if (!styles) {\n styles = new Styles_js_1.Styles();\n }\n return [this.font.getFamily(styles.get('font-family')),\n styles.get('font-style') === 'italic',\n styles.get('font-weight') === 'bold'];\n };\n CommonOutputJax.NAME = 'Common';\n CommonOutputJax.OPTIONS = __assign(__assign({}, OutputJax_js_1.AbstractOutputJax.OPTIONS), { scale: 1, minScale: .5, mtextInheritFont: false, merrorInheritFont: false, mtextFont: '', merrorFont: 'serif', mathmlSpacing: false, skipAttributes: {}, exFactor: .5, displayAlign: 'center', displayIndent: '0', wrapperFactory: null, font: null, cssStyles: null });\n CommonOutputJax.commonStyles = {};\n return CommonOutputJax;\n}(OutputJax_js_1.AbstractOutputJax));\nexports.CommonOutputJax = CommonOutputJax;\n//# sourceMappingURL=OutputJax.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonWrapper = void 0;\nvar Wrapper_js_1 = require(\"../../core/Tree/Wrapper.js\");\nvar MmlNode_js_1 = require(\"../../core/MmlTree/MmlNode.js\");\nvar string_js_1 = require(\"../../util/string.js\");\nvar LENGTHS = __importStar(require(\"../../util/lengths.js\"));\nvar Styles_js_1 = require(\"../../util/Styles.js\");\nvar BBox_js_1 = require(\"../../util/BBox.js\");\nvar FontData_js_1 = require(\"./FontData.js\");\nvar SMALLSIZE = 2 / 18;\nfunction MathMLSpace(script, size) {\n return (script ? size < SMALLSIZE ? 0 : SMALLSIZE : size);\n}\nvar CommonWrapper = (function (_super) {\n __extends(CommonWrapper, _super);\n function CommonWrapper(factory, node, parent) {\n if (parent === void 0) { parent = null; }\n var _this = _super.call(this, factory, node) || this;\n _this.parent = null;\n _this.removedStyles = null;\n _this.styles = null;\n _this.variant = '';\n _this.bboxComputed = false;\n _this.stretch = FontData_js_1.NOSTRETCH;\n _this.font = null;\n _this.parent = parent;\n _this.font = factory.jax.font;\n _this.bbox = BBox_js_1.BBox.zero();\n _this.getStyles();\n _this.getVariant();\n _this.getScale();\n _this.getSpace();\n _this.childNodes = node.childNodes.map(function (child) {\n var wrapped = _this.wrap(child);\n if (wrapped.bbox.pwidth && (node.notParent || node.isKind('math'))) {\n _this.bbox.pwidth = BBox_js_1.BBox.fullWidth;\n }\n return wrapped;\n });\n return _this;\n }\n Object.defineProperty(CommonWrapper.prototype, \"jax\", {\n get: function () {\n return this.factory.jax;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CommonWrapper.prototype, \"adaptor\", {\n get: function () {\n return this.factory.jax.adaptor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CommonWrapper.prototype, \"metrics\", {\n get: function () {\n return this.factory.jax.math.metrics;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CommonWrapper.prototype, \"fixesPWidth\", {\n get: function () {\n return !this.node.notParent && !this.node.isToken;\n },\n enumerable: false,\n configurable: true\n });\n CommonWrapper.prototype.wrap = function (node, parent) {\n if (parent === void 0) { parent = null; }\n var wrapped = this.factory.wrap(node, parent || this);\n if (parent) {\n parent.childNodes.push(wrapped);\n }\n this.jax.nodeMap.set(node, wrapped);\n return wrapped;\n };\n CommonWrapper.prototype.getBBox = function (save) {\n if (save === void 0) { save = true; }\n if (this.bboxComputed) {\n return this.bbox;\n }\n var bbox = (save ? this.bbox : BBox_js_1.BBox.zero());\n this.computeBBox(bbox);\n this.bboxComputed = save;\n return bbox;\n };\n CommonWrapper.prototype.getOuterBBox = function (save) {\n var e_1, _a;\n if (save === void 0) { save = true; }\n var bbox = this.getBBox(save);\n if (!this.styles)\n return bbox;\n var obox = new BBox_js_1.BBox();\n Object.assign(obox, bbox);\n try {\n for (var _b = __values(BBox_js_1.BBox.StyleAdjust), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), name_1 = _d[0], side = _d[1];\n var x = this.styles.get(name_1);\n if (x) {\n obox[side] += this.length2em(x, 1, obox.rscale);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return obox;\n };\n CommonWrapper.prototype.computeBBox = function (bbox, recompute) {\n var e_2, _a;\n if (recompute === void 0) { recompute = false; }\n bbox.empty();\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n bbox.append(child.getOuterBBox());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n bbox.clean();\n if (this.fixesPWidth && this.setChildPWidths(recompute)) {\n this.computeBBox(bbox, true);\n }\n };\n CommonWrapper.prototype.setChildPWidths = function (recompute, w, clear) {\n var e_3, _a;\n if (w === void 0) { w = null; }\n if (clear === void 0) { clear = true; }\n if (recompute) {\n return false;\n }\n if (clear) {\n this.bbox.pwidth = '';\n }\n var changed = false;\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n var cbox = child.getOuterBBox();\n if (cbox.pwidth && child.setChildPWidths(recompute, w === null ? cbox.w : w, clear)) {\n changed = true;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return changed;\n };\n CommonWrapper.prototype.invalidateBBox = function () {\n if (this.bboxComputed) {\n this.bboxComputed = false;\n if (this.parent) {\n this.parent.invalidateBBox();\n }\n }\n };\n CommonWrapper.prototype.copySkewIC = function (bbox) {\n var first = this.childNodes[0];\n if (first === null || first === void 0 ? void 0 : first.bbox.sk) {\n bbox.sk = first.bbox.sk;\n }\n if (first === null || first === void 0 ? void 0 : first.bbox.dx) {\n bbox.dx = first.bbox.dx;\n }\n var last = this.childNodes[this.childNodes.length - 1];\n if (last === null || last === void 0 ? void 0 : last.bbox.ic) {\n bbox.ic = last.bbox.ic;\n bbox.w += bbox.ic;\n }\n };\n CommonWrapper.prototype.getStyles = function () {\n var styleString = this.node.attributes.getExplicit('style');\n if (!styleString)\n return;\n var style = this.styles = new Styles_js_1.Styles(styleString);\n for (var i = 0, m = CommonWrapper.removeStyles.length; i < m; i++) {\n var id = CommonWrapper.removeStyles[i];\n if (style.get(id)) {\n if (!this.removedStyles)\n this.removedStyles = {};\n this.removedStyles[id] = style.get(id);\n style.set(id, '');\n }\n }\n };\n CommonWrapper.prototype.getVariant = function () {\n if (!this.node.isToken)\n return;\n var attributes = this.node.attributes;\n var variant = attributes.get('mathvariant');\n if (!attributes.getExplicit('mathvariant')) {\n var values = attributes.getList('fontfamily', 'fontweight', 'fontstyle');\n if (this.removedStyles) {\n var style = this.removedStyles;\n if (style.fontFamily)\n values.family = style.fontFamily;\n if (style.fontWeight)\n values.weight = style.fontWeight;\n if (style.fontStyle)\n values.style = style.fontStyle;\n }\n if (values.fontfamily)\n values.family = values.fontfamily;\n if (values.fontweight)\n values.weight = values.fontweight;\n if (values.fontstyle)\n values.style = values.fontstyle;\n if (values.weight && values.weight.match(/^\\d+$/)) {\n values.weight = (parseInt(values.weight) > 600 ? 'bold' : 'normal');\n }\n if (values.family) {\n variant = this.explicitVariant(values.family, values.weight, values.style);\n }\n else {\n if (this.node.getProperty('variantForm'))\n variant = '-tex-variant';\n variant = (CommonWrapper.BOLDVARIANTS[values.weight] || {})[variant] || variant;\n variant = (CommonWrapper.ITALICVARIANTS[values.style] || {})[variant] || variant;\n }\n }\n this.variant = variant;\n };\n CommonWrapper.prototype.explicitVariant = function (fontFamily, fontWeight, fontStyle) {\n var style = this.styles;\n if (!style)\n style = this.styles = new Styles_js_1.Styles();\n style.set('fontFamily', fontFamily);\n if (fontWeight)\n style.set('fontWeight', fontWeight);\n if (fontStyle)\n style.set('fontStyle', fontStyle);\n return '-explicitFont';\n };\n CommonWrapper.prototype.getScale = function () {\n var scale = 1, parent = this.parent;\n var pscale = (parent ? parent.bbox.scale : 1);\n var attributes = this.node.attributes;\n var scriptlevel = Math.min(attributes.get('scriptlevel'), 2);\n var fontsize = attributes.get('fontsize');\n var mathsize = (this.node.isToken || this.node.isKind('mstyle') ?\n attributes.get('mathsize') : attributes.getInherited('mathsize'));\n if (scriptlevel !== 0) {\n scale = Math.pow(attributes.get('scriptsizemultiplier'), scriptlevel);\n var scriptminsize = this.length2em(attributes.get('scriptminsize'), .8, 1);\n if (scale < scriptminsize)\n scale = scriptminsize;\n }\n if (this.removedStyles && this.removedStyles.fontSize && !fontsize) {\n fontsize = this.removedStyles.fontSize;\n }\n if (fontsize && !attributes.getExplicit('mathsize')) {\n mathsize = fontsize;\n }\n if (mathsize !== '1') {\n scale *= this.length2em(mathsize, 1, 1);\n }\n this.bbox.scale = scale;\n this.bbox.rscale = scale / pscale;\n };\n CommonWrapper.prototype.getSpace = function () {\n var isTop = this.isTopEmbellished();\n var hasSpacing = this.node.hasSpacingAttributes();\n if (this.jax.options.mathmlSpacing || hasSpacing) {\n isTop && this.getMathMLSpacing();\n }\n else {\n this.getTeXSpacing(isTop, hasSpacing);\n }\n };\n CommonWrapper.prototype.getMathMLSpacing = function () {\n var node = this.node.coreMO();\n var child = node.coreParent();\n var parent = child.parent;\n if (!parent || !parent.isKind('mrow') || parent.childNodes.length === 1)\n return;\n var attributes = node.attributes;\n var isScript = (attributes.get('scriptlevel') > 0);\n this.bbox.L = (attributes.isSet('lspace') ?\n Math.max(0, this.length2em(attributes.get('lspace'))) :\n MathMLSpace(isScript, node.lspace));\n this.bbox.R = (attributes.isSet('rspace') ?\n Math.max(0, this.length2em(attributes.get('rspace'))) :\n MathMLSpace(isScript, node.rspace));\n var n = parent.childIndex(child);\n if (n === 0)\n return;\n var prev = parent.childNodes[n - 1];\n if (!prev.isEmbellished)\n return;\n var bbox = this.jax.nodeMap.get(prev).getBBox();\n if (bbox.R) {\n this.bbox.L = Math.max(0, this.bbox.L - bbox.R);\n }\n };\n CommonWrapper.prototype.getTeXSpacing = function (isTop, hasSpacing) {\n if (!hasSpacing) {\n var space = this.node.texSpacing();\n if (space) {\n this.bbox.L = this.length2em(space);\n }\n }\n if (isTop || hasSpacing) {\n var attributes = this.node.coreMO().attributes;\n if (attributes.isSet('lspace')) {\n this.bbox.L = Math.max(0, this.length2em(attributes.get('lspace')));\n }\n if (attributes.isSet('rspace')) {\n this.bbox.R = Math.max(0, this.length2em(attributes.get('rspace')));\n }\n }\n };\n CommonWrapper.prototype.isTopEmbellished = function () {\n return (this.node.isEmbellished &&\n !(this.node.parent && this.node.parent.isEmbellished));\n };\n CommonWrapper.prototype.core = function () {\n return this.jax.nodeMap.get(this.node.core());\n };\n CommonWrapper.prototype.coreMO = function () {\n return this.jax.nodeMap.get(this.node.coreMO());\n };\n CommonWrapper.prototype.getText = function () {\n var e_4, _a;\n var text = '';\n if (this.node.isToken) {\n try {\n for (var _b = __values(this.node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child instanceof MmlNode_js_1.TextNode) {\n text += child.getText();\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n return text;\n };\n CommonWrapper.prototype.canStretch = function (direction) {\n this.stretch = FontData_js_1.NOSTRETCH;\n if (this.node.isEmbellished) {\n var core = this.core();\n if (core && core.node !== this.node) {\n if (core.canStretch(direction)) {\n this.stretch = core.stretch;\n }\n }\n }\n return this.stretch.dir !== 0;\n };\n CommonWrapper.prototype.getAlignShift = function () {\n var _a;\n var _b = (_a = this.node.attributes).getList.apply(_a, __spreadArray([], __read(MmlNode_js_1.indentAttributes), false)), indentalign = _b.indentalign, indentshift = _b.indentshift, indentalignfirst = _b.indentalignfirst, indentshiftfirst = _b.indentshiftfirst;\n if (indentalignfirst !== 'indentalign') {\n indentalign = indentalignfirst;\n }\n if (indentalign === 'auto') {\n indentalign = this.jax.options.displayAlign;\n }\n if (indentshiftfirst !== 'indentshift') {\n indentshift = indentshiftfirst;\n }\n if (indentshift === 'auto') {\n indentshift = this.jax.options.displayIndent;\n if (indentalign === 'right' && !indentshift.match(/^\\s*0[a-z]*\\s*$/)) {\n indentshift = ('-' + indentshift.trim()).replace(/^--/, '');\n }\n }\n var shift = this.length2em(indentshift, this.metrics.containerWidth);\n return [indentalign, shift];\n };\n CommonWrapper.prototype.getAlignX = function (W, bbox, align) {\n return (align === 'right' ? W - (bbox.w + bbox.R) * bbox.rscale :\n align === 'left' ? bbox.L * bbox.rscale :\n (W - bbox.w * bbox.rscale) / 2);\n };\n CommonWrapper.prototype.getAlignY = function (H, D, h, d, align) {\n return (align === 'top' ? H - h :\n align === 'bottom' ? d - D :\n align === 'center' ? ((H - h) - (D - d)) / 2 :\n 0);\n };\n CommonWrapper.prototype.getWrapWidth = function (i) {\n return this.childNodes[i].getBBox().w;\n };\n CommonWrapper.prototype.getChildAlign = function (_i) {\n return 'left';\n };\n CommonWrapper.prototype.percent = function (m) {\n return LENGTHS.percent(m);\n };\n CommonWrapper.prototype.em = function (m) {\n return LENGTHS.em(m);\n };\n CommonWrapper.prototype.px = function (m, M) {\n if (M === void 0) { M = -LENGTHS.BIGDIMEN; }\n return LENGTHS.px(m, M, this.metrics.em);\n };\n CommonWrapper.prototype.length2em = function (length, size, scale) {\n if (size === void 0) { size = 1; }\n if (scale === void 0) { scale = null; }\n if (scale === null) {\n scale = this.bbox.scale;\n }\n return LENGTHS.length2em(length, size, scale, this.jax.pxPerEm);\n };\n CommonWrapper.prototype.unicodeChars = function (text, name) {\n if (name === void 0) { name = this.variant; }\n var chars = (0, string_js_1.unicodeChars)(text);\n var variant = this.font.getVariant(name);\n if (variant && variant.chars) {\n var map_1 = variant.chars;\n chars = chars.map(function (n) { return ((map_1[n] || [])[3] || {}).smp || n; });\n }\n return chars;\n };\n CommonWrapper.prototype.remapChars = function (chars) {\n return chars;\n };\n CommonWrapper.prototype.mmlText = function (text) {\n return this.node.factory.create('text').setText(text);\n };\n CommonWrapper.prototype.mmlNode = function (kind, properties, children) {\n if (properties === void 0) { properties = {}; }\n if (children === void 0) { children = []; }\n return this.node.factory.create(kind, properties, children);\n };\n CommonWrapper.prototype.createMo = function (text) {\n var mmlFactory = this.node.factory;\n var textNode = mmlFactory.create('text').setText(text);\n var mml = mmlFactory.create('mo', { stretchy: true }, [textNode]);\n mml.inheritAttributesFrom(this.node);\n var node = this.wrap(mml);\n node.parent = this;\n return node;\n };\n CommonWrapper.prototype.getVariantChar = function (variant, n) {\n var char = this.font.getChar(variant, n) || [0, 0, 0, { unknown: true }];\n if (char.length === 3) {\n char[3] = {};\n }\n return char;\n };\n CommonWrapper.kind = 'unknown';\n CommonWrapper.styles = {};\n CommonWrapper.removeStyles = [\n 'fontSize', 'fontFamily', 'fontWeight',\n 'fontStyle', 'fontVariant', 'font'\n ];\n CommonWrapper.skipAttributes = {\n fontfamily: true, fontsize: true, fontweight: true, fontstyle: true,\n color: true, background: true,\n 'class': true, href: true, style: true,\n xmlns: true\n };\n CommonWrapper.BOLDVARIANTS = {\n bold: {\n normal: 'bold',\n italic: 'bold-italic',\n fraktur: 'bold-fraktur',\n script: 'bold-script',\n 'sans-serif': 'bold-sans-serif',\n 'sans-serif-italic': 'sans-serif-bold-italic'\n },\n normal: {\n bold: 'normal',\n 'bold-italic': 'italic',\n 'bold-fraktur': 'fraktur',\n 'bold-script': 'script',\n 'bold-sans-serif': 'sans-serif',\n 'sans-serif-bold-italic': 'sans-serif-italic'\n }\n };\n CommonWrapper.ITALICVARIANTS = {\n italic: {\n normal: 'italic',\n bold: 'bold-italic',\n 'sans-serif': 'sans-serif-italic',\n 'bold-sans-serif': 'sans-serif-bold-italic'\n },\n normal: {\n italic: 'normal',\n 'bold-italic': 'bold',\n 'sans-serif-italic': 'sans-serif',\n 'sans-serif-bold-italic': 'bold-sans-serif'\n }\n };\n return CommonWrapper;\n}(Wrapper_js_1.AbstractWrapper));\nexports.CommonWrapper = CommonWrapper;\n//# sourceMappingURL=Wrapper.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonWrapperFactory = void 0;\nvar WrapperFactory_js_1 = require(\"../../core/Tree/WrapperFactory.js\");\nvar CommonWrapperFactory = (function (_super) {\n __extends(CommonWrapperFactory, _super);\n function CommonWrapperFactory() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.jax = null;\n return _this;\n }\n Object.defineProperty(CommonWrapperFactory.prototype, \"Wrappers\", {\n get: function () {\n return this.node;\n },\n enumerable: false,\n configurable: true\n });\n CommonWrapperFactory.defaultNodes = {};\n return CommonWrapperFactory;\n}(WrapperFactory_js_1.AbstractWrapperFactory));\nexports.CommonWrapperFactory = CommonWrapperFactory;\n//# sourceMappingURL=WrapperFactory.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonTeXAtomMixin = void 0;\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nfunction CommonTeXAtomMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n _super.prototype.computeBBox.call(this, bbox, recompute);\n if (this.childNodes[0] && this.childNodes[0].bbox.ic) {\n bbox.ic = this.childNodes[0].bbox.ic;\n }\n if (this.node.texClass === MmlNode_js_1.TEXCLASS.VCENTER) {\n var h = bbox.h, d = bbox.d;\n var a = this.font.params.axis_height;\n var dh = ((h + d) / 2 + a) - h;\n bbox.h += dh;\n bbox.d -= dh;\n }\n };\n return class_1;\n }(Base));\n}\nexports.CommonTeXAtomMixin = CommonTeXAtomMixin;\n//# sourceMappingURL=TeXAtom.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonTextNodeMixin = void 0;\nfunction CommonTextNodeMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.computeBBox = function (bbox, _recompute) {\n var e_1, _a;\n if (_recompute === void 0) { _recompute = false; }\n var variant = this.parent.variant;\n var text = this.node.getText();\n if (variant === '-explicitFont') {\n var font = this.jax.getFontData(this.parent.styles);\n var _b = this.jax.measureText(text, variant, font), w = _b.w, h = _b.h, d = _b.d;\n bbox.h = h;\n bbox.d = d;\n bbox.w = w;\n }\n else {\n var chars = this.remappedText(text, variant);\n bbox.empty();\n try {\n for (var chars_1 = __values(chars), chars_1_1 = chars_1.next(); !chars_1_1.done; chars_1_1 = chars_1.next()) {\n var char = chars_1_1.value;\n var _c = __read(this.getVariantChar(variant, char), 4), h = _c[0], d = _c[1], w = _c[2], data = _c[3];\n if (data.unknown) {\n var cbox = this.jax.measureText(String.fromCodePoint(char), variant);\n w = cbox.w;\n h = cbox.h;\n d = cbox.d;\n }\n bbox.w += w;\n if (h > bbox.h)\n bbox.h = h;\n if (d > bbox.d)\n bbox.d = d;\n bbox.ic = data.ic || 0;\n bbox.sk = data.sk || 0;\n bbox.dx = data.dx || 0;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (chars_1_1 && !chars_1_1.done && (_a = chars_1.return)) _a.call(chars_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (chars.length > 1) {\n bbox.sk = 0;\n }\n bbox.clean();\n }\n };\n class_1.prototype.remappedText = function (text, variant) {\n var c = this.parent.stretch.c;\n return (c ? [c] : this.parent.remapChars(this.unicodeChars(text, variant)));\n };\n class_1.prototype.getStyles = function () { };\n class_1.prototype.getVariant = function () { };\n class_1.prototype.getScale = function () { };\n class_1.prototype.getSpace = function () { };\n return class_1;\n }(Base));\n}\nexports.CommonTextNodeMixin = CommonTextNodeMixin;\n//# sourceMappingURL=TextNode.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMactionMixin = exports.TooltipData = void 0;\nvar string_js_1 = require(\"../../../util/string.js\");\nexports.TooltipData = {\n dx: '.2em',\n dy: '.1em',\n postDelay: 600,\n clearDelay: 100,\n hoverTimer: new Map(),\n clearTimer: new Map(),\n stopTimers: function (node, data) {\n if (data.clearTimer.has(node)) {\n clearTimeout(data.clearTimer.get(node));\n data.clearTimer.delete(node);\n }\n if (data.hoverTimer.has(node)) {\n clearTimeout(data.hoverTimer.get(node));\n data.hoverTimer.delete(node);\n }\n }\n};\nfunction CommonMactionMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n var actions = _this.constructor.actions;\n var action = _this.node.attributes.get('actiontype');\n var _a = __read(actions.get(action) || [(function (_node, _data) { }), {}], 2), handler = _a[0], data = _a[1];\n _this.action = handler;\n _this.data = data;\n _this.getParameters();\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"selected\", {\n get: function () {\n var selection = this.node.attributes.get('selection');\n var i = Math.max(1, Math.min(this.childNodes.length, selection)) - 1;\n return this.childNodes[i] || this.wrap(this.node.selected);\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.getParameters = function () {\n var offsets = this.node.attributes.get('data-offsets');\n var _a = __read((0, string_js_1.split)(offsets || ''), 2), dx = _a[0], dy = _a[1];\n this.dx = this.length2em(dx || exports.TooltipData.dx);\n this.dy = this.length2em(dy || exports.TooltipData.dy);\n };\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n bbox.updateFrom(this.selected.getOuterBBox());\n this.selected.setChildPWidths(recompute);\n };\n return class_1;\n }(Base));\n}\nexports.CommonMactionMixin = CommonMactionMixin;\n//# sourceMappingURL=maction.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMathMixin = void 0;\nfunction CommonMathMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.getWrapWidth = function (_i) {\n return (this.parent ? this.getBBox().w : this.metrics.containerWidth / this.jax.pxPerEm);\n };\n return class_1;\n }(Base));\n}\nexports.CommonMathMixin = CommonMathMixin;\n//# sourceMappingURL=math.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMencloseMixin = void 0;\nvar Notation = __importStar(require(\"../Notation.js\"));\nvar string_js_1 = require(\"../../../util/string.js\");\nfunction CommonMencloseMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.notations = {};\n _this.renderChild = null;\n _this.msqrt = null;\n _this.padding = Notation.PADDING;\n _this.thickness = Notation.THICKNESS;\n _this.arrowhead = { x: Notation.ARROWX, y: Notation.ARROWY, dx: Notation.ARROWDX };\n _this.TRBL = [0, 0, 0, 0];\n _this.getParameters();\n _this.getNotations();\n _this.removeRedundantNotations();\n _this.initializeNotations();\n _this.TRBL = _this.getBBoxExtenders();\n return _this;\n }\n class_1.prototype.getParameters = function () {\n var attributes = this.node.attributes;\n var padding = attributes.get('data-padding');\n if (padding !== undefined) {\n this.padding = this.length2em(padding, Notation.PADDING);\n }\n var thickness = attributes.get('data-thickness');\n if (thickness !== undefined) {\n this.thickness = this.length2em(thickness, Notation.THICKNESS);\n }\n var arrowhead = attributes.get('data-arrowhead');\n if (arrowhead !== undefined) {\n var _b = __read((0, string_js_1.split)(arrowhead), 3), x = _b[0], y = _b[1], dx = _b[2];\n this.arrowhead = {\n x: (x ? parseFloat(x) : Notation.ARROWX),\n y: (y ? parseFloat(y) : Notation.ARROWY),\n dx: (dx ? parseFloat(dx) : Notation.ARROWDX)\n };\n }\n };\n class_1.prototype.getNotations = function () {\n var e_1, _b;\n var Notations = this.constructor.notations;\n try {\n for (var _c = __values((0, string_js_1.split)(this.node.attributes.get('notation'))), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_1 = _d.value;\n var notation = Notations.get(name_1);\n if (notation) {\n this.notations[name_1] = notation;\n if (notation.renderChild) {\n this.renderChild = notation.renderer;\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n class_1.prototype.removeRedundantNotations = function () {\n var e_2, _b, e_3, _c;\n try {\n for (var _d = __values(Object.keys(this.notations)), _e = _d.next(); !_e.done; _e = _d.next()) {\n var name_2 = _e.value;\n if (this.notations[name_2]) {\n var remove = this.notations[name_2].remove || '';\n try {\n for (var _f = (e_3 = void 0, __values(remove.split(/ /))), _g = _f.next(); !_g.done; _g = _f.next()) {\n var notation = _g.value;\n delete this.notations[notation];\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_c = _f.return)) _c.call(_f);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n class_1.prototype.initializeNotations = function () {\n var e_4, _b;\n try {\n for (var _c = __values(Object.keys(this.notations)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_3 = _d.value;\n var init = this.notations[name_3].init;\n init && init(this);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n var _b = __read(this.TRBL, 4), T = _b[0], R = _b[1], B = _b[2], L = _b[3];\n var child = this.childNodes[0].getBBox();\n bbox.combine(child, L, 0);\n bbox.h += T;\n bbox.d += B;\n bbox.w += R;\n this.setChildPWidths(recompute);\n };\n class_1.prototype.getBBoxExtenders = function () {\n var e_5, _b;\n var TRBL = [0, 0, 0, 0];\n try {\n for (var _c = __values(Object.keys(this.notations)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_4 = _d.value;\n this.maximizeEntries(TRBL, this.notations[name_4].bbox(this));\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return TRBL;\n };\n class_1.prototype.getPadding = function () {\n var e_6, _b;\n var _this = this;\n var BTRBL = [0, 0, 0, 0];\n try {\n for (var _c = __values(Object.keys(this.notations)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_5 = _d.value;\n var border = this.notations[name_5].border;\n if (border) {\n this.maximizeEntries(BTRBL, border(this));\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_6) throw e_6.error; }\n }\n return [0, 1, 2, 3].map(function (i) { return _this.TRBL[i] - BTRBL[i]; });\n };\n class_1.prototype.maximizeEntries = function (X, Y) {\n for (var i = 0; i < X.length; i++) {\n if (X[i] < Y[i]) {\n X[i] = Y[i];\n }\n }\n };\n class_1.prototype.getOffset = function (direction) {\n var _b = __read(this.TRBL, 4), T = _b[0], R = _b[1], B = _b[2], L = _b[3];\n var d = (direction === 'X' ? R - L : B - T) / 2;\n return (Math.abs(d) > .001 ? d : 0);\n };\n class_1.prototype.getArgMod = function (w, h) {\n return [Math.atan2(h, w), Math.sqrt(w * w + h * h)];\n };\n class_1.prototype.arrow = function (_w, _a, _double, _offset, _dist) {\n if (_offset === void 0) { _offset = ''; }\n if (_dist === void 0) { _dist = 0; }\n return null;\n };\n class_1.prototype.arrowData = function () {\n var _b = __read([this.padding, this.thickness], 2), p = _b[0], t = _b[1];\n var r = t * (this.arrowhead.x + Math.max(1, this.arrowhead.dx));\n var _c = this.childNodes[0].getBBox(), h = _c.h, d = _c.d, w = _c.w;\n var H = h + d;\n var R = Math.sqrt(H * H + w * w);\n var x = Math.max(p, r * w / R);\n var y = Math.max(p, r * H / R);\n var _d = __read(this.getArgMod(w + 2 * x, H + 2 * y), 2), a = _d[0], W = _d[1];\n return { a: a, W: W, x: x, y: y };\n };\n class_1.prototype.arrowAW = function () {\n var _b = this.childNodes[0].getBBox(), h = _b.h, d = _b.d, w = _b.w;\n var _c = __read(this.TRBL, 4), T = _c[0], R = _c[1], B = _c[2], L = _c[3];\n return this.getArgMod(L + w + R, T + h + d + B);\n };\n class_1.prototype.createMsqrt = function (child) {\n var mmlFactory = this.node.factory;\n var mml = mmlFactory.create('msqrt');\n mml.inheritAttributesFrom(this.node);\n mml.childNodes[0] = child.node;\n var node = this.wrap(mml);\n node.parent = this;\n return node;\n };\n class_1.prototype.sqrtTRBL = function () {\n var bbox = this.msqrt.getBBox();\n var cbox = this.msqrt.childNodes[0].getBBox();\n return [bbox.h - cbox.h, 0, bbox.d - cbox.d, bbox.w - cbox.w];\n };\n return class_1;\n }(Base));\n}\nexports.CommonMencloseMixin = CommonMencloseMixin;\n//# sourceMappingURL=menclose.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMfencedMixin = void 0;\nfunction CommonMfencedMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.mrow = null;\n _this.createMrow();\n _this.addMrowChildren();\n return _this;\n }\n class_1.prototype.createMrow = function () {\n var mmlFactory = this.node.factory;\n var mrow = mmlFactory.create('inferredMrow');\n mrow.inheritAttributesFrom(this.node);\n this.mrow = this.wrap(mrow);\n this.mrow.parent = this;\n };\n class_1.prototype.addMrowChildren = function () {\n var e_1, _a;\n var mfenced = this.node;\n var mrow = this.mrow;\n this.addMo(mfenced.open);\n if (this.childNodes.length) {\n mrow.childNodes.push(this.childNodes[0]);\n }\n var i = 0;\n try {\n for (var _b = __values(this.childNodes.slice(1)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n this.addMo(mfenced.separators[i++]);\n mrow.childNodes.push(child);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.addMo(mfenced.close);\n mrow.stretchChildren();\n };\n class_1.prototype.addMo = function (node) {\n if (!node)\n return;\n var mo = this.wrap(node);\n this.mrow.childNodes.push(mo);\n mo.parent = this.mrow;\n };\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n bbox.updateFrom(this.mrow.getOuterBBox());\n this.setChildPWidths(recompute);\n };\n return class_1;\n }(Base));\n}\nexports.CommonMfencedMixin = CommonMfencedMixin;\n//# sourceMappingURL=mfenced.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMfracMixin = void 0;\nfunction CommonMfracMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.bevel = null;\n _this.pad = (_this.node.getProperty('withDelims') ? 0 : _this.font.params.nulldelimiterspace);\n if (_this.node.attributes.get('bevelled')) {\n var H = _this.getBevelData(_this.isDisplay()).H;\n var bevel = _this.bevel = _this.createMo('/');\n bevel.node.attributes.set('symmetric', true);\n bevel.canStretch(1);\n bevel.getStretchedVariant([H], true);\n }\n return _this;\n }\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n bbox.empty();\n var _a = this.node.attributes.getList('linethickness', 'bevelled'), linethickness = _a.linethickness, bevelled = _a.bevelled;\n var display = this.isDisplay();\n var w = null;\n if (bevelled) {\n this.getBevelledBBox(bbox, display);\n }\n else {\n var thickness = this.length2em(String(linethickness), .06);\n w = -2 * this.pad;\n if (thickness === 0) {\n this.getAtopBBox(bbox, display);\n }\n else {\n this.getFractionBBox(bbox, display, thickness);\n w -= .2;\n }\n w += bbox.w;\n }\n bbox.clean();\n this.setChildPWidths(recompute, w);\n };\n class_1.prototype.getFractionBBox = function (bbox, display, t) {\n var nbox = this.childNodes[0].getOuterBBox();\n var dbox = this.childNodes[1].getOuterBBox();\n var tex = this.font.params;\n var a = tex.axis_height;\n var _a = this.getTUV(display, t), T = _a.T, u = _a.u, v = _a.v;\n bbox.combine(nbox, 0, a + T + Math.max(nbox.d * nbox.rscale, u));\n bbox.combine(dbox, 0, a - T - Math.max(dbox.h * dbox.rscale, v));\n bbox.w += 2 * this.pad + .2;\n };\n class_1.prototype.getTUV = function (display, t) {\n var tex = this.font.params;\n var a = tex.axis_height;\n var T = (display ? 3.5 : 1.5) * t;\n return { T: (display ? 3.5 : 1.5) * t,\n u: (display ? tex.num1 : tex.num2) - a - T,\n v: (display ? tex.denom1 : tex.denom2) + a - T };\n };\n class_1.prototype.getAtopBBox = function (bbox, display) {\n var _a = this.getUVQ(display), u = _a.u, v = _a.v, nbox = _a.nbox, dbox = _a.dbox;\n bbox.combine(nbox, 0, u);\n bbox.combine(dbox, 0, -v);\n bbox.w += 2 * this.pad;\n };\n class_1.prototype.getUVQ = function (display) {\n var nbox = this.childNodes[0].getOuterBBox();\n var dbox = this.childNodes[1].getOuterBBox();\n var tex = this.font.params;\n var _a = __read((display ? [tex.num1, tex.denom1] : [tex.num3, tex.denom2]), 2), u = _a[0], v = _a[1];\n var p = (display ? 7 : 3) * tex.rule_thickness;\n var q = (u - nbox.d * nbox.scale) - (dbox.h * dbox.scale - v);\n if (q < p) {\n u += (p - q) / 2;\n v += (p - q) / 2;\n q = p;\n }\n return { u: u, v: v, q: q, nbox: nbox, dbox: dbox };\n };\n class_1.prototype.getBevelledBBox = function (bbox, display) {\n var _a = this.getBevelData(display), u = _a.u, v = _a.v, delta = _a.delta, nbox = _a.nbox, dbox = _a.dbox;\n var lbox = this.bevel.getOuterBBox();\n bbox.combine(nbox, 0, u);\n bbox.combine(lbox, bbox.w - delta / 2, 0);\n bbox.combine(dbox, bbox.w - delta / 2, v);\n };\n class_1.prototype.getBevelData = function (display) {\n var nbox = this.childNodes[0].getOuterBBox();\n var dbox = this.childNodes[1].getOuterBBox();\n var delta = (display ? .4 : .15);\n var H = Math.max(nbox.scale * (nbox.h + nbox.d), dbox.scale * (dbox.h + dbox.d)) + 2 * delta;\n var a = this.font.params.axis_height;\n var u = nbox.scale * (nbox.d - nbox.h) / 2 + a + delta;\n var v = dbox.scale * (dbox.d - dbox.h) / 2 + a - delta;\n return { H: H, delta: delta, u: u, v: v, nbox: nbox, dbox: dbox };\n };\n class_1.prototype.canStretch = function (_direction) {\n return false;\n };\n class_1.prototype.isDisplay = function () {\n var _a = this.node.attributes.getList('displaystyle', 'scriptlevel'), displaystyle = _a.displaystyle, scriptlevel = _a.scriptlevel;\n return displaystyle && scriptlevel === 0;\n };\n class_1.prototype.getWrapWidth = function (i) {\n var attributes = this.node.attributes;\n if (attributes.get('bevelled')) {\n return this.childNodes[i].getOuterBBox().w;\n }\n var w = this.getBBox().w;\n var thickness = this.length2em(attributes.get('linethickness'));\n return w - (thickness ? .2 : 0) - 2 * this.pad;\n };\n class_1.prototype.getChildAlign = function (i) {\n var attributes = this.node.attributes;\n return (attributes.get('bevelled') ? 'left' : attributes.get(['numalign', 'denomalign'][i]));\n };\n return class_1;\n }(Base));\n}\nexports.CommonMfracMixin = CommonMfracMixin;\n//# sourceMappingURL=mfrac.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMglyphMixin = void 0;\nfunction CommonMglyphMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.getParameters();\n return _this;\n }\n class_1.prototype.getParameters = function () {\n var _a = this.node.attributes.getList('width', 'height', 'valign', 'src', 'index'), width = _a.width, height = _a.height, valign = _a.valign, src = _a.src, index = _a.index;\n if (src) {\n this.width = (width === 'auto' ? 1 : this.length2em(width));\n this.height = (height === 'auto' ? 1 : this.length2em(height));\n this.valign = this.length2em(valign || '0');\n }\n else {\n var text = String.fromCodePoint(parseInt(index));\n var mmlFactory = this.node.factory;\n this.charWrapper = this.wrap(mmlFactory.create('text').setText(text));\n this.charWrapper.parent = this;\n }\n };\n class_1.prototype.computeBBox = function (bbox, _recompute) {\n if (_recompute === void 0) { _recompute = false; }\n if (this.charWrapper) {\n bbox.updateFrom(this.charWrapper.getBBox());\n }\n else {\n bbox.w = this.width;\n bbox.h = this.height + this.valign;\n bbox.d = -this.valign;\n }\n };\n return class_1;\n }(Base));\n}\nexports.CommonMglyphMixin = CommonMglyphMixin;\n//# sourceMappingURL=mglyph.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMiMixin = void 0;\nfunction CommonMiMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.computeBBox = function (bbox, _recompute) {\n if (_recompute === void 0) { _recompute = false; }\n _super.prototype.computeBBox.call(this, bbox);\n this.copySkewIC(bbox);\n };\n return class_1;\n }(Base));\n}\nexports.CommonMiMixin = CommonMiMixin;\n//# sourceMappingURL=mi.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMmultiscriptsMixin = exports.ScriptNames = exports.NextScript = void 0;\nvar BBox_js_1 = require(\"../../../util/BBox.js\");\nexports.NextScript = {\n base: 'subList',\n subList: 'supList',\n supList: 'subList',\n psubList: 'psupList',\n psupList: 'psubList',\n};\nexports.ScriptNames = ['sup', 'sup', 'psup', 'psub'];\nfunction CommonMmultiscriptsMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.scriptData = null;\n _this.firstPrescript = 0;\n _this.getScriptData();\n return _this;\n }\n class_1.prototype.combinePrePost = function (pre, post) {\n var bbox = new BBox_js_1.BBox(pre);\n bbox.combine(post, 0, 0);\n return bbox;\n };\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n var scriptspace = this.font.params.scriptspace;\n var data = this.scriptData;\n var sub = this.combinePrePost(data.sub, data.psub);\n var sup = this.combinePrePost(data.sup, data.psup);\n var _a = __read(this.getUVQ(sub, sup), 2), u = _a[0], v = _a[1];\n bbox.empty();\n if (data.numPrescripts) {\n bbox.combine(data.psup, scriptspace, u);\n bbox.combine(data.psub, scriptspace, v);\n }\n bbox.append(data.base);\n if (data.numScripts) {\n var w = bbox.w;\n bbox.combine(data.sup, w, u);\n bbox.combine(data.sub, w, v);\n bbox.w += scriptspace;\n }\n bbox.clean();\n this.setChildPWidths(recompute);\n };\n class_1.prototype.getScriptData = function () {\n var data = this.scriptData = {\n base: null, sub: BBox_js_1.BBox.empty(), sup: BBox_js_1.BBox.empty(), psub: BBox_js_1.BBox.empty(), psup: BBox_js_1.BBox.empty(),\n numPrescripts: 0, numScripts: 0\n };\n var lists = this.getScriptBBoxLists();\n this.combineBBoxLists(data.sub, data.sup, lists.subList, lists.supList);\n this.combineBBoxLists(data.psub, data.psup, lists.psubList, lists.psupList);\n data.base = lists.base[0];\n data.numPrescripts = lists.psubList.length;\n data.numScripts = lists.subList.length;\n };\n class_1.prototype.getScriptBBoxLists = function () {\n var e_1, _a;\n var lists = {\n base: [], subList: [], supList: [], psubList: [], psupList: []\n };\n var script = 'base';\n try {\n for (var _b = __values(this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.node.isKind('mprescripts')) {\n script = 'psubList';\n }\n else {\n lists[script].push(child.getOuterBBox());\n script = exports.NextScript[script];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.firstPrescript = lists.subList.length + lists.supList.length + 2;\n this.padLists(lists.subList, lists.supList);\n this.padLists(lists.psubList, lists.psupList);\n return lists;\n };\n class_1.prototype.padLists = function (list1, list2) {\n if (list1.length > list2.length) {\n list2.push(BBox_js_1.BBox.empty());\n }\n };\n class_1.prototype.combineBBoxLists = function (bbox1, bbox2, list1, list2) {\n for (var i = 0; i < list1.length; i++) {\n var _a = __read(this.getScaledWHD(list1[i]), 3), w1 = _a[0], h1 = _a[1], d1 = _a[2];\n var _b = __read(this.getScaledWHD(list2[i]), 3), w2 = _b[0], h2 = _b[1], d2 = _b[2];\n var w = Math.max(w1, w2);\n bbox1.w += w;\n bbox2.w += w;\n if (h1 > bbox1.h)\n bbox1.h = h1;\n if (d1 > bbox1.d)\n bbox1.d = d1;\n if (h2 > bbox2.h)\n bbox2.h = h2;\n if (d2 > bbox2.d)\n bbox2.d = d2;\n }\n };\n class_1.prototype.getScaledWHD = function (bbox) {\n var w = bbox.w, h = bbox.h, d = bbox.d, rscale = bbox.rscale;\n return [w * rscale, h * rscale, d * rscale];\n };\n class_1.prototype.getUVQ = function (subbox, supbox) {\n var _a;\n if (!this.UVQ) {\n var _b = __read([0, 0, 0], 3), u = _b[0], v = _b[1], q = _b[2];\n if (subbox.h === 0 && subbox.d === 0) {\n u = this.getU();\n }\n else if (supbox.h === 0 && supbox.d === 0) {\n u = -this.getV();\n }\n else {\n _a = __read(_super.prototype.getUVQ.call(this, subbox, supbox), 3), u = _a[0], v = _a[1], q = _a[2];\n }\n this.UVQ = [u, v, q];\n }\n return this.UVQ;\n };\n return class_1;\n }(Base));\n}\nexports.CommonMmultiscriptsMixin = CommonMmultiscriptsMixin;\n//# sourceMappingURL=mmultiscripts.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMnMixin = void 0;\nfunction CommonMnMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.remapChars = function (chars) {\n if (chars.length) {\n var text = this.font.getRemappedChar('mn', chars[0]);\n if (text) {\n var c = this.unicodeChars(text, this.variant);\n if (c.length === 1) {\n chars[0] = c[0];\n }\n else {\n chars = c.concat(chars.slice(1));\n }\n }\n }\n return chars;\n };\n return class_1;\n }(Base));\n}\nexports.CommonMnMixin = CommonMnMixin;\n//# sourceMappingURL=mn.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMoMixin = exports.DirectionVH = void 0;\nvar BBox_js_1 = require(\"../../../util/BBox.js\");\nvar string_js_1 = require(\"../../../util/string.js\");\nvar FontData_js_1 = require(\"../FontData.js\");\nexports.DirectionVH = (_a = {},\n _a[1] = 'v',\n _a[2] = 'h',\n _a);\nfunction CommonMoMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.size = null;\n _this.isAccent = _this.node.isAccent;\n return _this;\n }\n class_1.prototype.computeBBox = function (bbox, _recompute) {\n if (_recompute === void 0) { _recompute = false; }\n this.protoBBox(bbox);\n if (this.node.attributes.get('symmetric') &&\n this.stretch.dir !== 2) {\n var d = this.getCenterOffset(bbox);\n bbox.h += d;\n bbox.d -= d;\n }\n if (this.node.getProperty('mathaccent') &&\n (this.stretch.dir === 0 || this.size >= 0)) {\n bbox.w = 0;\n }\n };\n class_1.prototype.protoBBox = function (bbox) {\n var stretchy = (this.stretch.dir !== 0);\n if (stretchy && this.size === null) {\n this.getStretchedVariant([0]);\n }\n if (stretchy && this.size < 0)\n return;\n _super.prototype.computeBBox.call(this, bbox);\n this.copySkewIC(bbox);\n };\n class_1.prototype.getAccentOffset = function () {\n var bbox = BBox_js_1.BBox.empty();\n this.protoBBox(bbox);\n return -bbox.w / 2;\n };\n class_1.prototype.getCenterOffset = function (bbox) {\n if (bbox === void 0) { bbox = null; }\n if (!bbox) {\n bbox = BBox_js_1.BBox.empty();\n _super.prototype.computeBBox.call(this, bbox);\n }\n return ((bbox.h + bbox.d) / 2 + this.font.params.axis_height) - bbox.h;\n };\n class_1.prototype.getVariant = function () {\n if (this.node.attributes.get('largeop')) {\n this.variant = (this.node.attributes.get('displaystyle') ? '-largeop' : '-smallop');\n return;\n }\n if (!this.node.attributes.getExplicit('mathvariant') &&\n this.node.getProperty('pseudoscript') === false) {\n this.variant = '-tex-variant';\n return;\n }\n _super.prototype.getVariant.call(this);\n };\n class_1.prototype.canStretch = function (direction) {\n if (this.stretch.dir !== 0) {\n return this.stretch.dir === direction;\n }\n var attributes = this.node.attributes;\n if (!attributes.get('stretchy'))\n return false;\n var c = this.getText();\n if (Array.from(c).length !== 1)\n return false;\n var delim = this.font.getDelimiter(c.codePointAt(0));\n this.stretch = (delim && delim.dir === direction ? delim : FontData_js_1.NOSTRETCH);\n return this.stretch.dir !== 0;\n };\n class_1.prototype.getStretchedVariant = function (WH, exact) {\n var e_1, _a;\n if (exact === void 0) { exact = false; }\n if (this.stretch.dir !== 0) {\n var D = this.getWH(WH);\n var min = this.getSize('minsize', 0);\n var max = this.getSize('maxsize', Infinity);\n var mathaccent = this.node.getProperty('mathaccent');\n D = Math.max(min, Math.min(max, D));\n var df = this.font.params.delimiterfactor / 1000;\n var ds = this.font.params.delimitershortfall;\n var m = (min || exact ? D : mathaccent ? Math.min(D / df, D + ds) : Math.max(D * df, D - ds));\n var delim = this.stretch;\n var c = delim.c || this.getText().codePointAt(0);\n var i = 0;\n if (delim.sizes) {\n try {\n for (var _b = __values(delim.sizes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var d = _c.value;\n if (d >= m) {\n if (mathaccent && i) {\n i--;\n }\n this.variant = this.font.getSizeVariant(c, i);\n this.size = i;\n if (delim.schar && delim.schar[i]) {\n this.stretch = __assign(__assign({}, this.stretch), { c: delim.schar[i] });\n }\n return;\n }\n i++;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n if (delim.stretch) {\n this.size = -1;\n this.invalidateBBox();\n this.getStretchBBox(WH, this.checkExtendedHeight(D, delim), delim);\n }\n else {\n this.variant = this.font.getSizeVariant(c, i - 1);\n this.size = i - 1;\n }\n }\n };\n class_1.prototype.getSize = function (name, value) {\n var attributes = this.node.attributes;\n if (attributes.isSet(name)) {\n value = this.length2em(attributes.get(name), 1, 1);\n }\n return value;\n };\n class_1.prototype.getWH = function (WH) {\n if (WH.length === 0)\n return 0;\n if (WH.length === 1)\n return WH[0];\n var _a = __read(WH, 2), H = _a[0], D = _a[1];\n var a = this.font.params.axis_height;\n return (this.node.attributes.get('symmetric') ? 2 * Math.max(H - a, D + a) : H + D);\n };\n class_1.prototype.getStretchBBox = function (WHD, D, C) {\n var _a;\n if (C.hasOwnProperty('min') && C.min > D) {\n D = C.min;\n }\n var _b = __read(C.HDW, 3), h = _b[0], d = _b[1], w = _b[2];\n if (this.stretch.dir === 1) {\n _a = __read(this.getBaseline(WHD, D, C), 2), h = _a[0], d = _a[1];\n }\n else {\n w = D;\n }\n this.bbox.h = h;\n this.bbox.d = d;\n this.bbox.w = w;\n };\n class_1.prototype.getBaseline = function (WHD, HD, C) {\n var hasWHD = (WHD.length === 2 && WHD[0] + WHD[1] === HD);\n var symmetric = this.node.attributes.get('symmetric');\n var _a = __read((hasWHD ? WHD : [HD, 0]), 2), H = _a[0], D = _a[1];\n var _b = __read([H + D, 0], 2), h = _b[0], d = _b[1];\n if (symmetric) {\n var a = this.font.params.axis_height;\n if (hasWHD) {\n h = 2 * Math.max(H - a, D + a);\n }\n d = h / 2 - a;\n }\n else if (hasWHD) {\n d = D;\n }\n else {\n var _c = __read((C.HDW || [.75, .25]), 2), ch = _c[0], cd = _c[1];\n d = cd * (h / (ch + cd));\n }\n return [h - d, d];\n };\n class_1.prototype.checkExtendedHeight = function (D, C) {\n if (C.fullExt) {\n var _a = __read(C.fullExt, 2), extSize = _a[0], endSize = _a[1];\n var n = Math.ceil(Math.max(0, D - endSize) / extSize);\n D = endSize + n * extSize;\n }\n return D;\n };\n class_1.prototype.remapChars = function (chars) {\n var primes = this.node.getProperty('primes');\n if (primes) {\n return (0, string_js_1.unicodeChars)(primes);\n }\n if (chars.length === 1) {\n var parent_1 = this.node.coreParent().parent;\n var isAccent = this.isAccent && !parent_1.isKind('mrow');\n var map = (isAccent ? 'accent' : 'mo');\n var text = this.font.getRemappedChar(map, chars[0]);\n if (text) {\n chars = this.unicodeChars(text, this.variant);\n }\n }\n return chars;\n };\n return class_1;\n }(Base));\n}\nexports.CommonMoMixin = CommonMoMixin;\n//# sourceMappingURL=mo.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMpaddedMixin = void 0;\nfunction CommonMpaddedMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.getDimens = function () {\n var values = this.node.attributes.getList('width', 'height', 'depth', 'lspace', 'voffset');\n var bbox = this.childNodes[0].getBBox();\n var w = bbox.w, h = bbox.h, d = bbox.d;\n var W = w, H = h, D = d, x = 0, y = 0, dx = 0;\n if (values.width !== '')\n w = this.dimen(values.width, bbox, 'w', 0);\n if (values.height !== '')\n h = this.dimen(values.height, bbox, 'h', 0);\n if (values.depth !== '')\n d = this.dimen(values.depth, bbox, 'd', 0);\n if (values.voffset !== '')\n y = this.dimen(values.voffset, bbox);\n if (values.lspace !== '')\n x = this.dimen(values.lspace, bbox);\n var align = this.node.attributes.get('data-align');\n if (align) {\n dx = this.getAlignX(w, bbox, align);\n }\n return [H, D, W, h - H, d - D, w - W, x, y, dx];\n };\n class_1.prototype.dimen = function (length, bbox, d, m) {\n if (d === void 0) { d = ''; }\n if (m === void 0) { m = null; }\n length = String(length);\n var match = length.match(/width|height|depth/);\n var size = (match ? bbox[match[0].charAt(0)] :\n (d ? bbox[d] : 0));\n var dimen = (this.length2em(length, size) || 0);\n if (length.match(/^[-+]/) && d) {\n dimen += size;\n }\n if (m != null) {\n dimen = Math.max(m, dimen);\n }\n return dimen;\n };\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n var _a = __read(this.getDimens(), 6), H = _a[0], D = _a[1], W = _a[2], dh = _a[3], dd = _a[4], dw = _a[5];\n bbox.w = W + dw;\n bbox.h = H + dh;\n bbox.d = D + dd;\n this.setChildPWidths(recompute, bbox.w);\n };\n class_1.prototype.getWrapWidth = function (_i) {\n return this.getBBox().w;\n };\n class_1.prototype.getChildAlign = function (_i) {\n return this.node.attributes.get('data-align') || 'left';\n };\n return class_1;\n }(Base));\n}\nexports.CommonMpaddedMixin = CommonMpaddedMixin;\n//# sourceMappingURL=mpadded.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMrootMixin = void 0;\nfunction CommonMrootMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(class_1.prototype, \"surd\", {\n get: function () {\n return 2;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_1.prototype, \"root\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.combineRootBBox = function (BBOX, sbox, H) {\n var bbox = this.childNodes[this.root].getOuterBBox();\n var h = this.getRootDimens(sbox, H)[1];\n BBOX.combine(bbox, 0, h);\n };\n class_1.prototype.getRootDimens = function (sbox, H) {\n var surd = this.childNodes[this.surd];\n var bbox = this.childNodes[this.root].getOuterBBox();\n var offset = (surd.size < 0 ? .5 : .6) * sbox.w;\n var w = bbox.w, rscale = bbox.rscale;\n var W = Math.max(w, offset / rscale);\n var dx = Math.max(0, W - w);\n var h = this.rootHeight(bbox, sbox, surd.size, H);\n var x = W * rscale - offset;\n return [x, h, dx];\n };\n class_1.prototype.rootHeight = function (rbox, sbox, size, H) {\n var h = sbox.h + sbox.d;\n var b = (size < 0 ? 1.9 : .55 * h) - (h - H);\n return b + Math.max(0, rbox.d * rbox.rscale);\n };\n return class_1;\n }(Base));\n}\nexports.CommonMrootMixin = CommonMrootMixin;\n//# sourceMappingURL=mroot.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonInferredMrowMixin = exports.CommonMrowMixin = void 0;\nvar BBox_js_1 = require(\"../../../util/BBox.js\");\nfunction CommonMrowMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var e_1, _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.stretchChildren();\n try {\n for (var _b = __values(_this.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.bbox.pwidth) {\n _this.bbox.pwidth = BBox_js_1.BBox.fullWidth;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"fixesPWidth\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.stretchChildren = function () {\n var e_2, _a, e_3, _b, e_4, _c;\n var stretchy = [];\n try {\n for (var _d = __values(this.childNodes), _e = _d.next(); !_e.done; _e = _d.next()) {\n var child = _e.value;\n if (child.canStretch(1)) {\n stretchy.push(child);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var count = stretchy.length;\n var nodeCount = this.childNodes.length;\n if (count && nodeCount > 1) {\n var H = 0, D = 0;\n var all = (count > 1 && count === nodeCount);\n try {\n for (var _f = __values(this.childNodes), _g = _f.next(); !_g.done; _g = _f.next()) {\n var child = _g.value;\n var noStretch = (child.stretch.dir === 0);\n if (all || noStretch) {\n var _h = child.getOuterBBox(noStretch), h = _h.h, d = _h.d, rscale = _h.rscale;\n h *= rscale;\n d *= rscale;\n if (h > H)\n H = h;\n if (d > D)\n D = d;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var stretchy_1 = __values(stretchy), stretchy_1_1 = stretchy_1.next(); !stretchy_1_1.done; stretchy_1_1 = stretchy_1.next()) {\n var child = stretchy_1_1.value;\n child.coreMO().getStretchedVariant([H, D]);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (stretchy_1_1 && !stretchy_1_1.done && (_c = stretchy_1.return)) _c.call(stretchy_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n };\n return class_1;\n }(Base));\n}\nexports.CommonMrowMixin = CommonMrowMixin;\nfunction CommonInferredMrowMixin(Base) {\n return (function (_super) {\n __extends(class_2, _super);\n function class_2() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_2.prototype.getScale = function () {\n this.bbox.scale = this.parent.bbox.scale;\n this.bbox.rscale = 1;\n };\n return class_2;\n }(Base));\n}\nexports.CommonInferredMrowMixin = CommonInferredMrowMixin;\n//# sourceMappingURL=mrow.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMsMixin = void 0;\nfunction CommonMsMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n var attributes = _this.node.attributes;\n var quotes = attributes.getList('lquote', 'rquote');\n if (_this.variant !== 'monospace') {\n if (!attributes.isSet('lquote') && quotes.lquote === '\"')\n quotes.lquote = '\\u201C';\n if (!attributes.isSet('rquote') && quotes.rquote === '\"')\n quotes.rquote = '\\u201D';\n }\n _this.childNodes.unshift(_this.createText(quotes.lquote));\n _this.childNodes.push(_this.createText(quotes.rquote));\n return _this;\n }\n class_1.prototype.createText = function (text) {\n var node = this.wrap(this.mmlText(text));\n node.parent = this;\n return node;\n };\n return class_1;\n }(Base));\n}\nexports.CommonMsMixin = CommonMsMixin;\n//# sourceMappingURL=ms.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMspaceMixin = void 0;\nfunction CommonMspaceMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.computeBBox = function (bbox, _recompute) {\n if (_recompute === void 0) { _recompute = false; }\n var attributes = this.node.attributes;\n bbox.w = this.length2em(attributes.get('width'), 0);\n bbox.h = this.length2em(attributes.get('height'), 0);\n bbox.d = this.length2em(attributes.get('depth'), 0);\n };\n class_1.prototype.handleVariant = function () {\n };\n return class_1;\n }(Base));\n}\nexports.CommonMspaceMixin = CommonMspaceMixin;\n//# sourceMappingURL=mspace.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMsqrtMixin = void 0;\nvar BBox_js_1 = require(\"../../../util/BBox.js\");\nfunction CommonMsqrtMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n var surd = _this.createMo('\\u221A');\n surd.canStretch(1);\n var _a = _this.childNodes[_this.base].getOuterBBox(), h = _a.h, d = _a.d;\n var t = _this.font.params.rule_thickness;\n var p = (_this.node.attributes.get('displaystyle') ? _this.font.params.x_height : t);\n _this.surdH = h + d + 2 * t + p / 4;\n surd.getStretchedVariant([_this.surdH - d, d], true);\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"base\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_1.prototype, \"surd\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_1.prototype, \"root\", {\n get: function () {\n return null;\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.createMo = function (text) {\n var node = _super.prototype.createMo.call(this, text);\n this.childNodes.push(node);\n return node;\n };\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n var surdbox = this.childNodes[this.surd].getBBox();\n var basebox = new BBox_js_1.BBox(this.childNodes[this.base].getOuterBBox());\n var q = this.getPQ(surdbox)[1];\n var t = this.font.params.rule_thickness;\n var H = basebox.h + q + t;\n var _a = __read(this.getRootDimens(surdbox, H), 1), x = _a[0];\n bbox.h = H + t;\n this.combineRootBBox(bbox, surdbox, H);\n bbox.combine(surdbox, x, H - surdbox.h);\n bbox.combine(basebox, x + surdbox.w, 0);\n bbox.clean();\n this.setChildPWidths(recompute);\n };\n class_1.prototype.combineRootBBox = function (_bbox, _sbox, _H) {\n };\n class_1.prototype.getPQ = function (sbox) {\n var t = this.font.params.rule_thickness;\n var p = (this.node.attributes.get('displaystyle') ? this.font.params.x_height : t);\n var q = (sbox.h + sbox.d > this.surdH ?\n ((sbox.h + sbox.d) - (this.surdH - 2 * t - p / 2)) / 2 :\n t + p / 4);\n return [p, q];\n };\n class_1.prototype.getRootDimens = function (_sbox, _H) {\n return [0, 0, 0, 0];\n };\n return class_1;\n }(Base));\n}\nexports.CommonMsqrtMixin = CommonMsqrtMixin;\n//# sourceMappingURL=msqrt.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMsubsupMixin = exports.CommonMsupMixin = exports.CommonMsubMixin = void 0;\nfunction CommonMsubMixin(Base) {\n var _a;\n return _a = (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(class_1.prototype, \"scriptChild\", {\n get: function () {\n return this.childNodes[this.node.sub];\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.getOffset = function () {\n return [0, -this.getV()];\n };\n return class_1;\n }(Base)),\n _a.useIC = false,\n _a;\n}\nexports.CommonMsubMixin = CommonMsubMixin;\nfunction CommonMsupMixin(Base) {\n return (function (_super) {\n __extends(class_2, _super);\n function class_2() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(class_2.prototype, \"scriptChild\", {\n get: function () {\n return this.childNodes[this.node.sup];\n },\n enumerable: false,\n configurable: true\n });\n class_2.prototype.getOffset = function () {\n var x = this.getAdjustedIc() - (this.baseRemoveIc ? 0 : this.baseIc);\n return [x, this.getU()];\n };\n return class_2;\n }(Base));\n}\nexports.CommonMsupMixin = CommonMsupMixin;\nfunction CommonMsubsupMixin(Base) {\n var _a;\n return _a = (function (_super) {\n __extends(class_3, _super);\n function class_3() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.UVQ = null;\n return _this;\n }\n Object.defineProperty(class_3.prototype, \"subChild\", {\n get: function () {\n return this.childNodes[this.node.sub];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_3.prototype, \"supChild\", {\n get: function () {\n return this.childNodes[this.node.sup];\n },\n enumerable: false,\n configurable: true\n });\n class_3.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n var basebox = this.baseChild.getOuterBBox();\n var _a = __read([this.subChild.getOuterBBox(), this.supChild.getOuterBBox()], 2), subbox = _a[0], supbox = _a[1];\n bbox.empty();\n bbox.append(basebox);\n var w = this.getBaseWidth();\n var x = this.getAdjustedIc();\n var _b = __read(this.getUVQ(), 2), u = _b[0], v = _b[1];\n bbox.combine(subbox, w, v);\n bbox.combine(supbox, w + x, u);\n bbox.w += this.font.params.scriptspace;\n bbox.clean();\n this.setChildPWidths(recompute);\n };\n class_3.prototype.getUVQ = function (subbox, supbox) {\n if (subbox === void 0) { subbox = this.subChild.getOuterBBox(); }\n if (supbox === void 0) { supbox = this.supChild.getOuterBBox(); }\n var basebox = this.baseCore.getOuterBBox();\n if (this.UVQ)\n return this.UVQ;\n var tex = this.font.params;\n var t = 3 * tex.rule_thickness;\n var subscriptshift = this.length2em(this.node.attributes.get('subscriptshift'), tex.sub2);\n var drop = this.baseCharZero(basebox.d * this.baseScale + tex.sub_drop * subbox.rscale);\n var _a = __read([this.getU(), Math.max(drop, subscriptshift)], 2), u = _a[0], v = _a[1];\n var q = (u - supbox.d * supbox.rscale) - (subbox.h * subbox.rscale - v);\n if (q < t) {\n v += t - q;\n var p = (4 / 5) * tex.x_height - (u - supbox.d * supbox.rscale);\n if (p > 0) {\n u += p;\n v -= p;\n }\n }\n u = Math.max(this.length2em(this.node.attributes.get('superscriptshift'), u), u);\n v = Math.max(this.length2em(this.node.attributes.get('subscriptshift'), v), v);\n q = (u - supbox.d * supbox.rscale) - (subbox.h * subbox.rscale - v);\n this.UVQ = [u, -v, q];\n return this.UVQ;\n };\n return class_3;\n }(Base)),\n _a.useIC = false,\n _a;\n}\nexports.CommonMsubsupMixin = CommonMsubsupMixin;\n//# sourceMappingURL=msubsup.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMtableMixin = void 0;\nvar BBox_js_1 = require(\"../../../util/BBox.js\");\nvar string_js_1 = require(\"../../../util/string.js\");\nvar numeric_js_1 = require(\"../../../util/numeric.js\");\nfunction CommonMtableMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.numCols = 0;\n _this.numRows = 0;\n _this.data = null;\n _this.pwidthCells = [];\n _this.pWidth = 0;\n _this.numCols = (0, numeric_js_1.max)(_this.tableRows.map(function (row) { return row.numCells; }));\n _this.numRows = _this.childNodes.length;\n _this.hasLabels = _this.childNodes.reduce(function (value, row) { return value || row.node.isKind('mlabeledtr'); }, false);\n _this.findContainer();\n _this.isTop = !_this.container || (_this.container.node.isKind('math') && !_this.container.parent);\n if (_this.isTop) {\n _this.jax.table = _this;\n }\n _this.getPercentageWidth();\n var attributes = _this.node.attributes;\n _this.frame = attributes.get('frame') !== 'none';\n _this.fLine = (_this.frame && attributes.get('frame') ? .07 : 0);\n _this.fSpace = (_this.frame ? _this.convertLengths(_this.getAttributeArray('framespacing')) : [0, 0]);\n _this.cSpace = _this.convertLengths(_this.getColumnAttributes('columnspacing'));\n _this.rSpace = _this.convertLengths(_this.getRowAttributes('rowspacing'));\n _this.cLines = _this.getColumnAttributes('columnlines').map(function (x) { return (x === 'none' ? 0 : .07); });\n _this.rLines = _this.getRowAttributes('rowlines').map(function (x) { return (x === 'none' ? 0 : .07); });\n _this.cWidths = _this.getColumnWidths();\n _this.stretchRows();\n _this.stretchColumns();\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"tableRows\", {\n get: function () {\n return this.childNodes;\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.findContainer = function () {\n var node = this;\n var parent = node.parent;\n while (parent && (parent.node.notParent || parent.node.isKind('mrow'))) {\n node = parent;\n parent = parent.parent;\n }\n this.container = parent;\n this.containerI = node.node.childPosition();\n };\n class_1.prototype.getPercentageWidth = function () {\n if (this.hasLabels) {\n this.bbox.pwidth = BBox_js_1.BBox.fullWidth;\n }\n else {\n var width = this.node.attributes.get('width');\n if ((0, string_js_1.isPercent)(width)) {\n this.bbox.pwidth = width;\n }\n }\n };\n class_1.prototype.stretchRows = function () {\n var equal = this.node.attributes.get('equalrows');\n var HD = (equal ? this.getEqualRowHeight() : 0);\n var _a = (equal ? this.getTableData() : { H: [0], D: [0] }), H = _a.H, D = _a.D;\n var rows = this.tableRows;\n for (var i = 0; i < this.numRows; i++) {\n var hd = (equal ? [(HD + H[i] - D[i]) / 2, (HD - H[i] + D[i]) / 2] : null);\n rows[i].stretchChildren(hd);\n }\n };\n class_1.prototype.stretchColumns = function () {\n for (var i = 0; i < this.numCols; i++) {\n var width = (typeof this.cWidths[i] === 'number' ? this.cWidths[i] : null);\n this.stretchColumn(i, width);\n }\n };\n class_1.prototype.stretchColumn = function (i, W) {\n var e_1, _a, e_2, _b, e_3, _c;\n var stretchy = [];\n try {\n for (var _d = __values(this.tableRows), _e = _d.next(); !_e.done; _e = _d.next()) {\n var row = _e.value;\n var cell = row.getChild(i);\n if (cell) {\n var child = cell.childNodes[0];\n if (child.stretch.dir === 0 &&\n child.canStretch(2)) {\n stretchy.push(child);\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var count = stretchy.length;\n var nodeCount = this.childNodes.length;\n if (count && nodeCount > 1) {\n if (W === null) {\n W = 0;\n var all = (count > 1 && count === nodeCount);\n try {\n for (var _f = __values(this.tableRows), _g = _f.next(); !_g.done; _g = _f.next()) {\n var row = _g.value;\n var cell = row.getChild(i);\n if (cell) {\n var child = cell.childNodes[0];\n var noStretch = (child.stretch.dir === 0);\n if (all || noStretch) {\n var w = child.getBBox(noStretch).w;\n if (w > W) {\n W = w;\n }\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n try {\n for (var stretchy_1 = __values(stretchy), stretchy_1_1 = stretchy_1.next(); !stretchy_1_1.done; stretchy_1_1 = stretchy_1.next()) {\n var child = stretchy_1_1.value;\n child.coreMO().getStretchedVariant([W]);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (stretchy_1_1 && !stretchy_1_1.done && (_c = stretchy_1.return)) _c.call(stretchy_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n };\n class_1.prototype.getTableData = function () {\n if (this.data) {\n return this.data;\n }\n var H = new Array(this.numRows).fill(0);\n var D = new Array(this.numRows).fill(0);\n var W = new Array(this.numCols).fill(0);\n var NH = new Array(this.numRows);\n var ND = new Array(this.numRows);\n var LW = [0];\n var rows = this.tableRows;\n for (var j = 0; j < rows.length; j++) {\n var M = 0;\n var row = rows[j];\n var align = row.node.attributes.get('rowalign');\n for (var i = 0; i < row.numCells; i++) {\n var cell = row.getChild(i);\n M = this.updateHDW(cell, i, j, align, H, D, W, M);\n this.recordPWidthCell(cell, i);\n }\n NH[j] = H[j];\n ND[j] = D[j];\n if (row.labeled) {\n M = this.updateHDW(row.childNodes[0], 0, j, align, H, D, LW, M);\n }\n this.extendHD(j, H, D, M);\n this.extendHD(j, NH, ND, M);\n }\n var L = LW[0];\n this.data = { H: H, D: D, W: W, NH: NH, ND: ND, L: L };\n return this.data;\n };\n class_1.prototype.updateHDW = function (cell, i, j, align, H, D, W, M) {\n var _a = cell.getBBox(), h = _a.h, d = _a.d, w = _a.w;\n var scale = cell.parent.bbox.rscale;\n if (cell.parent.bbox.rscale !== 1) {\n h *= scale;\n d *= scale;\n w *= scale;\n }\n if (this.node.getProperty('useHeight')) {\n if (h < .75)\n h = .75;\n if (d < .25)\n d = .25;\n }\n var m = 0;\n align = cell.node.attributes.get('rowalign') || align;\n if (align !== 'baseline' && align !== 'axis') {\n m = h + d;\n h = d = 0;\n }\n if (h > H[j])\n H[j] = h;\n if (d > D[j])\n D[j] = d;\n if (m > M)\n M = m;\n if (W && w > W[i])\n W[i] = w;\n return M;\n };\n class_1.prototype.extendHD = function (i, H, D, M) {\n var d = (M - (H[i] + D[i])) / 2;\n if (d < .00001)\n return;\n H[i] += d;\n D[i] += d;\n };\n class_1.prototype.recordPWidthCell = function (cell, i) {\n if (cell.childNodes[0] && cell.childNodes[0].getBBox().pwidth) {\n this.pwidthCells.push([cell, i]);\n }\n };\n class_1.prototype.computeBBox = function (bbox, _recompute) {\n if (_recompute === void 0) { _recompute = false; }\n var _a = this.getTableData(), H = _a.H, D = _a.D;\n var height, width;\n if (this.node.attributes.get('equalrows')) {\n var HD = this.getEqualRowHeight();\n height = (0, numeric_js_1.sum)([].concat(this.rLines, this.rSpace)) + HD * this.numRows;\n }\n else {\n height = (0, numeric_js_1.sum)(H.concat(D, this.rLines, this.rSpace));\n }\n height += 2 * (this.fLine + this.fSpace[1]);\n var CW = this.getComputedWidths();\n width = (0, numeric_js_1.sum)(CW.concat(this.cLines, this.cSpace)) + 2 * (this.fLine + this.fSpace[0]);\n var w = this.node.attributes.get('width');\n if (w !== 'auto') {\n width = Math.max(this.length2em(w, 0) + 2 * this.fLine, width);\n }\n var _b = __read(this.getBBoxHD(height), 2), h = _b[0], d = _b[1];\n bbox.h = h;\n bbox.d = d;\n bbox.w = width;\n var _c = __read(this.getBBoxLR(), 2), L = _c[0], R = _c[1];\n bbox.L = L;\n bbox.R = R;\n if (!(0, string_js_1.isPercent)(w)) {\n this.setColumnPWidths();\n }\n };\n class_1.prototype.setChildPWidths = function (_recompute, cwidth, _clear) {\n var width = this.node.attributes.get('width');\n if (!(0, string_js_1.isPercent)(width))\n return false;\n if (!this.hasLabels) {\n this.bbox.pwidth = '';\n this.container.bbox.pwidth = '';\n }\n var _a = this.bbox, w = _a.w, L = _a.L, R = _a.R;\n var labelInWidth = this.node.attributes.get('data-width-includes-label');\n var W = Math.max(w, this.length2em(width, Math.max(cwidth, L + w + R))) - (labelInWidth ? L + R : 0);\n var cols = (this.node.attributes.get('equalcolumns') ?\n Array(this.numCols).fill(this.percent(1 / Math.max(1, this.numCols))) :\n this.getColumnAttributes('columnwidth', 0));\n this.cWidths = this.getColumnWidthsFixed(cols, W);\n var CW = this.getComputedWidths();\n this.pWidth = (0, numeric_js_1.sum)(CW.concat(this.cLines, this.cSpace)) + 2 * (this.fLine + this.fSpace[0]);\n if (this.isTop) {\n this.bbox.w = this.pWidth;\n }\n this.setColumnPWidths();\n if (this.pWidth !== w) {\n this.parent.invalidateBBox();\n }\n return this.pWidth !== w;\n };\n class_1.prototype.setColumnPWidths = function () {\n var e_4, _a;\n var W = this.cWidths;\n try {\n for (var _b = __values(this.pwidthCells), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), cell = _d[0], i = _d[1];\n if (cell.setChildPWidths(false, W[i])) {\n cell.invalidateBBox();\n cell.getBBox();\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n class_1.prototype.getBBoxHD = function (height) {\n var _a = __read(this.getAlignmentRow(), 2), align = _a[0], row = _a[1];\n if (row === null) {\n var a = this.font.params.axis_height;\n var h2 = height / 2;\n var HD = {\n top: [0, height],\n center: [h2, h2],\n bottom: [height, 0],\n baseline: [h2, h2],\n axis: [h2 + a, h2 - a]\n };\n return HD[align] || [h2, h2];\n }\n else {\n var y = this.getVerticalPosition(row, align);\n return [y, height - y];\n }\n };\n class_1.prototype.getBBoxLR = function () {\n if (this.hasLabels) {\n var attributes = this.node.attributes;\n var side = attributes.get('side');\n var _a = __read(this.getPadAlignShift(side), 2), pad = _a[0], align = _a[1];\n var labels = this.hasLabels && !!attributes.get('data-width-includes-label');\n if (labels && this.frame && this.fSpace[0]) {\n pad -= this.fSpace[0];\n }\n return (align === 'center' && !labels ? [pad, pad] :\n side === 'left' ? [pad, 0] : [0, pad]);\n }\n return [0, 0];\n };\n class_1.prototype.getPadAlignShift = function (side) {\n var L = this.getTableData().L;\n var sep = this.length2em(this.node.attributes.get('minlabelspacing'));\n var pad = L + sep;\n var _a = __read((this.styles == null ? ['', ''] :\n [this.styles.get('padding-left'), this.styles.get('padding-right')]), 2), lpad = _a[0], rpad = _a[1];\n if (lpad || rpad) {\n pad = Math.max(pad, this.length2em(lpad || '0'), this.length2em(rpad || '0'));\n }\n var _b = __read(this.getAlignShift(), 2), align = _b[0], shift = _b[1];\n if (align === side) {\n shift = (side === 'left' ? Math.max(pad, shift) - pad : Math.min(-pad, shift) + pad);\n }\n return [pad, align, shift];\n };\n class_1.prototype.getAlignShift = function () {\n return (this.isTop ? _super.prototype.getAlignShift.call(this) :\n [this.container.getChildAlign(this.containerI), 0]);\n };\n class_1.prototype.getWidth = function () {\n return this.pWidth || this.getBBox().w;\n };\n class_1.prototype.getEqualRowHeight = function () {\n var _a = this.getTableData(), H = _a.H, D = _a.D;\n var HD = Array.from(H.keys()).map(function (i) { return H[i] + D[i]; });\n return Math.max.apply(Math, HD);\n };\n class_1.prototype.getComputedWidths = function () {\n var _this = this;\n var W = this.getTableData().W;\n var CW = Array.from(W.keys()).map(function (i) {\n return (typeof _this.cWidths[i] === 'number' ? _this.cWidths[i] : W[i]);\n });\n if (this.node.attributes.get('equalcolumns')) {\n CW = Array(CW.length).fill((0, numeric_js_1.max)(CW));\n }\n return CW;\n };\n class_1.prototype.getColumnWidths = function () {\n var width = this.node.attributes.get('width');\n if (this.node.attributes.get('equalcolumns')) {\n return this.getEqualColumns(width);\n }\n var swidths = this.getColumnAttributes('columnwidth', 0);\n if (width === 'auto') {\n return this.getColumnWidthsAuto(swidths);\n }\n if ((0, string_js_1.isPercent)(width)) {\n return this.getColumnWidthsPercent(swidths);\n }\n return this.getColumnWidthsFixed(swidths, this.length2em(width));\n };\n class_1.prototype.getEqualColumns = function (width) {\n var n = Math.max(1, this.numCols);\n var cwidth;\n if (width === 'auto') {\n var W = this.getTableData().W;\n cwidth = (0, numeric_js_1.max)(W);\n }\n else if ((0, string_js_1.isPercent)(width)) {\n cwidth = this.percent(1 / n);\n }\n else {\n var w = (0, numeric_js_1.sum)([].concat(this.cLines, this.cSpace)) + 2 * this.fSpace[0];\n cwidth = Math.max(0, this.length2em(width) - w) / n;\n }\n return Array(this.numCols).fill(cwidth);\n };\n class_1.prototype.getColumnWidthsAuto = function (swidths) {\n var _this = this;\n return swidths.map(function (x) {\n if (x === 'auto' || x === 'fit')\n return null;\n if ((0, string_js_1.isPercent)(x))\n return x;\n return _this.length2em(x);\n });\n };\n class_1.prototype.getColumnWidthsPercent = function (swidths) {\n var _this = this;\n var hasFit = swidths.indexOf('fit') >= 0;\n var W = (hasFit ? this.getTableData() : { W: null }).W;\n return Array.from(swidths.keys()).map(function (i) {\n var x = swidths[i];\n if (x === 'fit')\n return null;\n if (x === 'auto')\n return (hasFit ? W[i] : null);\n if ((0, string_js_1.isPercent)(x))\n return x;\n return _this.length2em(x);\n });\n };\n class_1.prototype.getColumnWidthsFixed = function (swidths, width) {\n var _this = this;\n var indices = Array.from(swidths.keys());\n var fit = indices.filter(function (i) { return swidths[i] === 'fit'; });\n var auto = indices.filter(function (i) { return swidths[i] === 'auto'; });\n var n = fit.length || auto.length;\n var W = (n ? this.getTableData() : { W: null }).W;\n var cwidth = width - (0, numeric_js_1.sum)([].concat(this.cLines, this.cSpace)) - 2 * this.fSpace[0];\n var dw = cwidth;\n indices.forEach(function (i) {\n var x = swidths[i];\n dw -= (x === 'fit' || x === 'auto' ? W[i] : _this.length2em(x, cwidth));\n });\n var fw = (n && dw > 0 ? dw / n : 0);\n return indices.map(function (i) {\n var x = swidths[i];\n if (x === 'fit')\n return W[i] + fw;\n if (x === 'auto')\n return W[i] + (fit.length === 0 ? fw : 0);\n return _this.length2em(x, cwidth);\n });\n };\n class_1.prototype.getVerticalPosition = function (i, align) {\n var equal = this.node.attributes.get('equalrows');\n var _a = this.getTableData(), H = _a.H, D = _a.D;\n var HD = (equal ? this.getEqualRowHeight() : 0);\n var space = this.getRowHalfSpacing();\n var y = this.fLine;\n for (var j = 0; j < i; j++) {\n y += space[j] + (equal ? HD : H[j] + D[j]) + space[j + 1] + this.rLines[j];\n }\n var _b = __read((equal ? [(HD + H[i] - D[i]) / 2, (HD - H[i] + D[i]) / 2] : [H[i], D[i]]), 2), h = _b[0], d = _b[1];\n var offset = {\n top: 0,\n center: space[i] + (h + d) / 2,\n bottom: space[i] + h + d + space[i + 1],\n baseline: space[i] + h,\n axis: space[i] + h - .25\n };\n y += offset[align] || 0;\n return y;\n };\n class_1.prototype.getEmHalfSpacing = function (fspace, space, scale) {\n if (scale === void 0) { scale = 1; }\n var fspaceEm = this.em(fspace * scale);\n var spaceEm = this.addEm(space, 2 / scale);\n spaceEm.unshift(fspaceEm);\n spaceEm.push(fspaceEm);\n return spaceEm;\n };\n class_1.prototype.getRowHalfSpacing = function () {\n var space = this.rSpace.map(function (x) { return x / 2; });\n space.unshift(this.fSpace[1]);\n space.push(this.fSpace[1]);\n return space;\n };\n class_1.prototype.getColumnHalfSpacing = function () {\n var space = this.cSpace.map(function (x) { return x / 2; });\n space.unshift(this.fSpace[0]);\n space.push(this.fSpace[0]);\n return space;\n };\n class_1.prototype.getAlignmentRow = function () {\n var _a = __read((0, string_js_1.split)(this.node.attributes.get('align')), 2), align = _a[0], row = _a[1];\n if (row == null)\n return [align, null];\n var i = parseInt(row);\n if (i < 0)\n i += this.numRows + 1;\n return [align, i < 1 || i > this.numRows ? null : i - 1];\n };\n class_1.prototype.getColumnAttributes = function (name, i) {\n if (i === void 0) { i = 1; }\n var n = this.numCols - i;\n var columns = this.getAttributeArray(name);\n if (columns.length === 0)\n return null;\n while (columns.length < n) {\n columns.push(columns[columns.length - 1]);\n }\n if (columns.length > n) {\n columns.splice(n);\n }\n return columns;\n };\n class_1.prototype.getRowAttributes = function (name, i) {\n if (i === void 0) { i = 1; }\n var n = this.numRows - i;\n var rows = this.getAttributeArray(name);\n if (rows.length === 0)\n return null;\n while (rows.length < n) {\n rows.push(rows[rows.length - 1]);\n }\n if (rows.length > n) {\n rows.splice(n);\n }\n return rows;\n };\n class_1.prototype.getAttributeArray = function (name) {\n var value = this.node.attributes.get(name);\n if (!value)\n return [this.node.attributes.getDefault(name)];\n return (0, string_js_1.split)(value);\n };\n class_1.prototype.addEm = function (list, n) {\n var _this = this;\n if (n === void 0) { n = 1; }\n if (!list)\n return null;\n return list.map(function (x) { return _this.em(x / n); });\n };\n class_1.prototype.convertLengths = function (list) {\n var _this = this;\n if (!list)\n return null;\n return list.map(function (x) { return _this.length2em(x); });\n };\n return class_1;\n }(Base));\n}\nexports.CommonMtableMixin = CommonMtableMixin;\n//# sourceMappingURL=mtable.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMtdMixin = void 0;\nfunction CommonMtdMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(class_1.prototype, \"fixesPWidth\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.invalidateBBox = function () {\n this.bboxComputed = false;\n };\n class_1.prototype.getWrapWidth = function (_j) {\n var table = this.parent.parent;\n var row = this.parent;\n var i = this.node.childPosition() - (row.labeled ? 1 : 0);\n return (typeof (table.cWidths[i]) === 'number' ? table.cWidths[i] : table.getTableData().W[i]);\n };\n class_1.prototype.getChildAlign = function (_i) {\n return this.node.attributes.get('columnalign');\n };\n return class_1;\n }(Base));\n}\nexports.CommonMtdMixin = CommonMtdMixin;\n//# sourceMappingURL=mtd.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMtextMixin = void 0;\nfunction CommonMtextMixin(Base) {\n var _a;\n return _a = (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.getVariant = function () {\n var options = this.jax.options;\n var data = this.jax.math.outputData;\n var merror = ((!!data.merrorFamily || !!options.merrorFont) && this.node.Parent.isKind('merror'));\n if (!!data.mtextFamily || !!options.mtextFont || merror) {\n var variant = this.node.attributes.get('mathvariant');\n var font = this.constructor.INHERITFONTS[variant] || this.jax.font.getCssFont(variant);\n var family = font[0] || (merror ? data.merrorFamily || options.merrorFont :\n data.mtextFamily || options.mtextFont);\n this.variant = this.explicitVariant(family, font[2] ? 'bold' : '', font[1] ? 'italic' : '');\n return;\n }\n _super.prototype.getVariant.call(this);\n };\n return class_1;\n }(Base)),\n _a.INHERITFONTS = {\n normal: ['', false, false],\n bold: ['', false, true],\n italic: ['', true, false],\n 'bold-italic': ['', true, true]\n },\n _a;\n}\nexports.CommonMtextMixin = CommonMtextMixin;\n//# sourceMappingURL=mtext.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMlabeledtrMixin = exports.CommonMtrMixin = void 0;\nfunction CommonMtrMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(class_1.prototype, \"fixesPWidth\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_1.prototype, \"numCells\", {\n get: function () {\n return this.childNodes.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_1.prototype, \"labeled\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_1.prototype, \"tableCells\", {\n get: function () {\n return this.childNodes;\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.getChild = function (i) {\n return this.childNodes[i];\n };\n class_1.prototype.getChildBBoxes = function () {\n return this.childNodes.map(function (cell) { return cell.getBBox(); });\n };\n class_1.prototype.stretchChildren = function (HD) {\n var e_1, _a, e_2, _b, e_3, _c;\n if (HD === void 0) { HD = null; }\n var stretchy = [];\n var children = (this.labeled ? this.childNodes.slice(1) : this.childNodes);\n try {\n for (var children_1 = __values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var mtd = children_1_1.value;\n var child = mtd.childNodes[0];\n if (child.canStretch(1)) {\n stretchy.push(child);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var count = stretchy.length;\n var nodeCount = this.childNodes.length;\n if (count && nodeCount > 1) {\n if (HD === null) {\n var H = 0, D = 0;\n var all = (count > 1 && count === nodeCount);\n try {\n for (var children_2 = __values(children), children_2_1 = children_2.next(); !children_2_1.done; children_2_1 = children_2.next()) {\n var mtd = children_2_1.value;\n var child = mtd.childNodes[0];\n var noStretch = (child.stretch.dir === 0);\n if (all || noStretch) {\n var _d = child.getBBox(noStretch), h = _d.h, d = _d.d;\n if (h > H) {\n H = h;\n }\n if (d > D) {\n D = d;\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (children_2_1 && !children_2_1.done && (_b = children_2.return)) _b.call(children_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n HD = [H, D];\n }\n try {\n for (var stretchy_1 = __values(stretchy), stretchy_1_1 = stretchy_1.next(); !stretchy_1_1.done; stretchy_1_1 = stretchy_1.next()) {\n var child = stretchy_1_1.value;\n child.coreMO().getStretchedVariant(HD);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (stretchy_1_1 && !stretchy_1_1.done && (_c = stretchy_1.return)) _c.call(stretchy_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n };\n return class_1;\n }(Base));\n}\nexports.CommonMtrMixin = CommonMtrMixin;\nfunction CommonMlabeledtrMixin(Base) {\n return (function (_super) {\n __extends(class_2, _super);\n function class_2() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(class_2.prototype, \"numCells\", {\n get: function () {\n return Math.max(0, this.childNodes.length - 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_2.prototype, \"labeled\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_2.prototype, \"tableCells\", {\n get: function () {\n return this.childNodes.slice(1);\n },\n enumerable: false,\n configurable: true\n });\n class_2.prototype.getChild = function (i) {\n return this.childNodes[i + 1];\n };\n class_2.prototype.getChildBBoxes = function () {\n return this.childNodes.slice(1).map(function (cell) { return cell.getBBox(); });\n };\n return class_2;\n }(Base));\n}\nexports.CommonMlabeledtrMixin = CommonMlabeledtrMixin;\n//# sourceMappingURL=mtr.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonMunderoverMixin = exports.CommonMoverMixin = exports.CommonMunderMixin = void 0;\nfunction CommonMunderMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.stretchChildren();\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"scriptChild\", {\n get: function () {\n return this.childNodes[this.node.under];\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n if (this.hasMovableLimits()) {\n _super.prototype.computeBBox.call(this, bbox, recompute);\n return;\n }\n bbox.empty();\n var basebox = this.baseChild.getOuterBBox();\n var underbox = this.scriptChild.getOuterBBox();\n var v = this.getUnderKV(basebox, underbox)[1];\n var delta = (this.isLineBelow ? 0 : this.getDelta(true));\n var _a = __read(this.getDeltaW([basebox, underbox], [0, -delta]), 2), bw = _a[0], uw = _a[1];\n bbox.combine(basebox, bw, 0);\n bbox.combine(underbox, uw, v);\n bbox.d += this.font.params.big_op_spacing5;\n bbox.clean();\n this.setChildPWidths(recompute);\n };\n return class_1;\n }(Base));\n}\nexports.CommonMunderMixin = CommonMunderMixin;\nfunction CommonMoverMixin(Base) {\n return (function (_super) {\n __extends(class_2, _super);\n function class_2() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.stretchChildren();\n return _this;\n }\n Object.defineProperty(class_2.prototype, \"scriptChild\", {\n get: function () {\n return this.childNodes[this.node.over];\n },\n enumerable: false,\n configurable: true\n });\n class_2.prototype.computeBBox = function (bbox) {\n if (this.hasMovableLimits()) {\n _super.prototype.computeBBox.call(this, bbox);\n return;\n }\n bbox.empty();\n var basebox = this.baseChild.getOuterBBox();\n var overbox = this.scriptChild.getOuterBBox();\n if (this.node.attributes.get('accent')) {\n basebox.h = Math.max(basebox.h, this.font.params.x_height * basebox.scale);\n }\n var u = this.getOverKU(basebox, overbox)[1];\n var delta = (this.isLineAbove ? 0 : this.getDelta());\n var _a = __read(this.getDeltaW([basebox, overbox], [0, delta]), 2), bw = _a[0], ow = _a[1];\n bbox.combine(basebox, bw, 0);\n bbox.combine(overbox, ow, u);\n bbox.h += this.font.params.big_op_spacing5;\n bbox.clean();\n };\n return class_2;\n }(Base));\n}\nexports.CommonMoverMixin = CommonMoverMixin;\nfunction CommonMunderoverMixin(Base) {\n return (function (_super) {\n __extends(class_3, _super);\n function class_3() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.stretchChildren();\n return _this;\n }\n Object.defineProperty(class_3.prototype, \"underChild\", {\n get: function () {\n return this.childNodes[this.node.under];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_3.prototype, \"overChild\", {\n get: function () {\n return this.childNodes[this.node.over];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_3.prototype, \"subChild\", {\n get: function () {\n return this.underChild;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_3.prototype, \"supChild\", {\n get: function () {\n return this.overChild;\n },\n enumerable: false,\n configurable: true\n });\n class_3.prototype.computeBBox = function (bbox) {\n if (this.hasMovableLimits()) {\n _super.prototype.computeBBox.call(this, bbox);\n return;\n }\n bbox.empty();\n var overbox = this.overChild.getOuterBBox();\n var basebox = this.baseChild.getOuterBBox();\n var underbox = this.underChild.getOuterBBox();\n if (this.node.attributes.get('accent')) {\n basebox.h = Math.max(basebox.h, this.font.params.x_height * basebox.scale);\n }\n var u = this.getOverKU(basebox, overbox)[1];\n var v = this.getUnderKV(basebox, underbox)[1];\n var delta = this.getDelta();\n var _a = __read(this.getDeltaW([basebox, underbox, overbox], [0, this.isLineBelow ? 0 : -delta, this.isLineAbove ? 0 : delta]), 3), bw = _a[0], uw = _a[1], ow = _a[2];\n bbox.combine(basebox, bw, 0);\n bbox.combine(overbox, ow, u);\n bbox.combine(underbox, uw, v);\n var z = this.font.params.big_op_spacing5;\n bbox.h += z;\n bbox.d += z;\n bbox.clean();\n };\n return class_3;\n }(Base));\n}\nexports.CommonMunderoverMixin = CommonMunderoverMixin;\n//# sourceMappingURL=munderover.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonScriptbaseMixin = void 0;\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nfunction CommonScriptbaseMixin(Base) {\n var _a;\n return _a = (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.baseScale = 1;\n _this.baseIc = 0;\n _this.baseRemoveIc = false;\n _this.baseIsChar = false;\n _this.baseHasAccentOver = null;\n _this.baseHasAccentUnder = null;\n _this.isLineAbove = false;\n _this.isLineBelow = false;\n _this.isMathAccent = false;\n var core = _this.baseCore = _this.getBaseCore();\n if (!core)\n return _this;\n _this.setBaseAccentsFor(core);\n _this.baseScale = _this.getBaseScale();\n _this.baseIc = _this.getBaseIc();\n _this.baseIsChar = _this.isCharBase();\n _this.isMathAccent = _this.baseIsChar &&\n (_this.scriptChild && !!_this.scriptChild.coreMO().node.getProperty('mathaccent'));\n _this.checkLineAccents();\n _this.baseRemoveIc = !_this.isLineAbove && !_this.isLineBelow &&\n (!_this.constructor.useIC || _this.isMathAccent);\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"baseChild\", {\n get: function () {\n return this.childNodes[this.node.base];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(class_1.prototype, \"scriptChild\", {\n get: function () {\n return this.childNodes[1];\n },\n enumerable: false,\n configurable: true\n });\n class_1.prototype.getBaseCore = function () {\n var core = this.getSemanticBase() || this.childNodes[0];\n while (core &&\n ((core.childNodes.length === 1 &&\n (core.node.isKind('mrow') ||\n (core.node.isKind('TeXAtom') && core.node.texClass !== MmlNode_js_1.TEXCLASS.VCENTER) ||\n core.node.isKind('mstyle') || core.node.isKind('mpadded') ||\n core.node.isKind('mphantom') || core.node.isKind('semantics'))) ||\n (core.node.isKind('munderover') && core.isMathAccent))) {\n this.setBaseAccentsFor(core);\n core = core.childNodes[0];\n }\n if (!core) {\n this.baseHasAccentOver = this.baseHasAccentUnder = false;\n }\n return core || this.childNodes[0];\n };\n class_1.prototype.setBaseAccentsFor = function (core) {\n if (core.node.isKind('munderover')) {\n if (this.baseHasAccentOver === null) {\n this.baseHasAccentOver = !!core.node.attributes.get('accent');\n }\n if (this.baseHasAccentUnder === null) {\n this.baseHasAccentUnder = !!core.node.attributes.get('accentunder');\n }\n }\n };\n class_1.prototype.getSemanticBase = function () {\n var fence = this.node.attributes.getExplicit('data-semantic-fencepointer');\n return this.getBaseFence(this.baseChild, fence);\n };\n class_1.prototype.getBaseFence = function (fence, id) {\n var e_1, _a;\n if (!fence || !fence.node.attributes || !id) {\n return null;\n }\n if (fence.node.attributes.getExplicit('data-semantic-id') === id) {\n return fence;\n }\n try {\n for (var _b = __values(fence.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n var result = this.getBaseFence(child, id);\n if (result) {\n return result;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return null;\n };\n class_1.prototype.getBaseScale = function () {\n var child = this.baseCore;\n var scale = 1;\n while (child && child !== this) {\n var bbox = child.getOuterBBox();\n scale *= bbox.rscale;\n child = child.parent;\n }\n return scale;\n };\n class_1.prototype.getBaseIc = function () {\n return this.baseCore.getOuterBBox().ic * this.baseScale;\n };\n class_1.prototype.getAdjustedIc = function () {\n var bbox = this.baseCore.getOuterBBox();\n return (bbox.ic ? 1.05 * bbox.ic + .05 : 0) * this.baseScale;\n };\n class_1.prototype.isCharBase = function () {\n var base = this.baseCore;\n return (((base.node.isKind('mo') && base.size === null) ||\n base.node.isKind('mi') || base.node.isKind('mn')) &&\n base.bbox.rscale === 1 && Array.from(base.getText()).length === 1);\n };\n class_1.prototype.checkLineAccents = function () {\n if (!this.node.isKind('munderover'))\n return;\n if (this.node.isKind('mover')) {\n this.isLineAbove = this.isLineAccent(this.scriptChild);\n }\n else if (this.node.isKind('munder')) {\n this.isLineBelow = this.isLineAccent(this.scriptChild);\n }\n else {\n var mml = this;\n this.isLineAbove = this.isLineAccent(mml.overChild);\n this.isLineBelow = this.isLineAccent(mml.underChild);\n }\n };\n class_1.prototype.isLineAccent = function (script) {\n var node = script.coreMO().node;\n return (node.isToken && node.getText() === '\\u2015');\n };\n class_1.prototype.getBaseWidth = function () {\n var bbox = this.baseChild.getOuterBBox();\n return bbox.w * bbox.rscale - (this.baseRemoveIc ? this.baseIc : 0) + this.font.params.extra_ic;\n };\n class_1.prototype.computeBBox = function (bbox, recompute) {\n if (recompute === void 0) { recompute = false; }\n var w = this.getBaseWidth();\n var _a = __read(this.getOffset(), 2), x = _a[0], y = _a[1];\n bbox.append(this.baseChild.getOuterBBox());\n bbox.combine(this.scriptChild.getOuterBBox(), w + x, y);\n bbox.w += this.font.params.scriptspace;\n bbox.clean();\n this.setChildPWidths(recompute);\n };\n class_1.prototype.getOffset = function () {\n return [0, 0];\n };\n class_1.prototype.baseCharZero = function (n) {\n var largeop = !!this.baseCore.node.attributes.get('largeop');\n var scale = this.baseScale;\n return (this.baseIsChar && !largeop && scale === 1 ? 0 : n);\n };\n class_1.prototype.getV = function () {\n var bbox = this.baseCore.getOuterBBox();\n var sbox = this.scriptChild.getOuterBBox();\n var tex = this.font.params;\n var subscriptshift = this.length2em(this.node.attributes.get('subscriptshift'), tex.sub1);\n return Math.max(this.baseCharZero(bbox.d * this.baseScale + tex.sub_drop * sbox.rscale), subscriptshift, sbox.h * sbox.rscale - (4 / 5) * tex.x_height);\n };\n class_1.prototype.getU = function () {\n var bbox = this.baseCore.getOuterBBox();\n var sbox = this.scriptChild.getOuterBBox();\n var tex = this.font.params;\n var attr = this.node.attributes.getList('displaystyle', 'superscriptshift');\n var prime = this.node.getProperty('texprimestyle');\n var p = prime ? tex.sup3 : (attr.displaystyle ? tex.sup1 : tex.sup2);\n var superscriptshift = this.length2em(attr.superscriptshift, p);\n return Math.max(this.baseCharZero(bbox.h * this.baseScale - tex.sup_drop * sbox.rscale), superscriptshift, sbox.d * sbox.rscale + (1 / 4) * tex.x_height);\n };\n class_1.prototype.hasMovableLimits = function () {\n var display = this.node.attributes.get('displaystyle');\n var mo = this.baseChild.coreMO().node;\n return (!display && !!mo.attributes.get('movablelimits'));\n };\n class_1.prototype.getOverKU = function (basebox, overbox) {\n var accent = this.node.attributes.get('accent');\n var tex = this.font.params;\n var d = overbox.d * overbox.rscale;\n var t = tex.rule_thickness * tex.separation_factor;\n var delta = (this.baseHasAccentOver ? t : 0);\n var T = (this.isLineAbove ? 3 * tex.rule_thickness : t);\n var k = (accent ? T : Math.max(tex.big_op_spacing1, tex.big_op_spacing3 - Math.max(0, d))) - delta;\n return [k, basebox.h * basebox.rscale + k + d];\n };\n class_1.prototype.getUnderKV = function (basebox, underbox) {\n var accent = this.node.attributes.get('accentunder');\n var tex = this.font.params;\n var h = underbox.h * underbox.rscale;\n var t = tex.rule_thickness * tex.separation_factor;\n var delta = (this.baseHasAccentUnder ? t : 0);\n var T = (this.isLineBelow ? 3 * tex.rule_thickness : t);\n var k = (accent ? T : Math.max(tex.big_op_spacing2, tex.big_op_spacing4 - h)) - delta;\n return [k, -(basebox.d * basebox.rscale + k + h)];\n };\n class_1.prototype.getDeltaW = function (boxes, delta) {\n var e_2, _a, e_3, _b;\n if (delta === void 0) { delta = [0, 0, 0]; }\n var align = this.node.attributes.get('align');\n var widths = boxes.map(function (box) { return box.w * box.rscale; });\n widths[0] -= (this.baseRemoveIc && !this.baseCore.node.attributes.get('largeop') ? this.baseIc : 0);\n var w = Math.max.apply(Math, __spreadArray([], __read(widths), false));\n var dw = [];\n var m = 0;\n try {\n for (var _c = __values(widths.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var i = _d.value;\n dw[i] = (align === 'center' ? (w - widths[i]) / 2 :\n align === 'right' ? w - widths[i] : 0) + delta[i];\n if (dw[i] < m) {\n m = -dw[i];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (m) {\n try {\n for (var _e = __values(dw.keys()), _f = _e.next(); !_f.done; _f = _e.next()) {\n var i = _f.value;\n dw[i] += m;\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n [1, 2].map(function (i) { return dw[i] += (boxes[i] ? boxes[i].dx * boxes[0].scale : 0); });\n return dw;\n };\n class_1.prototype.getDelta = function (noskew) {\n if (noskew === void 0) { noskew = false; }\n var accent = this.node.attributes.get('accent');\n var _a = this.baseCore.getOuterBBox(), sk = _a.sk, ic = _a.ic;\n return ((accent && !noskew ? sk : 0) + this.font.skewIcFactor * ic) * this.baseScale;\n };\n class_1.prototype.stretchChildren = function () {\n var e_4, _a, e_5, _b, e_6, _c;\n var stretchy = [];\n try {\n for (var _d = __values(this.childNodes), _e = _d.next(); !_e.done; _e = _d.next()) {\n var child = _e.value;\n if (child.canStretch(2)) {\n stretchy.push(child);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_4) throw e_4.error; }\n }\n var count = stretchy.length;\n var nodeCount = this.childNodes.length;\n if (count && nodeCount > 1) {\n var W = 0;\n var all = (count > 1 && count === nodeCount);\n try {\n for (var _f = __values(this.childNodes), _g = _f.next(); !_g.done; _g = _f.next()) {\n var child = _g.value;\n var noStretch = (child.stretch.dir === 0);\n if (all || noStretch) {\n var _h = child.getOuterBBox(noStretch), w = _h.w, rscale = _h.rscale;\n if (w * rscale > W)\n W = w * rscale;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_5) throw e_5.error; }\n }\n try {\n for (var stretchy_1 = __values(stretchy), stretchy_1_1 = stretchy_1.next(); !stretchy_1_1.done; stretchy_1_1 = stretchy_1.next()) {\n var child = stretchy_1_1.value;\n child.coreMO().getStretchedVariant([W / child.bbox.rscale]);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (stretchy_1_1 && !stretchy_1_1.done && (_c = stretchy_1.return)) _c.call(stretchy_1);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n };\n return class_1;\n }(Base)),\n _a.useIC = true,\n _a;\n}\nexports.CommonScriptbaseMixin = CommonScriptbaseMixin;\n//# sourceMappingURL=scriptbase.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonSemanticsMixin = void 0;\nfunction CommonSemanticsMixin(Base) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.computeBBox = function (bbox, _recompute) {\n if (_recompute === void 0) { _recompute = false; }\n if (this.childNodes.length) {\n var _a = this.childNodes[0].getBBox(), w = _a.w, h = _a.h, d = _a.d;\n bbox.w = w;\n bbox.h = h;\n bbox.d = d;\n }\n };\n return class_1;\n }(Base));\n}\nexports.CommonSemanticsMixin = CommonSemanticsMixin;\n//# sourceMappingURL=semantics.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommonTeXFontMixin = void 0;\nfunction CommonTeXFontMixin(Base) {\n var _a;\n return _a = (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.getDelimiterData = function (n) {\n return this.getChar('-smallop', n) || this.getChar('-size4', n);\n };\n return class_1;\n }(Base)),\n _a.NAME = 'TeX',\n _a.defaultVariants = __spreadArray(__spreadArray([], __read(Base.defaultVariants), false), [\n ['-smallop', 'normal'],\n ['-largeop', 'normal'],\n ['-size3', 'normal'],\n ['-size4', 'normal'],\n ['-tex-calligraphic', 'italic'],\n ['-tex-bold-calligraphic', 'bold-italic'],\n ['-tex-oldstyle', 'normal'],\n ['-tex-bold-oldstyle', 'bold'],\n ['-tex-mathit', 'italic'],\n ['-tex-variant', 'normal']\n ], false),\n _a.defaultCssFonts = __assign(__assign({}, Base.defaultCssFonts), { '-smallop': ['serif', false, false], '-largeop': ['serif', false, false], '-size3': ['serif', false, false], '-size4': ['serif', false, false], '-tex-calligraphic': ['cursive', true, false], '-tex-bold-calligraphic': ['cursive', true, true], '-tex-oldstyle': ['serif', false, false], '-tex-bold-oldstyle': ['serif', false, true], '-tex-mathit': ['serif', true, false] }),\n _a.defaultSizeVariants = ['normal', '-smallop', '-largeop', '-size3', '-size4', '-tex-variant'],\n _a.defaultStretchVariants = ['-size4'],\n _a;\n}\nexports.CommonTeXFontMixin = CommonTeXFontMixin;\n//# sourceMappingURL=tex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boldItalic = void 0;\nexports.boldItalic = {\n 0x2F: [.711, .21, .894],\n 0x131: [.452, .008, .394, { sk: .0319 }],\n 0x237: [.451, .201, .439, { sk: .0958 }],\n 0x2044: [.711, .21, .894],\n 0x2206: [.711, 0, .958, { sk: .192 }],\n 0x29F8: [.711, .21, .894],\n};\n//# sourceMappingURL=bold-italic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bold = void 0;\nexports.bold = {\n 0x21: [.705, 0, .35],\n 0x22: [.694, -0.329, .603],\n 0x23: [.694, .193, .958],\n 0x24: [.75, .056, .575],\n 0x25: [.75, .056, .958],\n 0x26: [.705, .011, .894],\n 0x27: [.694, -0.329, .319],\n 0x28: [.75, .249, .447],\n 0x29: [.75, .249, .447],\n 0x2A: [.75, -0.306, .575],\n 0x2B: [.633, .131, .894],\n 0x2C: [.171, .194, .319],\n 0x2D: [.278, -0.166, .383],\n 0x2E: [.171, 0, .319],\n 0x2F: [.75, .25, .575],\n 0x3A: [.444, 0, .319],\n 0x3B: [.444, .194, .319],\n 0x3C: [.587, .085, .894],\n 0x3D: [.393, -0.109, .894],\n 0x3E: [.587, .085, .894],\n 0x3F: [.7, 0, .543],\n 0x40: [.699, .006, .894],\n 0x5B: [.75, .25, .319],\n 0x5C: [.75, .25, .575],\n 0x5D: [.75, .25, .319],\n 0x5E: [.694, -0.52, .575],\n 0x5F: [-0.01, .061, .575],\n 0x60: [.706, -0.503, .575],\n 0x7B: [.75, .25, .575],\n 0x7C: [.75, .249, .319],\n 0x7D: [.75, .25, .575],\n 0x7E: [.344, -0.202, .575],\n 0xA8: [.695, -0.535, .575],\n 0xAC: [.371, -0.061, .767],\n 0xAF: [.607, -0.54, .575],\n 0xB0: [.702, -0.536, .575],\n 0xB1: [.728, .035, .894],\n 0xB4: [.706, -0.503, .575],\n 0xB7: [.336, -0.166, .319],\n 0xD7: [.53, .028, .894],\n 0xF7: [.597, .096, .894],\n 0x131: [.442, 0, .278, { sk: .0278 }],\n 0x237: [.442, .205, .306, { sk: .0833 }],\n 0x2B9: [.563, -0.033, .344],\n 0x2C6: [.694, -0.52, .575],\n 0x2C7: [.66, -0.515, .575],\n 0x2C9: [.607, -0.54, .575],\n 0x2CA: [.706, -0.503, .575],\n 0x2CB: [.706, -0.503, .575],\n 0x2D8: [.694, -0.5, .575],\n 0x2D9: [.695, -0.525, .575],\n 0x2DA: [.702, -0.536, .575],\n 0x2DC: [.694, -0.552, .575],\n 0x300: [.706, -0.503, 0],\n 0x301: [.706, -0.503, 0],\n 0x302: [.694, -0.52, 0],\n 0x303: [.694, -0.552, 0],\n 0x304: [.607, -0.54, 0],\n 0x306: [.694, -0.5, 0],\n 0x307: [.695, -0.525, 0],\n 0x308: [.695, -0.535, 0],\n 0x30A: [.702, -0.536, 0],\n 0x30B: [.714, -0.511, 0],\n 0x30C: [.66, -0.515, 0],\n 0x338: [.711, .21, 0],\n 0x2002: [0, 0, .5],\n 0x2003: [0, 0, .999],\n 0x2004: [0, 0, .333],\n 0x2005: [0, 0, .25],\n 0x2006: [0, 0, .167],\n 0x2009: [0, 0, .167],\n 0x200A: [0, 0, .083],\n 0x2013: [.3, -0.249, .575],\n 0x2014: [.3, -0.249, 1.15],\n 0x2015: [.3, -0.249, 1.15],\n 0x2016: [.75, .248, .575],\n 0x2017: [-0.01, .061, .575],\n 0x2018: [.694, -0.329, .319],\n 0x2019: [.694, -0.329, .319],\n 0x201C: [.694, -0.329, .603],\n 0x201D: [.694, -0.329, .603],\n 0x2020: [.702, .211, .511],\n 0x2021: [.702, .202, .511],\n 0x2022: [.474, -0.028, .575],\n 0x2026: [.171, 0, 1.295],\n 0x2032: [.563, -0.033, .344],\n 0x2033: [.563, 0, .688],\n 0x2034: [.563, 0, 1.032],\n 0x203E: [.607, -0.54, .575],\n 0x2044: [.75, .25, .575],\n 0x2057: [.563, 0, 1.376],\n 0x20D7: [.723, -0.513, .575],\n 0x210F: [.694, .008, .668, { sk: -0.0319 }],\n 0x2113: [.702, .019, .474, { sk: .128 }],\n 0x2118: [.461, .21, .74],\n 0x2135: [.694, 0, .703],\n 0x2190: [.518, .017, 1.15],\n 0x2191: [.694, .193, .575],\n 0x2192: [.518, .017, 1.15],\n 0x2193: [.694, .194, .575],\n 0x2194: [.518, .017, 1.15],\n 0x2195: [.767, .267, .575],\n 0x2196: [.724, .194, 1.15],\n 0x2197: [.724, .193, 1.15],\n 0x2198: [.694, .224, 1.15],\n 0x2199: [.694, .224, 1.15],\n 0x219A: [.711, .21, 1.15],\n 0x219B: [.711, .21, 1.15],\n 0x21A6: [.518, .017, 1.15],\n 0x21A9: [.518, .017, 1.282],\n 0x21AA: [.518, .017, 1.282],\n 0x21AE: [.711, .21, 1.15],\n 0x21BC: [.518, -0.22, 1.15],\n 0x21BD: [.281, .017, 1.15],\n 0x21C0: [.518, -0.22, 1.15],\n 0x21C1: [.281, .017, 1.15],\n 0x21CC: [.718, .017, 1.15],\n 0x21CD: [.711, .21, 1.15],\n 0x21CE: [.711, .21, 1.15],\n 0x21CF: [.711, .21, 1.15],\n 0x21D0: [.547, .046, 1.15],\n 0x21D1: [.694, .193, .703],\n 0x21D2: [.547, .046, 1.15],\n 0x21D3: [.694, .194, .703],\n 0x21D4: [.547, .046, 1.15],\n 0x21D5: [.767, .267, .703],\n 0x2200: [.694, .016, .639],\n 0x2203: [.694, 0, .639],\n 0x2204: [.711, .21, .639],\n 0x2205: [.767, .073, .575],\n 0x2206: [.698, 0, .958],\n 0x2208: [.587, .086, .767],\n 0x2209: [.711, .21, .767],\n 0x220B: [.587, .086, .767],\n 0x220C: [.711, .21, .767],\n 0x2212: [.281, -0.221, .894],\n 0x2213: [.537, .227, .894],\n 0x2215: [.75, .25, .575],\n 0x2216: [.75, .25, .575],\n 0x2217: [.472, -0.028, .575],\n 0x2218: [.474, -0.028, .575],\n 0x2219: [.474, -0.028, .575],\n 0x221A: [.82, .18, .958, { ic: .03 }],\n 0x221D: [.451, .008, .894],\n 0x221E: [.452, .008, 1.15],\n 0x2220: [.714, 0, .722],\n 0x2223: [.75, .249, .319],\n 0x2224: [.75, .249, .319],\n 0x2225: [.75, .248, .575],\n 0x2226: [.75, .248, .575],\n 0x2227: [.604, .017, .767],\n 0x2228: [.604, .016, .767],\n 0x2229: [.603, .016, .767],\n 0x222A: [.604, .016, .767],\n 0x222B: [.711, .211, .569, { ic: .063 }],\n 0x223C: [.391, -0.109, .894],\n 0x2240: [.583, .082, .319],\n 0x2241: [.711, .21, .894],\n 0x2243: [.502, 0, .894],\n 0x2244: [.711, .21, .894],\n 0x2245: [.638, .027, .894],\n 0x2247: [.711, .21, .894],\n 0x2248: [.524, -0.032, .894],\n 0x2249: [.711, .21, .894],\n 0x224D: [.533, .032, .894],\n 0x2250: [.721, -0.109, .894],\n 0x2260: [.711, .21, .894],\n 0x2261: [.505, 0, .894],\n 0x2262: [.711, .21, .894],\n 0x2264: [.697, .199, .894],\n 0x2265: [.697, .199, .894],\n 0x226A: [.617, .116, 1.15],\n 0x226B: [.618, .116, 1.15],\n 0x226D: [.711, .21, .894],\n 0x226E: [.711, .21, .894],\n 0x226F: [.711, .21, .894],\n 0x2270: [.711, .21, .894],\n 0x2271: [.711, .21, .894],\n 0x227A: [.585, .086, .894],\n 0x227B: [.586, .086, .894],\n 0x2280: [.711, .21, .894],\n 0x2281: [.711, .21, .894],\n 0x2282: [.587, .085, .894],\n 0x2283: [.587, .086, .894],\n 0x2284: [.711, .21, .894],\n 0x2285: [.711, .21, .894],\n 0x2286: [.697, .199, .894],\n 0x2287: [.697, .199, .894],\n 0x2288: [.711, .21, .894],\n 0x2289: [.711, .21, .894],\n 0x228E: [.604, .016, .767],\n 0x2291: [.697, .199, .894],\n 0x2292: [.697, .199, .894],\n 0x2293: [.604, 0, .767],\n 0x2294: [.604, 0, .767],\n 0x2295: [.632, .132, .894],\n 0x2296: [.632, .132, .894],\n 0x2297: [.632, .132, .894],\n 0x2298: [.632, .132, .894],\n 0x2299: [.632, .132, .894],\n 0x22A2: [.693, 0, .703],\n 0x22A3: [.693, 0, .703],\n 0x22A4: [.694, 0, .894],\n 0x22A5: [.693, 0, .894],\n 0x22A8: [.75, .249, .974],\n 0x22AC: [.711, .21, .703],\n 0x22AD: [.75, .249, .974],\n 0x22C4: [.523, .021, .575],\n 0x22C5: [.336, -0.166, .319],\n 0x22C6: [.502, 0, .575],\n 0x22C8: [.54, .039, 1],\n 0x22E2: [.711, .21, .894],\n 0x22E3: [.711, .21, .894],\n 0x22EE: [.951, .029, .319],\n 0x22EF: [.336, -0.166, 1.295],\n 0x22F1: [.871, -0.101, 1.323],\n 0x2308: [.75, .248, .511],\n 0x2309: [.75, .248, .511],\n 0x230A: [.749, .248, .511],\n 0x230B: [.749, .248, .511],\n 0x2322: [.405, -0.108, 1.15],\n 0x2323: [.392, -0.126, 1.15],\n 0x2329: [.75, .249, .447],\n 0x232A: [.75, .249, .447],\n 0x25B3: [.711, 0, 1.022],\n 0x25B5: [.711, 0, 1.022],\n 0x25B9: [.54, .039, .575],\n 0x25BD: [.5, .21, 1.022],\n 0x25BF: [.5, .21, 1.022],\n 0x25C3: [.539, .038, .575],\n 0x25EF: [.711, .211, 1.15],\n 0x2660: [.719, .129, .894],\n 0x2661: [.711, .024, .894],\n 0x2662: [.719, .154, .894],\n 0x2663: [.719, .129, .894],\n 0x266D: [.75, .017, .447],\n 0x266E: [.741, .223, .447],\n 0x266F: [.724, .224, .447],\n 0x2758: [.75, .249, .319],\n 0x27E8: [.75, .249, .447],\n 0x27E9: [.75, .249, .447],\n 0x27F5: [.518, .017, 1.805],\n 0x27F6: [.518, .017, 1.833],\n 0x27F7: [.518, .017, 2.126],\n 0x27F8: [.547, .046, 1.868],\n 0x27F9: [.547, .046, 1.87],\n 0x27FA: [.547, .046, 2.126],\n 0x27FC: [.518, .017, 1.833],\n 0x29F8: [.711, .21, .894],\n 0x2A2F: [.53, .028, .894],\n 0x2A3F: [.686, 0, .9],\n 0x2AAF: [.696, .199, .894],\n 0x2AB0: [.697, .199, .894],\n 0x3008: [.75, .249, .447],\n 0x3009: [.75, .249, .447],\n};\n//# sourceMappingURL=bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delimiters = exports.VSIZES = exports.HDW3 = exports.HDW2 = exports.HDW1 = void 0;\nvar FontData_js_1 = require(\"../../FontData.js\");\nexports.HDW1 = [.75, .25, .875];\nexports.HDW2 = [.85, .349, .667];\nexports.HDW3 = [.583, .082, .5];\nexports.VSIZES = [1, 1.2, 1.8, 2.4, 3];\nvar DELIM2F = { c: 0x2F, dir: FontData_js_1.V, sizes: exports.VSIZES };\nvar DELIMAF = { c: 0xAF, dir: FontData_js_1.H, sizes: [.5], stretch: [0, 0xAF], HDW: [.59, -0.544, .5] };\nvar DELIM2C6 = { c: 0x2C6, dir: FontData_js_1.H, sizes: [.5, .556, 1, 1.444, 1.889] };\nvar DELIM2DC = { c: 0x2DC, dir: FontData_js_1.H, sizes: [.5, .556, 1, 1.444, 1.889] };\nvar DELIM2013 = { c: 0x2013, dir: FontData_js_1.H, sizes: [.5], stretch: [0, 0x2013], HDW: [.285, -0.248, .5] };\nvar DELIM2190 = { c: 0x2190, dir: FontData_js_1.H, sizes: [1], stretch: [0x2190, 0x2212], HDW: exports.HDW3 };\nvar DELIM2192 = { c: 0x2192, dir: FontData_js_1.H, sizes: [1], stretch: [0, 0x2212, 0x2192], HDW: exports.HDW3 };\nvar DELIM2194 = { c: 0x2194, dir: FontData_js_1.H, sizes: [1], stretch: [0x2190, 0x2212, 0x2192], HDW: exports.HDW3 };\nvar DELIM21A4 = { c: 0x21A4, dir: FontData_js_1.H, stretch: [0x2190, 0x2212, 0x2223], HDW: exports.HDW3, min: 1.278 };\nvar DELIM21A6 = { c: 0x21A6, dir: FontData_js_1.H, sizes: [1], stretch: [0x2223, 0x2212, 0x2192], HDW: exports.HDW3 };\nvar DELIM21D0 = { c: 0x21D0, dir: FontData_js_1.H, sizes: [1], stretch: [0x21D0, 0x3D], HDW: exports.HDW3 };\nvar DELIM21D2 = { c: 0x21D2, dir: FontData_js_1.H, sizes: [1], stretch: [0, 0x3D, 0x21D2], HDW: exports.HDW3 };\nvar DELIM21D4 = { c: 0x21D4, dir: FontData_js_1.H, sizes: [1], stretch: [0x21D0, 0x3D, 0x21D2], HDW: exports.HDW3 };\nvar DELIM2212 = { c: 0x2212, dir: FontData_js_1.H, sizes: [.778], stretch: [0, 0x2212], HDW: exports.HDW3 };\nvar DELIM2223 = { c: 0x2223, dir: FontData_js_1.V, sizes: [1], stretch: [0, 0x2223], HDW: [.627, .015, .333] };\nvar DELIM23DC = { c: 0x23DC, dir: FontData_js_1.H, sizes: [.778, 1], schar: [0x2322, 0x2322], variants: [5, 0],\n stretch: [0xE150, 0xE154, 0xE151], HDW: [.32, .2, .5] };\nvar DELIM23DD = { c: 0x23DD, dir: FontData_js_1.H, sizes: [.778, 1], schar: [0x2323, 0x2323], variants: [5, 0],\n stretch: [0xE152, 0xE154, 0xE153], HDW: [.32, .2, .5] };\nvar DELIM23DE = { c: 0x23DE, dir: FontData_js_1.H, stretch: [0xE150, 0xE154, 0xE151, 0xE155], HDW: [.32, .2, .5], min: 1.8 };\nvar DELIM23DF = { c: 0x23DF, dir: FontData_js_1.H, stretch: [0xE152, 0xE154, 0xE153, 0xE156], HDW: [.32, .2, .5], min: 1.8 };\nvar DELIM27E8 = { c: 0x27E8, dir: FontData_js_1.V, sizes: exports.VSIZES };\nvar DELIM27E9 = { c: 0x27E9, dir: FontData_js_1.V, sizes: exports.VSIZES };\nvar DELIM2906 = { c: 0x2906, dir: FontData_js_1.H, stretch: [0x21D0, 0x3D, 0x2223], HDW: exports.HDW3, min: 1.278 };\nvar DELIM2907 = { c: 0x2907, dir: FontData_js_1.H, stretch: [0x22A8, 0x3D, 0x21D2], HDW: exports.HDW3, min: 1.278 };\nexports.delimiters = {\n 0x28: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0x239B, 0x239C, 0x239D], HDW: [.85, .349, .875] },\n 0x29: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0x239E, 0x239F, 0x23A0], HDW: [.85, .349, .875] },\n 0x2D: DELIM2212,\n 0x2F: DELIM2F,\n 0x3D: { dir: FontData_js_1.H, sizes: [.778], stretch: [0, 0x3D], HDW: exports.HDW3 },\n 0x5B: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0x23A1, 0x23A2, 0x23A3], HDW: exports.HDW2 },\n 0x5C: { dir: FontData_js_1.V, sizes: exports.VSIZES },\n 0x5D: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0x23A4, 0x23A5, 0x23A6], HDW: exports.HDW2 },\n 0x5E: DELIM2C6,\n 0x5F: DELIM2013,\n 0x7B: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0x23A7, 0x23AA, 0x23A9, 0x23A8], HDW: [.85, .349, .889] },\n 0x7C: { dir: FontData_js_1.V, sizes: [1], stretch: [0, 0x2223], HDW: [.75, .25, .333] },\n 0x7D: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0x23AB, 0x23AA, 0x23AD, 0x23AC], HDW: [.85, .349, .889] },\n 0x7E: DELIM2DC,\n 0xAF: DELIMAF,\n 0x2C6: DELIM2C6,\n 0x2C9: DELIMAF,\n 0x2DC: DELIM2DC,\n 0x302: DELIM2C6,\n 0x303: DELIM2DC,\n 0x332: DELIM2013,\n 0x2013: DELIM2013,\n 0x2014: DELIM2013,\n 0x2015: DELIM2013,\n 0x2016: { dir: FontData_js_1.V, sizes: [.602, 1], schar: [0, 0x2225], variants: [1, 0], stretch: [0, 0x2225], HDW: [.602, 0, .556] },\n 0x2017: DELIM2013,\n 0x203E: DELIMAF,\n 0x20D7: DELIM2192,\n 0x2190: DELIM2190,\n 0x2191: { dir: FontData_js_1.V, sizes: [.888], stretch: [0x2191, 0x23D0], HDW: [.6, 0, .667] },\n 0x2192: DELIM2192,\n 0x2193: { dir: FontData_js_1.V, sizes: [.888], stretch: [0, 0x23D0, 0x2193], HDW: [.6, 0, .667] },\n 0x2194: DELIM2194,\n 0x2195: { dir: FontData_js_1.V, sizes: [1.044], stretch: [0x2191, 0x23D0, 0x2193], HDW: exports.HDW1 },\n 0x219E: { dir: FontData_js_1.H, sizes: [1], stretch: [0x219E, 0x2212], HDW: exports.HDW3 },\n 0x21A0: { dir: FontData_js_1.H, sizes: [1], stretch: [0, 0x2212, 0x21A0], HDW: exports.HDW3 },\n 0x21A4: DELIM21A4,\n 0x21A5: { dir: FontData_js_1.V, stretch: [0x2191, 0x23D0, 0x22A5], HDW: exports.HDW1, min: 1.555 },\n 0x21A6: DELIM21A6,\n 0x21A7: { dir: FontData_js_1.V, stretch: [0x22A4, 0x23D0, 0x2193], HDW: exports.HDW1, min: 1.555 },\n 0x21B0: { dir: FontData_js_1.V, sizes: [.722], stretch: [0x21B0, 0x23D0], HDW: exports.HDW1 },\n 0x21B1: { dir: FontData_js_1.V, sizes: [.722], stretch: [0x21B1, 0x23D0], HDW: exports.HDW1 },\n 0x21BC: { dir: FontData_js_1.H, sizes: [1], stretch: [0x21BC, 0x2212], HDW: exports.HDW3 },\n 0x21BD: { dir: FontData_js_1.H, sizes: [1], stretch: [0x21BD, 0x2212], HDW: exports.HDW3 },\n 0x21BE: { dir: FontData_js_1.V, sizes: [.888], stretch: [0x21BE, 0x23D0], HDW: exports.HDW1 },\n 0x21BF: { dir: FontData_js_1.V, sizes: [.888], stretch: [0x21BF, 0x23D0], HDW: exports.HDW1 },\n 0x21C0: { dir: FontData_js_1.H, sizes: [1], stretch: [0, 0x2212, 0x21C0], HDW: exports.HDW3 },\n 0x21C1: { dir: FontData_js_1.H, sizes: [1], stretch: [0, 0x2212, 0x21C1], HDW: exports.HDW3 },\n 0x21C2: { dir: FontData_js_1.V, sizes: [.888], stretch: [0, 0x23D0, 0x21C2], HDW: exports.HDW1 },\n 0x21C3: { dir: FontData_js_1.V, sizes: [.888], stretch: [0, 0x23D0, 0x21C3], HDW: exports.HDW1 },\n 0x21D0: DELIM21D0,\n 0x21D1: { dir: FontData_js_1.V, sizes: [.888], stretch: [0x21D1, 0x2016], HDW: [.599, 0, .778] },\n 0x21D2: DELIM21D2,\n 0x21D3: { dir: FontData_js_1.V, sizes: [.888], stretch: [0, 0x2016, 0x21D3], HDW: [.6, 0, .778] },\n 0x21D4: DELIM21D4,\n 0x21D5: { dir: FontData_js_1.V, sizes: [1.044], stretch: [0x21D1, 0x2016, 0x21D3], HDW: [.75, .25, .778] },\n 0x21DA: { dir: FontData_js_1.H, sizes: [1], stretch: [0x21DA, 0x2261], HDW: [.464, -0.036, .5] },\n 0x21DB: { dir: FontData_js_1.H, sizes: [1], stretch: [0, 0x2261, 0x21DB], HDW: [.464, -0.036, .5] },\n 0x2212: DELIM2212,\n 0x2215: DELIM2F,\n 0x221A: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0xE001, 0xE000, 0x23B7], fullExt: [.65, 2.3], HDW: [.85, .35, 1.056] },\n 0x2223: DELIM2223,\n 0x2225: { dir: FontData_js_1.V, sizes: [1], stretch: [0, 0x2225], HDW: [.627, .015, .556] },\n 0x2308: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0x23A1, 0x23A2], HDW: exports.HDW2 },\n 0x2309: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0x23A4, 0x23A5], HDW: exports.HDW2 },\n 0x230A: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0, 0x23A2, 0x23A3], HDW: exports.HDW2 },\n 0x230B: { dir: FontData_js_1.V, sizes: exports.VSIZES, stretch: [0, 0x23A5, 0x23A6], HDW: exports.HDW2 },\n 0x2312: DELIM23DC,\n 0x2322: DELIM23DC,\n 0x2323: DELIM23DD,\n 0x2329: DELIM27E8,\n 0x232A: DELIM27E9,\n 0x23AA: { dir: FontData_js_1.V, sizes: [.32], stretch: [0x23AA, 0x23AA, 0x23AA], HDW: [.29, .015, .889] },\n 0x23AF: DELIM2013,\n 0x23B0: { dir: FontData_js_1.V, sizes: [.989], stretch: [0x23A7, 0x23AA, 0x23AD], HDW: [.75, .25, .889] },\n 0x23B1: { dir: FontData_js_1.V, sizes: [.989], stretch: [0x23AB, 0x23AA, 0x23A9], HDW: [.75, .25, .889] },\n 0x23B4: { dir: FontData_js_1.H, stretch: [0x250C, 0x2212, 0x2510], HDW: exports.HDW3, min: 1 },\n 0x23B5: { dir: FontData_js_1.H, stretch: [0x2514, 0x2212, 0x2518], HDW: exports.HDW3, min: 1 },\n 0x23D0: { dir: FontData_js_1.V, sizes: [.602, 1], schar: [0, 0x2223], variants: [1, 0], stretch: [0, 0x2223], HDW: [.602, 0, .333] },\n 0x23DC: DELIM23DC,\n 0x23DD: DELIM23DD,\n 0x23DE: DELIM23DE,\n 0x23DF: DELIM23DF,\n 0x23E0: { dir: FontData_js_1.H, stretch: [0x2CA, 0x2C9, 0x2CB], HDW: [.59, -0.544, .5], min: 1 },\n 0x23E1: { dir: FontData_js_1.H, stretch: [0x2CB, 0x2C9, 0x2CA], HDW: [.59, -0.544, .5], min: 1 },\n 0x2500: DELIM2013,\n 0x2758: DELIM2223,\n 0x27E8: DELIM27E8,\n 0x27E9: DELIM27E9,\n 0x27EE: { dir: FontData_js_1.V, sizes: [.989], stretch: [0x23A7, 0x23AA, 0x23A9], HDW: [.75, .25, .889] },\n 0x27EF: { dir: FontData_js_1.V, sizes: [.989], stretch: [0x23AB, 0x23AA, 0x23AD], HDW: [.75, .25, .889] },\n 0x27F5: DELIM2190,\n 0x27F6: DELIM2192,\n 0x27F7: DELIM2194,\n 0x27F8: DELIM21D0,\n 0x27F9: DELIM21D2,\n 0x27FA: DELIM21D4,\n 0x27FB: DELIM21A4,\n 0x27FC: DELIM21A6,\n 0x27FD: DELIM2906,\n 0x27FE: DELIM2907,\n 0x2906: DELIM2906,\n 0x2907: DELIM2907,\n 0x294E: { dir: FontData_js_1.H, stretch: [0x21BC, 0x2212, 0x21C0], HDW: exports.HDW3, min: 2 },\n 0x294F: { dir: FontData_js_1.V, stretch: [0x21BE, 0x23D0, 0x21C2], HDW: exports.HDW1, min: 1.776 },\n 0x2950: { dir: FontData_js_1.H, stretch: [0x21BD, 0x2212, 0x21C1], HDW: exports.HDW3, min: 2 },\n 0x2951: { dir: FontData_js_1.V, stretch: [0x21BF, 0x23D0, 0x21C3], HDW: exports.HDW1, min: .5 },\n 0x295A: { dir: FontData_js_1.H, stretch: [0x21BC, 0x2212, 0x2223], HDW: exports.HDW3, min: 1.278 },\n 0x295B: { dir: FontData_js_1.H, stretch: [0x2223, 0x2212, 0x21C0], HDW: exports.HDW3, min: 1.278 },\n 0x295C: { dir: FontData_js_1.V, stretch: [0x21BE, 0x23D0, 0x22A5], HDW: exports.HDW1, min: 1.556 },\n 0x295D: { dir: FontData_js_1.V, stretch: [0x22A4, 0x23D0, 0x21C2], HDW: exports.HDW1, min: 1.556 },\n 0x295E: { dir: FontData_js_1.H, stretch: [0x21BD, 0x2212, 0x2223], HDW: exports.HDW3, min: 1.278 },\n 0x295F: { dir: FontData_js_1.H, stretch: [0x2223, 0x2212, 0x21C1], HDW: exports.HDW3, min: 1.278 },\n 0x2960: { dir: FontData_js_1.V, stretch: [0x21BF, 0x23D0, 0x22A5], HDW: exports.HDW1, min: 1.776 },\n 0x2961: { dir: FontData_js_1.V, stretch: [0x22A4, 0x23D0, 0x21C3], HDW: exports.HDW1, min: 1.776 },\n 0x3008: DELIM27E8,\n 0x3009: DELIM27E9,\n 0xFE37: DELIM23DE,\n 0xFE38: DELIM23DF,\n};\n//# sourceMappingURL=delimiters.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.doubleStruck = void 0;\nexports.doubleStruck = {};\n//# sourceMappingURL=double-struck.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.frakturBold = void 0;\nexports.frakturBold = {\n 0x21: [.689, .012, .349],\n 0x22: [.695, -0.432, .254],\n 0x26: [.696, .016, .871],\n 0x27: [.695, -0.436, .25],\n 0x28: [.737, .186, .459],\n 0x29: [.735, .187, .459],\n 0x2A: [.692, -0.449, .328],\n 0x2B: [.598, .082, .893],\n 0x2C: [.107, .191, .328],\n 0x2D: [.275, -0.236, .893],\n 0x2E: [.102, .015, .328],\n 0x2F: [.721, .182, .593],\n 0x30: [.501, .012, .593],\n 0x31: [.489, 0, .593],\n 0x32: [.491, 0, .593],\n 0x33: [.487, .193, .593],\n 0x34: [.495, .196, .593],\n 0x35: [.481, .19, .593],\n 0x36: [.704, .012, .593],\n 0x37: [.479, .197, .593],\n 0x38: [.714, .005, .593],\n 0x39: [.487, .195, .593],\n 0x3A: [.457, .012, .255],\n 0x3B: [.458, .19, .255],\n 0x3D: [.343, -0.168, .582],\n 0x3F: [.697, .014, .428],\n 0x5B: [.74, .13, .257],\n 0x5D: [.738, .132, .257],\n 0x5E: [.734, -0.452, .59],\n 0x2018: [.708, -0.411, .254],\n 0x2019: [.692, -0.394, .254],\n 0x2044: [.721, .182, .593],\n 0xE301: [.63, .027, .587],\n 0xE302: [.693, .212, .394, { ic: .014 }],\n 0xE303: [.681, .219, .387],\n 0xE304: [.473, .212, .593],\n 0xE305: [.684, .027, .393],\n 0xE308: [.679, .22, .981],\n 0xE309: [.717, .137, .727],\n};\n//# sourceMappingURL=fraktur-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fraktur = void 0;\nexports.fraktur = {\n 0x21: [.689, .012, .296],\n 0x22: [.695, -0.432, .215],\n 0x26: [.698, .011, .738],\n 0x27: [.695, -0.436, .212],\n 0x28: [.737, .186, .389],\n 0x29: [.735, .187, .389],\n 0x2A: [.692, -0.449, .278],\n 0x2B: [.598, .082, .756],\n 0x2C: [.107, .191, .278],\n 0x2D: [.275, -0.236, .756],\n 0x2E: [.102, .015, .278],\n 0x2F: [.721, .182, .502],\n 0x30: [.492, .013, .502],\n 0x31: [.468, 0, .502],\n 0x32: [.474, 0, .502],\n 0x33: [.473, .182, .502],\n 0x34: [.476, .191, .502],\n 0x35: [.458, .184, .502],\n 0x36: [.7, .013, .502],\n 0x37: [.468, .181, .502],\n 0x38: [.705, .01, .502],\n 0x39: [.469, .182, .502],\n 0x3A: [.457, .012, .216],\n 0x3B: [.458, .189, .216],\n 0x3D: [.368, -0.132, .756],\n 0x3F: [.693, .011, .362],\n 0x5B: [.74, .13, .278],\n 0x5D: [.738, .131, .278],\n 0x5E: [.734, -0.452, .5],\n 0x2018: [.708, -0.41, .215],\n 0x2019: [.692, -0.395, .215],\n 0x2044: [.721, .182, .502],\n 0xE300: [.683, .032, .497],\n 0xE301: [.616, .03, .498],\n 0xE302: [.68, .215, .333],\n 0xE303: [.679, .224, .329],\n 0xE304: [.471, .214, .503],\n 0xE305: [.686, .02, .333],\n 0xE306: [.577, .021, .334, { ic: .013 }],\n 0xE307: [.475, .022, .501, { ic: .013 }],\n};\n//# sourceMappingURL=fraktur.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.italic = void 0;\nexports.italic = {\n 0x21: [.716, 0, .307, { ic: .073 }],\n 0x22: [.694, -0.379, .514, { ic: .024 }],\n 0x23: [.694, .194, .818, { ic: .01 }],\n 0x25: [.75, .056, .818, { ic: .029 }],\n 0x26: [.716, .022, .767, { ic: .035 }],\n 0x27: [.694, -0.379, .307, { ic: .07 }],\n 0x28: [.75, .25, .409, { ic: .108 }],\n 0x29: [.75, .25, .409],\n 0x2A: [.75, -0.32, .511, { ic: .073 }],\n 0x2B: [.557, .057, .767],\n 0x2C: [.121, .194, .307],\n 0x2D: [.251, -0.18, .358],\n 0x2E: [.121, 0, .307],\n 0x2F: [.716, .215, .778],\n 0x30: [.665, .021, .511, { ic: .051 }],\n 0x31: [.666, 0, .511],\n 0x32: [.666, .022, .511, { ic: .04 }],\n 0x33: [.666, .022, .511, { ic: .051 }],\n 0x34: [.666, .194, .511],\n 0x35: [.666, .022, .511, { ic: .056 }],\n 0x36: [.665, .022, .511, { ic: .054 }],\n 0x37: [.666, .022, .511, { ic: .123 }],\n 0x38: [.666, .021, .511, { ic: .042 }],\n 0x39: [.666, .022, .511, { ic: .042 }],\n 0x3A: [.431, 0, .307],\n 0x3B: [.431, .194, .307],\n 0x3D: [.367, -0.133, .767],\n 0x3F: [.716, 0, .511, { ic: .04 }],\n 0x40: [.705, .011, .767, { ic: .022 }],\n 0x5B: [.75, .25, .307, { ic: .139 }],\n 0x5D: [.75, .25, .307, { ic: .052 }],\n 0x5E: [.694, -0.527, .511, { ic: .017 }],\n 0x5F: [-0.025, .062, .511, { ic: .043 }],\n 0x7E: [.318, -0.208, .511, { ic: .06 }],\n 0x131: [.441, .01, .307, { ic: .033 }],\n 0x237: [.442, .204, .332],\n 0x300: [.697, -0.5, 0],\n 0x301: [.697, -0.5, 0, { ic: .039 }],\n 0x302: [.694, -0.527, 0, { ic: .017 }],\n 0x303: [.668, -0.558, 0, { ic: .06 }],\n 0x304: [.589, -0.544, 0, { ic: .054 }],\n 0x306: [.694, -0.515, 0, { ic: .062 }],\n 0x307: [.669, -0.548, 0],\n 0x308: [.669, -0.554, 0, { ic: .045 }],\n 0x30A: [.716, -0.542, 0],\n 0x30B: [.697, -0.503, 0, { ic: .065 }],\n 0x30C: [.638, -0.502, 0, { ic: .029 }],\n 0x3DD: [.605, .085, .778],\n 0x2013: [.285, -0.248, .511, { ic: .043 }],\n 0x2014: [.285, -0.248, 1.022, { ic: .016 }],\n 0x2015: [.285, -0.248, 1.022, { ic: .016 }],\n 0x2017: [-0.025, .062, .511, { ic: .043 }],\n 0x2018: [.694, -0.379, .307, { ic: .055 }],\n 0x2019: [.694, -0.379, .307, { ic: .07 }],\n 0x201C: [.694, -0.379, .514, { ic: .092 }],\n 0x201D: [.694, -0.379, .514, { ic: .024 }],\n 0x2044: [.716, .215, .778],\n 0x210F: [.695, .013, .54, { ic: .022 }],\n 0x2206: [.716, 0, .833, { sk: .167 }],\n 0x29F8: [.716, .215, .778],\n};\n//# sourceMappingURL=italic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.largeop = void 0;\nexports.largeop = {\n 0x28: [1.15, .649, .597],\n 0x29: [1.15, .649, .597],\n 0x2F: [1.15, .649, .811],\n 0x5B: [1.15, .649, .472],\n 0x5C: [1.15, .649, .811],\n 0x5D: [1.15, .649, .472],\n 0x7B: [1.15, .649, .667],\n 0x7D: [1.15, .649, .667],\n 0x2C6: [.772, -0.565, 1],\n 0x2DC: [.75, -0.611, 1],\n 0x302: [.772, -0.565, 0],\n 0x303: [.75, -0.611, 0],\n 0x2016: [.602, 0, .778],\n 0x2044: [1.15, .649, .811],\n 0x2191: [.6, 0, .667],\n 0x2193: [.6, 0, .667],\n 0x21D1: [.599, 0, .778],\n 0x21D3: [.6, 0, .778],\n 0x220F: [.95, .45, 1.278],\n 0x2210: [.95, .45, 1.278],\n 0x2211: [.95, .45, 1.444],\n 0x221A: [1.15, .65, 1, { ic: .02 }],\n 0x2223: [.627, .015, .333],\n 0x2225: [.627, .015, .556],\n 0x222B: [1.36, .862, .556, { ic: .388 }],\n 0x222C: [1.36, .862, 1.084, { ic: .388 }],\n 0x222D: [1.36, .862, 1.592, { ic: .388 }],\n 0x222E: [1.36, .862, .556, { ic: .388 }],\n 0x22C0: [.95, .45, 1.111],\n 0x22C1: [.95, .45, 1.111],\n 0x22C2: [.949, .45, 1.111],\n 0x22C3: [.95, .449, 1.111],\n 0x2308: [1.15, .649, .528],\n 0x2309: [1.15, .649, .528],\n 0x230A: [1.15, .649, .528],\n 0x230B: [1.15, .649, .528],\n 0x2329: [1.15, .649, .611],\n 0x232A: [1.15, .649, .611],\n 0x23D0: [.602, 0, .667],\n 0x2758: [.627, .015, .333],\n 0x27E8: [1.15, .649, .611],\n 0x27E9: [1.15, .649, .611],\n 0x2A00: [.949, .449, 1.511],\n 0x2A01: [.949, .449, 1.511],\n 0x2A02: [.949, .449, 1.511],\n 0x2A04: [.95, .449, 1.111],\n 0x2A06: [.95, .45, 1.111],\n 0x2A0C: [1.36, .862, 2.168, { ic: .388 }],\n 0x3008: [1.15, .649, .611],\n 0x3009: [1.15, .649, .611],\n};\n//# sourceMappingURL=largeop.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.monospace = void 0;\nexports.monospace = {\n 0x20: [0, 0, .525],\n 0x21: [.622, 0, .525],\n 0x22: [.623, -0.333, .525],\n 0x23: [.611, 0, .525],\n 0x24: [.694, .082, .525],\n 0x25: [.694, .083, .525],\n 0x26: [.622, .011, .525],\n 0x27: [.611, -0.287, .525],\n 0x28: [.694, .082, .525],\n 0x29: [.694, .082, .525],\n 0x2A: [.52, -0.09, .525],\n 0x2B: [.531, -0.081, .525],\n 0x2C: [.14, .139, .525],\n 0x2D: [.341, -0.271, .525],\n 0x2E: [.14, 0, .525],\n 0x2F: [.694, .083, .525],\n 0x3A: [.431, 0, .525],\n 0x3B: [.431, .139, .525],\n 0x3C: [.557, -0.055, .525],\n 0x3D: [.417, -0.195, .525],\n 0x3E: [.557, -0.055, .525],\n 0x3F: [.617, 0, .525],\n 0x40: [.617, .006, .525],\n 0x5B: [.694, .082, .525],\n 0x5C: [.694, .083, .525],\n 0x5D: [.694, .082, .525],\n 0x5E: [.611, -0.46, .525],\n 0x5F: [-0.025, .095, .525],\n 0x60: [.681, -0.357, .525],\n 0x7B: [.694, .083, .525],\n 0x7C: [.694, .082, .525],\n 0x7D: [.694, .083, .525],\n 0x7E: [.611, -0.466, .525],\n 0x7F: [.612, -0.519, .525],\n 0xA0: [0, 0, .525],\n 0x131: [.431, 0, .525],\n 0x237: [.431, .228, .525],\n 0x2B9: [.623, -0.334, .525],\n 0x300: [.611, -0.485, 0],\n 0x301: [.611, -0.485, 0],\n 0x302: [.611, -0.46, 0],\n 0x303: [.611, -0.466, 0],\n 0x304: [.577, -0.5, 0],\n 0x306: [.611, -0.504, 0],\n 0x308: [.612, -0.519, 0],\n 0x30A: [.619, -0.499, 0],\n 0x30C: [.577, -0.449, 0],\n 0x391: [.623, 0, .525],\n 0x392: [.611, 0, .525],\n 0x393: [.611, 0, .525],\n 0x394: [.623, 0, .525],\n 0x395: [.611, 0, .525],\n 0x396: [.611, 0, .525],\n 0x397: [.611, 0, .525],\n 0x398: [.621, .01, .525],\n 0x399: [.611, 0, .525],\n 0x39A: [.611, 0, .525],\n 0x39B: [.623, 0, .525],\n 0x39C: [.611, 0, .525],\n 0x39D: [.611, 0, .525],\n 0x39E: [.611, 0, .525],\n 0x39F: [.621, .01, .525],\n 0x3A0: [.611, 0, .525],\n 0x3A1: [.611, 0, .525],\n 0x3A3: [.611, 0, .525],\n 0x3A4: [.611, 0, .525],\n 0x3A5: [.622, 0, .525],\n 0x3A6: [.611, 0, .525],\n 0x3A7: [.611, 0, .525],\n 0x3A8: [.611, 0, .525],\n 0x3A9: [.622, 0, .525],\n 0x2017: [-0.025, .095, .525],\n 0x2032: [.623, -0.334, .525],\n 0x2033: [.623, 0, 1.05],\n 0x2034: [.623, 0, 1.575],\n 0x2044: [.694, .083, .525],\n 0x2057: [.623, 0, 2.1],\n 0x2206: [.623, 0, .525],\n};\n//# sourceMappingURL=monospace.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normal = void 0;\nexports.normal = {\n 0x20: [0, 0, .25],\n 0x21: [.716, 0, .278],\n 0x22: [.694, -0.379, .5],\n 0x23: [.694, .194, .833],\n 0x24: [.75, .056, .5],\n 0x25: [.75, .056, .833],\n 0x26: [.716, .022, .778],\n 0x27: [.694, -0.379, .278],\n 0x28: [.75, .25, .389],\n 0x29: [.75, .25, .389],\n 0x2A: [.75, -0.32, .5],\n 0x2B: [.583, .082, .778],\n 0x2C: [.121, .194, .278],\n 0x2D: [.252, -0.179, .333],\n 0x2E: [.12, 0, .278],\n 0x2F: [.75, .25, .5],\n 0x30: [.666, .022, .5],\n 0x31: [.666, 0, .5],\n 0x32: [.666, 0, .5],\n 0x33: [.665, .022, .5],\n 0x34: [.677, 0, .5],\n 0x35: [.666, .022, .5],\n 0x36: [.666, .022, .5],\n 0x37: [.676, .022, .5],\n 0x38: [.666, .022, .5],\n 0x39: [.666, .022, .5],\n 0x3A: [.43, 0, .278],\n 0x3B: [.43, .194, .278],\n 0x3C: [.54, .04, .778],\n 0x3D: [.583, .082, .778],\n 0x3E: [.54, .04, .778],\n 0x3F: [.705, 0, .472],\n 0x40: [.705, .011, .778],\n 0x41: [.716, 0, .75],\n 0x42: [.683, 0, .708],\n 0x43: [.705, .021, .722],\n 0x44: [.683, 0, .764],\n 0x45: [.68, 0, .681],\n 0x46: [.68, 0, .653],\n 0x47: [.705, .022, .785],\n 0x48: [.683, 0, .75],\n 0x49: [.683, 0, .361],\n 0x4A: [.683, .022, .514],\n 0x4B: [.683, 0, .778],\n 0x4C: [.683, 0, .625],\n 0x4D: [.683, 0, .917],\n 0x4E: [.683, 0, .75],\n 0x4F: [.705, .022, .778],\n 0x50: [.683, 0, .681],\n 0x51: [.705, .193, .778],\n 0x52: [.683, .022, .736],\n 0x53: [.705, .022, .556],\n 0x54: [.677, 0, .722],\n 0x55: [.683, .022, .75],\n 0x56: [.683, .022, .75],\n 0x57: [.683, .022, 1.028],\n 0x58: [.683, 0, .75],\n 0x59: [.683, 0, .75],\n 0x5A: [.683, 0, .611],\n 0x5B: [.75, .25, .278],\n 0x5C: [.75, .25, .5],\n 0x5D: [.75, .25, .278],\n 0x5E: [.694, -0.531, .5],\n 0x5F: [-0.025, .062, .5],\n 0x60: [.699, -0.505, .5],\n 0x61: [.448, .011, .5],\n 0x62: [.694, .011, .556],\n 0x63: [.448, .011, .444],\n 0x64: [.694, .011, .556],\n 0x65: [.448, .011, .444],\n 0x66: [.705, 0, .306, { ic: .066 }],\n 0x67: [.453, .206, .5],\n 0x68: [.694, 0, .556],\n 0x69: [.669, 0, .278],\n 0x6A: [.669, .205, .306],\n 0x6B: [.694, 0, .528],\n 0x6C: [.694, 0, .278],\n 0x6D: [.442, 0, .833],\n 0x6E: [.442, 0, .556],\n 0x6F: [.448, .01, .5],\n 0x70: [.442, .194, .556],\n 0x71: [.442, .194, .528],\n 0x72: [.442, 0, .392],\n 0x73: [.448, .011, .394],\n 0x74: [.615, .01, .389],\n 0x75: [.442, .011, .556],\n 0x76: [.431, .011, .528],\n 0x77: [.431, .011, .722],\n 0x78: [.431, 0, .528],\n 0x79: [.431, .204, .528],\n 0x7A: [.431, 0, .444],\n 0x7B: [.75, .25, .5],\n 0x7C: [.75, .249, .278],\n 0x7D: [.75, .25, .5],\n 0x7E: [.318, -0.215, .5],\n 0xA0: [0, 0, .25],\n 0xA3: [.714, .011, .769],\n 0xA5: [.683, 0, .75],\n 0xA8: [.669, -0.554, .5],\n 0xAC: [.356, -0.089, .667],\n 0xAE: [.709, .175, .947],\n 0xAF: [.59, -0.544, .5],\n 0xB0: [.715, -0.542, .5],\n 0xB1: [.666, 0, .778],\n 0xB4: [.699, -0.505, .5],\n 0xB7: [.31, -0.19, .278],\n 0xD7: [.491, -0.009, .778],\n 0xF0: [.749, .021, .556],\n 0xF7: [.537, .036, .778],\n 0x131: [.442, 0, .278, { sk: .0278 }],\n 0x237: [.442, .205, .306, { sk: .0833 }],\n 0x2B9: [.56, -0.043, .275],\n 0x2C6: [.694, -0.531, .5],\n 0x2C7: [.644, -0.513, .5],\n 0x2C9: [.59, -0.544, .5],\n 0x2CA: [.699, -0.505, .5],\n 0x2CB: [.699, -0.505, .5],\n 0x2D8: [.694, -0.515, .5],\n 0x2D9: [.669, -0.549, .5],\n 0x2DA: [.715, -0.542, .5],\n 0x2DC: [.668, -0.565, .5],\n 0x300: [.699, -0.505, 0],\n 0x301: [.699, -0.505, 0],\n 0x302: [.694, -0.531, 0],\n 0x303: [.668, -0.565, 0],\n 0x304: [.59, -0.544, 0],\n 0x306: [.694, -0.515, 0],\n 0x307: [.669, -0.549, 0],\n 0x308: [.669, -0.554, 0],\n 0x30A: [.715, -0.542, 0],\n 0x30B: [.701, -0.51, 0],\n 0x30C: [.644, -0.513, 0],\n 0x338: [.716, .215, 0],\n 0x391: [.716, 0, .75],\n 0x392: [.683, 0, .708],\n 0x393: [.68, 0, .625],\n 0x394: [.716, 0, .833],\n 0x395: [.68, 0, .681],\n 0x396: [.683, 0, .611],\n 0x397: [.683, 0, .75],\n 0x398: [.705, .022, .778],\n 0x399: [.683, 0, .361],\n 0x39A: [.683, 0, .778],\n 0x39B: [.716, 0, .694],\n 0x39C: [.683, 0, .917],\n 0x39D: [.683, 0, .75],\n 0x39E: [.677, 0, .667],\n 0x39F: [.705, .022, .778],\n 0x3A0: [.68, 0, .75],\n 0x3A1: [.683, 0, .681],\n 0x3A3: [.683, 0, .722],\n 0x3A4: [.677, 0, .722],\n 0x3A5: [.705, 0, .778],\n 0x3A6: [.683, 0, .722],\n 0x3A7: [.683, 0, .75],\n 0x3A8: [.683, 0, .778],\n 0x3A9: [.704, 0, .722],\n 0x2000: [0, 0, .5],\n 0x2001: [0, 0, 1],\n 0x2002: [0, 0, .5],\n 0x2003: [0, 0, 1],\n 0x2004: [0, 0, .333],\n 0x2005: [0, 0, .25],\n 0x2006: [0, 0, .167],\n 0x2009: [0, 0, .167],\n 0x200A: [0, 0, .1],\n 0x200B: [0, 0, 0],\n 0x200C: [0, 0, 0],\n 0x2013: [.285, -0.248, .5],\n 0x2014: [.285, -0.248, 1],\n 0x2015: [.285, -0.248, 1],\n 0x2016: [.75, .25, .5],\n 0x2017: [-0.025, .062, .5],\n 0x2018: [.694, -0.379, .278],\n 0x2019: [.694, -0.379, .278],\n 0x201C: [.694, -0.379, .5],\n 0x201D: [.694, -0.379, .5],\n 0x2020: [.705, .216, .444],\n 0x2021: [.705, .205, .444],\n 0x2022: [.444, -0.055, .5],\n 0x2026: [.12, 0, 1.172],\n 0x2032: [.56, -0.043, .275],\n 0x2033: [.56, 0, .55],\n 0x2034: [.56, 0, .825],\n 0x2035: [.56, -0.043, .275],\n 0x2036: [.56, 0, .55],\n 0x2037: [.56, 0, .825],\n 0x203E: [.59, -0.544, .5],\n 0x2044: [.75, .25, .5],\n 0x2057: [.56, 0, 1.1],\n 0x2060: [0, 0, 0],\n 0x2061: [0, 0, 0],\n 0x2062: [0, 0, 0],\n 0x2063: [0, 0, 0],\n 0x2064: [0, 0, 0],\n 0x20D7: [.714, -0.516, .5],\n 0x2102: [.702, .019, .722],\n 0x210B: [.717, .036, .969, { ic: .272, sk: .333 }],\n 0x210C: [.666, .133, .72],\n 0x210D: [.683, 0, .778],\n 0x210E: [.694, .011, .576, { sk: -0.0278 }],\n 0x210F: [.695, .013, .54, { ic: .022 }],\n 0x2110: [.717, .017, .809, { ic: .137, sk: .333 }],\n 0x2111: [.686, .026, .554],\n 0x2112: [.717, .017, .874, { ic: .161, sk: .306 }],\n 0x2113: [.705, .02, .417, { sk: .111 }],\n 0x2115: [.683, .02, .722],\n 0x2118: [.453, .216, .636, { sk: .111 }],\n 0x2119: [.683, 0, .611],\n 0x211A: [.701, .181, .778],\n 0x211B: [.717, .017, .85, { ic: .037, sk: .194 }],\n 0x211C: [.686, .026, .828],\n 0x211D: [.683, 0, .722],\n 0x2124: [.683, 0, .667],\n 0x2126: [.704, 0, .722],\n 0x2127: [.684, .022, .722],\n 0x2128: [.729, .139, .602],\n 0x212C: [.708, .028, .908, { ic: .02, sk: .194 }],\n 0x212D: [.685, .024, .613],\n 0x2130: [.707, .008, .562, { ic: .156, sk: .139 }],\n 0x2131: [.735, .036, .895, { ic: .095, sk: .222 }],\n 0x2132: [.695, 0, .556],\n 0x2133: [.721, .05, 1.08, { ic: .136, sk: .444 }],\n 0x2135: [.694, 0, .611],\n 0x2136: [.763, .021, .667, { ic: .02 }],\n 0x2137: [.764, .043, .444],\n 0x2138: [.764, .043, .667],\n 0x2141: [.705, .023, .639],\n 0x2190: [.511, .011, 1],\n 0x2191: [.694, .193, .5],\n 0x2192: [.511, .011, 1],\n 0x2193: [.694, .194, .5],\n 0x2194: [.511, .011, 1],\n 0x2195: [.772, .272, .5],\n 0x2196: [.72, .195, 1],\n 0x2197: [.72, .195, 1],\n 0x2198: [.695, .22, 1],\n 0x2199: [.695, .22, 1],\n 0x219A: [.437, -0.06, 1],\n 0x219B: [.437, -0.06, 1],\n 0x219E: [.417, -0.083, 1],\n 0x21A0: [.417, -0.083, 1],\n 0x21A2: [.417, -0.083, 1.111],\n 0x21A3: [.417, -0.083, 1.111],\n 0x21A6: [.511, .011, 1],\n 0x21A9: [.511, .011, 1.126],\n 0x21AA: [.511, .011, 1.126],\n 0x21AB: [.575, .041, 1],\n 0x21AC: [.575, .041, 1],\n 0x21AD: [.417, -0.083, 1.389],\n 0x21AE: [.437, -0.06, 1],\n 0x21B0: [.722, 0, .5],\n 0x21B1: [.722, 0, .5],\n 0x21B6: [.461, 0, 1],\n 0x21B7: [.46, 0, 1],\n 0x21BA: [.65, .083, .778],\n 0x21BB: [.65, .083, .778],\n 0x21BC: [.511, -0.23, 1],\n 0x21BD: [.27, .011, 1],\n 0x21BE: [.694, .194, .417],\n 0x21BF: [.694, .194, .417],\n 0x21C0: [.511, -0.23, 1],\n 0x21C1: [.27, .011, 1],\n 0x21C2: [.694, .194, .417],\n 0x21C3: [.694, .194, .417],\n 0x21C4: [.667, 0, 1],\n 0x21C6: [.667, 0, 1],\n 0x21C7: [.583, .083, 1],\n 0x21C8: [.694, .193, .833],\n 0x21C9: [.583, .083, 1],\n 0x21CA: [.694, .194, .833],\n 0x21CB: [.514, .014, 1],\n 0x21CC: [.671, .011, 1],\n 0x21CD: [.534, .035, 1],\n 0x21CE: [.534, .037, 1],\n 0x21CF: [.534, .035, 1],\n 0x21D0: [.525, .024, 1],\n 0x21D1: [.694, .194, .611],\n 0x21D2: [.525, .024, 1],\n 0x21D3: [.694, .194, .611],\n 0x21D4: [.526, .025, 1],\n 0x21D5: [.772, .272, .611],\n 0x21DA: [.611, .111, 1],\n 0x21DB: [.611, .111, 1],\n 0x21DD: [.417, -0.083, 1],\n 0x21E0: [.437, -0.064, 1.334],\n 0x21E2: [.437, -0.064, 1.334],\n 0x2200: [.694, .022, .556],\n 0x2201: [.846, .021, .5],\n 0x2202: [.715, .022, .531, { ic: .035, sk: .0833 }],\n 0x2203: [.694, 0, .556],\n 0x2204: [.716, .215, .556],\n 0x2205: [.772, .078, .5],\n 0x2206: [.716, 0, .833],\n 0x2207: [.683, .033, .833],\n 0x2208: [.54, .04, .667],\n 0x2209: [.716, .215, .667],\n 0x220B: [.54, .04, .667],\n 0x220C: [.716, .215, .667],\n 0x220D: [.44, 0, .429, { ic: .027 }],\n 0x220F: [.75, .25, .944],\n 0x2210: [.75, .25, .944],\n 0x2211: [.75, .25, 1.056],\n 0x2212: [.583, .082, .778],\n 0x2213: [.5, .166, .778],\n 0x2214: [.766, .093, .778],\n 0x2215: [.75, .25, .5],\n 0x2216: [.75, .25, .5],\n 0x2217: [.465, -0.035, .5],\n 0x2218: [.444, -0.055, .5],\n 0x2219: [.444, -0.055, .5],\n 0x221A: [.8, .2, .833, { ic: .02 }],\n 0x221D: [.442, .011, .778],\n 0x221E: [.442, .011, 1],\n 0x2220: [.694, 0, .722],\n 0x2221: [.714, .02, .722],\n 0x2222: [.551, .051, .722],\n 0x2223: [.75, .249, .278],\n 0x2224: [.75, .252, .278, { ic: .019 }],\n 0x2225: [.75, .25, .5],\n 0x2226: [.75, .25, .5, { ic: .018 }],\n 0x2227: [.598, .022, .667],\n 0x2228: [.598, .022, .667],\n 0x2229: [.598, .022, .667],\n 0x222A: [.598, .022, .667],\n 0x222B: [.716, .216, .417, { ic: .055 }],\n 0x222C: [.805, .306, .819, { ic: .138 }],\n 0x222D: [.805, .306, 1.166, { ic: .138 }],\n 0x222E: [.805, .306, .472, { ic: .138 }],\n 0x2234: [.471, .082, .667],\n 0x2235: [.471, .082, .667],\n 0x223C: [.367, -0.133, .778],\n 0x223D: [.367, -0.133, .778],\n 0x2240: [.583, .083, .278],\n 0x2241: [.467, -0.032, .778],\n 0x2242: [.463, -0.034, .778],\n 0x2243: [.464, -0.036, .778],\n 0x2244: [.716, .215, .778],\n 0x2245: [.589, -0.022, .778],\n 0x2247: [.652, .155, .778],\n 0x2248: [.483, -0.055, .778],\n 0x2249: [.716, .215, .778],\n 0x224A: [.579, .039, .778],\n 0x224D: [.484, -0.016, .778],\n 0x224E: [.492, -0.008, .778],\n 0x224F: [.492, -0.133, .778],\n 0x2250: [.67, -0.133, .778],\n 0x2251: [.609, .108, .778],\n 0x2252: [.601, .101, .778],\n 0x2253: [.601, .102, .778],\n 0x2256: [.367, -0.133, .778],\n 0x2257: [.721, -0.133, .778],\n 0x225C: [.859, -0.133, .778],\n 0x2260: [.716, .215, .778],\n 0x2261: [.464, -0.036, .778],\n 0x2262: [.716, .215, .778],\n 0x2264: [.636, .138, .778],\n 0x2265: [.636, .138, .778],\n 0x2266: [.753, .175, .778],\n 0x2267: [.753, .175, .778],\n 0x2268: [.752, .286, .778],\n 0x2269: [.752, .286, .778],\n 0x226A: [.568, .067, 1],\n 0x226B: [.567, .067, 1],\n 0x226C: [.75, .25, .5],\n 0x226D: [.716, .215, .778],\n 0x226E: [.708, .209, .778],\n 0x226F: [.708, .209, .778],\n 0x2270: [.801, .303, .778],\n 0x2271: [.801, .303, .778],\n 0x2272: [.732, .228, .778],\n 0x2273: [.732, .228, .778],\n 0x2274: [.732, .228, .778],\n 0x2275: [.732, .228, .778],\n 0x2276: [.681, .253, .778],\n 0x2277: [.681, .253, .778],\n 0x2278: [.716, .253, .778],\n 0x2279: [.716, .253, .778],\n 0x227A: [.539, .041, .778],\n 0x227B: [.539, .041, .778],\n 0x227C: [.58, .153, .778],\n 0x227D: [.58, .154, .778],\n 0x227E: [.732, .228, .778],\n 0x227F: [.732, .228, .778],\n 0x2280: [.705, .208, .778],\n 0x2281: [.705, .208, .778],\n 0x2282: [.54, .04, .778],\n 0x2283: [.54, .04, .778],\n 0x2284: [.716, .215, .778],\n 0x2285: [.716, .215, .778],\n 0x2286: [.636, .138, .778],\n 0x2287: [.636, .138, .778],\n 0x2288: [.801, .303, .778],\n 0x2289: [.801, .303, .778],\n 0x228A: [.635, .241, .778],\n 0x228B: [.635, .241, .778],\n 0x228E: [.598, .022, .667],\n 0x228F: [.539, .041, .778],\n 0x2290: [.539, .041, .778],\n 0x2291: [.636, .138, .778],\n 0x2292: [.636, .138, .778],\n 0x2293: [.598, 0, .667],\n 0x2294: [.598, 0, .667],\n 0x2295: [.583, .083, .778],\n 0x2296: [.583, .083, .778],\n 0x2297: [.583, .083, .778],\n 0x2298: [.583, .083, .778],\n 0x2299: [.583, .083, .778],\n 0x229A: [.582, .082, .778],\n 0x229B: [.582, .082, .778],\n 0x229D: [.582, .082, .778],\n 0x229E: [.689, 0, .778],\n 0x229F: [.689, 0, .778],\n 0x22A0: [.689, 0, .778],\n 0x22A1: [.689, 0, .778],\n 0x22A2: [.694, 0, .611],\n 0x22A3: [.694, 0, .611],\n 0x22A4: [.668, 0, .778],\n 0x22A5: [.668, 0, .778],\n 0x22A8: [.75, .249, .867],\n 0x22A9: [.694, 0, .722],\n 0x22AA: [.694, 0, .889],\n 0x22AC: [.695, 0, .611],\n 0x22AD: [.695, 0, .611],\n 0x22AE: [.695, 0, .722],\n 0x22AF: [.695, 0, .722],\n 0x22B2: [.539, .041, .778],\n 0x22B3: [.539, .041, .778],\n 0x22B4: [.636, .138, .778],\n 0x22B5: [.636, .138, .778],\n 0x22B8: [.408, -0.092, 1.111],\n 0x22BA: [.431, .212, .556],\n 0x22BB: [.716, 0, .611],\n 0x22BC: [.716, 0, .611],\n 0x22C0: [.75, .249, .833],\n 0x22C1: [.75, .249, .833],\n 0x22C2: [.75, .249, .833],\n 0x22C3: [.75, .249, .833],\n 0x22C4: [.488, -0.012, .5],\n 0x22C5: [.31, -0.19, .278],\n 0x22C6: [.486, -0.016, .5],\n 0x22C7: [.545, .044, .778],\n 0x22C8: [.505, .005, .9],\n 0x22C9: [.492, -0.008, .778],\n 0x22CA: [.492, -0.008, .778],\n 0x22CB: [.694, .022, .778],\n 0x22CC: [.694, .022, .778],\n 0x22CD: [.464, -0.036, .778],\n 0x22CE: [.578, .021, .76],\n 0x22CF: [.578, .022, .76],\n 0x22D0: [.54, .04, .778],\n 0x22D1: [.54, .04, .778],\n 0x22D2: [.598, .022, .667],\n 0x22D3: [.598, .022, .667],\n 0x22D4: [.736, .022, .667],\n 0x22D6: [.541, .041, .778],\n 0x22D7: [.541, .041, .778],\n 0x22D8: [.568, .067, 1.333],\n 0x22D9: [.568, .067, 1.333],\n 0x22DA: [.886, .386, .778],\n 0x22DB: [.886, .386, .778],\n 0x22DE: [.734, 0, .778],\n 0x22DF: [.734, 0, .778],\n 0x22E0: [.801, .303, .778],\n 0x22E1: [.801, .303, .778],\n 0x22E2: [.716, .215, .778],\n 0x22E3: [.716, .215, .778],\n 0x22E6: [.73, .359, .778],\n 0x22E7: [.73, .359, .778],\n 0x22E8: [.73, .359, .778],\n 0x22E9: [.73, .359, .778],\n 0x22EA: [.706, .208, .778],\n 0x22EB: [.706, .208, .778],\n 0x22EC: [.802, .303, .778],\n 0x22ED: [.801, .303, .778],\n 0x22EE: [1.3, .03, .278],\n 0x22EF: [.31, -0.19, 1.172],\n 0x22F1: [1.52, -0.1, 1.282],\n 0x2305: [.716, 0, .611],\n 0x2306: [.813, .097, .611],\n 0x2308: [.75, .25, .444],\n 0x2309: [.75, .25, .444],\n 0x230A: [.75, .25, .444],\n 0x230B: [.75, .25, .444],\n 0x231C: [.694, -0.306, .5],\n 0x231D: [.694, -0.306, .5],\n 0x231E: [.366, .022, .5],\n 0x231F: [.366, .022, .5],\n 0x2322: [.388, -0.122, 1],\n 0x2323: [.378, -0.134, 1],\n 0x2329: [.75, .25, .389],\n 0x232A: [.75, .25, .389],\n 0x23B0: [.744, .244, .412],\n 0x23B1: [.744, .244, .412],\n 0x23D0: [.602, 0, .667],\n 0x24C8: [.709, .175, .902],\n 0x250C: [.694, -0.306, .5],\n 0x2510: [.694, -0.306, .5],\n 0x2514: [.366, .022, .5],\n 0x2518: [.366, .022, .5],\n 0x2571: [.694, .195, .889],\n 0x2572: [.694, .195, .889],\n 0x25A0: [.689, 0, .778],\n 0x25A1: [.689, 0, .778],\n 0x25AA: [.689, 0, .778],\n 0x25B2: [.575, .02, .722],\n 0x25B3: [.716, 0, .889],\n 0x25B4: [.575, .02, .722],\n 0x25B5: [.716, 0, .889],\n 0x25B6: [.539, .041, .778],\n 0x25B8: [.539, .041, .778],\n 0x25B9: [.505, .005, .5],\n 0x25BC: [.576, .019, .722],\n 0x25BD: [.5, .215, .889],\n 0x25BE: [.576, .019, .722],\n 0x25BF: [.5, .215, .889],\n 0x25C0: [.539, .041, .778],\n 0x25C2: [.539, .041, .778],\n 0x25C3: [.505, .005, .5],\n 0x25CA: [.716, .132, .667],\n 0x25EF: [.715, .215, 1],\n 0x25FB: [.689, 0, .778],\n 0x25FC: [.689, 0, .778],\n 0x2605: [.694, .111, .944],\n 0x2660: [.727, .13, .778],\n 0x2661: [.716, .033, .778],\n 0x2662: [.727, .162, .778],\n 0x2663: [.726, .13, .778],\n 0x266D: [.75, .022, .389],\n 0x266E: [.734, .223, .389],\n 0x266F: [.723, .223, .389],\n 0x2713: [.706, .034, .833],\n 0x2720: [.716, .022, .833],\n 0x2758: [.75, .249, .278],\n 0x27E8: [.75, .25, .389],\n 0x27E9: [.75, .25, .389],\n 0x27EE: [.744, .244, .412],\n 0x27EF: [.744, .244, .412],\n 0x27F5: [.511, .011, 1.609],\n 0x27F6: [.511, .011, 1.638],\n 0x27F7: [.511, .011, 1.859],\n 0x27F8: [.525, .024, 1.609],\n 0x27F9: [.525, .024, 1.638],\n 0x27FA: [.525, .024, 1.858],\n 0x27FC: [.511, .011, 1.638],\n 0x29EB: [.716, .132, .667],\n 0x29F8: [.716, .215, .778],\n 0x2A00: [.75, .25, 1.111],\n 0x2A01: [.75, .25, 1.111],\n 0x2A02: [.75, .25, 1.111],\n 0x2A04: [.75, .249, .833],\n 0x2A06: [.75, .249, .833],\n 0x2A0C: [.805, .306, 1.638, { ic: .138 }],\n 0x2A2F: [.491, -0.009, .778],\n 0x2A3F: [.683, 0, .75],\n 0x2A5E: [.813, .097, .611],\n 0x2A7D: [.636, .138, .778],\n 0x2A7E: [.636, .138, .778],\n 0x2A85: [.762, .29, .778],\n 0x2A86: [.762, .29, .778],\n 0x2A87: [.635, .241, .778],\n 0x2A88: [.635, .241, .778],\n 0x2A89: [.761, .387, .778],\n 0x2A8A: [.761, .387, .778],\n 0x2A8B: [1.003, .463, .778],\n 0x2A8C: [1.003, .463, .778],\n 0x2A95: [.636, .138, .778],\n 0x2A96: [.636, .138, .778],\n 0x2AAF: [.636, .138, .778],\n 0x2AB0: [.636, .138, .778],\n 0x2AB5: [.752, .286, .778],\n 0x2AB6: [.752, .286, .778],\n 0x2AB7: [.761, .294, .778],\n 0x2AB8: [.761, .294, .778],\n 0x2AB9: [.761, .337, .778],\n 0x2ABA: [.761, .337, .778],\n 0x2AC5: [.753, .215, .778],\n 0x2AC6: [.753, .215, .778],\n 0x2ACB: [.783, .385, .778],\n 0x2ACC: [.783, .385, .778],\n 0x3008: [.75, .25, .389],\n 0x3009: [.75, .25, .389],\n 0xE006: [.43, .023, .222, { ic: .018 }],\n 0xE007: [.431, .024, .389, { ic: .018 }],\n 0xE008: [.605, .085, .778],\n 0xE009: [.434, .006, .667, { ic: .067 }],\n 0xE00C: [.752, .284, .778],\n 0xE00D: [.752, .284, .778],\n 0xE00E: [.919, .421, .778],\n 0xE00F: [.801, .303, .778],\n 0xE010: [.801, .303, .778],\n 0xE011: [.919, .421, .778],\n 0xE016: [.828, .33, .778],\n 0xE017: [.752, .332, .778],\n 0xE018: [.828, .33, .778],\n 0xE019: [.752, .333, .778],\n 0xE01A: [.634, .255, .778],\n 0xE01B: [.634, .254, .778],\n 0x1D400: [.698, 0, .869],\n 0x1D401: [.686, 0, .818],\n 0x1D402: [.697, .011, .831],\n 0x1D403: [.686, 0, .882],\n 0x1D404: [.68, 0, .756],\n 0x1D405: [.68, 0, .724],\n 0x1D406: [.697, .01, .904],\n 0x1D407: [.686, 0, .9],\n 0x1D408: [.686, 0, .436],\n 0x1D409: [.686, .011, .594],\n 0x1D40A: [.686, 0, .901],\n 0x1D40B: [.686, 0, .692],\n 0x1D40C: [.686, 0, 1.092],\n 0x1D40D: [.686, 0, .9],\n 0x1D40E: [.696, .01, .864],\n 0x1D40F: [.686, 0, .786],\n 0x1D410: [.696, .193, .864],\n 0x1D411: [.686, .011, .862],\n 0x1D412: [.697, .011, .639],\n 0x1D413: [.675, 0, .8],\n 0x1D414: [.686, .011, .885],\n 0x1D415: [.686, .007, .869],\n 0x1D416: [.686, .007, 1.189],\n 0x1D417: [.686, 0, .869],\n 0x1D418: [.686, 0, .869],\n 0x1D419: [.686, 0, .703],\n 0x1D41A: [.453, .006, .559],\n 0x1D41B: [.694, .006, .639],\n 0x1D41C: [.453, .006, .511],\n 0x1D41D: [.694, .006, .639],\n 0x1D41E: [.452, .006, .527],\n 0x1D41F: [.7, 0, .351, { ic: .101 }],\n 0x1D420: [.455, .201, .575],\n 0x1D421: [.694, 0, .639],\n 0x1D422: [.695, 0, .319],\n 0x1D423: [.695, .2, .351],\n 0x1D424: [.694, 0, .607],\n 0x1D425: [.694, 0, .319],\n 0x1D426: [.45, 0, .958],\n 0x1D427: [.45, 0, .639],\n 0x1D428: [.452, .005, .575],\n 0x1D429: [.45, .194, .639],\n 0x1D42A: [.45, .194, .607],\n 0x1D42B: [.45, 0, .474],\n 0x1D42C: [.453, .006, .454],\n 0x1D42D: [.635, .005, .447],\n 0x1D42E: [.45, .006, .639],\n 0x1D42F: [.444, 0, .607],\n 0x1D430: [.444, 0, .831],\n 0x1D431: [.444, 0, .607],\n 0x1D432: [.444, .2, .607],\n 0x1D433: [.444, 0, .511],\n 0x1D434: [.716, 0, .75, { sk: .139 }],\n 0x1D435: [.683, 0, .759, { sk: .0833 }],\n 0x1D436: [.705, .022, .715, { ic: .045, sk: .0833 }],\n 0x1D437: [.683, 0, .828, { sk: .0556 }],\n 0x1D438: [.68, 0, .738, { ic: .026, sk: .0833 }],\n 0x1D439: [.68, 0, .643, { ic: .106, sk: .0833 }],\n 0x1D43A: [.705, .022, .786, { sk: .0833 }],\n 0x1D43B: [.683, 0, .831, { ic: .057, sk: .0556 }],\n 0x1D43C: [.683, 0, .44, { ic: .064, sk: .111 }],\n 0x1D43D: [.683, .022, .555, { ic: .078, sk: .167 }],\n 0x1D43E: [.683, 0, .849, { ic: .04, sk: .0556 }],\n 0x1D43F: [.683, 0, .681, { sk: .0278 }],\n 0x1D440: [.683, 0, .97, { ic: .081, sk: .0833 }],\n 0x1D441: [.683, 0, .803, { ic: .085, sk: .0833 }],\n 0x1D442: [.704, .022, .763, { sk: .0833 }],\n 0x1D443: [.683, 0, .642, { ic: .109, sk: .0833 }],\n 0x1D444: [.704, .194, .791, { sk: .0833 }],\n 0x1D445: [.683, .021, .759, { sk: .0833 }],\n 0x1D446: [.705, .022, .613, { ic: .032, sk: .0833 }],\n 0x1D447: [.677, 0, .584, { ic: .12, sk: .0833 }],\n 0x1D448: [.683, .022, .683, { ic: .084, sk: .0278 }],\n 0x1D449: [.683, .022, .583, { ic: .186 }],\n 0x1D44A: [.683, .022, .944, { ic: .104 }],\n 0x1D44B: [.683, 0, .828, { ic: .024, sk: .0833 }],\n 0x1D44C: [.683, 0, .581, { ic: .182 }],\n 0x1D44D: [.683, 0, .683, { ic: .04, sk: .0833 }],\n 0x1D44E: [.441, .01, .529],\n 0x1D44F: [.694, .011, .429],\n 0x1D450: [.442, .011, .433, { sk: .0556 }],\n 0x1D451: [.694, .01, .52, { sk: .167 }],\n 0x1D452: [.442, .011, .466, { sk: .0556 }],\n 0x1D453: [.705, .205, .49, { ic: .06, sk: .167 }],\n 0x1D454: [.442, .205, .477, { sk: .0278 }],\n 0x1D456: [.661, .011, .345],\n 0x1D457: [.661, .204, .412],\n 0x1D458: [.694, .011, .521],\n 0x1D459: [.694, .011, .298, { sk: .0833 }],\n 0x1D45A: [.442, .011, .878],\n 0x1D45B: [.442, .011, .6],\n 0x1D45C: [.441, .011, .485, { sk: .0556 }],\n 0x1D45D: [.442, .194, .503, { sk: .0833 }],\n 0x1D45E: [.442, .194, .446, { ic: .014, sk: .0833 }],\n 0x1D45F: [.442, .011, .451, { sk: .0556 }],\n 0x1D460: [.442, .01, .469, { sk: .0556 }],\n 0x1D461: [.626, .011, .361, { sk: .0833 }],\n 0x1D462: [.442, .011, .572, { sk: .0278 }],\n 0x1D463: [.443, .011, .485, { sk: .0278 }],\n 0x1D464: [.443, .011, .716, { sk: .0833 }],\n 0x1D465: [.442, .011, .572, { sk: .0278 }],\n 0x1D466: [.442, .205, .49, { sk: .0556 }],\n 0x1D467: [.442, .011, .465, { sk: .0556 }],\n 0x1D468: [.711, 0, .869, { sk: .16 }],\n 0x1D469: [.686, 0, .866, { sk: .0958 }],\n 0x1D46A: [.703, .017, .817, { ic: .038, sk: .0958 }],\n 0x1D46B: [.686, 0, .938, { sk: .0639 }],\n 0x1D46C: [.68, 0, .81, { ic: .015, sk: .0958 }],\n 0x1D46D: [.68, 0, .689, { ic: .12, sk: .0958 }],\n 0x1D46E: [.703, .016, .887, { sk: .0958 }],\n 0x1D46F: [.686, 0, .982, { ic: .045, sk: .0639 }],\n 0x1D470: [.686, 0, .511, { ic: .062, sk: .128 }],\n 0x1D471: [.686, .017, .631, { ic: .063, sk: .192 }],\n 0x1D472: [.686, 0, .971, { ic: .032, sk: .0639 }],\n 0x1D473: [.686, 0, .756, { sk: .0319 }],\n 0x1D474: [.686, 0, 1.142, { ic: .077, sk: .0958 }],\n 0x1D475: [.686, 0, .95, { ic: .077, sk: .0958 }],\n 0x1D476: [.703, .017, .837, { sk: .0958 }],\n 0x1D477: [.686, 0, .723, { ic: .124, sk: .0958 }],\n 0x1D478: [.703, .194, .869, { sk: .0958 }],\n 0x1D479: [.686, .017, .872, { sk: .0958 }],\n 0x1D47A: [.703, .017, .693, { ic: .021, sk: .0958 }],\n 0x1D47B: [.675, 0, .637, { ic: .135, sk: .0958 }],\n 0x1D47C: [.686, .016, .8, { ic: .077, sk: .0319 }],\n 0x1D47D: [.686, .016, .678, { ic: .208 }],\n 0x1D47E: [.686, .017, 1.093, { ic: .114 }],\n 0x1D47F: [.686, 0, .947, { sk: .0958 }],\n 0x1D480: [.686, 0, .675, { ic: .201 }],\n 0x1D481: [.686, 0, .773, { ic: .032, sk: .0958 }],\n 0x1D482: [.452, .008, .633],\n 0x1D483: [.694, .008, .521],\n 0x1D484: [.451, .008, .513, { sk: .0639 }],\n 0x1D485: [.694, .008, .61, { sk: .192 }],\n 0x1D486: [.452, .008, .554, { sk: .0639 }],\n 0x1D487: [.701, .201, .568, { ic: .056, sk: .192 }],\n 0x1D488: [.452, .202, .545, { sk: .0319 }],\n 0x1D489: [.694, .008, .668, { sk: -0.0319 }],\n 0x1D48A: [.694, .008, .405],\n 0x1D48B: [.694, .202, .471],\n 0x1D48C: [.694, .008, .604],\n 0x1D48D: [.694, .008, .348, { sk: .0958 }],\n 0x1D48E: [.452, .008, 1.032],\n 0x1D48F: [.452, .008, .713],\n 0x1D490: [.452, .008, .585, { sk: .0639 }],\n 0x1D491: [.452, .194, .601, { sk: .0958 }],\n 0x1D492: [.452, .194, .542, { sk: .0958 }],\n 0x1D493: [.452, .008, .529, { sk: .0639 }],\n 0x1D494: [.451, .008, .531, { sk: .0639 }],\n 0x1D495: [.643, .007, .415, { sk: .0958 }],\n 0x1D496: [.452, .008, .681, { sk: .0319 }],\n 0x1D497: [.453, .008, .567, { sk: .0319 }],\n 0x1D498: [.453, .008, .831, { sk: .0958 }],\n 0x1D499: [.452, .008, .659, { sk: .0319 }],\n 0x1D49A: [.452, .202, .59, { sk: .0639 }],\n 0x1D49B: [.452, .008, .555, { sk: .0639 }],\n 0x1D49C: [.717, .008, .803, { ic: .213, sk: .389 }],\n 0x1D49E: [.728, .026, .666, { ic: .153, sk: .278 }],\n 0x1D49F: [.708, .031, .774, { ic: .081, sk: .111 }],\n 0x1D4A2: [.717, .037, .61, { ic: .128, sk: .25 }],\n 0x1D4A5: [.717, .314, 1.052, { ic: .081, sk: .417 }],\n 0x1D4A6: [.717, .037, .914, { ic: .29, sk: .361 }],\n 0x1D4A9: [.726, .036, .902, { ic: .306, sk: .389 }],\n 0x1D4AA: [.707, .008, .738, { ic: .067, sk: .167 }],\n 0x1D4AB: [.716, .037, 1.013, { ic: .018, sk: .222 }],\n 0x1D4AC: [.717, .017, .883, { sk: .278 }],\n 0x1D4AE: [.708, .036, .868, { ic: .148, sk: .333 }],\n 0x1D4AF: [.735, .037, .747, { ic: .249, sk: .222 }],\n 0x1D4B0: [.717, .017, .8, { ic: .16, sk: .25 }],\n 0x1D4B1: [.717, .017, .622, { ic: .228, sk: .222 }],\n 0x1D4B2: [.717, .017, .805, { ic: .221, sk: .25 }],\n 0x1D4B3: [.717, .017, .944, { ic: .187, sk: .278 }],\n 0x1D4B4: [.716, .017, .71, { ic: .249, sk: .194 }],\n 0x1D4B5: [.717, .016, .821, { ic: .211, sk: .306 }],\n 0x1D504: [.696, .026, .718],\n 0x1D505: [.691, .027, .884],\n 0x1D507: [.685, .027, .832],\n 0x1D508: [.685, .024, .663],\n 0x1D509: [.686, .153, .611],\n 0x1D50A: [.69, .026, .785],\n 0x1D50D: [.686, .139, .552],\n 0x1D50E: [.68, .027, .668, { ic: .014 }],\n 0x1D50F: [.686, .026, .666],\n 0x1D510: [.692, .027, 1.05],\n 0x1D511: [.686, .025, .832],\n 0x1D512: [.729, .027, .827],\n 0x1D513: [.692, .218, .828],\n 0x1D514: [.729, .069, .827],\n 0x1D516: [.692, .027, .829],\n 0x1D517: [.701, .027, .669],\n 0x1D518: [.697, .027, .646, { ic: .019 }],\n 0x1D519: [.686, .026, .831],\n 0x1D51A: [.686, .027, 1.046],\n 0x1D51B: [.688, .027, .719],\n 0x1D51C: [.686, .218, .833],\n 0x1D51E: [.47, .035, .5],\n 0x1D51F: [.685, .031, .513],\n 0x1D520: [.466, .029, .389],\n 0x1D521: [.609, .033, .499],\n 0x1D522: [.467, .03, .401],\n 0x1D523: [.681, .221, .326],\n 0x1D524: [.47, .209, .504],\n 0x1D525: [.688, .205, .521],\n 0x1D526: [.673, .02, .279],\n 0x1D527: [.672, .208, .281],\n 0x1D528: [.689, .025, .389],\n 0x1D529: [.685, .02, .28],\n 0x1D52A: [.475, .026, .767],\n 0x1D52B: [.475, .022, .527],\n 0x1D52C: [.48, .028, .489],\n 0x1D52D: [.541, .212, .5],\n 0x1D52E: [.479, .219, .489],\n 0x1D52F: [.474, .021, .389],\n 0x1D530: [.478, .029, .443],\n 0x1D531: [.64, .02, .333, { ic: .015 }],\n 0x1D532: [.474, .023, .517],\n 0x1D533: [.53, .028, .512],\n 0x1D534: [.532, .028, .774],\n 0x1D535: [.472, .188, .389],\n 0x1D536: [.528, .218, .499],\n 0x1D537: [.471, .214, .391],\n 0x1D538: [.701, 0, .722],\n 0x1D539: [.683, 0, .667],\n 0x1D53B: [.683, 0, .722],\n 0x1D53C: [.683, 0, .667],\n 0x1D53D: [.683, 0, .611],\n 0x1D53E: [.702, .019, .778],\n 0x1D540: [.683, 0, .389],\n 0x1D541: [.683, .077, .5],\n 0x1D542: [.683, 0, .778],\n 0x1D543: [.683, 0, .667],\n 0x1D544: [.683, 0, .944],\n 0x1D546: [.701, .019, .778],\n 0x1D54A: [.702, .012, .556],\n 0x1D54B: [.683, 0, .667],\n 0x1D54C: [.683, .019, .722],\n 0x1D54D: [.683, .02, .722],\n 0x1D54E: [.683, .019, 1],\n 0x1D54F: [.683, 0, .722],\n 0x1D550: [.683, 0, .722],\n 0x1D56C: [.686, .031, .847],\n 0x1D56D: [.684, .031, 1.044],\n 0x1D56E: [.676, .032, .723],\n 0x1D56F: [.683, .029, .982],\n 0x1D570: [.686, .029, .783],\n 0x1D571: [.684, .146, .722],\n 0x1D572: [.687, .029, .927],\n 0x1D573: [.683, .126, .851],\n 0x1D574: [.681, .025, .655],\n 0x1D575: [.68, .141, .652],\n 0x1D576: [.681, .026, .789, { ic: .017 }],\n 0x1D577: [.683, .028, .786],\n 0x1D578: [.683, .032, 1.239],\n 0x1D579: [.679, .03, .983],\n 0x1D57A: [.726, .03, .976],\n 0x1D57B: [.688, .223, .977],\n 0x1D57C: [.726, .083, .976],\n 0x1D57D: [.688, .028, .978],\n 0x1D57E: [.685, .031, .978],\n 0x1D57F: [.686, .03, .79, { ic: .012 }],\n 0x1D580: [.688, .039, .851, { ic: .02 }],\n 0x1D581: [.685, .029, .982],\n 0x1D582: [.683, .03, 1.235],\n 0x1D583: [.681, .035, .849],\n 0x1D584: [.688, .214, .984],\n 0x1D585: [.677, .148, .711],\n 0x1D586: [.472, .032, .603],\n 0x1D587: [.69, .032, .59],\n 0x1D588: [.473, .026, .464],\n 0x1D589: [.632, .028, .589],\n 0x1D58A: [.471, .027, .472],\n 0x1D58B: [.687, .222, .388],\n 0x1D58C: [.472, .208, .595],\n 0x1D58D: [.687, .207, .615],\n 0x1D58E: [.686, .025, .331],\n 0x1D58F: [.682, .203, .332],\n 0x1D590: [.682, .025, .464],\n 0x1D591: [.681, .024, .337],\n 0x1D592: [.476, .031, .921],\n 0x1D593: [.473, .028, .654],\n 0x1D594: [.482, .034, .609],\n 0x1D595: [.557, .207, .604],\n 0x1D596: [.485, .211, .596],\n 0x1D597: [.472, .026, .46],\n 0x1D598: [.479, .034, .523],\n 0x1D599: [.648, .027, .393, { ic: .014 }],\n 0x1D59A: [.472, .032, .589, { ic: .014 }],\n 0x1D59B: [.546, .027, .604],\n 0x1D59C: [.549, .032, .918],\n 0x1D59D: [.471, .188, .459],\n 0x1D59E: [.557, .221, .589],\n 0x1D59F: [.471, .214, .461],\n 0x1D5A0: [.694, 0, .667],\n 0x1D5A1: [.694, 0, .667],\n 0x1D5A2: [.705, .011, .639],\n 0x1D5A3: [.694, 0, .722],\n 0x1D5A4: [.691, 0, .597],\n 0x1D5A5: [.691, 0, .569],\n 0x1D5A6: [.704, .011, .667],\n 0x1D5A7: [.694, 0, .708],\n 0x1D5A8: [.694, 0, .278],\n 0x1D5A9: [.694, .022, .472],\n 0x1D5AA: [.694, 0, .694],\n 0x1D5AB: [.694, 0, .542],\n 0x1D5AC: [.694, 0, .875],\n 0x1D5AD: [.694, 0, .708],\n 0x1D5AE: [.715, .022, .736],\n 0x1D5AF: [.694, 0, .639],\n 0x1D5B0: [.715, .125, .736],\n 0x1D5B1: [.694, 0, .646],\n 0x1D5B2: [.716, .022, .556],\n 0x1D5B3: [.688, 0, .681],\n 0x1D5B4: [.694, .022, .688],\n 0x1D5B5: [.694, 0, .667],\n 0x1D5B6: [.694, 0, .944],\n 0x1D5B7: [.694, 0, .667],\n 0x1D5B8: [.694, 0, .667],\n 0x1D5B9: [.694, 0, .611],\n 0x1D5BA: [.46, .01, .481],\n 0x1D5BB: [.694, .011, .517],\n 0x1D5BC: [.46, .01, .444],\n 0x1D5BD: [.694, .01, .517],\n 0x1D5BE: [.461, .01, .444],\n 0x1D5BF: [.705, 0, .306, { ic: .041 }],\n 0x1D5C0: [.455, .206, .5],\n 0x1D5C1: [.694, 0, .517],\n 0x1D5C2: [.68, 0, .239],\n 0x1D5C3: [.68, .205, .267],\n 0x1D5C4: [.694, 0, .489],\n 0x1D5C5: [.694, 0, .239],\n 0x1D5C6: [.455, 0, .794],\n 0x1D5C7: [.455, 0, .517],\n 0x1D5C8: [.46, .01, .5],\n 0x1D5C9: [.455, .194, .517],\n 0x1D5CA: [.455, .194, .517],\n 0x1D5CB: [.455, 0, .342],\n 0x1D5CC: [.46, .01, .383],\n 0x1D5CD: [.571, .01, .361],\n 0x1D5CE: [.444, .01, .517],\n 0x1D5CF: [.444, 0, .461],\n 0x1D5D0: [.444, 0, .683],\n 0x1D5D1: [.444, 0, .461],\n 0x1D5D2: [.444, .204, .461],\n 0x1D5D3: [.444, 0, .435],\n 0x1D5D4: [.694, 0, .733],\n 0x1D5D5: [.694, 0, .733],\n 0x1D5D6: [.704, .011, .703],\n 0x1D5D7: [.694, 0, .794],\n 0x1D5D8: [.691, 0, .642],\n 0x1D5D9: [.691, 0, .611],\n 0x1D5DA: [.705, .011, .733],\n 0x1D5DB: [.694, 0, .794],\n 0x1D5DC: [.694, 0, .331],\n 0x1D5DD: [.694, .022, .519],\n 0x1D5DE: [.694, 0, .764],\n 0x1D5DF: [.694, 0, .581],\n 0x1D5E0: [.694, 0, .978],\n 0x1D5E1: [.694, 0, .794],\n 0x1D5E2: [.716, .022, .794],\n 0x1D5E3: [.694, 0, .703],\n 0x1D5E4: [.716, .106, .794],\n 0x1D5E5: [.694, 0, .703],\n 0x1D5E6: [.716, .022, .611],\n 0x1D5E7: [.688, 0, .733],\n 0x1D5E8: [.694, .022, .764],\n 0x1D5E9: [.694, 0, .733],\n 0x1D5EA: [.694, 0, 1.039],\n 0x1D5EB: [.694, 0, .733],\n 0x1D5EC: [.694, 0, .733],\n 0x1D5ED: [.694, 0, .672],\n 0x1D5EE: [.475, .011, .525],\n 0x1D5EF: [.694, .01, .561],\n 0x1D5F0: [.475, .011, .489],\n 0x1D5F1: [.694, .011, .561],\n 0x1D5F2: [.474, .01, .511],\n 0x1D5F3: [.705, 0, .336, { ic: .045 }],\n 0x1D5F4: [.469, .206, .55],\n 0x1D5F5: [.694, 0, .561],\n 0x1D5F6: [.695, 0, .256],\n 0x1D5F7: [.695, .205, .286],\n 0x1D5F8: [.694, 0, .531],\n 0x1D5F9: [.694, 0, .256],\n 0x1D5FA: [.469, 0, .867],\n 0x1D5FB: [.468, 0, .561],\n 0x1D5FC: [.474, .011, .55],\n 0x1D5FD: [.469, .194, .561],\n 0x1D5FE: [.469, .194, .561],\n 0x1D5FF: [.469, 0, .372],\n 0x1D600: [.474, .01, .422],\n 0x1D601: [.589, .01, .404],\n 0x1D602: [.458, .011, .561],\n 0x1D603: [.458, 0, .5],\n 0x1D604: [.458, 0, .744],\n 0x1D605: [.458, 0, .5],\n 0x1D606: [.458, .205, .5],\n 0x1D607: [.458, 0, .476],\n 0x1D608: [.694, 0, .667],\n 0x1D609: [.694, 0, .667, { ic: .029 }],\n 0x1D60A: [.705, .01, .639, { ic: .08 }],\n 0x1D60B: [.694, 0, .722, { ic: .025 }],\n 0x1D60C: [.691, 0, .597, { ic: .091 }],\n 0x1D60D: [.691, 0, .569, { ic: .104 }],\n 0x1D60E: [.705, .011, .667, { ic: .063 }],\n 0x1D60F: [.694, 0, .708, { ic: .06 }],\n 0x1D610: [.694, 0, .278, { ic: .06 }],\n 0x1D611: [.694, .022, .472, { ic: .063 }],\n 0x1D612: [.694, 0, .694, { ic: .091 }],\n 0x1D613: [.694, 0, .542],\n 0x1D614: [.694, 0, .875, { ic: .054 }],\n 0x1D615: [.694, 0, .708, { ic: .058 }],\n 0x1D616: [.716, .022, .736, { ic: .027 }],\n 0x1D617: [.694, 0, .639, { ic: .051 }],\n 0x1D618: [.716, .125, .736, { ic: .027 }],\n 0x1D619: [.694, 0, .646, { ic: .052 }],\n 0x1D61A: [.716, .022, .556, { ic: .053 }],\n 0x1D61B: [.688, 0, .681, { ic: .109 }],\n 0x1D61C: [.694, .022, .688, { ic: .059 }],\n 0x1D61D: [.694, 0, .667, { ic: .132 }],\n 0x1D61E: [.694, 0, .944, { ic: .132 }],\n 0x1D61F: [.694, 0, .667, { ic: .091 }],\n 0x1D620: [.694, 0, .667, { ic: .143 }],\n 0x1D621: [.694, 0, .611, { ic: .091 }],\n 0x1D622: [.461, .01, .481],\n 0x1D623: [.694, .011, .517, { ic: .022 }],\n 0x1D624: [.46, .011, .444, { ic: .055 }],\n 0x1D625: [.694, .01, .517, { ic: .071 }],\n 0x1D626: [.46, .011, .444, { ic: .028 }],\n 0x1D627: [.705, 0, .306, { ic: .188 }],\n 0x1D628: [.455, .206, .5, { ic: .068 }],\n 0x1D629: [.694, 0, .517],\n 0x1D62A: [.68, 0, .239, { ic: .076 }],\n 0x1D62B: [.68, .204, .267, { ic: .069 }],\n 0x1D62C: [.694, 0, .489, { ic: .054 }],\n 0x1D62D: [.694, 0, .239, { ic: .072 }],\n 0x1D62E: [.455, 0, .794],\n 0x1D62F: [.454, 0, .517],\n 0x1D630: [.461, .011, .5, { ic: .023 }],\n 0x1D631: [.455, .194, .517, { ic: .021 }],\n 0x1D632: [.455, .194, .517, { ic: .021 }],\n 0x1D633: [.455, 0, .342, { ic: .082 }],\n 0x1D634: [.461, .011, .383, { ic: .053 }],\n 0x1D635: [.571, .011, .361, { ic: .049 }],\n 0x1D636: [.444, .01, .517, { ic: .02 }],\n 0x1D637: [.444, 0, .461, { ic: .079 }],\n 0x1D638: [.444, 0, .683, { ic: .079 }],\n 0x1D639: [.444, 0, .461, { ic: .076 }],\n 0x1D63A: [.444, .205, .461, { ic: .079 }],\n 0x1D63B: [.444, 0, .435, { ic: .059 }],\n 0x1D670: [.623, 0, .525],\n 0x1D671: [.611, 0, .525],\n 0x1D672: [.622, .011, .525],\n 0x1D673: [.611, 0, .525],\n 0x1D674: [.611, 0, .525],\n 0x1D675: [.611, 0, .525],\n 0x1D676: [.622, .011, .525],\n 0x1D677: [.611, 0, .525],\n 0x1D678: [.611, 0, .525],\n 0x1D679: [.611, .011, .525],\n 0x1D67A: [.611, 0, .525],\n 0x1D67B: [.611, 0, .525],\n 0x1D67C: [.611, 0, .525],\n 0x1D67D: [.611, 0, .525],\n 0x1D67E: [.621, .01, .525],\n 0x1D67F: [.611, 0, .525],\n 0x1D680: [.621, .138, .525],\n 0x1D681: [.611, .011, .525],\n 0x1D682: [.622, .011, .525],\n 0x1D683: [.611, 0, .525],\n 0x1D684: [.611, .011, .525],\n 0x1D685: [.611, .007, .525],\n 0x1D686: [.611, .007, .525],\n 0x1D687: [.611, 0, .525],\n 0x1D688: [.611, 0, .525],\n 0x1D689: [.611, 0, .525],\n 0x1D68A: [.439, .006, .525],\n 0x1D68B: [.611, .006, .525],\n 0x1D68C: [.44, .006, .525],\n 0x1D68D: [.611, .006, .525],\n 0x1D68E: [.44, .006, .525],\n 0x1D68F: [.617, 0, .525],\n 0x1D690: [.442, .229, .525],\n 0x1D691: [.611, 0, .525],\n 0x1D692: [.612, 0, .525],\n 0x1D693: [.612, .228, .525],\n 0x1D694: [.611, 0, .525],\n 0x1D695: [.611, 0, .525],\n 0x1D696: [.436, 0, .525, { ic: .011 }],\n 0x1D697: [.436, 0, .525],\n 0x1D698: [.44, .006, .525],\n 0x1D699: [.437, .221, .525],\n 0x1D69A: [.437, .221, .525, { ic: .02 }],\n 0x1D69B: [.437, 0, .525],\n 0x1D69C: [.44, .006, .525],\n 0x1D69D: [.554, .006, .525],\n 0x1D69E: [.431, .005, .525],\n 0x1D69F: [.431, 0, .525],\n 0x1D6A0: [.431, 0, .525],\n 0x1D6A1: [.431, 0, .525],\n 0x1D6A2: [.431, .228, .525],\n 0x1D6A3: [.431, 0, .525],\n 0x1D6A8: [.698, 0, .869],\n 0x1D6A9: [.686, 0, .818],\n 0x1D6AA: [.68, 0, .692],\n 0x1D6AB: [.698, 0, .958],\n 0x1D6AC: [.68, 0, .756],\n 0x1D6AD: [.686, 0, .703],\n 0x1D6AE: [.686, 0, .9],\n 0x1D6AF: [.696, .01, .894],\n 0x1D6B0: [.686, 0, .436],\n 0x1D6B1: [.686, 0, .901],\n 0x1D6B2: [.698, 0, .806],\n 0x1D6B3: [.686, 0, 1.092],\n 0x1D6B4: [.686, 0, .9],\n 0x1D6B5: [.675, 0, .767],\n 0x1D6B6: [.696, .01, .864],\n 0x1D6B7: [.68, 0, .9],\n 0x1D6B8: [.686, 0, .786],\n 0x1D6BA: [.686, 0, .831],\n 0x1D6BB: [.675, 0, .8],\n 0x1D6BC: [.697, 0, .894],\n 0x1D6BD: [.686, 0, .831],\n 0x1D6BE: [.686, 0, .869],\n 0x1D6BF: [.686, 0, .894],\n 0x1D6C0: [.696, 0, .831],\n 0x1D6C1: [.686, .024, .958],\n 0x1D6E2: [.716, 0, .75, { sk: .139 }],\n 0x1D6E3: [.683, 0, .759, { sk: .0833 }],\n 0x1D6E4: [.68, 0, .615, { ic: .106, sk: .0833 }],\n 0x1D6E5: [.716, 0, .833, { sk: .167 }],\n 0x1D6E6: [.68, 0, .738, { ic: .026, sk: .0833 }],\n 0x1D6E7: [.683, 0, .683, { ic: .04, sk: .0833 }],\n 0x1D6E8: [.683, 0, .831, { ic: .057, sk: .0556 }],\n 0x1D6E9: [.704, .022, .763, { sk: .0833 }],\n 0x1D6EA: [.683, 0, .44, { ic: .064, sk: .111 }],\n 0x1D6EB: [.683, 0, .849, { ic: .04, sk: .0556 }],\n 0x1D6EC: [.716, 0, .694, { sk: .167 }],\n 0x1D6ED: [.683, 0, .97, { ic: .081, sk: .0833 }],\n 0x1D6EE: [.683, 0, .803, { ic: .085, sk: .0833 }],\n 0x1D6EF: [.677, 0, .742, { ic: .035, sk: .0833 }],\n 0x1D6F0: [.704, .022, .763, { sk: .0833 }],\n 0x1D6F1: [.68, 0, .831, { ic: .056, sk: .0556 }],\n 0x1D6F2: [.683, 0, .642, { ic: .109, sk: .0833 }],\n 0x1D6F4: [.683, 0, .78, { ic: .026, sk: .0833 }],\n 0x1D6F5: [.677, 0, .584, { ic: .12, sk: .0833 }],\n 0x1D6F6: [.705, 0, .583, { ic: .117, sk: .0556 }],\n 0x1D6F7: [.683, 0, .667, { sk: .0833 }],\n 0x1D6F8: [.683, 0, .828, { ic: .024, sk: .0833 }],\n 0x1D6F9: [.683, 0, .612, { ic: .08, sk: .0556 }],\n 0x1D6FA: [.704, 0, .772, { ic: .014, sk: .0833 }],\n 0x1D6FC: [.442, .011, .64, { sk: .0278 }],\n 0x1D6FD: [.705, .194, .566, { sk: .0833 }],\n 0x1D6FE: [.441, .216, .518, { ic: .025 }],\n 0x1D6FF: [.717, .01, .444, { sk: .0556 }],\n 0x1D700: [.452, .022, .466, { sk: .0833 }],\n 0x1D701: [.704, .204, .438, { ic: .033, sk: .0833 }],\n 0x1D702: [.442, .216, .497, { sk: .0556 }],\n 0x1D703: [.705, .01, .469, { sk: .0833 }],\n 0x1D704: [.442, .01, .354, { sk: .0556 }],\n 0x1D705: [.442, .011, .576],\n 0x1D706: [.694, .012, .583],\n 0x1D707: [.442, .216, .603, { sk: .0278 }],\n 0x1D708: [.442, 0, .494, { ic: .036, sk: .0278 }],\n 0x1D709: [.704, .205, .438, { sk: .111 }],\n 0x1D70A: [.441, .011, .485, { sk: .0556 }],\n 0x1D70B: [.431, .011, .57],\n 0x1D70C: [.442, .216, .517, { sk: .0833 }],\n 0x1D70D: [.442, .107, .363, { ic: .042, sk: .0833 }],\n 0x1D70E: [.431, .011, .571],\n 0x1D70F: [.431, .013, .437, { ic: .08, sk: .0278 }],\n 0x1D710: [.443, .01, .54, { sk: .0278 }],\n 0x1D711: [.442, .218, .654, { sk: .0833 }],\n 0x1D712: [.442, .204, .626, { sk: .0556 }],\n 0x1D713: [.694, .205, .651, { sk: .111 }],\n 0x1D714: [.443, .011, .622],\n 0x1D715: [.715, .022, .531, { ic: .035, sk: .0833 }],\n 0x1D716: [.431, .011, .406, { sk: .0556 }],\n 0x1D717: [.705, .011, .591, { sk: .0833 }],\n 0x1D718: [.434, .006, .667, { ic: .067 }],\n 0x1D719: [.694, .205, .596, { sk: .0833 }],\n 0x1D71A: [.442, .194, .517, { sk: .0833 }],\n 0x1D71B: [.431, .01, .828],\n 0x1D71C: [.711, 0, .869, { sk: .16 }],\n 0x1D71D: [.686, 0, .866, { sk: .0958 }],\n 0x1D71E: [.68, 0, .657, { ic: .12, sk: .0958 }],\n 0x1D71F: [.711, 0, .958, { sk: .192 }],\n 0x1D720: [.68, 0, .81, { ic: .015, sk: .0958 }],\n 0x1D721: [.686, 0, .773, { ic: .032, sk: .0958 }],\n 0x1D722: [.686, 0, .982, { ic: .045, sk: .0639 }],\n 0x1D723: [.702, .017, .867, { sk: .0958 }],\n 0x1D724: [.686, 0, .511, { ic: .062, sk: .128 }],\n 0x1D725: [.686, 0, .971, { ic: .032, sk: .0639 }],\n 0x1D726: [.711, 0, .806, { sk: .192 }],\n 0x1D727: [.686, 0, 1.142, { ic: .077, sk: .0958 }],\n 0x1D728: [.686, 0, .95, { ic: .077, sk: .0958 }],\n 0x1D729: [.675, 0, .841, { ic: .026, sk: .0958 }],\n 0x1D72A: [.703, .017, .837, { sk: .0958 }],\n 0x1D72B: [.68, 0, .982, { ic: .044, sk: .0639 }],\n 0x1D72C: [.686, 0, .723, { ic: .124, sk: .0958 }],\n 0x1D72E: [.686, 0, .885, { ic: .017, sk: .0958 }],\n 0x1D72F: [.675, 0, .637, { ic: .135, sk: .0958 }],\n 0x1D730: [.703, 0, .671, { ic: .131, sk: .0639 }],\n 0x1D731: [.686, 0, .767, { sk: .0958 }],\n 0x1D732: [.686, 0, .947, { sk: .0958 }],\n 0x1D733: [.686, 0, .714, { ic: .076, sk: .0639 }],\n 0x1D734: [.703, 0, .879, { sk: .0958 }],\n 0x1D736: [.452, .008, .761, { sk: .0319 }],\n 0x1D737: [.701, .194, .66, { sk: .0958 }],\n 0x1D738: [.451, .211, .59, { ic: .027 }],\n 0x1D739: [.725, .008, .522, { sk: .0639 }],\n 0x1D73A: [.461, .017, .529, { sk: .0958 }],\n 0x1D73B: [.711, .202, .508, { ic: .013, sk: .0958 }],\n 0x1D73C: [.452, .211, .6, { sk: .0639 }],\n 0x1D73D: [.702, .008, .562, { sk: .0958 }],\n 0x1D73E: [.452, .008, .412, { sk: .0639 }],\n 0x1D73F: [.452, .008, .668],\n 0x1D740: [.694, .013, .671],\n 0x1D741: [.452, .211, .708, { sk: .0319 }],\n 0x1D742: [.452, 0, .577, { ic: .031, sk: .0319 }],\n 0x1D743: [.711, .201, .508, { sk: .128 }],\n 0x1D744: [.452, .008, .585, { sk: .0639 }],\n 0x1D745: [.444, .008, .682],\n 0x1D746: [.451, .211, .612, { sk: .0958 }],\n 0x1D747: [.451, .105, .424, { ic: .033, sk: .0958 }],\n 0x1D748: [.444, .008, .686],\n 0x1D749: [.444, .013, .521, { ic: .089, sk: .0319 }],\n 0x1D74A: [.453, .008, .631, { sk: .0319 }],\n 0x1D74B: [.452, .216, .747, { sk: .0958 }],\n 0x1D74C: [.452, .201, .718, { sk: .0639 }],\n 0x1D74D: [.694, .202, .758, { sk: .128 }],\n 0x1D74E: [.453, .008, .718],\n 0x1D74F: [.71, .017, .628, { ic: .029, sk: .0958 }],\n 0x1D750: [.444, .007, .483, { sk: .0639 }],\n 0x1D751: [.701, .008, .692, { sk: .0958 }],\n 0x1D752: [.434, .006, .667, { ic: .067 }],\n 0x1D753: [.694, .202, .712, { sk: .0958 }],\n 0x1D754: [.451, .194, .612, { sk: .0958 }],\n 0x1D755: [.444, .008, .975],\n 0x1D756: [.694, 0, .733],\n 0x1D757: [.694, 0, .733],\n 0x1D758: [.691, 0, .581],\n 0x1D759: [.694, 0, .917],\n 0x1D75A: [.691, 0, .642],\n 0x1D75B: [.694, 0, .672],\n 0x1D75C: [.694, 0, .794],\n 0x1D75D: [.716, .022, .856],\n 0x1D75E: [.694, 0, .331],\n 0x1D75F: [.694, 0, .764],\n 0x1D760: [.694, 0, .672],\n 0x1D761: [.694, 0, .978],\n 0x1D762: [.694, 0, .794],\n 0x1D763: [.688, 0, .733],\n 0x1D764: [.716, .022, .794],\n 0x1D765: [.691, 0, .794],\n 0x1D766: [.694, 0, .703],\n 0x1D768: [.694, 0, .794],\n 0x1D769: [.688, 0, .733],\n 0x1D76A: [.715, 0, .856],\n 0x1D76B: [.694, 0, .794],\n 0x1D76C: [.694, 0, .733],\n 0x1D76D: [.694, 0, .856],\n 0x1D76E: [.716, 0, .794],\n 0x1D7CE: [.654, .01, .575],\n 0x1D7CF: [.655, 0, .575],\n 0x1D7D0: [.654, 0, .575],\n 0x1D7D1: [.655, .011, .575],\n 0x1D7D2: [.656, 0, .575],\n 0x1D7D3: [.655, .011, .575],\n 0x1D7D4: [.655, .011, .575],\n 0x1D7D5: [.676, .011, .575],\n 0x1D7D6: [.654, .011, .575],\n 0x1D7D7: [.654, .011, .575],\n 0x1D7E2: [.678, .022, .5],\n 0x1D7E3: [.678, 0, .5],\n 0x1D7E4: [.677, 0, .5],\n 0x1D7E5: [.678, .022, .5],\n 0x1D7E6: [.656, 0, .5],\n 0x1D7E7: [.656, .021, .5],\n 0x1D7E8: [.677, .022, .5],\n 0x1D7E9: [.656, .011, .5],\n 0x1D7EA: [.678, .022, .5],\n 0x1D7EB: [.677, .022, .5],\n 0x1D7EC: [.715, .022, .55],\n 0x1D7ED: [.716, 0, .55],\n 0x1D7EE: [.716, 0, .55],\n 0x1D7EF: [.716, .022, .55],\n 0x1D7F0: [.694, 0, .55],\n 0x1D7F1: [.694, .022, .55],\n 0x1D7F2: [.716, .022, .55],\n 0x1D7F3: [.695, .011, .55],\n 0x1D7F4: [.715, .022, .55],\n 0x1D7F5: [.716, .022, .55],\n 0x1D7F6: [.621, .01, .525],\n 0x1D7F7: [.622, 0, .525],\n 0x1D7F8: [.622, 0, .525],\n 0x1D7F9: [.622, .011, .525],\n 0x1D7FA: [.624, 0, .525],\n 0x1D7FB: [.611, .01, .525],\n 0x1D7FC: [.622, .011, .525],\n 0x1D7FD: [.627, .01, .525],\n 0x1D7FE: [.621, .01, .525],\n 0x1D7FF: [.622, .011, .525],\n};\n//# sourceMappingURL=normal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sansSerifBoldItalic = void 0;\nexports.sansSerifBoldItalic = {\n 0x131: [.458, 0, .256],\n 0x237: [.458, .205, .286],\n};\n//# sourceMappingURL=sans-serif-bold-italic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sansSerifBold = void 0;\nexports.sansSerifBold = {\n 0x21: [.694, 0, .367],\n 0x22: [.694, -0.442, .558],\n 0x23: [.694, .193, .917],\n 0x24: [.75, .056, .55],\n 0x25: [.75, .056, 1.029],\n 0x26: [.716, .022, .831],\n 0x27: [.694, -0.442, .306],\n 0x28: [.75, .249, .428],\n 0x29: [.75, .25, .428],\n 0x2A: [.75, -0.293, .55],\n 0x2B: [.617, .116, .856],\n 0x2C: [.146, .106, .306],\n 0x2D: [.273, -0.186, .367],\n 0x2E: [.146, 0, .306],\n 0x2F: [.75, .249, .55],\n 0x3A: [.458, 0, .306],\n 0x3B: [.458, .106, .306],\n 0x3D: [.407, -0.094, .856],\n 0x3F: [.705, 0, .519],\n 0x40: [.704, .011, .733],\n 0x5B: [.75, .25, .343],\n 0x5D: [.75, .25, .343],\n 0x5E: [.694, -0.537, .55],\n 0x5F: [-0.023, .11, .55],\n 0x7E: [.344, -0.198, .55],\n 0x131: [.458, 0, .256],\n 0x237: [.458, .205, .286],\n 0x300: [.694, -0.537, 0],\n 0x301: [.694, -0.537, 0],\n 0x302: [.694, -0.537, 0],\n 0x303: [.694, -0.548, 0],\n 0x304: [.66, -0.56, 0],\n 0x306: [.694, -0.552, 0],\n 0x307: [.695, -0.596, 0],\n 0x308: [.695, -0.595, 0],\n 0x30A: [.694, -0.538, 0],\n 0x30B: [.694, -0.537, 0],\n 0x30C: [.657, -0.5, 0],\n 0x2013: [.327, -0.24, .55],\n 0x2014: [.327, -0.24, 1.1],\n 0x2015: [.327, -0.24, 1.1],\n 0x2017: [-0.023, .11, .55],\n 0x2018: [.694, -0.443, .306],\n 0x2019: [.694, -0.442, .306],\n 0x201C: [.694, -0.443, .558],\n 0x201D: [.694, -0.442, .558],\n 0x2044: [.75, .249, .55],\n 0x2206: [.694, 0, .917],\n};\n//# sourceMappingURL=sans-serif-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sansSerifItalic = void 0;\nexports.sansSerifItalic = {\n 0x21: [.694, 0, .319, { ic: .036 }],\n 0x22: [.694, -0.471, .5],\n 0x23: [.694, .194, .833, { ic: .018 }],\n 0x24: [.75, .056, .5, { ic: .065 }],\n 0x25: [.75, .056, .833],\n 0x26: [.716, .022, .758],\n 0x27: [.694, -0.471, .278, { ic: .057 }],\n 0x28: [.75, .25, .389, { ic: .102 }],\n 0x29: [.75, .25, .389],\n 0x2A: [.75, -0.306, .5, { ic: .068 }],\n 0x2B: [.583, .083, .778],\n 0x2C: [.098, .125, .278],\n 0x2D: [.259, -0.186, .333],\n 0x2E: [.098, 0, .278],\n 0x2F: [.75, .25, .5, { ic: .1 }],\n 0x30: [.678, .022, .5, { ic: .049 }],\n 0x31: [.678, 0, .5],\n 0x32: [.678, 0, .5, { ic: .051 }],\n 0x33: [.678, .022, .5, { ic: .044 }],\n 0x34: [.656, 0, .5, { ic: .021 }],\n 0x35: [.656, .022, .5, { ic: .055 }],\n 0x36: [.678, .022, .5, { ic: .048 }],\n 0x37: [.656, .011, .5, { ic: .096 }],\n 0x38: [.678, .022, .5, { ic: .054 }],\n 0x39: [.677, .022, .5, { ic: .045 }],\n 0x3A: [.444, 0, .278],\n 0x3B: [.444, .125, .278],\n 0x3D: [.37, -0.13, .778, { ic: .018 }],\n 0x3F: [.704, 0, .472, { ic: .064 }],\n 0x40: [.705, .01, .667, { ic: .04 }],\n 0x5B: [.75, .25, .289, { ic: .136 }],\n 0x5D: [.75, .25, .289, { ic: .064 }],\n 0x5E: [.694, -0.527, .5, { ic: .033 }],\n 0x5F: [-0.038, .114, .5, { ic: .065 }],\n 0x7E: [.327, -0.193, .5, { ic: .06 }],\n 0x131: [.444, 0, .239, { ic: .019 }],\n 0x237: [.444, .204, .267, { ic: .019 }],\n 0x300: [.694, -0.527, 0],\n 0x301: [.694, -0.527, 0, { ic: .063 }],\n 0x302: [.694, -0.527, 0, { ic: .033 }],\n 0x303: [.677, -0.543, 0, { ic: .06 }],\n 0x304: [.631, -0.552, 0, { ic: .064 }],\n 0x306: [.694, -0.508, 0, { ic: .073 }],\n 0x307: [.68, -0.576, 0],\n 0x308: [.68, -0.582, 0, { ic: .04 }],\n 0x30A: [.693, -0.527, 0],\n 0x30B: [.694, -0.527, 0, { ic: .063 }],\n 0x30C: [.654, -0.487, 0, { ic: .06 }],\n 0x391: [.694, 0, .667],\n 0x392: [.694, 0, .667, { ic: .029 }],\n 0x393: [.691, 0, .542, { ic: .104 }],\n 0x394: [.694, 0, .833],\n 0x395: [.691, 0, .597, { ic: .091 }],\n 0x396: [.694, 0, .611, { ic: .091 }],\n 0x397: [.694, 0, .708, { ic: .06 }],\n 0x398: [.715, .022, .778, { ic: .026 }],\n 0x399: [.694, 0, .278, { ic: .06 }],\n 0x39A: [.694, 0, .694, { ic: .091 }],\n 0x39B: [.694, 0, .611],\n 0x39C: [.694, 0, .875, { ic: .054 }],\n 0x39D: [.694, 0, .708, { ic: .058 }],\n 0x39E: [.688, 0, .667, { ic: .098 }],\n 0x39F: [.716, .022, .736, { ic: .027 }],\n 0x3A0: [.691, 0, .708, { ic: .06 }],\n 0x3A1: [.694, 0, .639, { ic: .051 }],\n 0x3A3: [.694, 0, .722, { ic: .091 }],\n 0x3A4: [.688, 0, .681, { ic: .109 }],\n 0x3A5: [.716, 0, .778, { ic: .065 }],\n 0x3A6: [.694, 0, .722, { ic: .021 }],\n 0x3A7: [.694, 0, .667, { ic: .091 }],\n 0x3A8: [.694, 0, .778, { ic: .076 }],\n 0x3A9: [.716, 0, .722, { ic: .047 }],\n 0x2013: [.312, -0.236, .5, { ic: .065 }],\n 0x2014: [.312, -0.236, 1, { ic: .065 }],\n 0x2015: [.312, -0.236, 1, { ic: .065 }],\n 0x2017: [-0.038, .114, .5, { ic: .065 }],\n 0x2018: [.694, -0.471, .278, { ic: .058 }],\n 0x2019: [.694, -0.471, .278, { ic: .057 }],\n 0x201C: [.694, -0.471, .5, { ic: .114 }],\n 0x201D: [.694, -0.471, .5],\n 0x2044: [.75, .25, .5, { ic: .1 }],\n 0x2206: [.694, 0, .833],\n};\n//# sourceMappingURL=sans-serif-italic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sansSerif = void 0;\nexports.sansSerif = {\n 0x21: [.694, 0, .319],\n 0x22: [.694, -0.471, .5],\n 0x23: [.694, .194, .833],\n 0x24: [.75, .056, .5],\n 0x25: [.75, .056, .833],\n 0x26: [.716, .022, .758],\n 0x27: [.694, -0.471, .278],\n 0x28: [.75, .25, .389],\n 0x29: [.75, .25, .389],\n 0x2A: [.75, -0.306, .5],\n 0x2B: [.583, .082, .778],\n 0x2C: [.098, .125, .278],\n 0x2D: [.259, -0.186, .333],\n 0x2E: [.098, 0, .278],\n 0x2F: [.75, .25, .5],\n 0x3A: [.444, 0, .278],\n 0x3B: [.444, .125, .278],\n 0x3D: [.37, -0.13, .778],\n 0x3F: [.704, 0, .472],\n 0x40: [.704, .011, .667],\n 0x5B: [.75, .25, .289],\n 0x5D: [.75, .25, .289],\n 0x5E: [.694, -0.527, .5],\n 0x5F: [-0.038, .114, .5],\n 0x7E: [.327, -0.193, .5],\n 0x131: [.444, 0, .239],\n 0x237: [.444, .205, .267],\n 0x300: [.694, -0.527, 0],\n 0x301: [.694, -0.527, 0],\n 0x302: [.694, -0.527, 0],\n 0x303: [.677, -0.543, 0],\n 0x304: [.631, -0.552, 0],\n 0x306: [.694, -0.508, 0],\n 0x307: [.68, -0.576, 0],\n 0x308: [.68, -0.582, 0],\n 0x30A: [.694, -0.527, 0],\n 0x30B: [.694, -0.527, 0],\n 0x30C: [.654, -0.487, 0],\n 0x391: [.694, 0, .667],\n 0x392: [.694, 0, .667],\n 0x393: [.691, 0, .542],\n 0x394: [.694, 0, .833],\n 0x395: [.691, 0, .597],\n 0x396: [.694, 0, .611],\n 0x397: [.694, 0, .708],\n 0x398: [.716, .021, .778],\n 0x399: [.694, 0, .278],\n 0x39A: [.694, 0, .694],\n 0x39B: [.694, 0, .611],\n 0x39C: [.694, 0, .875],\n 0x39D: [.694, 0, .708],\n 0x39E: [.688, 0, .667],\n 0x39F: [.715, .022, .736],\n 0x3A0: [.691, 0, .708],\n 0x3A1: [.694, 0, .639],\n 0x3A3: [.694, 0, .722],\n 0x3A4: [.688, 0, .681],\n 0x3A5: [.716, 0, .778],\n 0x3A6: [.694, 0, .722],\n 0x3A7: [.694, 0, .667],\n 0x3A8: [.694, 0, .778],\n 0x3A9: [.716, 0, .722],\n 0x2013: [.312, -0.236, .5],\n 0x2014: [.312, -0.236, 1],\n 0x2015: [.312, -0.236, 1],\n 0x2017: [-0.038, .114, .5],\n 0x2018: [.694, -0.471, .278],\n 0x2019: [.694, -0.471, .278],\n 0x201C: [.694, -0.471, .5],\n 0x201D: [.694, -0.471, .5],\n 0x2044: [.75, .25, .5],\n 0x2206: [.694, 0, .833],\n};\n//# sourceMappingURL=sans-serif.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scriptBold = void 0;\nexports.scriptBold = {};\n//# sourceMappingURL=script-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.script = void 0;\nexports.script = {};\n//# sourceMappingURL=script.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.smallop = void 0;\nexports.smallop = {\n 0x28: [.85, .349, .458],\n 0x29: [.85, .349, .458],\n 0x2F: [.85, .349, .578],\n 0x5B: [.85, .349, .417],\n 0x5C: [.85, .349, .578],\n 0x5D: [.85, .349, .417],\n 0x7B: [.85, .349, .583],\n 0x7D: [.85, .349, .583],\n 0x2C6: [.744, -0.551, .556],\n 0x2DC: [.722, -0.597, .556],\n 0x302: [.744, -0.551, 0],\n 0x303: [.722, -0.597, 0],\n 0x2016: [.602, 0, .778],\n 0x2044: [.85, .349, .578],\n 0x2191: [.6, 0, .667],\n 0x2193: [.6, 0, .667],\n 0x21D1: [.599, 0, .778],\n 0x21D3: [.6, 0, .778],\n 0x220F: [.75, .25, .944],\n 0x2210: [.75, .25, .944],\n 0x2211: [.75, .25, 1.056],\n 0x221A: [.85, .35, 1, { ic: .02 }],\n 0x2223: [.627, .015, .333],\n 0x2225: [.627, .015, .556],\n 0x222B: [.805, .306, .472, { ic: .138 }],\n 0x222C: [.805, .306, .819, { ic: .138 }],\n 0x222D: [.805, .306, 1.166, { ic: .138 }],\n 0x222E: [.805, .306, .472, { ic: .138 }],\n 0x22C0: [.75, .249, .833],\n 0x22C1: [.75, .249, .833],\n 0x22C2: [.75, .249, .833],\n 0x22C3: [.75, .249, .833],\n 0x2308: [.85, .349, .472],\n 0x2309: [.85, .349, .472],\n 0x230A: [.85, .349, .472],\n 0x230B: [.85, .349, .472],\n 0x2329: [.85, .35, .472],\n 0x232A: [.85, .35, .472],\n 0x23D0: [.602, 0, .667],\n 0x2758: [.627, .015, .333],\n 0x27E8: [.85, .35, .472],\n 0x27E9: [.85, .35, .472],\n 0x2A00: [.75, .25, 1.111],\n 0x2A01: [.75, .25, 1.111],\n 0x2A02: [.75, .25, 1.111],\n 0x2A04: [.75, .249, .833],\n 0x2A06: [.75, .249, .833],\n 0x2A0C: [.805, .306, 1.638, { ic: .138 }],\n 0x3008: [.85, .35, .472],\n 0x3009: [.85, .35, .472],\n};\n//# sourceMappingURL=smallop.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texCalligraphicBold = void 0;\nexports.texCalligraphicBold = {\n 0x41: [.751, .049, .921, { ic: .068, sk: .224 }],\n 0x42: [.705, .017, .748, { sk: .16 }],\n 0x43: [.703, .02, .613, { sk: .16 }],\n 0x44: [.686, 0, .892, { sk: .0958 }],\n 0x45: [.703, .016, .607, { ic: .02, sk: .128 }],\n 0x46: [.686, .03, .814, { ic: .116, sk: .128 }],\n 0x47: [.703, .113, .682, { sk: .128 }],\n 0x48: [.686, .048, .987, { sk: .128 }],\n 0x49: [.686, 0, .642, { ic: .104, sk: .0319 }],\n 0x4A: [.686, .114, .779, { ic: .158, sk: .192 }],\n 0x4B: [.703, .017, .871, { sk: .0639 }],\n 0x4C: [.703, .017, .788, { sk: .16 }],\n 0x4D: [.703, .049, 1.378, { sk: .16 }],\n 0x4E: [.84, .049, .937, { ic: .168, sk: .0958 }],\n 0x4F: [.703, .017, .906, { sk: .128 }],\n 0x50: [.686, .067, .81, { ic: .036, sk: .0958 }],\n 0x51: [.703, .146, .939, { sk: .128 }],\n 0x52: [.686, .017, .99, { sk: .0958 }],\n 0x53: [.703, .016, .696, { ic: .025, sk: .16 }],\n 0x54: [.72, .069, .644, { ic: .303, sk: .0319 }],\n 0x55: [.686, .024, .715, { ic: .056, sk: .0958 }],\n 0x56: [.686, .077, .737, { ic: .037, sk: .0319 }],\n 0x57: [.686, .077, 1.169, { ic: .037, sk: .0958 }],\n 0x58: [.686, 0, .817, { ic: .089, sk: .16 }],\n 0x59: [.686, .164, .759, { ic: .038, sk: .0958 }],\n 0x5A: [.686, 0, .818, { ic: .035, sk: .16 }],\n 0x131: [.452, .008, .394, { sk: .0319 }],\n 0x237: [.451, .201, .439, { sk: .0958 }],\n};\n//# sourceMappingURL=tex-calligraphic-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texCalligraphic = void 0;\nexports.texCalligraphic = {\n 0x41: [.728, .05, .798, { ic: .021, sk: .194 }],\n 0x42: [.705, .022, .657, { sk: .139 }],\n 0x43: [.705, .025, .527, { sk: .139 }],\n 0x44: [.683, 0, .771, { sk: .0833 }],\n 0x45: [.705, .022, .528, { ic: .036, sk: .111 }],\n 0x46: [.683, .032, .719, { ic: .11, sk: .111 }],\n 0x47: [.704, .119, .595, { sk: .111 }],\n 0x48: [.683, .048, .845, { sk: .111 }],\n 0x49: [.683, 0, .545, { ic: .097, sk: .0278 }],\n 0x4A: [.683, .119, .678, { ic: .161, sk: .167 }],\n 0x4B: [.705, .022, .762, { sk: .0556 }],\n 0x4C: [.705, .022, .69, { sk: .139 }],\n 0x4D: [.705, .05, 1.201, { sk: .139 }],\n 0x4E: [.789, .05, .82, { ic: .159, sk: .0833 }],\n 0x4F: [.705, .022, .796, { sk: .111 }],\n 0x50: [.683, .057, .696, { ic: .037, sk: .0833 }],\n 0x51: [.705, .131, .817, { sk: .111 }],\n 0x52: [.682, .022, .848, { sk: .0833 }],\n 0x53: [.705, .022, .606, { ic: .036, sk: .139 }],\n 0x54: [.717, .068, .545, { ic: .288, sk: .0278 }],\n 0x55: [.683, .028, .626, { ic: .061, sk: .0833 }],\n 0x56: [.683, .052, .613, { ic: .045, sk: .0278 }],\n 0x57: [.683, .053, .988, { ic: .046, sk: .0833 }],\n 0x58: [.683, 0, .713, { ic: .094, sk: .139 }],\n 0x59: [.683, .143, .668, { ic: .046, sk: .0833 }],\n 0x5A: [.683, 0, .725, { ic: .042, sk: .139 }],\n};\n//# sourceMappingURL=tex-calligraphic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texMathit = void 0;\nexports.texMathit = {\n 0x41: [.716, 0, .743],\n 0x42: [.683, 0, .704],\n 0x43: [.705, .021, .716],\n 0x44: [.683, 0, .755],\n 0x45: [.68, 0, .678],\n 0x46: [.68, 0, .653],\n 0x47: [.705, .022, .774],\n 0x48: [.683, 0, .743],\n 0x49: [.683, 0, .386],\n 0x4A: [.683, .021, .525],\n 0x4B: [.683, 0, .769],\n 0x4C: [.683, 0, .627],\n 0x4D: [.683, 0, .897],\n 0x4E: [.683, 0, .743],\n 0x4F: [.704, .022, .767],\n 0x50: [.683, 0, .678],\n 0x51: [.704, .194, .767],\n 0x52: [.683, .022, .729],\n 0x53: [.705, .022, .562],\n 0x54: [.677, 0, .716],\n 0x55: [.683, .022, .743],\n 0x56: [.683, .022, .743],\n 0x57: [.683, .022, .999],\n 0x58: [.683, 0, .743],\n 0x59: [.683, 0, .743],\n 0x5A: [.683, 0, .613],\n 0x61: [.442, .011, .511],\n 0x62: [.694, .011, .46],\n 0x63: [.441, .01, .46],\n 0x64: [.694, .011, .511],\n 0x65: [.442, .01, .46],\n 0x66: [.705, .204, .307],\n 0x67: [.442, .205, .46],\n 0x68: [.694, .011, .511],\n 0x69: [.656, .01, .307],\n 0x6A: [.656, .204, .307],\n 0x6B: [.694, .011, .46],\n 0x6C: [.694, .011, .256],\n 0x6D: [.442, .011, .818],\n 0x6E: [.442, .011, .562],\n 0x6F: [.442, .011, .511],\n 0x70: [.442, .194, .511],\n 0x71: [.442, .194, .46],\n 0x72: [.442, .011, .422],\n 0x73: [.442, .011, .409],\n 0x74: [.626, .011, .332],\n 0x75: [.441, .011, .537],\n 0x76: [.443, .01, .46],\n 0x77: [.443, .011, .664],\n 0x78: [.442, .011, .464],\n 0x79: [.441, .205, .486],\n 0x7A: [.442, .011, .409],\n};\n//# sourceMappingURL=tex-mathit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texOldstyleBold = void 0;\nexports.texOldstyleBold = {\n 0x30: [.46, .017, .575],\n 0x31: [.461, 0, .575],\n 0x32: [.46, 0, .575],\n 0x33: [.461, .211, .575],\n 0x34: [.469, .194, .575],\n 0x35: [.461, .211, .575],\n 0x36: [.66, .017, .575],\n 0x37: [.476, .211, .575],\n 0x38: [.661, .017, .575],\n 0x39: [.461, .21, .575],\n 0x41: [.751, .049, .921, { ic: .068, sk: .224 }],\n 0x42: [.705, .017, .748, { sk: .16 }],\n 0x43: [.703, .02, .613, { sk: .16 }],\n 0x44: [.686, 0, .892, { sk: .0958 }],\n 0x45: [.703, .016, .607, { ic: .02, sk: .128 }],\n 0x46: [.686, .03, .814, { ic: .116, sk: .128 }],\n 0x47: [.703, .113, .682, { sk: .128 }],\n 0x48: [.686, .048, .987, { sk: .128 }],\n 0x49: [.686, 0, .642, { ic: .104, sk: .0319 }],\n 0x4A: [.686, .114, .779, { ic: .158, sk: .192 }],\n 0x4B: [.703, .017, .871, { sk: .0639 }],\n 0x4C: [.703, .017, .788, { sk: .16 }],\n 0x4D: [.703, .049, 1.378, { sk: .16 }],\n 0x4E: [.84, .049, .937, { ic: .168, sk: .0958 }],\n 0x4F: [.703, .017, .906, { sk: .128 }],\n 0x50: [.686, .067, .81, { ic: .036, sk: .0958 }],\n 0x51: [.703, .146, .939, { sk: .128 }],\n 0x52: [.686, .017, .99, { sk: .0958 }],\n 0x53: [.703, .016, .696, { ic: .025, sk: .16 }],\n 0x54: [.72, .069, .644, { ic: .303, sk: .0319 }],\n 0x55: [.686, .024, .715, { ic: .056, sk: .0958 }],\n 0x56: [.686, .077, .737, { ic: .037, sk: .0319 }],\n 0x57: [.686, .077, 1.169, { ic: .037, sk: .0958 }],\n 0x58: [.686, 0, .817, { ic: .089, sk: .16 }],\n 0x59: [.686, .164, .759, { ic: .038, sk: .0958 }],\n 0x5A: [.686, 0, .818, { ic: .035, sk: .16 }],\n};\n//# sourceMappingURL=tex-oldstyle-bold.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texOldstyle = void 0;\nexports.texOldstyle = {\n 0x30: [.452, .022, .5],\n 0x31: [.453, 0, .5],\n 0x32: [.453, 0, .5],\n 0x33: [.452, .216, .5],\n 0x34: [.464, .194, .5],\n 0x35: [.453, .216, .5],\n 0x36: [.665, .022, .5],\n 0x37: [.463, .216, .5],\n 0x38: [.666, .021, .5],\n 0x39: [.453, .216, .5],\n 0x41: [.728, .05, .798, { ic: .021, sk: .194 }],\n 0x42: [.705, .022, .657, { sk: .139 }],\n 0x43: [.705, .025, .527, { sk: .139 }],\n 0x44: [.683, 0, .771, { sk: .0833 }],\n 0x45: [.705, .022, .528, { ic: .036, sk: .111 }],\n 0x46: [.683, .032, .719, { ic: .11, sk: .111 }],\n 0x47: [.704, .119, .595, { sk: .111 }],\n 0x48: [.683, .048, .845, { sk: .111 }],\n 0x49: [.683, 0, .545, { ic: .097, sk: .0278 }],\n 0x4A: [.683, .119, .678, { ic: .161, sk: .167 }],\n 0x4B: [.705, .022, .762, { sk: .0556 }],\n 0x4C: [.705, .022, .69, { sk: .139 }],\n 0x4D: [.705, .05, 1.201, { sk: .139 }],\n 0x4E: [.789, .05, .82, { ic: .159, sk: .0833 }],\n 0x4F: [.705, .022, .796, { sk: .111 }],\n 0x50: [.683, .057, .696, { ic: .037, sk: .0833 }],\n 0x51: [.705, .131, .817, { sk: .111 }],\n 0x52: [.682, .022, .848, { sk: .0833 }],\n 0x53: [.705, .022, .606, { ic: .036, sk: .139 }],\n 0x54: [.717, .068, .545, { ic: .288, sk: .0278 }],\n 0x55: [.683, .028, .626, { ic: .061, sk: .0833 }],\n 0x56: [.683, .052, .613, { ic: .045, sk: .0278 }],\n 0x57: [.683, .053, .988, { ic: .046, sk: .0833 }],\n 0x58: [.683, 0, .713, { ic: .094, sk: .139 }],\n 0x59: [.683, .143, .668, { ic: .046, sk: .0833 }],\n 0x5A: [.683, 0, .725, { ic: .042, sk: .139 }],\n};\n//# sourceMappingURL=tex-oldstyle.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texSize3 = void 0;\nexports.texSize3 = {\n 0x28: [1.45, .949, .736],\n 0x29: [1.45, .949, .736],\n 0x2F: [1.45, .949, 1.044],\n 0x5B: [1.45, .949, .528],\n 0x5C: [1.45, .949, 1.044],\n 0x5D: [1.45, .949, .528],\n 0x7B: [1.45, .949, .75],\n 0x7D: [1.45, .949, .75],\n 0x2C6: [.772, -0.564, 1.444],\n 0x2DC: [.749, -0.61, 1.444],\n 0x302: [.772, -0.564, 0],\n 0x303: [.749, -0.61, 0],\n 0x2044: [1.45, .949, 1.044],\n 0x221A: [1.45, .95, 1, { ic: .02 }],\n 0x2308: [1.45, .949, .583],\n 0x2309: [1.45, .949, .583],\n 0x230A: [1.45, .949, .583],\n 0x230B: [1.45, .949, .583],\n 0x2329: [1.45, .95, .75],\n 0x232A: [1.45, .949, .75],\n 0x27E8: [1.45, .95, .75],\n 0x27E9: [1.45, .949, .75],\n 0x3008: [1.45, .95, .75],\n 0x3009: [1.45, .949, .75],\n};\n//# sourceMappingURL=tex-size3.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texSize4 = void 0;\nexports.texSize4 = {\n 0x28: [1.75, 1.249, .792],\n 0x29: [1.75, 1.249, .792],\n 0x2F: [1.75, 1.249, 1.278],\n 0x5B: [1.75, 1.249, .583],\n 0x5C: [1.75, 1.249, 1.278],\n 0x5D: [1.75, 1.249, .583],\n 0x7B: [1.75, 1.249, .806],\n 0x7D: [1.75, 1.249, .806],\n 0x2C6: [.845, -0.561, 1.889, { ic: .013 }],\n 0x2DC: [.823, -0.583, 1.889],\n 0x302: [.845, -0.561, 0, { ic: .013 }],\n 0x303: [.823, -0.583, 0],\n 0x2044: [1.75, 1.249, 1.278],\n 0x221A: [1.75, 1.25, 1, { ic: .02 }],\n 0x2308: [1.75, 1.249, .639],\n 0x2309: [1.75, 1.249, .639],\n 0x230A: [1.75, 1.249, .639],\n 0x230B: [1.75, 1.249, .639],\n 0x2329: [1.75, 1.248, .806],\n 0x232A: [1.75, 1.248, .806],\n 0x239B: [1.154, .655, .875],\n 0x239C: [.61, .01, .875],\n 0x239D: [1.165, .644, .875],\n 0x239E: [1.154, .655, .875],\n 0x239F: [.61, .01, .875],\n 0x23A0: [1.165, .644, .875],\n 0x23A1: [1.154, .645, .667],\n 0x23A2: [.602, 0, .667],\n 0x23A3: [1.155, .644, .667],\n 0x23A4: [1.154, .645, .667],\n 0x23A5: [.602, 0, .667],\n 0x23A6: [1.155, .644, .667],\n 0x23A7: [.899, .01, .889],\n 0x23A8: [1.16, .66, .889],\n 0x23A9: [.01, .899, .889],\n 0x23AA: [.29, .015, .889],\n 0x23AB: [.899, .01, .889],\n 0x23AC: [1.16, .66, .889],\n 0x23AD: [.01, .899, .889],\n 0x23B7: [.935, .885, 1.056],\n 0x27E8: [1.75, 1.248, .806],\n 0x27E9: [1.75, 1.248, .806],\n 0x3008: [1.75, 1.248, .806],\n 0x3009: [1.75, 1.248, .806],\n 0xE000: [.625, .014, 1.056],\n 0xE001: [.605, .014, 1.056, { ic: .02 }],\n 0xE150: [.12, .213, .45, { ic: .01 }],\n 0xE151: [.12, .213, .45, { ic: .024 }],\n 0xE152: [.333, 0, .45, { ic: .01 }],\n 0xE153: [.333, 0, .45, { ic: .024 }],\n 0xE154: [.32, .2, .4, { ic: .01 }],\n 0xE155: [.333, 0, .9, { ic: .01 }],\n 0xE156: [.12, .213, .9, { ic: .01 }],\n};\n//# sourceMappingURL=tex-size4.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.texVariant = void 0;\nexports.texVariant = {\n 0x2C6: [.845, -0.561, 2.333, { ic: .013 }],\n 0x2DC: [.899, -0.628, 2.333],\n 0x302: [.845, -0.561, 0, { ic: .013 }],\n 0x303: [.899, -0.628, 0],\n 0x3F0: [.434, .006, .667, { ic: .067 }],\n 0x210F: [.695, .013, .54, { ic: .022 }],\n 0x2190: [.437, -0.064, .5],\n 0x2192: [.437, -0.064, .5],\n 0x21CC: [.514, .014, 1],\n 0x2204: [.86, .166, .556],\n 0x2205: [.587, 0, .778],\n 0x2212: [.27, -0.23, .5],\n 0x2216: [.43, .023, .778],\n 0x221D: [.472, -0.028, .778],\n 0x2223: [.43, .023, .222],\n 0x2224: [.43, .023, .222, { ic: .018 }],\n 0x2225: [.431, .023, .389],\n 0x2226: [.431, .024, .389, { ic: .018 }],\n 0x223C: [.365, -0.132, .778],\n 0x2248: [.481, -0.05, .778],\n 0x2268: [.752, .284, .778],\n 0x2269: [.752, .284, .778],\n 0x2270: [.919, .421, .778],\n 0x2271: [.919, .421, .778],\n 0x2288: [.828, .33, .778],\n 0x2289: [.828, .33, .778],\n 0x228A: [.634, .255, .778],\n 0x228B: [.634, .254, .778],\n 0x22A8: [.694, 0, .611],\n 0x22C5: [.189, 0, .278],\n 0x2322: [.378, -0.122, .778],\n 0x2323: [.378, -0.143, .778],\n 0x25B3: [.575, .02, .722],\n 0x25BD: [.576, .019, .722],\n 0x2A87: [.801, .303, .778],\n 0x2A88: [.801, .303, .778],\n 0x2ACB: [.752, .332, .778],\n 0x2ACC: [.752, .333, .778],\n};\n//# sourceMappingURL=tex-variant.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MJContextMenu = void 0;\nvar context_menu_js_1 = require(\"mj-context-menu/js/context_menu.js\");\nvar item_submenu_js_1 = require(\"mj-context-menu/js/item_submenu.js\");\nvar MJContextMenu = (function (_super) {\n __extends(MJContextMenu, _super);\n function MJContextMenu() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.mathItem = null;\n _this.annotation = '';\n _this.annotationTypes = {};\n return _this;\n }\n MJContextMenu.prototype.post = function (x, y) {\n if (this.mathItem) {\n if (y !== undefined) {\n var input = this.mathItem.inputJax.name;\n var original = this.findID('Show', 'Original');\n original.content = (input === 'MathML' ? 'Original MathML' : input + ' Commands');\n var clipboard = this.findID('Copy', 'Original');\n clipboard.content = original.content;\n var semantics = this.findID('Settings', 'semantics');\n input === 'MathML' ? semantics.disable() : semantics.enable();\n this.getAnnotationMenu();\n this.dynamicSubmenus();\n }\n _super.prototype.post.call(this, x, y);\n }\n };\n MJContextMenu.prototype.unpost = function () {\n _super.prototype.unpost.call(this);\n this.mathItem = null;\n };\n MJContextMenu.prototype.findID = function () {\n var e_1, _a;\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n var menu = this;\n var item = null;\n try {\n for (var names_1 = __values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name_1 = names_1_1.value;\n if (menu) {\n item = menu.find(name_1);\n menu = (item instanceof item_submenu_js_1.Submenu ? item.submenu : null);\n }\n else {\n item = null;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return item;\n };\n MJContextMenu.prototype.getAnnotationMenu = function () {\n var _this = this;\n var annotations = this.getAnnotations(this.getSemanticNode());\n this.createAnnotationMenu('Show', annotations, function () { return _this.showAnnotation.post(); });\n this.createAnnotationMenu('Copy', annotations, function () { return _this.copyAnnotation(); });\n };\n MJContextMenu.prototype.getSemanticNode = function () {\n var node = this.mathItem.root;\n while (node && !node.isKind('semantics')) {\n if (node.isToken || node.childNodes.length !== 1)\n return null;\n node = node.childNodes[0];\n }\n return node;\n };\n MJContextMenu.prototype.getAnnotations = function (node) {\n var e_2, _a;\n var annotations = [];\n if (!node)\n return annotations;\n try {\n for (var _b = __values(node.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.isKind('annotation')) {\n var match = this.annotationMatch(child);\n if (match) {\n var value = child.childNodes.reduce(function (text, chars) { return text + chars.toString(); }, '');\n annotations.push([match, value]);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return annotations;\n };\n MJContextMenu.prototype.annotationMatch = function (child) {\n var e_3, _a;\n var encoding = child.attributes.get('encoding');\n try {\n for (var _b = __values(Object.keys(this.annotationTypes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var type = _c.value;\n if (this.annotationTypes[type].indexOf(encoding) >= 0) {\n return type;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return null;\n };\n MJContextMenu.prototype.createAnnotationMenu = function (id, annotations, action) {\n var _this = this;\n var menu = this.findID(id, 'Annotation');\n menu.submenu = this.factory.get('subMenu')(this.factory, {\n items: annotations.map(function (_a) {\n var _b = __read(_a, 2), type = _b[0], value = _b[1];\n return {\n type: 'command',\n id: type,\n content: type,\n action: function () {\n _this.annotation = value;\n action();\n }\n };\n }),\n id: 'annotations'\n }, menu);\n if (annotations.length) {\n menu.enable();\n }\n else {\n menu.disable();\n }\n };\n MJContextMenu.prototype.dynamicSubmenus = function () {\n var e_4, _a;\n try {\n for (var _b = __values(MJContextMenu.DynamicSubmenus), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), id = _d[0], method = _d[1];\n var menu = this.find(id);\n if (!menu)\n continue;\n var sub = method(this, menu);\n menu.submenu = sub;\n if (sub.items.length) {\n menu.enable();\n }\n else {\n menu.disable();\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n MJContextMenu.DynamicSubmenus = new Map();\n return MJContextMenu;\n}(context_menu_js_1.ContextMenu));\nexports.MJContextMenu = MJContextMenu;\n//# sourceMappingURL=MJContextMenu.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Menu = void 0;\nvar mathjax_js_1 = require(\"../../mathjax.js\");\nvar MathItem_js_1 = require(\"../../core/MathItem.js\");\nvar global_js_1 = require(\"../../components/global.js\");\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar MJContextMenu_js_1 = require(\"./MJContextMenu.js\");\nvar MmlVisitor_js_1 = require(\"./MmlVisitor.js\");\nvar SelectableInfo_js_1 = require(\"./SelectableInfo.js\");\nvar info_js_1 = require(\"mj-context-menu/js/info.js\");\nvar parse_js_1 = require(\"mj-context-menu/js/parse.js\");\nvar item_rule_js_1 = require(\"mj-context-menu/js/item_rule.js\");\nvar css_util_js_1 = require(\"mj-context-menu/js/css_util.js\");\nvar sre_js_1 = __importDefault(require(\"../../a11y/sre.js\"));\nvar MathJax = global_js_1.MathJax;\nvar isMac = (typeof window !== 'undefined' &&\n window.navigator && window.navigator.platform.substr(0, 3) === 'Mac');\nvar Menu = (function () {\n function Menu(document, options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n this.settings = null;\n this.defaultSettings = null;\n this.menu = null;\n this.MmlVisitor = new MmlVisitor_js_1.MmlVisitor();\n this.jax = {\n CHTML: null,\n SVG: null\n };\n this.rerenderStart = MathItem_js_1.STATE.LAST;\n this.about = new info_js_1.Info('MathJax v' + mathjax_js_1.mathjax.version, function () {\n var lines = [];\n lines.push('Input Jax: ' + _this.document.inputJax.map(function (jax) { return jax.name; }).join(', '));\n lines.push('Output Jax: ' + _this.document.outputJax.name);\n lines.push('Document Type: ' + _this.document.kind);\n return lines.join('
');\n }, 'www.mathjax.org');\n this.help = new info_js_1.Info('MathJax Help', function () {\n return [\n '

MathJax is a JavaScript library that allows page',\n ' authors to include mathematics within their web pages.',\n ' As a reader, you don\\'t need to do anything to make that happen.

',\n '

Browsers: MathJax works with all modern browsers including',\n ' Edge, Firefox, Chrome, Safari, Opera, and most mobile browsers.

',\n '

Math Menu: MathJax adds a contextual menu to equations.',\n ' Right-click or CTRL-click on any mathematics to access the menu.

',\n '
',\n '

Show Math As: These options allow you to view the formula\\'s',\n ' source markup (as MathML or in its original format).

',\n '

Copy to Clipboard: These options copy the formula\\'s source markup,',\n ' as MathML or in its original format, to the clipboard',\n ' (in browsers that support that).

',\n '

Math Settings: These give you control over features of MathJax,',\n ' such the size of the mathematics, and the mechanism used',\n ' to display equations.

',\n '

Accessibility: MathJax can work with screen',\n ' readers to make mathematics accessible to the visually impaired.',\n ' Turn on the explorer to enable generation of speech strings',\n ' and the ability to investigate expressions interactively.

',\n '

Language: This menu lets you select the language used by MathJax',\n ' for its menus and warning messages. (Not yet implemented in version 3.)

',\n '
',\n '

Math Zoom: If you are having difficulty reading an',\n ' equation, MathJax can enlarge it to help you see it better, or',\n ' you can scall all the math on the page to make it larger.',\n ' Turn these features on in the Math Settings menu.

',\n '

Preferences: MathJax uses your browser\\'s localStorage database',\n ' to save the preferences set via this menu locally in your browser. These',\n ' are not used to track you, and are not transferred or used remotely by',\n ' MathJax in any way.

'\n ].join('\\n');\n }, 'www.mathjax.org');\n this.mathmlCode = new SelectableInfo_js_1.SelectableInfo('MathJax MathML Expression', function () {\n if (!_this.menu.mathItem)\n return '';\n var text = _this.toMML(_this.menu.mathItem);\n return '
' + _this.formatSource(text) + '
';\n }, '');\n this.originalText = new SelectableInfo_js_1.SelectableInfo('MathJax Original Source', function () {\n if (!_this.menu.mathItem)\n return '';\n var text = _this.menu.mathItem.math;\n return '
' + _this.formatSource(text) + '
';\n }, '');\n this.annotationText = new SelectableInfo_js_1.SelectableInfo('MathJax Annotation Text', function () {\n if (!_this.menu.mathItem)\n return '';\n var text = _this.menu.annotation;\n return '
' + _this.formatSource(text) + '
';\n }, '');\n this.zoomBox = new info_js_1.Info('MathJax Zoomed Expression', function () {\n if (!_this.menu.mathItem)\n return '';\n var element = _this.menu.mathItem.typesetRoot.cloneNode(true);\n element.style.margin = '0';\n var scale = 1.25 * parseFloat(_this.settings.zscale);\n return '
' + element.outerHTML + '
';\n }, '');\n this.document = document;\n this.options = (0, Options_js_1.userOptions)((0, Options_js_1.defaultOptions)({}, this.constructor.OPTIONS), options);\n this.initSettings();\n this.mergeUserSettings();\n this.initMenu();\n this.applySettings();\n }\n Object.defineProperty(Menu.prototype, \"isLoading\", {\n get: function () {\n return Menu.loading > 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Menu.prototype, \"loadingPromise\", {\n get: function () {\n if (!this.isLoading) {\n return Promise.resolve();\n }\n if (!Menu._loadingPromise) {\n Menu._loadingPromise = new Promise(function (ok, failed) {\n Menu._loadingOK = ok;\n Menu._loadingFailed = failed;\n });\n }\n return Menu._loadingPromise;\n },\n enumerable: false,\n configurable: true\n });\n Menu.prototype.initSettings = function () {\n this.settings = this.options.settings;\n this.jax = this.options.jax;\n var jax = this.document.outputJax;\n this.jax[jax.name] = jax;\n this.settings.renderer = jax.name;\n if (MathJax._.a11y && MathJax._.a11y.explorer) {\n Object.assign(this.settings, this.document.options.a11y);\n }\n this.settings.scale = jax.options.scale;\n this.defaultSettings = Object.assign({}, this.settings);\n };\n Menu.prototype.initMenu = function () {\n var _this = this;\n var parser = new parse_js_1.Parser([['contextMenu', MJContextMenu_js_1.MJContextMenu.fromJson.bind(MJContextMenu_js_1.MJContextMenu)]]);\n this.menu = parser.parse({\n type: 'contextMenu',\n id: 'MathJax_Menu',\n pool: [\n this.variable('texHints'),\n this.variable('semantics'),\n this.variable('zoom'),\n this.variable('zscale'),\n this.variable('renderer', function (jax) { return _this.setRenderer(jax); }),\n this.variable('alt'),\n this.variable('cmd'),\n this.variable('ctrl'),\n this.variable('shift'),\n this.variable('scale', function (scale) { return _this.setScale(scale); }),\n this.variable('explorer', function (explore) { return _this.setExplorer(explore); }),\n this.a11yVar('highlight'),\n this.a11yVar('backgroundColor'),\n this.a11yVar('backgroundOpacity'),\n this.a11yVar('foregroundColor'),\n this.a11yVar('foregroundOpacity'),\n this.a11yVar('speech'),\n this.a11yVar('subtitles'),\n this.a11yVar('braille'),\n this.a11yVar('viewBraille'),\n this.a11yVar('locale', function (value) { return sre_js_1.default.setupEngine({ locale: value }); }),\n this.a11yVar('speechRules', function (value) {\n var _a = __read(value.split('-'), 2), domain = _a[0], style = _a[1];\n _this.document.options.sre.domain = domain;\n _this.document.options.sre.style = style;\n }),\n this.a11yVar('magnification'),\n this.a11yVar('magnify'),\n this.a11yVar('treeColoring'),\n this.a11yVar('infoType'),\n this.a11yVar('infoRole'),\n this.a11yVar('infoPrefix'),\n this.variable('autocollapse'),\n this.variable('collapsible', function (collapse) { return _this.setCollapsible(collapse); }),\n this.variable('inTabOrder', function (tab) { return _this.setTabOrder(tab); }),\n this.variable('assistiveMml', function (mml) { return _this.setAssistiveMml(mml); })\n ],\n items: [\n this.submenu('Show', 'Show Math As', [\n this.command('MathMLcode', 'MathML Code', function () { return _this.mathmlCode.post(); }),\n this.command('Original', 'Original Form', function () { return _this.originalText.post(); }),\n this.submenu('Annotation', 'Annotation')\n ]),\n this.submenu('Copy', 'Copy to Clipboard', [\n this.command('MathMLcode', 'MathML Code', function () { return _this.copyMathML(); }),\n this.command('Original', 'Original Form', function () { return _this.copyOriginal(); }),\n this.submenu('Annotation', 'Annotation')\n ]),\n this.rule(),\n this.submenu('Settings', 'Math Settings', [\n this.submenu('Renderer', 'Math Renderer', this.radioGroup('renderer', [['CHTML'], ['SVG']])),\n this.rule(),\n this.submenu('ZoomTrigger', 'Zoom Trigger', [\n this.command('ZoomNow', 'Zoom Once Now', function () { return _this.zoom(null, '', _this.menu.mathItem); }),\n this.rule(),\n this.radioGroup('zoom', [\n ['Click'], ['DoubleClick', 'Double-Click'], ['NoZoom', 'No Zoom']\n ]),\n this.rule(),\n this.label('TriggerRequires', 'Trigger Requires:'),\n this.checkbox((isMac ? 'Option' : 'Alt'), (isMac ? 'Option' : 'Alt'), 'alt'),\n this.checkbox('Command', 'Command', 'cmd', { hidden: !isMac }),\n this.checkbox('Control', 'Control', 'ctrl', { hiddne: isMac }),\n this.checkbox('Shift', 'Shift', 'shift')\n ]),\n this.submenu('ZoomFactor', 'Zoom Factor', this.radioGroup('zscale', [\n ['150%'], ['175%'], ['200%'], ['250%'], ['300%'], ['400%']\n ])),\n this.rule(),\n this.command('Scale', 'Scale All Math...', function () { return _this.scaleAllMath(); }),\n this.rule(),\n this.checkbox('texHints', 'Add TeX hints to MathML', 'texHints'),\n this.checkbox('semantics', 'Add original as annotation', 'semantics'),\n this.rule(),\n this.command('Reset', 'Reset to defaults', function () { return _this.resetDefaults(); })\n ]),\n this.submenu('Accessibility', 'Accessibility', [\n this.checkbox('Activate', 'Activate', 'explorer'),\n this.submenu('Speech', 'Speech', [\n this.checkbox('Speech', 'Speech Output', 'speech'),\n this.checkbox('Subtitles', 'Speech Subtitles', 'subtitles'),\n this.checkbox('Braille', 'Braille Output', 'braille'),\n this.checkbox('View Braille', 'Braille Subtitles', 'viewBraille'),\n this.rule(),\n this.submenu('A11yLanguage', 'Language'),\n this.rule(),\n this.submenu('Mathspeak', 'Mathspeak Rules', this.radioGroup('speechRules', [\n ['mathspeak-default', 'Verbose'],\n ['mathspeak-brief', 'Brief'],\n ['mathspeak-sbrief', 'Superbrief']\n ])),\n this.submenu('Clearspeak', 'Clearspeak Rules', this.radioGroup('speechRules', [\n ['clearspeak-default', 'Auto']\n ])),\n this.submenu('ChromeVox', 'ChromeVox Rules', this.radioGroup('speechRules', [\n ['chromevox-default', 'Standard'],\n ['chromevox-alternative', 'Alternative']\n ]))\n ]),\n this.submenu('Highlight', 'Highlight', [\n this.submenu('Background', 'Background', this.radioGroup('backgroundColor', [\n ['Blue'], ['Red'], ['Green'], ['Yellow'], ['Cyan'], ['Magenta'], ['White'], ['Black']\n ])),\n { 'type': 'slider',\n 'variable': 'backgroundOpacity',\n 'content': ' '\n },\n this.submenu('Foreground', 'Foreground', this.radioGroup('foregroundColor', [\n ['Black'], ['White'], ['Magenta'], ['Cyan'], ['Yellow'], ['Green'], ['Red'], ['Blue']\n ])),\n { 'type': 'slider',\n 'variable': 'foregroundOpacity',\n 'content': ' '\n },\n this.rule(),\n this.radioGroup('highlight', [\n ['None'], ['Hover'], ['Flame']\n ]),\n this.rule(),\n this.checkbox('TreeColoring', 'Tree Coloring', 'treeColoring')\n ]),\n this.submenu('Magnification', 'Magnification', [\n this.radioGroup('magnification', [\n ['None'], ['Keyboard'], ['Mouse']\n ]),\n this.rule(),\n this.radioGroup('magnify', [\n ['200%'], ['300%'], ['400%'], ['500%']\n ])\n ]),\n this.submenu('Semantic Info', 'Semantic Info', [\n this.checkbox('Type', 'Type', 'infoType'),\n this.checkbox('Role', 'Role', 'infoRole'),\n this.checkbox('Prefix', 'Prefix', 'infoPrefix')\n ], true),\n this.rule(),\n this.checkbox('Collapsible', 'Collapsible Math', 'collapsible'),\n this.checkbox('AutoCollapse', 'Auto Collapse', 'autocollapse', { disabled: true }),\n this.rule(),\n this.checkbox('InTabOrder', 'Include in Tab Order', 'inTabOrder'),\n this.checkbox('AssistiveMml', 'Include Hidden MathML', 'assistiveMml')\n ]),\n this.submenu('Language', 'Language'),\n this.rule(),\n this.command('About', 'About MathJax', function () { return _this.about.post(); }),\n this.command('Help', 'MathJax Help', function () { return _this.help.post(); })\n ]\n });\n var menu = this.menu;\n this.about.attachMenu(menu);\n this.help.attachMenu(menu);\n this.originalText.attachMenu(menu);\n this.annotationText.attachMenu(menu);\n this.mathmlCode.attachMenu(menu);\n this.zoomBox.attachMenu(menu);\n this.checkLoadableItems();\n this.enableExplorerItems(this.settings.explorer);\n menu.showAnnotation = this.annotationText;\n menu.copyAnnotation = this.copyAnnotation.bind(this);\n menu.annotationTypes = this.options.annotationTypes;\n css_util_js_1.CssStyles.addInfoStyles(this.document.document);\n css_util_js_1.CssStyles.addMenuStyles(this.document.document);\n };\n Menu.prototype.checkLoadableItems = function () {\n var e_1, _a;\n if (MathJax && MathJax._ && MathJax.loader && MathJax.startup) {\n if (this.settings.collapsible && (!MathJax._.a11y || !MathJax._.a11y.complexity)) {\n this.loadA11y('complexity');\n }\n if (this.settings.explorer && (!MathJax._.a11y || !MathJax._.a11y.explorer)) {\n this.loadA11y('explorer');\n }\n if (this.settings.assistiveMml && (!MathJax._.a11y || !MathJax._.a11y['assistive-mml'])) {\n this.loadA11y('assistive-mml');\n }\n }\n else {\n var menu = this.menu;\n try {\n for (var _b = __values(Object.keys(this.jax)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_1 = _c.value;\n if (!this.jax[name_1]) {\n menu.findID('Settings', 'Renderer', name_1).disable();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n menu.findID('Accessibility', 'Activate').disable();\n menu.findID('Accessibility', 'AutoCollapse').disable();\n menu.findID('Accessibility', 'Collapsible').disable();\n }\n };\n Menu.prototype.enableExplorerItems = function (enable) {\n var e_2, _a;\n var menu = this.menu.findID('Accessibility', 'Activate').menu;\n try {\n for (var _b = __values(menu.items.slice(1)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n if (item instanceof item_rule_js_1.Rule)\n break;\n enable ? item.enable() : item.disable();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n Menu.prototype.mergeUserSettings = function () {\n try {\n var settings = localStorage.getItem(Menu.MENU_STORAGE);\n if (!settings)\n return;\n Object.assign(this.settings, JSON.parse(settings));\n this.setA11y(this.settings);\n }\n catch (err) {\n console.log('MathJax localStorage error: ' + err.message);\n }\n };\n Menu.prototype.saveUserSettings = function () {\n var e_3, _a;\n var settings = {};\n try {\n for (var _b = __values(Object.keys(this.settings)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_2 = _c.value;\n if (this.settings[name_2] !== this.defaultSettings[name_2]) {\n settings[name_2] = this.settings[name_2];\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n if (Object.keys(settings).length) {\n localStorage.setItem(Menu.MENU_STORAGE, JSON.stringify(settings));\n }\n else {\n localStorage.removeItem(Menu.MENU_STORAGE);\n }\n }\n catch (err) {\n console.log('MathJax localStorage error: ' + err.message);\n }\n };\n Menu.prototype.setA11y = function (options) {\n if (MathJax._.a11y && MathJax._.a11y.explorer) {\n MathJax._.a11y.explorer_ts.setA11yOptions(this.document, options);\n }\n };\n Menu.prototype.getA11y = function (option) {\n if (MathJax._.a11y && MathJax._.a11y.explorer) {\n if (this.document.options.a11y[option] !== undefined) {\n return this.document.options.a11y[option];\n }\n return this.document.options.sre[option];\n }\n };\n Menu.prototype.applySettings = function () {\n this.setTabOrder(this.settings.inTabOrder);\n this.document.options.enableAssistiveMml = this.settings.assistiveMml;\n this.document.outputJax.options.scale = parseFloat(this.settings.scale);\n if (this.settings.renderer !== this.defaultSettings.renderer) {\n this.setRenderer(this.settings.renderer);\n }\n };\n Menu.prototype.setScale = function (scale) {\n this.document.outputJax.options.scale = parseFloat(scale);\n this.document.rerender();\n };\n Menu.prototype.setRenderer = function (jax) {\n var _this = this;\n if (this.jax[jax]) {\n this.setOutputJax(jax);\n }\n else {\n var name_3 = jax.toLowerCase();\n this.loadComponent('output/' + name_3, function () {\n var startup = MathJax.startup;\n if (name_3 in startup.constructors) {\n startup.useOutput(name_3, true);\n startup.output = startup.getOutputJax();\n _this.jax[jax] = startup.output;\n _this.setOutputJax(jax);\n }\n });\n }\n };\n Menu.prototype.setOutputJax = function (jax) {\n this.jax[jax].setAdaptor(this.document.adaptor);\n this.document.outputJax = this.jax[jax];\n this.rerender();\n };\n Menu.prototype.setTabOrder = function (tab) {\n this.menu.store.inTaborder(tab);\n };\n Menu.prototype.setAssistiveMml = function (mml) {\n this.document.options.enableAssistiveMml = mml;\n if (!mml || (MathJax._.a11y && MathJax._.a11y['assistive-mml'])) {\n this.rerender();\n }\n else {\n this.loadA11y('assistive-mml');\n }\n };\n Menu.prototype.setExplorer = function (explore) {\n this.enableExplorerItems(explore);\n this.document.options.enableExplorer = explore;\n if (!explore || (MathJax._.a11y && MathJax._.a11y.explorer)) {\n this.rerender(this.settings.collapsible ? MathItem_js_1.STATE.RERENDER : MathItem_js_1.STATE.COMPILED);\n }\n else {\n this.loadA11y('explorer');\n }\n };\n Menu.prototype.setCollapsible = function (collapse) {\n this.document.options.enableComplexity = collapse;\n if (!collapse || (MathJax._.a11y && MathJax._.a11y.complexity)) {\n this.rerender(MathItem_js_1.STATE.COMPILED);\n }\n else {\n this.loadA11y('complexity');\n }\n };\n Menu.prototype.scaleAllMath = function () {\n var scale = (parseFloat(this.settings.scale) * 100).toFixed(1).replace(/.0$/, '');\n var percent = prompt('Scale all mathematics (compared to surrounding text) by', scale + '%');\n if (percent) {\n if (percent.match(/^\\s*\\d+(\\.\\d*)?\\s*%?\\s*$/)) {\n var scale_1 = parseFloat(percent) / 100;\n if (scale_1) {\n this.menu.pool.lookup('scale').setValue(String(scale_1));\n }\n else {\n alert('The scale should not be zero');\n }\n }\n else {\n alert('The scale should be a percentage (e.g., 120%)');\n }\n }\n };\n Menu.prototype.resetDefaults = function () {\n var e_4, _a;\n Menu.loading++;\n var pool = this.menu.pool;\n var settings = this.defaultSettings;\n try {\n for (var _b = __values(Object.keys(this.settings)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_4 = _c.value;\n var variable = pool.lookup(name_4);\n if (variable) {\n variable.setValue(settings[name_4]);\n var item = variable.items[0];\n if (item) {\n item.executeCallbacks_();\n }\n }\n else {\n this.settings[name_4] = settings[name_4];\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n Menu.loading--;\n this.rerender(MathItem_js_1.STATE.COMPILED);\n };\n Menu.prototype.checkComponent = function (name) {\n var promise = Menu.loadingPromises.get(name);\n if (promise) {\n mathjax_js_1.mathjax.retryAfter(promise);\n }\n };\n Menu.prototype.loadComponent = function (name, callback) {\n if (Menu.loadingPromises.has(name))\n return;\n var loader = MathJax.loader;\n if (!loader)\n return;\n Menu.loading++;\n var promise = loader.load(name).then(function () {\n Menu.loading--;\n Menu.loadingPromises.delete(name);\n callback();\n if (Menu.loading === 0 && Menu._loadingPromise) {\n Menu._loadingPromise = null;\n Menu._loadingOK();\n }\n }).catch(function (err) {\n if (Menu._loadingPromise) {\n Menu._loadingPromise = null;\n Menu._loadingFailed(err);\n }\n else {\n console.log(err);\n }\n });\n Menu.loadingPromises.set(name, promise);\n };\n Menu.prototype.loadA11y = function (component) {\n var _this = this;\n var noEnrich = !MathItem_js_1.STATE.ENRICHED;\n this.loadComponent('a11y/' + component, function () {\n var startup = MathJax.startup;\n mathjax_js_1.mathjax.handlers.unregister(startup.handler);\n startup.handler = startup.getHandler();\n mathjax_js_1.mathjax.handlers.register(startup.handler);\n var document = _this.document;\n _this.document = startup.document = startup.getDocument();\n _this.document.menu = _this;\n _this.document.outputJax.reset();\n _this.transferMathList(document);\n _this.document.processed = document.processed;\n if (!Menu._loadingPromise) {\n _this.document.outputJax.reset();\n _this.rerender(component === 'complexity' || noEnrich ? MathItem_js_1.STATE.COMPILED : MathItem_js_1.STATE.TYPESET);\n }\n });\n };\n Menu.prototype.transferMathList = function (document) {\n var e_5, _a;\n var MathItem = this.document.options.MathItem;\n try {\n for (var _b = __values(document.math), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n var math = new MathItem();\n Object.assign(math, item);\n this.document.math.push(math);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n };\n Menu.prototype.formatSource = function (text) {\n return text.trim().replace(/&/g, '&').replace(//g, '>');\n };\n Menu.prototype.toMML = function (math) {\n return this.MmlVisitor.visitTree(math.root, math, {\n texHints: this.settings.texHints,\n semantics: (this.settings.semantics && math.inputJax.name !== 'MathML')\n });\n };\n Menu.prototype.zoom = function (event, type, math) {\n if (!event || this.isZoomEvent(event, type)) {\n this.menu.mathItem = math;\n if (event) {\n this.menu.post(event);\n }\n this.zoomBox.post();\n }\n };\n Menu.prototype.isZoomEvent = function (event, zoom) {\n return (this.settings.zoom === zoom &&\n (!this.settings.alt || event.altKey) &&\n (!this.settings.ctrl || event.ctrlKey) &&\n (!this.settings.cmd || event.metaKey) &&\n (!this.settings.shift || event.shiftKey));\n };\n Menu.prototype.rerender = function (start) {\n if (start === void 0) { start = MathItem_js_1.STATE.TYPESET; }\n this.rerenderStart = Math.min(start, this.rerenderStart);\n if (!Menu.loading) {\n if (this.rerenderStart <= MathItem_js_1.STATE.COMPILED) {\n this.document.reset({ inputJax: [] });\n }\n this.document.rerender(this.rerenderStart);\n this.rerenderStart = MathItem_js_1.STATE.LAST;\n }\n };\n Menu.prototype.copyMathML = function () {\n this.copyToClipboard(this.toMML(this.menu.mathItem));\n };\n Menu.prototype.copyOriginal = function () {\n this.copyToClipboard(this.menu.mathItem.math.trim());\n };\n Menu.prototype.copyAnnotation = function () {\n this.copyToClipboard(this.menu.annotation.trim());\n };\n Menu.prototype.copyToClipboard = function (text) {\n var input = document.createElement('textarea');\n input.value = text;\n input.setAttribute('readonly', '');\n input.style.cssText = 'height: 1px; width: 1px; padding: 1px; position: absolute; left: -10px';\n document.body.appendChild(input);\n input.select();\n try {\n document.execCommand('copy');\n }\n catch (error) {\n alert('Can\\'t copy to clipboard: ' + error.message);\n }\n document.body.removeChild(input);\n };\n Menu.prototype.addMenu = function (math) {\n var _this = this;\n var element = math.typesetRoot;\n element.addEventListener('contextmenu', function () { return _this.menu.mathItem = math; }, true);\n element.addEventListener('keydown', function () { return _this.menu.mathItem = math; }, true);\n element.addEventListener('click', function (event) { return _this.zoom(event, 'Click', math); }, true);\n element.addEventListener('dblclick', function (event) { return _this.zoom(event, 'DoubleClick', math); }, true);\n this.menu.store.insert(element);\n };\n Menu.prototype.clear = function () {\n this.menu.store.clear();\n };\n Menu.prototype.variable = function (name, action) {\n var _this = this;\n return {\n name: name,\n getter: function () { return _this.settings[name]; },\n setter: function (value) {\n _this.settings[name] = value;\n action && action(value);\n _this.saveUserSettings();\n }\n };\n };\n Menu.prototype.a11yVar = function (name, action) {\n var _this = this;\n return {\n name: name,\n getter: function () { return _this.getA11y(name); },\n setter: function (value) {\n _this.settings[name] = value;\n var options = {};\n options[name] = value;\n _this.setA11y(options);\n action && action(value);\n _this.saveUserSettings();\n }\n };\n };\n Menu.prototype.submenu = function (id, content, entries, disabled) {\n var e_6, _a;\n if (entries === void 0) { entries = []; }\n if (disabled === void 0) { disabled = false; }\n var items = [];\n try {\n for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {\n var entry = entries_1_1.value;\n if (Array.isArray(entry)) {\n items = items.concat(entry);\n }\n else {\n items.push(entry);\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);\n }\n finally { if (e_6) throw e_6.error; }\n }\n return { type: 'submenu', id: id, content: content, menu: { items: items }, disabled: (items.length === 0) || disabled };\n };\n Menu.prototype.command = function (id, content, action, other) {\n if (other === void 0) { other = {}; }\n return Object.assign({ type: 'command', id: id, content: content, action: action }, other);\n };\n Menu.prototype.checkbox = function (id, content, variable, other) {\n if (other === void 0) { other = {}; }\n return Object.assign({ type: 'checkbox', id: id, content: content, variable: variable }, other);\n };\n Menu.prototype.radioGroup = function (variable, radios) {\n var _this = this;\n return radios.map(function (def) { return _this.radio(def[0], def[1] || def[0], variable); });\n };\n Menu.prototype.radio = function (id, content, variable, other) {\n if (other === void 0) { other = {}; }\n return Object.assign({ type: 'radio', id: id, content: content, variable: variable }, other);\n };\n Menu.prototype.label = function (id, content) {\n return { type: 'label', id: id, content: content };\n };\n Menu.prototype.rule = function () {\n return { type: 'rule' };\n };\n Menu.MENU_STORAGE = 'MathJax-Menu-Settings';\n Menu.OPTIONS = {\n settings: {\n texHints: true,\n semantics: false,\n zoom: 'NoZoom',\n zscale: '200%',\n renderer: 'CHTML',\n alt: false,\n cmd: false,\n ctrl: false,\n shift: false,\n scale: 1,\n autocollapse: false,\n collapsible: false,\n inTabOrder: true,\n assistiveMml: true,\n explorer: false\n },\n jax: {\n CHTML: null,\n SVG: null\n },\n annotationTypes: (0, Options_js_1.expandable)({\n TeX: ['TeX', 'LaTeX', 'application/x-tex'],\n StarMath: ['StarMath 5.0'],\n Maple: ['Maple'],\n ContentMathML: ['MathML-Content', 'application/mathml-content+xml'],\n OpenMath: ['OpenMath']\n })\n };\n Menu.loading = 0;\n Menu.loadingPromises = new Map();\n Menu._loadingPromise = null;\n Menu._loadingOK = null;\n Menu._loadingFailed = null;\n return Menu;\n}());\nexports.Menu = Menu;\n//# sourceMappingURL=Menu.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MenuHandler = exports.MenuMathDocumentMixin = exports.MenuMathItemMixin = void 0;\nvar mathjax_js_1 = require(\"../../mathjax.js\");\nvar MathItem_js_1 = require(\"../../core/MathItem.js\");\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar Menu_js_1 = require(\"./Menu.js\");\n(0, MathItem_js_1.newState)('CONTEXT_MENU', 170);\nfunction MenuMathItemMixin(BaseMathItem) {\n return (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.addMenu = function (document, force) {\n if (force === void 0) { force = false; }\n if (this.state() >= MathItem_js_1.STATE.CONTEXT_MENU)\n return;\n if (!this.isEscaped && (document.options.enableMenu || force)) {\n document.menu.addMenu(this);\n }\n this.state(MathItem_js_1.STATE.CONTEXT_MENU);\n };\n class_1.prototype.checkLoading = function (document) {\n document.checkLoading();\n };\n return class_1;\n }(BaseMathItem));\n}\nexports.MenuMathItemMixin = MenuMathItemMixin;\nfunction MenuMathDocumentMixin(BaseDocument) {\n var _a;\n return _a = (function (_super) {\n __extends(class_2, _super);\n function class_2() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.menu = new _this.options.MenuClass(_this, _this.options.menuOptions);\n var ProcessBits = _this.constructor.ProcessBits;\n if (!ProcessBits.has('context-menu')) {\n ProcessBits.allocate('context-menu');\n }\n _this.options.MathItem = MenuMathItemMixin(_this.options.MathItem);\n return _this;\n }\n class_2.prototype.addMenu = function () {\n var e_1, _a;\n if (!this.processed.isSet('context-menu')) {\n try {\n for (var _b = __values(this.math), _c = _b.next(); !_c.done; _c = _b.next()) {\n var math = _c.value;\n math.addMenu(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.processed.set('context-menu');\n }\n return this;\n };\n class_2.prototype.checkLoading = function () {\n if (this.menu.isLoading) {\n mathjax_js_1.mathjax.retryAfter(this.menu.loadingPromise.catch(function (err) { return console.log(err); }));\n }\n var settings = this.menu.settings;\n if (settings.collapsible) {\n this.options.enableComplexity = true;\n this.menu.checkComponent('a11y/complexity');\n }\n if (settings.explorer) {\n this.options.enableEnrichment = true;\n this.options.enableExplorer = true;\n this.menu.checkComponent('a11y/explorer');\n }\n return this;\n };\n class_2.prototype.state = function (state, restore) {\n if (restore === void 0) { restore = false; }\n _super.prototype.state.call(this, state, restore);\n if (state < MathItem_js_1.STATE.CONTEXT_MENU) {\n this.processed.clear('context-menu');\n }\n return this;\n };\n class_2.prototype.updateDocument = function () {\n _super.prototype.updateDocument.call(this);\n this.menu.menu.store.sort();\n return this;\n };\n return class_2;\n }(BaseDocument)),\n _a.OPTIONS = __assign(__assign({ enableEnrichment: true, enableComplexity: true, enableExplorer: true, enrichSpeech: 'none', enrichError: function (_doc, _math, err) {\n return console.warn('Enrichment Error:', err);\n } }, BaseDocument.OPTIONS), { MenuClass: Menu_js_1.Menu, menuOptions: Menu_js_1.Menu.OPTIONS, enableMenu: true, sre: (BaseDocument.OPTIONS.sre || (0, Options_js_1.expandable)({})), a11y: (BaseDocument.OPTIONS.a11y || (0, Options_js_1.expandable)({})), renderActions: (0, Options_js_1.expandable)(__assign(__assign({}, BaseDocument.OPTIONS.renderActions), { addMenu: [MathItem_js_1.STATE.CONTEXT_MENU], checkLoading: [MathItem_js_1.STATE.UNPROCESSED + 1] })) }),\n _a;\n}\nexports.MenuMathDocumentMixin = MenuMathDocumentMixin;\nfunction MenuHandler(handler) {\n handler.documentClass = MenuMathDocumentMixin(handler.documentClass);\n return handler;\n}\nexports.MenuHandler = MenuHandler;\n//# sourceMappingURL=MenuHandler.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlVisitor = void 0;\nvar SerializedMmlVisitor_js_1 = require(\"../../core/MmlTree/SerializedMmlVisitor.js\");\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar MmlVisitor = (function (_super) {\n __extends(MmlVisitor, _super);\n function MmlVisitor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.options = {\n texHints: true,\n semantics: false,\n };\n _this.mathItem = null;\n return _this;\n }\n MmlVisitor.prototype.visitTree = function (node, math, options) {\n if (math === void 0) { math = null; }\n if (options === void 0) { options = {}; }\n this.mathItem = math;\n (0, Options_js_1.userOptions)(this.options, options);\n return this.visitNode(node, '');\n };\n MmlVisitor.prototype.visitTeXAtomNode = function (node, space) {\n if (this.options.texHints) {\n return _super.prototype.visitTeXAtomNode.call(this, node, space);\n }\n if (node.childNodes[0] && node.childNodes[0].childNodes.length === 1) {\n return this.visitNode(node.childNodes[0], space);\n }\n return space + '\\n'\n + this.childNodeMml(node, space + ' ', '\\n')\n + space + '';\n };\n MmlVisitor.prototype.visitMathNode = function (node, space) {\n if (!this.options.semantics || this.mathItem.inputJax.name !== 'TeX') {\n return _super.prototype.visitDefault.call(this, node, space);\n }\n var addRow = node.childNodes.length && node.childNodes[0].childNodes.length > 1;\n return space + '\\n'\n + space + ' \\n'\n + (addRow ? space + ' \\n' : '')\n + this.childNodeMml(node, space + (addRow ? ' ' : ' '), '\\n')\n + (addRow ? space + ' \\n' : '')\n + space + ' ' + this.mathItem.math + '\\n'\n + space + ' \\n'\n + space + '';\n };\n return MmlVisitor;\n}(SerializedMmlVisitor_js_1.SerializedMmlVisitor));\nexports.MmlVisitor = MmlVisitor;\n//# sourceMappingURL=MmlVisitor.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectableInfo = void 0;\nvar info_js_1 = require(\"mj-context-menu/js/info.js\");\nvar html_classes_js_1 = require(\"mj-context-menu/js/html_classes.js\");\nvar SelectableInfo = (function (_super) {\n __extends(SelectableInfo, _super);\n function SelectableInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectableInfo.prototype.addEvents = function (element) {\n var _this = this;\n element.addEventListener('keypress', function (event) {\n if (event.key === 'a' && (event.ctrlKey || event.metaKey)) {\n _this.selectAll();\n _this.stop(event);\n }\n });\n };\n SelectableInfo.prototype.selectAll = function () {\n var selection = document.getSelection();\n selection.selectAllChildren(this.html.querySelector('pre'));\n };\n SelectableInfo.prototype.copyToClipboard = function () {\n this.selectAll();\n try {\n document.execCommand('copy');\n }\n catch (err) {\n alert('Can\\'t copy to clipboard: ' + err.message);\n }\n document.getSelection().removeAllRanges();\n };\n SelectableInfo.prototype.generateHtml = function () {\n var _this = this;\n _super.prototype.generateHtml.call(this);\n var footer = this.html.querySelector('span.' + html_classes_js_1.HtmlClasses['INFOSIGNATURE']);\n var button = footer.appendChild(document.createElement('input'));\n button.type = 'button';\n button.value = 'Copy to Clipboard';\n button.addEventListener('click', function (_event) { return _this.copyToClipboard(); });\n };\n return SelectableInfo;\n}(info_js_1.Info));\nexports.SelectableInfo = SelectableInfo;\n//# sourceMappingURL=SelectableInfo.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SafeHandler = exports.SafeMathDocumentMixin = void 0;\nvar safe_js_1 = require(\"./safe.js\");\nfunction SafeMathDocumentMixin(BaseDocument) {\n var _a;\n return _a = (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var e_1, _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, __spreadArray([], __read(args), false)) || this;\n _this.safe = new _this.options.SafeClass(_this, _this.options.safeOptions);\n var ProcessBits = _this.constructor.ProcessBits;\n if (!ProcessBits.has('safe')) {\n ProcessBits.allocate('safe');\n }\n try {\n for (var _b = __values(_this.inputJax), _c = _b.next(); !_c.done; _c = _b.next()) {\n var jax = _c.value;\n if (jax.name.match(/MathML/)) {\n jax.mathml.filterAttribute = _this.safe.mmlAttribute.bind(_this.safe);\n jax.mathml.filterClassList = _this.safe.mmlClassList.bind(_this.safe);\n }\n else if (jax.name.match(/TeX/)) {\n jax.postFilters.add(_this.sanitize.bind(jax), -5.5);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return _this;\n }\n class_1.prototype.sanitize = function (data) {\n data.math.root = this.parseOptions.root;\n data.document.safe.sanitize(data.math, data.document);\n };\n return class_1;\n }(BaseDocument)),\n _a.OPTIONS = __assign(__assign({}, BaseDocument.OPTIONS), { safeOptions: __assign({}, safe_js_1.Safe.OPTIONS), SafeClass: safe_js_1.Safe }),\n _a;\n}\nexports.SafeMathDocumentMixin = SafeMathDocumentMixin;\nfunction SafeHandler(handler) {\n handler.documentClass = SafeMathDocumentMixin(handler.documentClass);\n return handler;\n}\nexports.SafeHandler = SafeHandler;\n//# sourceMappingURL=SafeHandler.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SafeMethods = void 0;\nvar lengths_js_1 = require(\"../../util/lengths.js\");\nexports.SafeMethods = {\n filterURL: function (safe, url) {\n var protocol = (url.match(/^\\s*([a-z]+):/i) || [null, ''])[1].toLowerCase();\n var allow = safe.allow.URLs;\n return (allow === 'all' || (allow === 'safe' &&\n (safe.options.safeProtocols[protocol] || !protocol))) ? url : null;\n },\n filterClassList: function (safe, list) {\n var _this = this;\n var classes = list.trim().replace(/\\s\\s+/g, ' ').split(/ /);\n return classes.map(function (name) { return _this.filterClass(safe, name) || ''; }).join(' ').trim().replace(/\\s\\s+/g, '');\n },\n filterClass: function (safe, CLASS) {\n var allow = safe.allow.classes;\n return (allow === 'all' || (allow === 'safe' && CLASS.match(safe.options.classPattern))) ? CLASS : null;\n },\n filterID: function (safe, id) {\n var allow = safe.allow.cssIDs;\n return (allow === 'all' || (allow === 'safe' && id.match(safe.options.idPattern))) ? id : null;\n },\n filterStyles: function (safe, styles) {\n var e_1, _a, e_2, _b;\n if (safe.allow.styles === 'all')\n return styles;\n if (safe.allow.styles !== 'safe')\n return null;\n var adaptor = safe.adaptor;\n var options = safe.options;\n try {\n var div1 = adaptor.node('div', { style: styles });\n var div2 = adaptor.node('div');\n try {\n for (var _c = __values(Object.keys(options.safeStyles)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var style = _d.value;\n if (options.styleParts[style]) {\n try {\n for (var _e = (e_2 = void 0, __values(['Top', 'Right', 'Bottom', 'Left'])), _f = _e.next(); !_f.done; _f = _e.next()) {\n var sufix = _f.value;\n var name_1 = style + sufix;\n var value = this.filterStyle(safe, name_1, div1);\n if (value) {\n adaptor.setStyle(div2, name_1, value);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n var value = this.filterStyle(safe, style, div1);\n if (value) {\n adaptor.setStyle(div2, style, value);\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n styles = adaptor.allStyles(div2);\n }\n catch (err) {\n styles = '';\n }\n return styles;\n },\n filterStyle: function (safe, style, div) {\n var value = safe.adaptor.getStyle(div, style);\n if (typeof value !== 'string' || value === '' || value.match(/^\\s*calc/) ||\n (value.match(/javascript:/) && !safe.options.safeProtocols.javascript) ||\n (value.match(/data:/) && !safe.options.safeProtocols.data)) {\n return null;\n }\n var name = style.replace(/Top|Right|Left|Bottom/, '');\n if (!safe.options.safeStyles[style] && !safe.options.safeStyles[name]) {\n return null;\n }\n return this.filterStyleValue(safe, style, value, div);\n },\n filterStyleValue: function (safe, style, value, div) {\n var name = safe.options.styleLengths[style];\n if (!name) {\n return value;\n }\n if (typeof name !== 'string') {\n return this.filterStyleLength(safe, style, value);\n }\n var length = this.filterStyleLength(safe, name, safe.adaptor.getStyle(div, name));\n if (!length) {\n return null;\n }\n safe.adaptor.setStyle(div, name, length);\n return safe.adaptor.getStyle(div, style);\n },\n filterStyleLength: function (safe, style, value) {\n if (!value.match(/^(.+)(em|ex|ch|rem|px|mm|cm|in|pt|pc|%)$/))\n return null;\n var em = (0, lengths_js_1.length2em)(value, 1);\n var lengths = safe.options.styleLengths[style];\n var _a = __read((Array.isArray(lengths) ? lengths : [-safe.options.lengthMax, safe.options.lengthMax]), 2), m = _a[0], M = _a[1];\n return (m <= em && em <= M ? value : (em < m ? m : M).toFixed(3).replace(/\\.?0+$/, '') + 'em');\n },\n filterFontSize: function (safe, size) {\n return this.filterStyleLength(safe, 'fontSize', size);\n },\n filterSizeMultiplier: function (safe, size) {\n var _a = __read(safe.options.scriptsizemultiplierRange || [-Infinity, Infinity], 2), m = _a[0], M = _a[1];\n return Math.min(M, Math.max(m, parseFloat(size))).toString();\n },\n filterScriptLevel: function (safe, level) {\n var _a = __read(safe.options.scriptlevelRange || [-Infinity, Infinity], 2), m = _a[0], M = _a[1];\n return Math.min(M, Math.max(m, parseInt(level))).toString();\n },\n filterData: function (safe, value, id) {\n return (id.match(safe.options.dataPattern) ? value : null);\n }\n};\n//# sourceMappingURL=SafeMethods.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Safe = void 0;\nvar Options_js_1 = require(\"../../util/Options.js\");\nvar SafeMethods_js_1 = require(\"./SafeMethods.js\");\nvar Safe = (function () {\n function Safe(document, options) {\n this.filterAttributes = new Map([\n ['href', 'filterURL'],\n ['src', 'filterURL'],\n ['altimg', 'filterURL'],\n ['class', 'filterClassList'],\n ['style', 'filterStyles'],\n ['id', 'filterID'],\n ['fontsize', 'filterFontSize'],\n ['mathsize', 'filterFontSize'],\n ['scriptminsize', 'filterFontSize'],\n ['scriptsizemultiplier', 'filterSizeMultiplier'],\n ['scriptlevel', 'filterScriptLevel'],\n ['data-', 'filterData']\n ]);\n this.filterMethods = __assign({}, SafeMethods_js_1.SafeMethods);\n this.adaptor = document.adaptor;\n this.options = options;\n this.allow = this.options.allow;\n }\n Safe.prototype.sanitize = function (math, document) {\n try {\n math.root.walkTree(this.sanitizeNode.bind(this));\n }\n catch (err) {\n document.options.compileError(document, math, err);\n }\n };\n Safe.prototype.sanitizeNode = function (node) {\n var e_1, _a;\n var attributes = node.attributes.getAllAttributes();\n try {\n for (var _b = __values(Object.keys(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n var method = this.filterAttributes.get(id);\n if (method) {\n var value = this.filterMethods[method](this, attributes[id]);\n if (value) {\n if (value !== (typeof value === 'number' ? parseFloat(attributes[id]) : attributes[id])) {\n attributes[id] = value;\n }\n }\n else {\n delete attributes[id];\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n Safe.prototype.mmlAttribute = function (id, value) {\n if (id === 'class')\n return null;\n var method = this.filterAttributes.get(id);\n var filter = (method || (id.substr(0, 5) === 'data-' ? this.filterAttributes.get('data-') : null));\n if (!filter) {\n return value;\n }\n var result = this.filterMethods[filter](this, value, id);\n return (typeof result === 'number' || typeof result === 'boolean' ? String(result) : result);\n };\n Safe.prototype.mmlClassList = function (list) {\n var _this = this;\n return list.map(function (name) { return _this.filterMethods.filterClass(_this, name); })\n .filter(function (value) { return value !== null; });\n };\n Safe.OPTIONS = {\n allow: {\n URLs: 'safe',\n classes: 'safe',\n cssIDs: 'safe',\n styles: 'safe'\n },\n lengthMax: 3,\n scriptsizemultiplierRange: [.6, 1],\n scriptlevelRange: [-2, 2],\n classPattern: /^mjx-[-a-zA-Z0-9_.]+$/,\n idPattern: /^mjx-[-a-zA-Z0-9_.]+$/,\n dataPattern: /^data-mjx-/,\n safeProtocols: (0, Options_js_1.expandable)({\n http: true,\n https: true,\n file: true,\n javascript: false,\n data: false\n }),\n safeStyles: (0, Options_js_1.expandable)({\n color: true,\n backgroundColor: true,\n border: true,\n cursor: true,\n margin: true,\n padding: true,\n textShadow: true,\n fontFamily: true,\n fontSize: true,\n fontStyle: true,\n fontWeight: true,\n opacity: true,\n outline: true\n }),\n styleParts: (0, Options_js_1.expandable)({\n border: true,\n padding: true,\n margin: true,\n outline: true\n }),\n styleLengths: (0, Options_js_1.expandable)({\n borderTop: 'borderTopWidth',\n borderRight: 'borderRightWidth',\n borderBottom: 'borderBottomWidth',\n borderLeft: 'borderLeftWidth',\n paddingTop: true,\n paddingRight: true,\n paddingBottom: true,\n paddingLeft: true,\n marginTop: true,\n marginRight: true,\n marginBottom: true,\n marginLeft: true,\n outlineTop: true,\n outlineRight: true,\n outlineBottom: true,\n outlineLeft: true,\n fontSize: [.707, 1.44]\n })\n };\n return Safe;\n}());\nexports.Safe = Safe;\n//# sourceMappingURL=safe.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.asyncLoad = void 0;\nvar mathjax_js_1 = require(\"../mathjax.js\");\nfunction asyncLoad(name) {\n if (!mathjax_js_1.mathjax.asyncLoad) {\n return Promise.reject(\"Can't load '\".concat(name, \"': No asyncLoad method specified\"));\n }\n return new Promise(function (ok, fail) {\n var result = mathjax_js_1.mathjax.asyncLoad(name);\n if (result instanceof Promise) {\n result.then(function (value) { return ok(value); }).catch(function (err) { return fail(err); });\n }\n else {\n ok(result);\n }\n });\n}\nexports.asyncLoad = asyncLoad;\n//# sourceMappingURL=AsyncLoad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BBox = void 0;\nvar lengths_js_1 = require(\"./lengths.js\");\nvar BBox = (function () {\n function BBox(def) {\n if (def === void 0) { def = { w: 0, h: -lengths_js_1.BIGDIMEN, d: -lengths_js_1.BIGDIMEN }; }\n this.w = def.w || 0;\n this.h = ('h' in def ? def.h : -lengths_js_1.BIGDIMEN);\n this.d = ('d' in def ? def.d : -lengths_js_1.BIGDIMEN);\n this.L = this.R = this.ic = this.sk = this.dx = 0;\n this.scale = this.rscale = 1;\n this.pwidth = '';\n }\n BBox.zero = function () {\n return new BBox({ h: 0, d: 0, w: 0 });\n };\n BBox.empty = function () {\n return new BBox();\n };\n BBox.prototype.empty = function () {\n this.w = 0;\n this.h = this.d = -lengths_js_1.BIGDIMEN;\n return this;\n };\n BBox.prototype.clean = function () {\n if (this.w === -lengths_js_1.BIGDIMEN)\n this.w = 0;\n if (this.h === -lengths_js_1.BIGDIMEN)\n this.h = 0;\n if (this.d === -lengths_js_1.BIGDIMEN)\n this.d = 0;\n };\n BBox.prototype.rescale = function (scale) {\n this.w *= scale;\n this.h *= scale;\n this.d *= scale;\n };\n BBox.prototype.combine = function (cbox, x, y) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n var rscale = cbox.rscale;\n var w = x + rscale * (cbox.w + cbox.L + cbox.R);\n var h = y + rscale * cbox.h;\n var d = rscale * cbox.d - y;\n if (w > this.w)\n this.w = w;\n if (h > this.h)\n this.h = h;\n if (d > this.d)\n this.d = d;\n };\n BBox.prototype.append = function (cbox) {\n var scale = cbox.rscale;\n this.w += scale * (cbox.w + cbox.L + cbox.R);\n if (scale * cbox.h > this.h) {\n this.h = scale * cbox.h;\n }\n if (scale * cbox.d > this.d) {\n this.d = scale * cbox.d;\n }\n };\n BBox.prototype.updateFrom = function (cbox) {\n this.h = cbox.h;\n this.d = cbox.d;\n this.w = cbox.w;\n if (cbox.pwidth) {\n this.pwidth = cbox.pwidth;\n }\n };\n BBox.fullWidth = '100%';\n BBox.StyleAdjust = [\n ['borderTopWidth', 'h'],\n ['borderRightWidth', 'w'],\n ['borderBottomWidth', 'd'],\n ['borderLeftWidth', 'w', 0],\n ['paddingTop', 'h'],\n ['paddingRight', 'w'],\n ['paddingBottom', 'd'],\n ['paddingLeft', 'w', 0]\n ];\n return BBox;\n}());\nexports.BBox = BBox;\n//# sourceMappingURL=BBox.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitFieldClass = exports.BitField = void 0;\nvar BitField = (function () {\n function BitField() {\n this.bits = 0;\n }\n BitField.allocate = function () {\n var e_1, _a;\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n try {\n for (var names_1 = __values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name_1 = names_1_1.value;\n if (this.has(name_1)) {\n throw new Error('Bit already allocated for ' + name_1);\n }\n if (this.next === BitField.MAXBIT) {\n throw new Error('Maximum number of bits already allocated');\n }\n this.names.set(name_1, this.next);\n this.next <<= 1;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n BitField.has = function (name) {\n return this.names.has(name);\n };\n BitField.prototype.set = function (name) {\n this.bits |= this.getBit(name);\n };\n BitField.prototype.clear = function (name) {\n this.bits &= ~this.getBit(name);\n };\n BitField.prototype.isSet = function (name) {\n return !!(this.bits & this.getBit(name));\n };\n BitField.prototype.reset = function () {\n this.bits = 0;\n };\n BitField.prototype.getBit = function (name) {\n var bit = this.constructor.names.get(name);\n if (!bit) {\n throw new Error('Unknown bit-field name: ' + name);\n }\n return bit;\n };\n BitField.MAXBIT = 1 << 31;\n BitField.next = 1;\n BitField.names = new Map();\n return BitField;\n}());\nexports.BitField = BitField;\nfunction BitFieldClass() {\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n var Bits = (function (_super) {\n __extends(Bits, _super);\n function Bits() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return Bits;\n }(BitField));\n Bits.allocate.apply(Bits, __spreadArray([], __read(names), false));\n return Bits;\n}\nexports.BitFieldClass = BitFieldClass;\n//# sourceMappingURL=BitField.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numeric = exports.translate = exports.remove = exports.add = exports.entities = exports.options = void 0;\nvar Retries_js_1 = require(\"./Retries.js\");\nvar AsyncLoad_js_1 = require(\"./AsyncLoad.js\");\nexports.options = {\n loadMissingEntities: true\n};\nexports.entities = {\n ApplyFunction: '\\u2061',\n Backslash: '\\u2216',\n Because: '\\u2235',\n Breve: '\\u02D8',\n Cap: '\\u22D2',\n CenterDot: '\\u00B7',\n CircleDot: '\\u2299',\n CircleMinus: '\\u2296',\n CirclePlus: '\\u2295',\n CircleTimes: '\\u2297',\n Congruent: '\\u2261',\n ContourIntegral: '\\u222E',\n Coproduct: '\\u2210',\n Cross: '\\u2A2F',\n Cup: '\\u22D3',\n CupCap: '\\u224D',\n Dagger: '\\u2021',\n Del: '\\u2207',\n Delta: '\\u0394',\n Diamond: '\\u22C4',\n DifferentialD: '\\u2146',\n DotEqual: '\\u2250',\n DoubleDot: '\\u00A8',\n DoubleRightTee: '\\u22A8',\n DoubleVerticalBar: '\\u2225',\n DownArrow: '\\u2193',\n DownLeftVector: '\\u21BD',\n DownRightVector: '\\u21C1',\n DownTee: '\\u22A4',\n Downarrow: '\\u21D3',\n Element: '\\u2208',\n EqualTilde: '\\u2242',\n Equilibrium: '\\u21CC',\n Exists: '\\u2203',\n ExponentialE: '\\u2147',\n FilledVerySmallSquare: '\\u25AA',\n ForAll: '\\u2200',\n Gamma: '\\u0393',\n Gg: '\\u22D9',\n GreaterEqual: '\\u2265',\n GreaterEqualLess: '\\u22DB',\n GreaterFullEqual: '\\u2267',\n GreaterLess: '\\u2277',\n GreaterSlantEqual: '\\u2A7E',\n GreaterTilde: '\\u2273',\n Hacek: '\\u02C7',\n Hat: '\\u005E',\n HumpDownHump: '\\u224E',\n HumpEqual: '\\u224F',\n Im: '\\u2111',\n ImaginaryI: '\\u2148',\n Integral: '\\u222B',\n Intersection: '\\u22C2',\n InvisibleComma: '\\u2063',\n InvisibleTimes: '\\u2062',\n Lambda: '\\u039B',\n Larr: '\\u219E',\n LeftAngleBracket: '\\u27E8',\n LeftArrow: '\\u2190',\n LeftArrowRightArrow: '\\u21C6',\n LeftCeiling: '\\u2308',\n LeftDownVector: '\\u21C3',\n LeftFloor: '\\u230A',\n LeftRightArrow: '\\u2194',\n LeftTee: '\\u22A3',\n LeftTriangle: '\\u22B2',\n LeftTriangleEqual: '\\u22B4',\n LeftUpVector: '\\u21BF',\n LeftVector: '\\u21BC',\n Leftarrow: '\\u21D0',\n Leftrightarrow: '\\u21D4',\n LessEqualGreater: '\\u22DA',\n LessFullEqual: '\\u2266',\n LessGreater: '\\u2276',\n LessSlantEqual: '\\u2A7D',\n LessTilde: '\\u2272',\n Ll: '\\u22D8',\n Lleftarrow: '\\u21DA',\n LongLeftArrow: '\\u27F5',\n LongLeftRightArrow: '\\u27F7',\n LongRightArrow: '\\u27F6',\n Longleftarrow: '\\u27F8',\n Longleftrightarrow: '\\u27FA',\n Longrightarrow: '\\u27F9',\n Lsh: '\\u21B0',\n MinusPlus: '\\u2213',\n NestedGreaterGreater: '\\u226B',\n NestedLessLess: '\\u226A',\n NotDoubleVerticalBar: '\\u2226',\n NotElement: '\\u2209',\n NotEqual: '\\u2260',\n NotExists: '\\u2204',\n NotGreater: '\\u226F',\n NotGreaterEqual: '\\u2271',\n NotLeftTriangle: '\\u22EA',\n NotLeftTriangleEqual: '\\u22EC',\n NotLess: '\\u226E',\n NotLessEqual: '\\u2270',\n NotPrecedes: '\\u2280',\n NotPrecedesSlantEqual: '\\u22E0',\n NotRightTriangle: '\\u22EB',\n NotRightTriangleEqual: '\\u22ED',\n NotSubsetEqual: '\\u2288',\n NotSucceeds: '\\u2281',\n NotSucceedsSlantEqual: '\\u22E1',\n NotSupersetEqual: '\\u2289',\n NotTilde: '\\u2241',\n NotVerticalBar: '\\u2224',\n Omega: '\\u03A9',\n OverBar: '\\u203E',\n OverBrace: '\\u23DE',\n PartialD: '\\u2202',\n Phi: '\\u03A6',\n Pi: '\\u03A0',\n PlusMinus: '\\u00B1',\n Precedes: '\\u227A',\n PrecedesEqual: '\\u2AAF',\n PrecedesSlantEqual: '\\u227C',\n PrecedesTilde: '\\u227E',\n Product: '\\u220F',\n Proportional: '\\u221D',\n Psi: '\\u03A8',\n Rarr: '\\u21A0',\n Re: '\\u211C',\n ReverseEquilibrium: '\\u21CB',\n RightAngleBracket: '\\u27E9',\n RightArrow: '\\u2192',\n RightArrowLeftArrow: '\\u21C4',\n RightCeiling: '\\u2309',\n RightDownVector: '\\u21C2',\n RightFloor: '\\u230B',\n RightTee: '\\u22A2',\n RightTeeArrow: '\\u21A6',\n RightTriangle: '\\u22B3',\n RightTriangleEqual: '\\u22B5',\n RightUpVector: '\\u21BE',\n RightVector: '\\u21C0',\n Rightarrow: '\\u21D2',\n Rrightarrow: '\\u21DB',\n Rsh: '\\u21B1',\n Sigma: '\\u03A3',\n SmallCircle: '\\u2218',\n Sqrt: '\\u221A',\n Square: '\\u25A1',\n SquareIntersection: '\\u2293',\n SquareSubset: '\\u228F',\n SquareSubsetEqual: '\\u2291',\n SquareSuperset: '\\u2290',\n SquareSupersetEqual: '\\u2292',\n SquareUnion: '\\u2294',\n Star: '\\u22C6',\n Subset: '\\u22D0',\n SubsetEqual: '\\u2286',\n Succeeds: '\\u227B',\n SucceedsEqual: '\\u2AB0',\n SucceedsSlantEqual: '\\u227D',\n SucceedsTilde: '\\u227F',\n SuchThat: '\\u220B',\n Sum: '\\u2211',\n Superset: '\\u2283',\n SupersetEqual: '\\u2287',\n Supset: '\\u22D1',\n Therefore: '\\u2234',\n Theta: '\\u0398',\n Tilde: '\\u223C',\n TildeEqual: '\\u2243',\n TildeFullEqual: '\\u2245',\n TildeTilde: '\\u2248',\n UnderBar: '\\u005F',\n UnderBrace: '\\u23DF',\n Union: '\\u22C3',\n UnionPlus: '\\u228E',\n UpArrow: '\\u2191',\n UpDownArrow: '\\u2195',\n UpTee: '\\u22A5',\n Uparrow: '\\u21D1',\n Updownarrow: '\\u21D5',\n Upsilon: '\\u03A5',\n Vdash: '\\u22A9',\n Vee: '\\u22C1',\n VerticalBar: '\\u2223',\n VerticalTilde: '\\u2240',\n Vvdash: '\\u22AA',\n Wedge: '\\u22C0',\n Xi: '\\u039E',\n amp: '\\u0026',\n acute: '\\u00B4',\n aleph: '\\u2135',\n alpha: '\\u03B1',\n amalg: '\\u2A3F',\n and: '\\u2227',\n ang: '\\u2220',\n angmsd: '\\u2221',\n angsph: '\\u2222',\n ape: '\\u224A',\n backprime: '\\u2035',\n backsim: '\\u223D',\n backsimeq: '\\u22CD',\n beta: '\\u03B2',\n beth: '\\u2136',\n between: '\\u226C',\n bigcirc: '\\u25EF',\n bigodot: '\\u2A00',\n bigoplus: '\\u2A01',\n bigotimes: '\\u2A02',\n bigsqcup: '\\u2A06',\n bigstar: '\\u2605',\n bigtriangledown: '\\u25BD',\n bigtriangleup: '\\u25B3',\n biguplus: '\\u2A04',\n blacklozenge: '\\u29EB',\n blacktriangle: '\\u25B4',\n blacktriangledown: '\\u25BE',\n blacktriangleleft: '\\u25C2',\n bowtie: '\\u22C8',\n boxdl: '\\u2510',\n boxdr: '\\u250C',\n boxminus: '\\u229F',\n boxplus: '\\u229E',\n boxtimes: '\\u22A0',\n boxul: '\\u2518',\n boxur: '\\u2514',\n bsol: '\\u005C',\n bull: '\\u2022',\n cap: '\\u2229',\n check: '\\u2713',\n chi: '\\u03C7',\n circ: '\\u02C6',\n circeq: '\\u2257',\n circlearrowleft: '\\u21BA',\n circlearrowright: '\\u21BB',\n circledR: '\\u00AE',\n circledS: '\\u24C8',\n circledast: '\\u229B',\n circledcirc: '\\u229A',\n circleddash: '\\u229D',\n clubs: '\\u2663',\n colon: '\\u003A',\n comp: '\\u2201',\n ctdot: '\\u22EF',\n cuepr: '\\u22DE',\n cuesc: '\\u22DF',\n cularr: '\\u21B6',\n cup: '\\u222A',\n curarr: '\\u21B7',\n curlyvee: '\\u22CE',\n curlywedge: '\\u22CF',\n dagger: '\\u2020',\n daleth: '\\u2138',\n ddarr: '\\u21CA',\n deg: '\\u00B0',\n delta: '\\u03B4',\n digamma: '\\u03DD',\n div: '\\u00F7',\n divideontimes: '\\u22C7',\n dot: '\\u02D9',\n doteqdot: '\\u2251',\n dotplus: '\\u2214',\n dotsquare: '\\u22A1',\n dtdot: '\\u22F1',\n ecir: '\\u2256',\n efDot: '\\u2252',\n egs: '\\u2A96',\n ell: '\\u2113',\n els: '\\u2A95',\n empty: '\\u2205',\n epsi: '\\u03B5',\n epsiv: '\\u03F5',\n erDot: '\\u2253',\n eta: '\\u03B7',\n eth: '\\u00F0',\n flat: '\\u266D',\n fork: '\\u22D4',\n frown: '\\u2322',\n gEl: '\\u2A8C',\n gamma: '\\u03B3',\n gap: '\\u2A86',\n gimel: '\\u2137',\n gnE: '\\u2269',\n gnap: '\\u2A8A',\n gne: '\\u2A88',\n gnsim: '\\u22E7',\n gt: '\\u003E',\n gtdot: '\\u22D7',\n harrw: '\\u21AD',\n hbar: '\\u210F',\n hellip: '\\u2026',\n hookleftarrow: '\\u21A9',\n hookrightarrow: '\\u21AA',\n imath: '\\u0131',\n infin: '\\u221E',\n intcal: '\\u22BA',\n iota: '\\u03B9',\n jmath: '\\u0237',\n kappa: '\\u03BA',\n kappav: '\\u03F0',\n lEg: '\\u2A8B',\n lambda: '\\u03BB',\n lap: '\\u2A85',\n larrlp: '\\u21AB',\n larrtl: '\\u21A2',\n lbrace: '\\u007B',\n lbrack: '\\u005B',\n le: '\\u2264',\n leftleftarrows: '\\u21C7',\n leftthreetimes: '\\u22CB',\n lessdot: '\\u22D6',\n lmoust: '\\u23B0',\n lnE: '\\u2268',\n lnap: '\\u2A89',\n lne: '\\u2A87',\n lnsim: '\\u22E6',\n longmapsto: '\\u27FC',\n looparrowright: '\\u21AC',\n lowast: '\\u2217',\n loz: '\\u25CA',\n lt: '\\u003C',\n ltimes: '\\u22C9',\n ltri: '\\u25C3',\n macr: '\\u00AF',\n malt: '\\u2720',\n mho: '\\u2127',\n mu: '\\u03BC',\n multimap: '\\u22B8',\n nLeftarrow: '\\u21CD',\n nLeftrightarrow: '\\u21CE',\n nRightarrow: '\\u21CF',\n nVDash: '\\u22AF',\n nVdash: '\\u22AE',\n natur: '\\u266E',\n nearr: '\\u2197',\n nharr: '\\u21AE',\n nlarr: '\\u219A',\n not: '\\u00AC',\n nrarr: '\\u219B',\n nu: '\\u03BD',\n nvDash: '\\u22AD',\n nvdash: '\\u22AC',\n nwarr: '\\u2196',\n omega: '\\u03C9',\n omicron: '\\u03BF',\n or: '\\u2228',\n osol: '\\u2298',\n period: '\\u002E',\n phi: '\\u03C6',\n phiv: '\\u03D5',\n pi: '\\u03C0',\n piv: '\\u03D6',\n prap: '\\u2AB7',\n precnapprox: '\\u2AB9',\n precneqq: '\\u2AB5',\n precnsim: '\\u22E8',\n prime: '\\u2032',\n psi: '\\u03C8',\n quot: '\\u0022',\n rarrtl: '\\u21A3',\n rbrace: '\\u007D',\n rbrack: '\\u005D',\n rho: '\\u03C1',\n rhov: '\\u03F1',\n rightrightarrows: '\\u21C9',\n rightthreetimes: '\\u22CC',\n ring: '\\u02DA',\n rmoust: '\\u23B1',\n rtimes: '\\u22CA',\n rtri: '\\u25B9',\n scap: '\\u2AB8',\n scnE: '\\u2AB6',\n scnap: '\\u2ABA',\n scnsim: '\\u22E9',\n sdot: '\\u22C5',\n searr: '\\u2198',\n sect: '\\u00A7',\n sharp: '\\u266F',\n sigma: '\\u03C3',\n sigmav: '\\u03C2',\n simne: '\\u2246',\n smile: '\\u2323',\n spades: '\\u2660',\n sub: '\\u2282',\n subE: '\\u2AC5',\n subnE: '\\u2ACB',\n subne: '\\u228A',\n supE: '\\u2AC6',\n supnE: '\\u2ACC',\n supne: '\\u228B',\n swarr: '\\u2199',\n tau: '\\u03C4',\n theta: '\\u03B8',\n thetav: '\\u03D1',\n tilde: '\\u02DC',\n times: '\\u00D7',\n triangle: '\\u25B5',\n triangleq: '\\u225C',\n upsi: '\\u03C5',\n upuparrows: '\\u21C8',\n veebar: '\\u22BB',\n vellip: '\\u22EE',\n weierp: '\\u2118',\n xi: '\\u03BE',\n yen: '\\u00A5',\n zeta: '\\u03B6',\n zigrarr: '\\u21DD',\n nbsp: '\\u00A0',\n rsquo: '\\u2019',\n lsquo: '\\u2018'\n};\nvar loaded = {};\nfunction add(additions, file) {\n Object.assign(exports.entities, additions);\n loaded[file] = true;\n}\nexports.add = add;\nfunction remove(entity) {\n delete exports.entities[entity];\n}\nexports.remove = remove;\nfunction translate(text) {\n return text.replace(/&([a-z][a-z0-9]*|#(?:[0-9]+|x[0-9a-f]+));/ig, replace);\n}\nexports.translate = translate;\nfunction replace(match, entity) {\n if (entity.charAt(0) === '#') {\n return numeric(entity.slice(1));\n }\n if (exports.entities[entity]) {\n return exports.entities[entity];\n }\n if (exports.options['loadMissingEntities']) {\n var file = (entity.match(/^[a-zA-Z](fr|scr|opf)$/) ? RegExp.$1 : entity.charAt(0).toLowerCase());\n if (!loaded[file]) {\n loaded[file] = true;\n (0, Retries_js_1.retryAfter)((0, AsyncLoad_js_1.asyncLoad)('./util/entities/' + file + '.js'));\n }\n }\n return match;\n}\nfunction numeric(entity) {\n var n = (entity.charAt(0) === 'x' ?\n parseInt(entity.slice(1), 16) :\n parseInt(entity));\n return String.fromCodePoint(n);\n}\nexports.numeric = numeric;\n//# sourceMappingURL=Entities.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionList = void 0;\nvar PrioritizedList_js_1 = require(\"./PrioritizedList.js\");\nvar FunctionList = (function (_super) {\n __extends(FunctionList, _super);\n function FunctionList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FunctionList.prototype.execute = function () {\n var e_1, _a;\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n try {\n for (var _b = __values(this), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n var result = item.item.apply(item, __spreadArray([], __read(data), false));\n if (result === false) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n FunctionList.prototype.asyncExecute = function () {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n var i = -1;\n var items = this.items;\n return new Promise(function (ok, fail) {\n (function execute() {\n var _a;\n while (++i < items.length) {\n var result = (_a = items[i]).item.apply(_a, __spreadArray([], __read(data), false));\n if (result instanceof Promise) {\n result.then(execute).catch(function (err) { return fail(err); });\n return;\n }\n if (result === false) {\n ok(false);\n return;\n }\n }\n ok(true);\n })();\n });\n };\n return FunctionList;\n}(PrioritizedList_js_1.PrioritizedList));\nexports.FunctionList = FunctionList;\n//# sourceMappingURL=FunctionList.js.map","\"use strict\";\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedList = exports.ListItem = exports.END = void 0;\nexports.END = Symbol();\nvar ListItem = (function () {\n function ListItem(data) {\n if (data === void 0) { data = null; }\n this.next = null;\n this.prev = null;\n this.data = data;\n }\n return ListItem;\n}());\nexports.ListItem = ListItem;\nvar LinkedList = (function () {\n function LinkedList() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.list = new ListItem(exports.END);\n this.list.next = this.list.prev = this.list;\n this.push.apply(this, __spreadArray([], __read(args), false));\n }\n LinkedList.prototype.isBefore = function (a, b) {\n return a < b;\n };\n LinkedList.prototype.push = function () {\n var e_1, _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n for (var args_1 = __values(args), args_1_1 = args_1.next(); !args_1_1.done; args_1_1 = args_1.next()) {\n var data = args_1_1.value;\n var item = new ListItem(data);\n item.next = this.list;\n item.prev = this.list.prev;\n this.list.prev = item;\n item.prev.next = item;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (args_1_1 && !args_1_1.done && (_a = args_1.return)) _a.call(args_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n LinkedList.prototype.pop = function () {\n var item = this.list.prev;\n if (item.data === exports.END) {\n return null;\n }\n this.list.prev = item.prev;\n item.prev.next = this.list;\n item.next = item.prev = null;\n return item.data;\n };\n LinkedList.prototype.unshift = function () {\n var e_2, _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n for (var _b = __values(args.slice(0).reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var data = _c.value;\n var item = new ListItem(data);\n item.next = this.list.next;\n item.prev = this.list;\n this.list.next = item;\n item.next.prev = item;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return this;\n };\n LinkedList.prototype.shift = function () {\n var item = this.list.next;\n if (item.data === exports.END) {\n return null;\n }\n this.list.next = item.next;\n item.next.prev = this.list;\n item.next = item.prev = null;\n return item.data;\n };\n LinkedList.prototype.remove = function () {\n var e_3, _a;\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var map = new Map();\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item_1 = items_1_1.value;\n map.set(item_1, true);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n var item = this.list.next;\n while (item.data !== exports.END) {\n var next = item.next;\n if (map.has(item.data)) {\n item.prev.next = item.next;\n item.next.prev = item.prev;\n item.next = item.prev = null;\n }\n item = next;\n }\n };\n LinkedList.prototype.clear = function () {\n this.list.next.prev = this.list.prev.next = null;\n this.list.next = this.list.prev = this.list;\n return this;\n };\n LinkedList.prototype[Symbol.iterator] = function () {\n var current;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n current = this.list.next;\n _a.label = 1;\n case 1:\n if (!(current.data !== exports.END)) return [3, 3];\n return [4, current.data];\n case 2:\n _a.sent();\n current = current.next;\n return [3, 1];\n case 3: return [2];\n }\n });\n };\n LinkedList.prototype.reversed = function () {\n var current;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n current = this.list.prev;\n _a.label = 1;\n case 1:\n if (!(current.data !== exports.END)) return [3, 3];\n return [4, current.data];\n case 2:\n _a.sent();\n current = current.prev;\n return [3, 1];\n case 3: return [2];\n }\n });\n };\n LinkedList.prototype.insert = function (data, isBefore) {\n if (isBefore === void 0) { isBefore = null; }\n if (isBefore === null) {\n isBefore = this.isBefore.bind(this);\n }\n var item = new ListItem(data);\n var cur = this.list.next;\n while (cur.data !== exports.END && isBefore(cur.data, item.data)) {\n cur = cur.next;\n }\n item.prev = cur.prev;\n item.next = cur;\n cur.prev.next = cur.prev = item;\n return this;\n };\n LinkedList.prototype.sort = function (isBefore) {\n var e_4, _a;\n if (isBefore === void 0) { isBefore = null; }\n if (isBefore === null) {\n isBefore = this.isBefore.bind(this);\n }\n var lists = [];\n try {\n for (var _b = __values(this), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n lists.push(new LinkedList(item));\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n this.list.next = this.list.prev = this.list;\n while (lists.length > 1) {\n var l1 = lists.shift();\n var l2 = lists.shift();\n l1.merge(l2, isBefore);\n lists.push(l1);\n }\n if (lists.length) {\n this.list = lists[0].list;\n }\n return this;\n };\n LinkedList.prototype.merge = function (list, isBefore) {\n var _a, _b, _c, _d, _e;\n if (isBefore === void 0) { isBefore = null; }\n if (isBefore === null) {\n isBefore = this.isBefore.bind(this);\n }\n var lcur = this.list.next;\n var mcur = list.list.next;\n while (lcur.data !== exports.END && mcur.data !== exports.END) {\n if (isBefore(mcur.data, lcur.data)) {\n _a = __read([lcur, mcur], 2), mcur.prev.next = _a[0], lcur.prev.next = _a[1];\n _b = __read([lcur.prev, mcur.prev], 2), mcur.prev = _b[0], lcur.prev = _b[1];\n _c = __read([list.list, this.list], 2), this.list.prev.next = _c[0], list.list.prev.next = _c[1];\n _d = __read([list.list.prev, this.list.prev], 2), this.list.prev = _d[0], list.list.prev = _d[1];\n _e = __read([mcur.next, lcur], 2), lcur = _e[0], mcur = _e[1];\n }\n else {\n lcur = lcur.next;\n }\n }\n if (mcur.data !== exports.END) {\n this.list.prev.next = list.list.next;\n list.list.next.prev = this.list.prev;\n list.list.prev.next = this.list;\n this.list.prev = list.list.prev;\n list.list.next = list.list.prev = list.list;\n }\n return this;\n };\n return LinkedList;\n}());\nexports.LinkedList = LinkedList;\n//# sourceMappingURL=LinkedList.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookup = exports.separateOptions = exports.selectOptionsFromKeys = exports.selectOptions = exports.userOptions = exports.defaultOptions = exports.insert = exports.copy = exports.keys = exports.makeArray = exports.expandable = exports.Expandable = exports.OPTIONS = exports.REMOVE = exports.APPEND = exports.isObject = void 0;\nvar OBJECT = {}.constructor;\nfunction isObject(obj) {\n return typeof obj === 'object' && obj !== null &&\n (obj.constructor === OBJECT || obj.constructor === Expandable);\n}\nexports.isObject = isObject;\nexports.APPEND = '[+]';\nexports.REMOVE = '[-]';\nexports.OPTIONS = {\n invalidOption: 'warn',\n optionError: function (message, _key) {\n if (exports.OPTIONS.invalidOption === 'fatal') {\n throw new Error(message);\n }\n console.warn('MathJax: ' + message);\n }\n};\nvar Expandable = (function () {\n function Expandable() {\n }\n return Expandable;\n}());\nexports.Expandable = Expandable;\nfunction expandable(def) {\n return Object.assign(Object.create(Expandable.prototype), def);\n}\nexports.expandable = expandable;\nfunction makeArray(x) {\n return Array.isArray(x) ? x : [x];\n}\nexports.makeArray = makeArray;\nfunction keys(def) {\n if (!def) {\n return [];\n }\n return Object.keys(def).concat(Object.getOwnPropertySymbols(def));\n}\nexports.keys = keys;\nfunction copy(def) {\n var e_1, _a;\n var props = {};\n try {\n for (var _b = __values(keys(def)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var prop = Object.getOwnPropertyDescriptor(def, key);\n var value = prop.value;\n if (Array.isArray(value)) {\n prop.value = insert([], value, false);\n }\n else if (isObject(value)) {\n prop.value = copy(value);\n }\n if (prop.enumerable) {\n props[key] = prop;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return Object.defineProperties(def.constructor === Expandable ? expandable({}) : {}, props);\n}\nexports.copy = copy;\nfunction insert(dst, src, warn) {\n var e_2, _a;\n if (warn === void 0) { warn = true; }\n var _loop_1 = function (key) {\n if (warn && dst[key] === undefined && dst.constructor !== Expandable) {\n if (typeof key === 'symbol') {\n key = key.toString();\n }\n exports.OPTIONS.optionError(\"Invalid option \\\"\".concat(key, \"\\\" (no default value).\"), key);\n return \"continue\";\n }\n var sval = src[key], dval = dst[key];\n if (isObject(sval) && dval !== null &&\n (typeof dval === 'object' || typeof dval === 'function')) {\n var ids = keys(sval);\n if (Array.isArray(dval) &&\n ((ids.length === 1 && (ids[0] === exports.APPEND || ids[0] === exports.REMOVE) && Array.isArray(sval[ids[0]])) ||\n (ids.length === 2 && ids.sort().join(',') === exports.APPEND + ',' + exports.REMOVE &&\n Array.isArray(sval[exports.APPEND]) && Array.isArray(sval[exports.REMOVE])))) {\n if (sval[exports.REMOVE]) {\n dval = dst[key] = dval.filter(function (x) { return sval[exports.REMOVE].indexOf(x) < 0; });\n }\n if (sval[exports.APPEND]) {\n dst[key] = __spreadArray(__spreadArray([], __read(dval), false), __read(sval[exports.APPEND]), false);\n }\n }\n else {\n insert(dval, sval, warn);\n }\n }\n else if (Array.isArray(sval)) {\n dst[key] = [];\n insert(dst[key], sval, false);\n }\n else if (isObject(sval)) {\n dst[key] = copy(sval);\n }\n else {\n dst[key] = sval;\n }\n };\n try {\n for (var _b = __values(keys(src)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n _loop_1(key);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return dst;\n}\nexports.insert = insert;\nfunction defaultOptions(options) {\n var defs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n defs[_i - 1] = arguments[_i];\n }\n defs.forEach(function (def) { return insert(options, def, false); });\n return options;\n}\nexports.defaultOptions = defaultOptions;\nfunction userOptions(options) {\n var defs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n defs[_i - 1] = arguments[_i];\n }\n defs.forEach(function (def) { return insert(options, def, true); });\n return options;\n}\nexports.userOptions = userOptions;\nfunction selectOptions(options) {\n var e_3, _a;\n var keys = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n keys[_i - 1] = arguments[_i];\n }\n var subset = {};\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n if (options.hasOwnProperty(key)) {\n subset[key] = options[key];\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return subset;\n}\nexports.selectOptions = selectOptions;\nfunction selectOptionsFromKeys(options, object) {\n return selectOptions.apply(void 0, __spreadArray([options], __read(Object.keys(object)), false));\n}\nexports.selectOptionsFromKeys = selectOptionsFromKeys;\nfunction separateOptions(options) {\n var e_4, _a, e_5, _b;\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n var results = [];\n try {\n for (var objects_1 = __values(objects), objects_1_1 = objects_1.next(); !objects_1_1.done; objects_1_1 = objects_1.next()) {\n var object = objects_1_1.value;\n var exists = {}, missing = {};\n try {\n for (var _c = (e_5 = void 0, __values(Object.keys(options || {}))), _d = _c.next(); !_d.done; _d = _c.next()) {\n var key = _d.value;\n (object[key] === undefined ? missing : exists)[key] = options[key];\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n results.push(exists);\n options = missing;\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (objects_1_1 && !objects_1_1.done && (_a = objects_1.return)) _a.call(objects_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n results.unshift(options);\n return results;\n}\nexports.separateOptions = separateOptions;\nfunction lookup(name, lookup, def) {\n if (def === void 0) { def = null; }\n return (lookup.hasOwnProperty(name) ? lookup[name] : def);\n}\nexports.lookup = lookup;\n//# sourceMappingURL=Options.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrioritizedList = void 0;\nvar PrioritizedList = (function () {\n function PrioritizedList() {\n this.items = [];\n this.items = [];\n }\n PrioritizedList.prototype[Symbol.iterator] = function () {\n var i = 0;\n var items = this.items;\n return {\n next: function () {\n return { value: items[i++], done: (i > items.length) };\n }\n };\n };\n PrioritizedList.prototype.add = function (item, priority) {\n if (priority === void 0) { priority = PrioritizedList.DEFAULTPRIORITY; }\n var i = this.items.length;\n do {\n i--;\n } while (i >= 0 && priority < this.items[i].priority);\n this.items.splice(i + 1, 0, { item: item, priority: priority });\n return item;\n };\n PrioritizedList.prototype.remove = function (item) {\n var i = this.items.length;\n do {\n i--;\n } while (i >= 0 && this.items[i].item !== item);\n if (i >= 0) {\n this.items.splice(i, 1);\n }\n };\n PrioritizedList.DEFAULTPRIORITY = 5;\n return PrioritizedList;\n}());\nexports.PrioritizedList = PrioritizedList;\n//# sourceMappingURL=PrioritizedList.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryAfter = exports.handleRetriesFor = void 0;\nfunction handleRetriesFor(code) {\n return new Promise(function run(ok, fail) {\n try {\n ok(code());\n }\n catch (err) {\n if (err.retry && err.retry instanceof Promise) {\n err.retry.then(function () { return run(ok, fail); })\n .catch(function (perr) { return fail(perr); });\n }\n else if (err.restart && err.restart.isCallback) {\n MathJax.Callback.After(function () { return run(ok, fail); }, err.restart);\n }\n else {\n fail(err);\n }\n }\n });\n}\nexports.handleRetriesFor = handleRetriesFor;\nfunction retryAfter(promise) {\n var err = new Error('MathJax retry');\n err.retry = promise;\n throw err;\n}\nexports.retryAfter = retryAfter;\n//# sourceMappingURL=Retries.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CssStyles = void 0;\nvar CssStyles = (function () {\n function CssStyles(styles) {\n if (styles === void 0) { styles = null; }\n this.styles = {};\n this.addStyles(styles);\n }\n Object.defineProperty(CssStyles.prototype, \"cssText\", {\n get: function () {\n return this.getStyleString();\n },\n enumerable: false,\n configurable: true\n });\n CssStyles.prototype.addStyles = function (styles) {\n var e_1, _a;\n if (!styles)\n return;\n try {\n for (var _b = __values(Object.keys(styles)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var style = _c.value;\n if (!this.styles[style]) {\n this.styles[style] = {};\n }\n Object.assign(this.styles[style], styles[style]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n CssStyles.prototype.removeStyles = function () {\n var e_2, _a;\n var selectors = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n selectors[_i] = arguments[_i];\n }\n try {\n for (var selectors_1 = __values(selectors), selectors_1_1 = selectors_1.next(); !selectors_1_1.done; selectors_1_1 = selectors_1.next()) {\n var selector = selectors_1_1.value;\n delete this.styles[selector];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (selectors_1_1 && !selectors_1_1.done && (_a = selectors_1.return)) _a.call(selectors_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n CssStyles.prototype.clear = function () {\n this.styles = {};\n };\n CssStyles.prototype.getStyleString = function () {\n return this.getStyleRules().join('\\n\\n');\n };\n CssStyles.prototype.getStyleRules = function () {\n var e_3, _a;\n var selectors = Object.keys(this.styles);\n var defs = new Array(selectors.length);\n var i = 0;\n try {\n for (var selectors_2 = __values(selectors), selectors_2_1 = selectors_2.next(); !selectors_2_1.done; selectors_2_1 = selectors_2.next()) {\n var selector = selectors_2_1.value;\n defs[i++] = selector + ' {\\n' + this.getStyleDefString(this.styles[selector]) + '\\n}';\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (selectors_2_1 && !selectors_2_1.done && (_a = selectors_2.return)) _a.call(selectors_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return defs;\n };\n CssStyles.prototype.getStyleDefString = function (styles) {\n var e_4, _a;\n var properties = Object.keys(styles);\n var values = new Array(properties.length);\n var i = 0;\n try {\n for (var properties_1 = __values(properties), properties_1_1 = properties_1.next(); !properties_1_1.done; properties_1_1 = properties_1.next()) {\n var property = properties_1_1.value;\n values[i++] = ' ' + property + ': ' + styles[property] + ';';\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (properties_1_1 && !properties_1_1.done && (_a = properties_1.return)) _a.call(properties_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return values.join('\\n');\n };\n return CssStyles;\n}());\nexports.CssStyles = CssStyles;\n//# sourceMappingURL=StyleList.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Styles = void 0;\nvar TRBL = ['top', 'right', 'bottom', 'left'];\nvar WSC = ['width', 'style', 'color'];\nfunction splitSpaces(text) {\n var parts = text.split(/((?:'[^']*'|\"[^\"]*\"|,[\\s\\n]|[^\\s\\n])*)/g);\n var split = [];\n while (parts.length > 1) {\n parts.shift();\n split.push(parts.shift());\n }\n return split;\n}\nfunction splitTRBL(name) {\n var e_1, _a;\n var parts = splitSpaces(this.styles[name]);\n if (parts.length === 0) {\n parts.push('');\n }\n if (parts.length === 1) {\n parts.push(parts[0]);\n }\n if (parts.length === 2) {\n parts.push(parts[0]);\n }\n if (parts.length === 3) {\n parts.push(parts[1]);\n }\n try {\n for (var _b = __values(Styles.connect[name].children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n this.setStyle(this.childName(name, child), parts.shift());\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\nfunction combineTRBL(name) {\n var e_2, _a;\n var children = Styles.connect[name].children;\n var parts = [];\n try {\n for (var children_1 = __values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n var part = this.styles[name + '-' + child];\n if (!part) {\n delete this.styles[name];\n return;\n }\n parts.push(part);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (parts[3] === parts[1]) {\n parts.pop();\n if (parts[2] === parts[0]) {\n parts.pop();\n if (parts[1] === parts[0]) {\n parts.pop();\n }\n }\n }\n this.styles[name] = parts.join(' ');\n}\nfunction splitSame(name) {\n var e_3, _a;\n try {\n for (var _b = __values(Styles.connect[name].children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n this.setStyle(this.childName(name, child), this.styles[name]);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n}\nfunction combineSame(name) {\n var e_4, _a;\n var children = __spreadArray([], __read(Styles.connect[name].children), false);\n var value = this.styles[this.childName(name, children.shift())];\n try {\n for (var children_2 = __values(children), children_2_1 = children_2.next(); !children_2_1.done; children_2_1 = children_2.next()) {\n var child = children_2_1.value;\n if (this.styles[this.childName(name, child)] !== value) {\n delete this.styles[name];\n return;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (children_2_1 && !children_2_1.done && (_a = children_2.return)) _a.call(children_2);\n }\n finally { if (e_4) throw e_4.error; }\n }\n this.styles[name] = value;\n}\nvar BORDER = {\n width: /^(?:[\\d.]+(?:[a-z]+)|thin|medium|thick|inherit|initial|unset)$/,\n style: /^(?:none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|inherit|initial|unset)$/\n};\nfunction splitWSC(name) {\n var e_5, _a, e_6, _b;\n var parts = { width: '', style: '', color: '' };\n try {\n for (var _c = __values(splitSpaces(this.styles[name])), _d = _c.next(); !_d.done; _d = _c.next()) {\n var part = _d.value;\n if (part.match(BORDER.width) && parts.width === '') {\n parts.width = part;\n }\n else if (part.match(BORDER.style) && parts.style === '') {\n parts.style = part;\n }\n else {\n parts.color = part;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n try {\n for (var _e = __values(Styles.connect[name].children), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n this.setStyle(this.childName(name, child), parts[child]);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_6) throw e_6.error; }\n }\n}\nfunction combineWSC(name) {\n var e_7, _a;\n var parts = [];\n try {\n for (var _b = __values(Styles.connect[name].children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n var value = this.styles[this.childName(name, child)];\n if (value) {\n parts.push(value);\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n if (parts.length) {\n this.styles[name] = parts.join(' ');\n }\n else {\n delete this.styles[name];\n }\n}\nvar FONT = {\n style: /^(?:normal|italic|oblique|inherit|initial|unset)$/,\n variant: new RegExp('^(?:' +\n ['normal|none',\n 'inherit|initial|unset',\n 'common-ligatures|no-common-ligatures',\n 'discretionary-ligatures|no-discretionary-ligatures',\n 'historical-ligatures|no-historical-ligatures',\n 'contextual|no-contextual',\n '(?:stylistic|character-variant|swash|ornaments|annotation)\\\\([^)]*\\\\)',\n 'small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps',\n 'lining-nums|oldstyle-nums|proportional-nums|tabular-nums',\n 'diagonal-fractions|stacked-fractions',\n 'ordinal|slashed-zero',\n 'jis78|jis83|jis90|jis04|simplified|traditional',\n 'full-width|proportional-width',\n 'ruby'].join('|') + ')$'),\n weight: /^(?:normal|bold|bolder|lighter|[1-9]00|inherit|initial|unset)$/,\n stretch: new RegExp('^(?:' +\n ['normal',\n '(?:(?:ultra|extra|semi)-)?condensed',\n '(?:(?:semi|extra|ulta)-)?expanded',\n 'inherit|initial|unset'].join('|') + ')$'),\n size: new RegExp('^(?:' +\n ['xx-small|x-small|small|medium|large|x-large|xx-large|larger|smaller',\n '[\\d.]+%|[\\d.]+[a-z]+',\n 'inherit|initial|unset'].join('|') + ')' +\n '(?:\\/(?:normal|[\\d.\\+](?:%|[a-z]+)?))?$')\n};\nfunction splitFont(name) {\n var e_8, _a, e_9, _b;\n var parts = splitSpaces(this.styles[name]);\n var value = {\n style: '', variant: [], weight: '', stretch: '',\n size: '', family: '', 'line-height': ''\n };\n try {\n for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {\n var part = parts_1_1.value;\n value.family = part;\n try {\n for (var _c = (e_9 = void 0, __values(Object.keys(FONT))), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_1 = _d.value;\n if ((Array.isArray(value[name_1]) || value[name_1] === '') && part.match(FONT[name_1])) {\n if (name_1 === 'size') {\n var _e = __read(part.split(/\\//), 2), size = _e[0], height = _e[1];\n value[name_1] = size;\n if (height) {\n value['line-height'] = height;\n }\n }\n else if (value.size === '') {\n if (Array.isArray(value[name_1])) {\n value[name_1].push(part);\n }\n else {\n value[name_1] = part;\n }\n }\n }\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_9) throw e_9.error; }\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);\n }\n finally { if (e_8) throw e_8.error; }\n }\n saveFontParts(name, value);\n delete this.styles[name];\n}\nfunction saveFontParts(name, value) {\n var e_10, _a;\n try {\n for (var _b = __values(Styles.connect[name].children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n var cname = this.childName(name, child);\n if (Array.isArray(value[child])) {\n var values = value[child];\n if (values.length) {\n this.styles[cname] = values.join(' ');\n }\n }\n else if (value[child] !== '') {\n this.styles[cname] = value[child];\n }\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_10) throw e_10.error; }\n }\n}\nfunction combineFont(_name) { }\nvar Styles = (function () {\n function Styles(cssText) {\n if (cssText === void 0) { cssText = ''; }\n this.parse(cssText);\n }\n Object.defineProperty(Styles.prototype, \"cssText\", {\n get: function () {\n var e_11, _a;\n var styles = [];\n try {\n for (var _b = __values(Object.keys(this.styles)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var name_2 = _c.value;\n var parent_1 = this.parentName(name_2);\n if (!this.styles[parent_1]) {\n styles.push(name_2 + ': ' + this.styles[name_2] + ';');\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_11) throw e_11.error; }\n }\n return styles.join(' ');\n },\n enumerable: false,\n configurable: true\n });\n Styles.prototype.set = function (name, value) {\n name = this.normalizeName(name);\n this.setStyle(name, value);\n if (Styles.connect[name] && !Styles.connect[name].combine) {\n this.combineChildren(name);\n delete this.styles[name];\n }\n while (name.match(/-/)) {\n name = this.parentName(name);\n if (!Styles.connect[name])\n break;\n Styles.connect[name].combine.call(this, name);\n }\n };\n Styles.prototype.get = function (name) {\n name = this.normalizeName(name);\n return (this.styles.hasOwnProperty(name) ? this.styles[name] : '');\n };\n Styles.prototype.setStyle = function (name, value) {\n this.styles[name] = value;\n if (Styles.connect[name] && Styles.connect[name].children) {\n Styles.connect[name].split.call(this, name);\n }\n if (value === '') {\n delete this.styles[name];\n }\n };\n Styles.prototype.combineChildren = function (name) {\n var e_12, _a;\n var parent = this.parentName(name);\n try {\n for (var _b = __values(Styles.connect[name].children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n var cname = this.childName(parent, child);\n Styles.connect[cname].combine.call(this, cname);\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_12) throw e_12.error; }\n }\n };\n Styles.prototype.parentName = function (name) {\n var parent = name.replace(/-[^-]*$/, '');\n return (name === parent ? '' : parent);\n };\n Styles.prototype.childName = function (name, child) {\n if (child.match(/-/)) {\n return child;\n }\n if (Styles.connect[name] && !Styles.connect[name].combine) {\n child += name.replace(/.*-/, '-');\n name = this.parentName(name);\n }\n return name + '-' + child;\n };\n Styles.prototype.normalizeName = function (name) {\n return name.replace(/[A-Z]/g, function (c) { return '-' + c.toLowerCase(); });\n };\n Styles.prototype.parse = function (cssText) {\n if (cssText === void 0) { cssText = ''; }\n var PATTERN = this.constructor.pattern;\n this.styles = {};\n var parts = cssText.replace(PATTERN.comment, '').split(PATTERN.style);\n while (parts.length > 1) {\n var _a = __read(parts.splice(0, 3), 3), space = _a[0], name_3 = _a[1], value = _a[2];\n if (space.match(/[^\\s\\n]/))\n return;\n this.set(name_3, value);\n }\n };\n Styles.pattern = {\n style: /([-a-z]+)[\\s\\n]*:[\\s\\n]*((?:'[^']*'|\"[^\"]*\"|\\n|.)*?)[\\s\\n]*(?:;|$)/g,\n comment: /\\/\\*[^]*?\\*\\//g\n };\n Styles.connect = {\n padding: {\n children: TRBL,\n split: splitTRBL,\n combine: combineTRBL\n },\n border: {\n children: TRBL,\n split: splitSame,\n combine: combineSame\n },\n 'border-top': {\n children: WSC,\n split: splitWSC,\n combine: combineWSC\n },\n 'border-right': {\n children: WSC,\n split: splitWSC,\n combine: combineWSC\n },\n 'border-bottom': {\n children: WSC,\n split: splitWSC,\n combine: combineWSC\n },\n 'border-left': {\n children: WSC,\n split: splitWSC,\n combine: combineWSC\n },\n 'border-width': {\n children: TRBL,\n split: splitTRBL,\n combine: null\n },\n 'border-style': {\n children: TRBL,\n split: splitTRBL,\n combine: null\n },\n 'border-color': {\n children: TRBL,\n split: splitTRBL,\n combine: null\n },\n font: {\n children: ['style', 'variant', 'weight', 'stretch', 'line-height', 'size', 'family'],\n split: splitFont,\n combine: combineFont\n }\n };\n return Styles;\n}());\nexports.Styles = Styles;\n//# sourceMappingURL=Styles.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.px = exports.emRounded = exports.em = exports.percent = exports.length2em = exports.MATHSPACE = exports.RELUNITS = exports.UNITS = exports.BIGDIMEN = void 0;\nexports.BIGDIMEN = 1000000;\nexports.UNITS = {\n px: 1,\n 'in': 96,\n cm: 96 / 2.54,\n mm: 96 / 25.4\n};\nexports.RELUNITS = {\n em: 1,\n ex: .431,\n pt: 1 / 10,\n pc: 12 / 10,\n mu: 1 / 18\n};\nexports.MATHSPACE = {\n veryverythinmathspace: 1 / 18,\n verythinmathspace: 2 / 18,\n thinmathspace: 3 / 18,\n mediummathspace: 4 / 18,\n thickmathspace: 5 / 18,\n verythickmathspace: 6 / 18,\n veryverythickmathspace: 7 / 18,\n negativeveryverythinmathspace: -1 / 18,\n negativeverythinmathspace: -2 / 18,\n negativethinmathspace: -3 / 18,\n negativemediummathspace: -4 / 18,\n negativethickmathspace: -5 / 18,\n negativeverythickmathspace: -6 / 18,\n negativeveryverythickmathspace: -7 / 18,\n thin: .04,\n medium: .06,\n thick: .1,\n normal: 1,\n big: 2,\n small: 1 / Math.sqrt(2),\n infinity: exports.BIGDIMEN\n};\nfunction length2em(length, size, scale, em) {\n if (size === void 0) { size = 0; }\n if (scale === void 0) { scale = 1; }\n if (em === void 0) { em = 16; }\n if (typeof length !== 'string') {\n length = String(length);\n }\n if (length === '' || length == null) {\n return size;\n }\n if (exports.MATHSPACE[length]) {\n return exports.MATHSPACE[length];\n }\n var match = length.match(/^\\s*([-+]?(?:\\.\\d+|\\d+(?:\\.\\d*)?))?(pt|em|ex|mu|px|pc|in|mm|cm|%)?/);\n if (!match) {\n return size;\n }\n var m = parseFloat(match[1] || '1'), unit = match[2];\n if (exports.UNITS.hasOwnProperty(unit)) {\n return m * exports.UNITS[unit] / em / scale;\n }\n if (exports.RELUNITS.hasOwnProperty(unit)) {\n return m * exports.RELUNITS[unit];\n }\n if (unit === '%') {\n return m / 100 * size;\n }\n return m * size;\n}\nexports.length2em = length2em;\nfunction percent(m) {\n return (100 * m).toFixed(1).replace(/\\.?0+$/, '') + '%';\n}\nexports.percent = percent;\nfunction em(m) {\n if (Math.abs(m) < .001)\n return '0';\n return (m.toFixed(3).replace(/\\.?0+$/, '')) + 'em';\n}\nexports.em = em;\nfunction emRounded(m, em) {\n if (em === void 0) { em = 16; }\n m = (Math.round(m * em) + .05) / em;\n if (Math.abs(m) < .001)\n return '0em';\n return m.toFixed(3).replace(/\\.?0+$/, '') + 'em';\n}\nexports.emRounded = emRounded;\nfunction px(m, M, em) {\n if (M === void 0) { M = -exports.BIGDIMEN; }\n if (em === void 0) { em = 16; }\n m *= em;\n if (M && m < M)\n m = M;\n if (Math.abs(m) < .1)\n return '0';\n return m.toFixed(1).replace(/\\.0$/, '') + 'px';\n}\nexports.px = px;\n//# sourceMappingURL=lengths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.max = exports.sum = void 0;\nfunction sum(A) {\n return A.reduce(function (a, b) { return a + b; }, 0);\n}\nexports.sum = sum;\nfunction max(A) {\n return A.reduce(function (a, b) { return Math.max(a, b); }, 0);\n}\nexports.max = max;\n//# sourceMappingURL=numeric.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.split = exports.isPercent = exports.unicodeString = exports.unicodeChars = exports.quotePattern = exports.sortLength = void 0;\nfunction sortLength(a, b) {\n return a.length !== b.length ? b.length - a.length : a === b ? 0 : a < b ? -1 : 1;\n}\nexports.sortLength = sortLength;\nfunction quotePattern(text) {\n return text.replace(/([\\^$(){}+*?\\-|\\[\\]\\:\\\\])/g, '\\\\$1');\n}\nexports.quotePattern = quotePattern;\nfunction unicodeChars(text) {\n return Array.from(text).map(function (c) { return c.codePointAt(0); });\n}\nexports.unicodeChars = unicodeChars;\nfunction unicodeString(data) {\n return String.fromCodePoint.apply(String, __spreadArray([], __read(data), false));\n}\nexports.unicodeString = unicodeString;\nfunction isPercent(x) {\n return !!x.match(/%\\s*$/);\n}\nexports.isPercent = isPercent;\nfunction split(x) {\n return x.trim().split(/\\s+/);\n}\nexports.split = split;\n//# sourceMappingURL=string.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractEntry = void 0;\nvar menu_element_js_1 = require(\"./menu_element.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar AbstractEntry = (function (_super) {\n __extends(AbstractEntry, _super);\n function AbstractEntry(_menu, _type) {\n var _this = _super.call(this) || this;\n _this._menu = _menu;\n _this._type = _type;\n _this.className = html_classes_js_1.HtmlClasses['MENUITEM'];\n _this.role = 'menuitem';\n _this.hidden = false;\n return _this;\n }\n Object.defineProperty(AbstractEntry.prototype, \"menu\", {\n get: function () {\n return this._menu;\n },\n set: function (menu) {\n this._menu = menu;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractEntry.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n AbstractEntry.prototype.hide = function () {\n this.hidden = true;\n this.menu.generateMenu();\n };\n AbstractEntry.prototype.show = function () {\n this.hidden = false;\n this.menu.generateMenu();\n };\n AbstractEntry.prototype.isHidden = function () {\n return this.hidden;\n };\n return AbstractEntry;\n}(menu_element_js_1.MenuElement));\nexports.AbstractEntry = AbstractEntry;\n//# sourceMappingURL=abstract_entry.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractItem = void 0;\nvar abstract_entry_js_1 = require(\"./abstract_entry.js\");\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar AbstractItem = (function (_super) {\n __extends(AbstractItem, _super);\n function AbstractItem(menu, type, _content, id) {\n var _this = _super.call(this, menu, type) || this;\n _this._content = _content;\n _this.disabled = false;\n _this.callbacks = [];\n _this._id = id ? id : _content;\n return _this;\n }\n Object.defineProperty(AbstractItem.prototype, \"content\", {\n get: function () {\n return this._content;\n },\n set: function (content) {\n this._content = content;\n this.generateHtml();\n if (this.menu) {\n this.menu.generateHtml();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractItem.prototype, \"id\", {\n get: function () {\n return this._id;\n },\n enumerable: false,\n configurable: true\n });\n AbstractItem.prototype.press = function () {\n if (!this.disabled) {\n this.executeAction();\n this.executeCallbacks_();\n }\n };\n AbstractItem.prototype.executeAction = function () { };\n AbstractItem.prototype.registerCallback = function (func) {\n if (this.callbacks.indexOf(func) === -1) {\n this.callbacks.push(func);\n }\n };\n AbstractItem.prototype.unregisterCallback = function (func) {\n var index = this.callbacks.indexOf(func);\n if (index !== -1) {\n this.callbacks.splice(index, 1);\n }\n };\n AbstractItem.prototype.mousedown = function (event) {\n this.press();\n this.stop(event);\n };\n AbstractItem.prototype.mouseover = function (event) {\n this.focus();\n this.stop(event);\n };\n AbstractItem.prototype.mouseout = function (event) {\n this.deactivate();\n this.stop(event);\n };\n AbstractItem.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n var html = this.html;\n html.setAttribute('aria-disabled', 'false');\n html.textContent = this.content;\n };\n AbstractItem.prototype.activate = function () {\n if (!this.disabled) {\n this.html.classList.add(html_classes_js_1.HtmlClasses['MENUACTIVE']);\n }\n };\n AbstractItem.prototype.deactivate = function () {\n this.html.classList.remove(html_classes_js_1.HtmlClasses['MENUACTIVE']);\n };\n AbstractItem.prototype.focus = function () {\n this.menu.focused = this;\n _super.prototype.focus.call(this);\n this.activate();\n };\n AbstractItem.prototype.unfocus = function () {\n this.deactivate();\n _super.prototype.unfocus.call(this);\n };\n AbstractItem.prototype.escape = function (_event) {\n menu_util_js_1.MenuUtil.close(this);\n };\n AbstractItem.prototype.up = function (event) {\n this.menu.up(event);\n };\n AbstractItem.prototype.down = function (event) {\n this.menu.down(event);\n };\n AbstractItem.prototype.left = function (event) {\n this.menu.left(event);\n };\n AbstractItem.prototype.right = function (event) {\n this.menu.right(event);\n };\n AbstractItem.prototype.space = function (_event) {\n this.press();\n };\n AbstractItem.prototype.disable = function () {\n this.disabled = true;\n var html = this.html;\n html.classList.add(html_classes_js_1.HtmlClasses['MENUDISABLED']);\n html.setAttribute('aria-disabled', 'true');\n };\n AbstractItem.prototype.enable = function () {\n this.disabled = false;\n var html = this.html;\n html.classList.remove(html_classes_js_1.HtmlClasses['MENUDISABLED']);\n html.removeAttribute('aria-disabled');\n };\n AbstractItem.prototype.executeCallbacks_ = function () {\n var e_1, _a;\n try {\n for (var _b = __values(this.callbacks), _c = _b.next(); !_c.done; _c = _b.next()) {\n var func = _c.value;\n try {\n func(this);\n }\n catch (e) {\n menu_util_js_1.MenuUtil.error(e, 'Callback for menu entry ' + this.id +\n ' failed.');\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n return AbstractItem;\n}(abstract_entry_js_1.AbstractEntry));\nexports.AbstractItem = AbstractItem;\n//# sourceMappingURL=abstract_item.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractMenu = void 0;\nvar abstract_postable_js_1 = require(\"./abstract_postable.js\");\nvar abstract_item_js_1 = require(\"./abstract_item.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar item_submenu_js_1 = require(\"./item_submenu.js\");\nvar AbstractMenu = (function (_super) {\n __extends(AbstractMenu, _super);\n function AbstractMenu() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.className = html_classes_js_1.HtmlClasses['CONTEXTMENU'];\n _this.role = 'menu';\n _this._items = [];\n _this._baseMenu = null;\n return _this;\n }\n Object.defineProperty(AbstractMenu.prototype, \"baseMenu\", {\n get: function () {\n return this._baseMenu;\n },\n set: function (menu) {\n this._baseMenu = menu;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMenu.prototype, \"items\", {\n get: function () {\n return this._items;\n },\n set: function (items) {\n this._items = items;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMenu.prototype, \"pool\", {\n get: function () {\n return this.variablePool;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractMenu.prototype, \"focused\", {\n get: function () {\n return this._focused;\n },\n set: function (item) {\n if (this._focused === item) {\n return;\n }\n if (!this._focused) {\n this.unfocus();\n }\n var old = this._focused;\n this._focused = item;\n if (old) {\n old.unfocus();\n }\n },\n enumerable: false,\n configurable: true\n });\n AbstractMenu.prototype.up = function (_event) {\n var items = this.items.filter(function (x) { return (x instanceof abstract_item_js_1.AbstractItem) && (!x.isHidden()); });\n if (items.length === 0) {\n return;\n }\n if (!this.focused) {\n items[items.length - 1].focus();\n return;\n }\n var index = items.indexOf(this.focused);\n if (index === -1) {\n return;\n }\n index = index ? --index : items.length - 1;\n items[index].focus();\n };\n AbstractMenu.prototype.down = function (_event) {\n var items = this.items.filter(function (x) { return (x instanceof abstract_item_js_1.AbstractItem) && (!x.isHidden()); });\n if (items.length === 0) {\n return;\n }\n if (!this.focused) {\n items[0].focus();\n return;\n }\n var index = items.indexOf(this.focused);\n if (index === -1) {\n return;\n }\n index++;\n index = (index === items.length) ? 0 : index;\n items[index].focus();\n };\n AbstractMenu.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n this.generateMenu();\n };\n AbstractMenu.prototype.generateMenu = function () {\n var e_1, _a;\n var html = this.html;\n html.classList.add(html_classes_js_1.HtmlClasses['MENU']);\n try {\n for (var _b = __values(this.items), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n if (!item.isHidden()) {\n html.appendChild(item.html);\n continue;\n }\n var itemHtml = item.html;\n if (itemHtml.parentNode) {\n itemHtml.parentNode.removeChild(itemHtml);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n AbstractMenu.prototype.post = function (x, y) {\n this.variablePool.update();\n _super.prototype.post.call(this, x, y);\n };\n AbstractMenu.prototype.unpostSubmenus = function () {\n var e_2, _a;\n var submenus = this.items.filter(function (x) { return x instanceof item_submenu_js_1.Submenu; });\n try {\n for (var submenus_1 = __values(submenus), submenus_1_1 = submenus_1.next(); !submenus_1_1.done; submenus_1_1 = submenus_1.next()) {\n var submenu = submenus_1_1.value;\n submenu.submenu.unpost();\n if (submenu !== this.focused) {\n submenu.unfocus();\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (submenus_1_1 && !submenus_1_1.done && (_a = submenus_1.return)) _a.call(submenus_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n AbstractMenu.prototype.unpost = function () {\n _super.prototype.unpost.call(this);\n this.unpostSubmenus();\n this.focused = null;\n };\n AbstractMenu.prototype.find = function (id) {\n var e_3, _a;\n try {\n for (var _b = __values(this.items), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n if (item.type === 'rule') {\n continue;\n }\n if (item.id === id) {\n return item;\n }\n if (item.type === 'submenu') {\n var result = item.submenu.find(id);\n if (result) {\n return result;\n }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return null;\n };\n return AbstractMenu;\n}(abstract_postable_js_1.AbstractPostable));\nexports.AbstractMenu = AbstractMenu;\n//# sourceMappingURL=abstract_menu.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractNavigatable = void 0;\nvar key_navigatable_js_1 = require(\"./key_navigatable.js\");\nvar mouse_navigatable_js_1 = require(\"./mouse_navigatable.js\");\nvar AbstractNavigatable = (function () {\n function AbstractNavigatable() {\n this.bubble = false;\n }\n AbstractNavigatable.prototype.bubbleKey = function () {\n this.bubble = true;\n };\n AbstractNavigatable.prototype.keydown = function (event) {\n switch (event.keyCode) {\n case key_navigatable_js_1.KEY.ESCAPE:\n this.escape(event);\n break;\n case key_navigatable_js_1.KEY.RIGHT:\n this.right(event);\n break;\n case key_navigatable_js_1.KEY.LEFT:\n this.left(event);\n break;\n case key_navigatable_js_1.KEY.UP:\n this.up(event);\n break;\n case key_navigatable_js_1.KEY.DOWN:\n this.down(event);\n break;\n case key_navigatable_js_1.KEY.RETURN:\n case key_navigatable_js_1.KEY.SPACE:\n this.space(event);\n break;\n default:\n return;\n }\n this.bubble ? this.bubble = false : this.stop(event);\n };\n AbstractNavigatable.prototype.escape = function (_event) { };\n AbstractNavigatable.prototype.space = function (_event) { };\n AbstractNavigatable.prototype.left = function (_event) { };\n AbstractNavigatable.prototype.right = function (_event) { };\n AbstractNavigatable.prototype.up = function (_event) { };\n AbstractNavigatable.prototype.down = function (_event) { };\n AbstractNavigatable.prototype.stop = function (event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n event.cancelBubble = true;\n }\n };\n AbstractNavigatable.prototype.mousedown = function (event) {\n return this.stop(event);\n };\n AbstractNavigatable.prototype.mouseup = function (event) {\n return this.stop(event);\n };\n AbstractNavigatable.prototype.mouseover = function (event) {\n return this.stop(event);\n };\n AbstractNavigatable.prototype.mouseout = function (event) {\n return this.stop(event);\n };\n AbstractNavigatable.prototype.click = function (event) {\n return this.stop(event);\n };\n AbstractNavigatable.prototype.addEvents = function (element) {\n element.addEventListener(mouse_navigatable_js_1.MOUSE.DOWN, this.mousedown.bind(this));\n element.addEventListener(mouse_navigatable_js_1.MOUSE.UP, this.mouseup.bind(this));\n element.addEventListener(mouse_navigatable_js_1.MOUSE.OVER, this.mouseover.bind(this));\n element.addEventListener(mouse_navigatable_js_1.MOUSE.OUT, this.mouseout.bind(this));\n element.addEventListener(mouse_navigatable_js_1.MOUSE.CLICK, this.click.bind(this));\n element.addEventListener('keydown', this.keydown.bind(this));\n element.addEventListener('dragstart', this.stop.bind(this));\n element.addEventListener(mouse_navigatable_js_1.MOUSE.SELECTSTART, this.stop.bind(this));\n element.addEventListener('contextmenu', this.stop.bind(this));\n element.addEventListener(mouse_navigatable_js_1.MOUSE.DBLCLICK, this.stop.bind(this));\n };\n return AbstractNavigatable;\n}());\nexports.AbstractNavigatable = AbstractNavigatable;\n//# sourceMappingURL=abstract_navigatable.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractPostable = void 0;\nvar menu_element_js_1 = require(\"./menu_element.js\");\nvar AbstractPostable = (function (_super) {\n __extends(AbstractPostable, _super);\n function AbstractPostable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.posted = false;\n return _this;\n }\n AbstractPostable.prototype.isPosted = function () {\n return this.posted;\n };\n AbstractPostable.prototype.post = function (x, y) {\n if (this.posted) {\n return;\n }\n if (typeof (x) !== 'undefined' && typeof (y) !== 'undefined') {\n this.html.setAttribute('style', 'left: ' + x + 'px; top: ' + y + 'px;');\n }\n this.display();\n this.posted = true;\n };\n AbstractPostable.prototype.unpost = function () {\n if (!this.posted) {\n return;\n }\n var html = this.html;\n if (html.parentNode) {\n html.parentNode.removeChild(html);\n }\n this.posted = false;\n };\n return AbstractPostable;\n}(menu_element_js_1.MenuElement));\nexports.AbstractPostable = AbstractPostable;\n//# sourceMappingURL=abstract_postable.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractVariableItem = void 0;\nvar abstract_item_js_1 = require(\"./abstract_item.js\");\nvar AbstractVariableItem = (function (_super) {\n __extends(AbstractVariableItem, _super);\n function AbstractVariableItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AbstractVariableItem.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n var html = this.html;\n if (!this.span) {\n this.generateSpan();\n }\n html.appendChild(this.span);\n this.update();\n };\n AbstractVariableItem.prototype.register = function () {\n this.variable.register(this);\n };\n AbstractVariableItem.prototype.unregister = function () {\n this.variable.unregister(this);\n };\n AbstractVariableItem.prototype.update = function () {\n this.updateAria();\n if (this.span) {\n this.updateSpan();\n }\n };\n return AbstractVariableItem;\n}(abstract_item_js_1.AbstractItem));\nexports.AbstractVariableItem = AbstractVariableItem;\n//# sourceMappingURL=abstract_variable_item.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloseButton = void 0;\nvar abstract_postable_js_1 = require(\"./abstract_postable.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar CloseButton = (function (_super) {\n __extends(CloseButton, _super);\n function CloseButton(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n _this.className = html_classes_js_1.HtmlClasses['MENUCLOSE'];\n _this.role = 'button';\n return _this;\n }\n CloseButton.prototype.generateHtml = function () {\n var html = document.createElement('span');\n html.classList.add(this.className);\n html.setAttribute('role', this.role);\n html.setAttribute('tabindex', '0');\n var content = document.createElement('span');\n content.textContent = '\\u00D7';\n html.appendChild(content);\n this.html = html;\n };\n CloseButton.prototype.display = function () { };\n CloseButton.prototype.unpost = function () {\n _super.prototype.unpost.call(this);\n this.element.unpost();\n };\n CloseButton.prototype.keydown = function (event) {\n this.bubbleKey();\n _super.prototype.keydown.call(this, event);\n };\n CloseButton.prototype.space = function (event) {\n this.unpost();\n this.stop(event);\n };\n CloseButton.prototype.mousedown = function (event) {\n this.unpost();\n this.stop(event);\n };\n return CloseButton;\n}(abstract_postable_js_1.AbstractPostable));\nexports.CloseButton = CloseButton;\n//# sourceMappingURL=close_button.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextMenu = void 0;\nvar abstract_menu_js_1 = require(\"./abstract_menu.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar menu_store_js_1 = require(\"./menu_store.js\");\nvar variable_pool_js_1 = require(\"./variable_pool.js\");\nvar ContextMenu = (function (_super) {\n __extends(ContextMenu, _super);\n function ContextMenu(factory) {\n var _this = _super.call(this) || this;\n _this.factory = factory;\n _this.id = '';\n _this.moving = false;\n _this._store = new menu_store_js_1.MenuStore(_this);\n _this.widgets = [];\n _this.variablePool = new variable_pool_js_1.VariablePool();\n return _this;\n }\n ContextMenu.fromJson = function (factory, _a) {\n var pool = _a.pool, items = _a.items, _b = _a.id, id = _b === void 0 ? '' : _b;\n var ctxtMenu = new this(factory);\n ctxtMenu.id = id;\n var varParser = factory.get('variable');\n pool.forEach(function (x) { return varParser(factory, x, ctxtMenu.pool); });\n var itemList = factory.get('items')(factory, items, ctxtMenu);\n ctxtMenu.items = itemList;\n return ctxtMenu;\n };\n ContextMenu.prototype.generateHtml = function () {\n if (this.isPosted()) {\n this.unpost();\n }\n _super.prototype.generateHtml.call(this);\n this._frame = document.createElement('div');\n this._frame.classList.add(html_classes_js_1.HtmlClasses['MENUFRAME']);\n var styleString = 'left: 0px; top: 0px; z-index: 200; width: 100%; ' +\n 'height: 100%; border: 0px; padding: 0px; margin: 0px;';\n this._frame.setAttribute('style', 'position: absolute; ' + styleString);\n var innerDiv = document.createElement('div');\n innerDiv.setAttribute('style', 'position: fixed; ' + styleString);\n this._frame.appendChild(innerDiv);\n innerDiv.addEventListener('mousedown', function (event) {\n this.unpost();\n this.unpostWidgets();\n this.stop(event);\n }.bind(this));\n };\n ContextMenu.prototype.display = function () {\n document.body.appendChild(this.frame);\n this.frame.appendChild(this.html);\n this.focus();\n };\n ContextMenu.prototype.escape = function (_event) {\n this.unpost();\n this.unpostWidgets();\n };\n ContextMenu.prototype.unpost = function () {\n _super.prototype.unpost.call(this);\n if (this.widgets.length > 0) {\n return;\n }\n this.frame.parentNode.removeChild(this.frame);\n var store = this.store;\n if (!this.moving) {\n store.insertTaborder();\n }\n store.active.focus();\n };\n ContextMenu.prototype.left = function (_event) {\n this.move_(this.store.previous());\n };\n ContextMenu.prototype.right = function (_event) {\n this.move_(this.store.next());\n };\n Object.defineProperty(ContextMenu.prototype, \"frame\", {\n get: function () {\n return this._frame;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenu.prototype, \"store\", {\n get: function () {\n return this._store;\n },\n enumerable: false,\n configurable: true\n });\n ContextMenu.prototype.post = function (numberOrEvent, isY) {\n if (typeof (isY) !== 'undefined') {\n if (!this.moving) {\n this.store.removeTaborder();\n }\n _super.prototype.post.call(this, numberOrEvent, isY);\n return;\n }\n var event = numberOrEvent;\n var node;\n if (event instanceof Event) {\n node = event.target;\n this.stop(event);\n }\n else {\n node = event;\n }\n var x;\n var y;\n if (event instanceof MouseEvent) {\n x = event.pageX, y = event.pageY;\n if (!x && !y && event.clientX) {\n x = event.clientX + document.body.scrollLeft +\n document.documentElement.scrollLeft;\n y = event.clientY + document.body.scrollTop +\n document.documentElement.scrollTop;\n }\n }\n if (!x && !y && node) {\n var offsetX = window.pageXOffset || document.documentElement.scrollLeft;\n var offsetY = window.pageYOffset || document.documentElement.scrollTop;\n var rect = node.getBoundingClientRect();\n x = (rect.right + rect.left) / 2 + offsetX;\n y = (rect.bottom + rect.top) / 2 + offsetY;\n }\n this.store.active = node;\n this.anchor = this.store.active;\n var menu = this.html;\n var margin = 5;\n if (x + menu.offsetWidth > document.body.offsetWidth - margin) {\n x = document.body.offsetWidth - menu.offsetWidth - margin;\n }\n this.post(x, y);\n };\n ContextMenu.prototype.registerWidget = function (widget) {\n this.widgets.push(widget);\n };\n ContextMenu.prototype.unregisterWidget = function (widget) {\n var index = this.widgets.indexOf(widget);\n if (index > -1) {\n this.widgets.splice(index, 1);\n }\n if (this.widgets.length === 0) {\n this.unpost();\n }\n };\n ContextMenu.prototype.unpostWidgets = function () {\n this.widgets.forEach(function (x) { return x.unpost(); });\n };\n ContextMenu.prototype.toJson = function () {\n return { type: '' };\n };\n ContextMenu.prototype.move_ = function (next) {\n if (this.anchor && next !== this.anchor) {\n this.moving = true;\n this.unpost();\n this.post(next);\n this.moving = false;\n }\n };\n return ContextMenu;\n}(abstract_menu_js_1.AbstractMenu));\nexports.ContextMenu = ContextMenu;\n//# sourceMappingURL=context_menu.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CssStyles = void 0;\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar CssStyles;\n(function (CssStyles) {\n function makeClass_(name) {\n return '.' + (html_classes_js_1.HtmlClasses[name] || name);\n }\n var INFO_STYLES = {};\n INFO_STYLES[makeClass_('INFOCLOSE')] = '{' +\n ' top:.2em; right:.2em;' +\n '}',\n INFO_STYLES[makeClass_('INFOCONTENT')] = '{' +\n ' overflow:auto; text-align:left; font-size:80%;' +\n ' padding:.4em .6em; border:1px inset; margin:1em 0px;' +\n ' max-height:20em; max-width:30em; background-color:#EEEEEE;' +\n ' white-space:normal;' +\n '}',\n INFO_STYLES[makeClass_('INFO') + makeClass_('MOUSEPOST')] = '{' +\n 'outline:none;' +\n '}',\n INFO_STYLES[makeClass_('INFO')] = '{' +\n ' position:fixed; left:50%; width:auto; text-align:center;' +\n ' border:3px outset; padding:1em 2em; background-color:#DDDDDD;' +\n ' color:black;' +\n ' cursor:default; font-family:message-box; font-size:120%;' +\n ' font-style:normal; text-indent:0; text-transform:none;' +\n ' line-height:normal; letter-spacing:normal; word-spacing:normal;' +\n ' word-wrap:normal; white-space:nowrap; float:none; z-index:201;' +\n ' border-radius: 15px; /* Opera 10.5 and IE9 */' +\n ' -webkit-border-radius:15px; /* Safari and Chrome */' +\n ' -moz-border-radius:15px; /* Firefox */' +\n ' -khtml-border-radius:15px; /* Konqueror */' +\n ' box-shadow:0px 10px 20px #808080; /* Opera 10.5 and IE9 */' +\n ' -webkit-box-shadow:0px 10px 20px #808080; /* Safari 3 & Chrome */' +\n ' -moz-box-shadow:0px 10px 20px #808080; /* Forefox 3.5 */' +\n ' -khtml-box-shadow:0px 10px 20px #808080; /* Konqueror */' +\n ' filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=2,' +\n ' OffY=2, Color=\"gray\", Positive=\"true\"); /* IE */' +\n '}';\n var MENU_STYLES = {};\n MENU_STYLES[makeClass_('MENU')] = '{' +\n ' position:absolute;' +\n ' background-color:white;' +\n ' color:black;' +\n ' width:auto; padding:5px 0px;' +\n ' border:1px solid #CCCCCC; margin:0; cursor:default;' +\n ' font: menu; text-align:left; text-indent:0; text-transform:none;' +\n ' line-height:normal; letter-spacing:normal; word-spacing:normal;' +\n ' word-wrap:normal; white-space:nowrap; float:none; z-index:201;' +\n ' border-radius: 5px; /* Opera 10.5 and IE9 */' +\n ' -webkit-border-radius: 5px; /* Safari and Chrome */' +\n ' -moz-border-radius: 5px; /* Firefox */' +\n ' -khtml-border-radius: 5px; /* Konqueror */' +\n ' box-shadow:0px 10px 20px #808080; /* Opera 10.5 and IE9 */' +\n ' -webkit-box-shadow:0px 10px 20px #808080; /* Safari 3 & Chrome */' +\n ' -moz-box-shadow:0px 10px 20px #808080; /* Forefox 3.5 */' +\n ' -khtml-box-shadow:0px 10px 20px #808080; /* Konqueror */' +\n '}',\n MENU_STYLES[makeClass_('MENUITEM')] = '{' +\n ' padding: 1px 2em;' +\n ' background:transparent;' +\n '}',\n MENU_STYLES[makeClass_('MENUARROW')] = '{' +\n ' position:absolute; right:.5em; padding-top:.25em; color:#666666;' +\n ' font-family: null; font-size: .75em' +\n '}',\n MENU_STYLES[makeClass_('MENUACTIVE') + ' ' + makeClass_('MENUARROW')] =\n '{color:white}',\n MENU_STYLES[makeClass_('MENUARROW') + makeClass_('RTL')] =\n '{left:.5em; right:auto}',\n MENU_STYLES[makeClass_('MENUCHECK')] = '{' +\n ' position:absolute; left:.7em;' +\n ' font-family: null' +\n '}',\n MENU_STYLES[makeClass_('MENUCHECK') + makeClass_('RTL')] =\n '{ right:.7em; left:auto }',\n MENU_STYLES[makeClass_('MENURADIOCHECK')] = '{' +\n ' position:absolute; left: .7em;' +\n '}',\n MENU_STYLES[makeClass_('MENURADIOCHECK') + makeClass_('RTL')] = '{' +\n ' right: .7em; left:auto' +\n '}',\n MENU_STYLES[makeClass_('MENUINPUTBOX')] = '{' +\n ' padding-left: 1em; right:.5em; color:#666666;' +\n ' font-family: null;' +\n '}',\n MENU_STYLES[makeClass_('MENUINPUTBOX') + makeClass_('RTL')] = '{' +\n ' left: .1em;' +\n '}',\n MENU_STYLES[makeClass_('MENUCOMBOBOX')] = '{' +\n ' left:.1em; padding-bottom:.5em;' +\n '}',\n MENU_STYLES[makeClass_('MENUSLIDER')] = '{' +\n ' left: .1em;' +\n '}',\n MENU_STYLES[makeClass_('SLIDERVALUE')] = '{' +\n ' position:absolute; right:.1em; padding-top:.25em; color:#333333;' +\n ' font-size: .75em' +\n '}',\n MENU_STYLES[makeClass_('SLIDERBAR')] = '{' +\n ' outline: none; background: #d3d3d3' +\n '}',\n MENU_STYLES[makeClass_('MENULABEL')] = '{' +\n ' padding: 1px 2em 3px 1.33em;' +\n ' font-style:italic' +\n '}',\n MENU_STYLES[makeClass_('MENURULE')] = '{' +\n ' border-top: 1px solid #DDDDDD;' +\n ' margin: 4px 3px;' +\n '}',\n MENU_STYLES[makeClass_('MENUDISABLED')] = '{' +\n ' color:GrayText' +\n '}',\n MENU_STYLES[makeClass_('MENUACTIVE')] = '{' +\n ' background-color: #606872;' +\n ' color: white;' +\n '}',\n MENU_STYLES[makeClass_('MENUDISABLED') + ':focus'] = '{' +\n ' background-color: #E8E8E8' +\n '}',\n MENU_STYLES[makeClass_('MENULABEL') + ':focus'] = '{' +\n ' background-color: #E8E8E8' +\n '}',\n MENU_STYLES[makeClass_('CONTEXTMENU') + ':focus'] = '{' +\n ' outline:none' +\n '}',\n MENU_STYLES[makeClass_('CONTEXTMENU') + ' ' +\n makeClass_('MENUITEM') + ':focus'] = '{' +\n ' outline:none' +\n '}',\n MENU_STYLES[makeClass_('SELECTIONMENU')] = '{' +\n ' position:relative; float:left;' +\n ' border-bottom: none;' +\n ' -webkit-box-shadow:none;' +\n ' -webkit-border-radius:0px; ' +\n '}',\n MENU_STYLES[makeClass_('SELECTIONITEM')] = '{' +\n ' padding-right: 1em;' +\n '}',\n MENU_STYLES[makeClass_('SELECTION')] = '{' +\n ' right: 40%; width:50%; ' +\n '}',\n MENU_STYLES[makeClass_('SELECTIONBOX')] = '{' +\n ' padding: 0em; max-height:20em; max-width: none;' +\n ' background-color:#FFFFFF;' +\n '}',\n MENU_STYLES[makeClass_('SELECTIONDIVIDER')] = '{' +\n ' clear: both; border-top: 2px solid #000000;' +\n '}',\n MENU_STYLES[makeClass_('MENU') + ' ' + makeClass_('MENUCLOSE')] = '{' +\n ' top:-10px; left:-10px' +\n '}';\n var CLOSE_ICON_STYLES = {};\n CLOSE_ICON_STYLES[makeClass_('MENUCLOSE')] = '{' +\n ' position:absolute;' +\n ' cursor:pointer;' +\n ' display:inline-block;' +\n ' border:2px solid #AAA;' +\n ' border-radius:18px;' +\n ' -webkit-border-radius: 18px; /* Safari and Chrome */' +\n ' -moz-border-radius: 18px; /* Firefox */' +\n ' -khtml-border-radius: 18px; /* Konqueror */' +\n ' font-family: \"Courier New\", Courier;' +\n ' font-size:24px;' +\n ' color:#F0F0F0' +\n '}',\n CLOSE_ICON_STYLES[makeClass_('MENUCLOSE') + ' span'] = '{' +\n ' display:block; background-color:#AAA; border:1.5px solid;' +\n ' border-radius:18px;' +\n ' -webkit-border-radius: 18px; /* Safari and Chrome */' +\n ' -moz-border-radius: 18px; /* Firefox */' +\n ' -khtml-border-radius: 18px; /* Konqueror */' +\n ' line-height:0;' +\n ' padding:8px 0 6px /* may need to be browser-specific */' +\n '}',\n CLOSE_ICON_STYLES[makeClass_('MENUCLOSE') + ':hover'] = '{' +\n ' color:white!important;' +\n ' border:2px solid #CCC!important' +\n '}',\n CLOSE_ICON_STYLES[makeClass_('MENUCLOSE') + ':hover span'] = '{' +\n ' background-color:#CCC!important' +\n '}',\n CLOSE_ICON_STYLES[makeClass_('MENUCLOSE') + ':hover:focus'] = '{' +\n ' outline:none' +\n '}';\n var INFO_ADDED = false;\n var MENU_ADDED = false;\n var CLOSE_ICON_ADDED = false;\n function addMenuStyles(opt_document) {\n if (MENU_ADDED) {\n return;\n }\n addStyles_(MENU_STYLES, opt_document);\n MENU_ADDED = true;\n addCloseIconStyles_(opt_document);\n }\n CssStyles.addMenuStyles = addMenuStyles;\n function addInfoStyles(opt_document) {\n if (INFO_ADDED) {\n return;\n }\n addStyles_(INFO_STYLES, opt_document);\n INFO_ADDED = true;\n addCloseIconStyles_(opt_document);\n }\n CssStyles.addInfoStyles = addInfoStyles;\n function addCloseIconStyles_(opt_document) {\n if (CLOSE_ICON_ADDED) {\n return;\n }\n addStyles_(CLOSE_ICON_STYLES, opt_document);\n CLOSE_ICON_ADDED = true;\n }\n function addStyles_(styles, opt_document) {\n var doc = opt_document || document;\n var element = doc.createElement('style');\n element.type = 'text/css';\n var inner = '';\n for (var style in styles) {\n inner += style;\n inner += ' ';\n inner += styles[style];\n inner += '\\n';\n }\n element.innerHTML = inner;\n doc.head.appendChild(element);\n }\n})(CssStyles = exports.CssStyles || (exports.CssStyles = {}));\n//# sourceMappingURL=css_util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HtmlAttrs = exports.HtmlClasses = void 0;\nvar PREFIX = 'CtxtMenu';\nfunction prefix_(name) {\n return PREFIX + '_' + name;\n}\nfunction prefixClass_(name) {\n return prefix_(name);\n}\nfunction prefixAttr_(name) {\n return prefix_(name);\n}\nexports.HtmlClasses = {\n ATTACHED: prefixClass_('Attached'),\n CONTEXTMENU: prefixClass_('ContextMenu'),\n MENU: prefixClass_('Menu'),\n MENUARROW: prefixClass_('MenuArrow'),\n MENUACTIVE: prefixClass_('MenuActive'),\n MENUCHECK: prefixClass_('MenuCheck'),\n MENUCLOSE: prefixClass_('MenuClose'),\n MENUCOMBOBOX: prefixClass_('MenuComboBox'),\n MENUDISABLED: prefixClass_('MenuDisabled'),\n MENUFRAME: prefixClass_('MenuFrame'),\n MENUITEM: prefixClass_('MenuItem'),\n MENULABEL: prefixClass_('MenuLabel'),\n MENURADIOCHECK: prefixClass_('MenuRadioCheck'),\n MENUINPUTBOX: prefixClass_('MenuInputBox'),\n MENURULE: prefixClass_('MenuRule'),\n MENUSLIDER: prefixClass_('MenuSlider'),\n MOUSEPOST: prefixClass_('MousePost'),\n RTL: prefixClass_('RTL'),\n INFO: prefixClass_('Info'),\n INFOCLOSE: prefixClass_('InfoClose'),\n INFOCONTENT: prefixClass_('InfoContent'),\n INFOSIGNATURE: prefixClass_('InfoSignature'),\n INFOTITLE: prefixClass_('InfoTitle'),\n SLIDERVALUE: prefixClass_('SliderValue'),\n SLIDERBAR: prefixClass_('SliderBar'),\n SELECTION: prefixClass_('Selection'),\n SELECTIONBOX: prefixClass_('SelectionBox'),\n SELECTIONMENU: prefixClass_('SelectionMenu'),\n SELECTIONDIVIDER: prefixClass_('SelectionDivider'),\n SELECTIONITEM: prefixClass_('SelectionItem')\n};\nexports.HtmlAttrs = {\n COUNTER: prefixAttr_('Counter'),\n KEYDOWNFUNC: prefixAttr_('keydownFunc'),\n CONTEXTMENUFUNC: prefixAttr_('contextmenuFunc'),\n OLDTAB: prefixAttr_('Oldtabindex'),\n TOUCHFUNC: prefixAttr_('TouchFunc'),\n};\n//# sourceMappingURL=html_classes.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Info = void 0;\nvar close_button_js_1 = require(\"./close_button.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar abstract_postable_js_1 = require(\"./abstract_postable.js\");\nvar Info = (function (_super) {\n __extends(Info, _super);\n function Info(title, content, signature) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.signature = signature;\n _this.className = html_classes_js_1.HtmlClasses['INFO'];\n _this.role = 'dialog';\n _this.contentDiv = _this.generateContent();\n _this.close = _this.generateClose();\n _this.content = content || function () { return ''; };\n return _this;\n }\n Info.prototype.attachMenu = function (menu) {\n this.menu = menu;\n };\n Info.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n var html = this.html;\n html.appendChild(this.generateTitle());\n html.appendChild(this.contentDiv);\n html.appendChild(this.generateSignature());\n html.appendChild(this.close.html);\n html.setAttribute('tabindex', '0');\n };\n Info.prototype.post = function () {\n _super.prototype.post.call(this);\n var doc = document.documentElement;\n var html = this.html;\n var H = window.innerHeight || doc.clientHeight || doc.scrollHeight || 0;\n var x = Math.floor((-html.offsetWidth) / 2);\n var y = Math.floor((H - html.offsetHeight) / 3);\n html.setAttribute('style', 'margin-left: ' + x + 'px; top: ' + y + 'px;');\n if (window.event instanceof MouseEvent) {\n html.classList.add(html_classes_js_1.HtmlClasses['MOUSEPOST']);\n }\n html.focus();\n };\n Info.prototype.display = function () {\n this.menu.registerWidget(this);\n this.contentDiv.innerHTML = this.content();\n var html = this.menu.html;\n if (html.parentNode) {\n html.parentNode.removeChild(html);\n }\n this.menu.frame.appendChild(this.html);\n };\n Info.prototype.click = function (_event) { };\n Info.prototype.keydown = function (event) {\n this.bubbleKey();\n _super.prototype.keydown.call(this, event);\n };\n Info.prototype.escape = function (_event) {\n this.unpost();\n };\n Info.prototype.unpost = function () {\n _super.prototype.unpost.call(this);\n this.html.classList.remove(html_classes_js_1.HtmlClasses['MOUSEPOST']);\n this.menu.unregisterWidget(this);\n };\n Info.prototype.generateClose = function () {\n var close = new close_button_js_1.CloseButton(this);\n var html = close.html;\n html.classList.add(html_classes_js_1.HtmlClasses['INFOCLOSE']);\n html.setAttribute('aria-label', 'Close Dialog Box');\n return close;\n };\n Info.prototype.generateTitle = function () {\n var span = document.createElement('span');\n span.innerHTML = this.title;\n span.classList.add(html_classes_js_1.HtmlClasses['INFOTITLE']);\n return span;\n };\n Info.prototype.generateContent = function () {\n var div = document.createElement('div');\n div.classList.add(html_classes_js_1.HtmlClasses['INFOCONTENT']);\n div.setAttribute('tabindex', '0');\n return div;\n };\n Info.prototype.generateSignature = function () {\n var span = document.createElement('span');\n span.innerHTML = this.signature;\n span.classList.add(html_classes_js_1.HtmlClasses['INFOSIGNATURE']);\n return span;\n };\n Info.prototype.toJson = function () {\n return { type: ''\n };\n };\n return Info;\n}(abstract_postable_js_1.AbstractPostable));\nexports.Info = Info;\n//# sourceMappingURL=info.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Checkbox = void 0;\nvar abstract_variable_item_js_1 = require(\"./abstract_variable_item.js\");\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar Checkbox = (function (_super) {\n __extends(Checkbox, _super);\n function Checkbox(menu, content, variable, id) {\n var _this = _super.call(this, menu, 'checkbox', content, id) || this;\n _this.role = 'menuitemcheckbox';\n _this.variable = menu.pool.lookup(variable);\n _this.register();\n return _this;\n }\n Checkbox.fromJson = function (_factory, _a, menu) {\n var content = _a.content, variable = _a.variable, id = _a.id;\n return new this(menu, content, variable, id);\n };\n Checkbox.prototype.executeAction = function () {\n this.variable.setValue(!this.variable.getValue());\n menu_util_js_1.MenuUtil.close(this);\n };\n Checkbox.prototype.generateSpan = function () {\n this.span = document.createElement('span');\n this.span.textContent = '\\u2713';\n this.span.classList.add(html_classes_js_1.HtmlClasses['MENUCHECK']);\n };\n Checkbox.prototype.updateAria = function () {\n this.html.setAttribute('aria-checked', this.variable.getValue() ? 'true' : 'false');\n };\n Checkbox.prototype.updateSpan = function () {\n this.span.style.display = this.variable.getValue() ? '' : 'none';\n };\n Checkbox.prototype.toJson = function () {\n return { type: ''\n };\n };\n return Checkbox;\n}(abstract_variable_item_js_1.AbstractVariableItem));\nexports.Checkbox = Checkbox;\n//# sourceMappingURL=item_checkbox.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Combo = void 0;\nvar abstract_variable_item_js_1 = require(\"./abstract_variable_item.js\");\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar key_navigatable_js_1 = require(\"./key_navigatable.js\");\nvar Combo = (function (_super) {\n __extends(Combo, _super);\n function Combo(menu, content, variable, id) {\n var _this = _super.call(this, menu, 'combobox', content, id) || this;\n _this.role = 'combobox';\n _this.inputEvent = false;\n _this.variable = menu.pool.lookup(variable);\n _this.register();\n return _this;\n }\n Combo.fromJson = function (_factory, _a, menu) {\n var content = _a.content, variable = _a.variable, id = _a.id;\n return new this(menu, content, variable, id);\n };\n Combo.prototype.executeAction = function () {\n this.variable.setValue(this.input.value, menu_util_js_1.MenuUtil.getActiveElement(this));\n };\n Combo.prototype.space = function (event) {\n _super.prototype.space.call(this, event);\n menu_util_js_1.MenuUtil.close(this);\n };\n Combo.prototype.focus = function () {\n _super.prototype.focus.call(this);\n this.input.focus();\n };\n Combo.prototype.unfocus = function () {\n _super.prototype.unfocus.call(this);\n this.updateSpan();\n };\n Combo.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n var html = this.html;\n html.classList.add(html_classes_js_1.HtmlClasses['MENUCOMBOBOX']);\n };\n Combo.prototype.generateSpan = function () {\n this.span = document.createElement('span');\n this.span.classList.add(html_classes_js_1.HtmlClasses['MENUINPUTBOX']);\n this.input = document.createElement('input');\n this.input.addEventListener('keydown', this.inputKey.bind(this));\n this.input.setAttribute('size', '10em');\n this.input.setAttribute('type', 'text');\n this.input.setAttribute('tabindex', '-1');\n this.span.appendChild(this.input);\n };\n Combo.prototype.inputKey = function (_event) {\n this.bubbleKey();\n this.inputEvent = true;\n };\n Combo.prototype.keydown = function (event) {\n if (this.inputEvent &&\n event.keyCode !== key_navigatable_js_1.KEY.ESCAPE &&\n event.keyCode !== key_navigatable_js_1.KEY.RETURN) {\n this.inputEvent = false;\n event.stopPropagation();\n return;\n }\n _super.prototype.keydown.call(this, event);\n event.stopPropagation();\n };\n Combo.prototype.updateAria = function () { };\n Combo.prototype.updateSpan = function () {\n var initValue;\n try {\n initValue = this.variable.getValue(menu_util_js_1.MenuUtil.getActiveElement(this));\n }\n catch (e) {\n initValue = '';\n }\n this.input.value = initValue;\n };\n Combo.prototype.toJson = function () {\n return { type: ''\n };\n };\n return Combo;\n}(abstract_variable_item_js_1.AbstractVariableItem));\nexports.Combo = Combo;\n//# sourceMappingURL=item_combo.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Command = void 0;\nvar abstract_item_js_1 = require(\"./abstract_item.js\");\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar Command = (function (_super) {\n __extends(Command, _super);\n function Command(menu, content, command, id) {\n var _this = _super.call(this, menu, 'command', content, id) || this;\n _this.command = command;\n return _this;\n }\n Command.fromJson = function (_factory, _a, menu) {\n var content = _a.content, action = _a.action, id = _a.id;\n return new this(menu, content, action, id);\n };\n Command.prototype.executeAction = function () {\n try {\n this.command(menu_util_js_1.MenuUtil.getActiveElement(this));\n }\n catch (e) {\n menu_util_js_1.MenuUtil.error(e, 'Illegal command callback.');\n }\n menu_util_js_1.MenuUtil.close(this);\n };\n Command.prototype.toJson = function () {\n return { type: ''\n };\n };\n return Command;\n}(abstract_item_js_1.AbstractItem));\nexports.Command = Command;\n//# sourceMappingURL=item_command.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Label = void 0;\nvar abstract_item_js_1 = require(\"./abstract_item.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar Label = (function (_super) {\n __extends(Label, _super);\n function Label(menu, content, id) {\n return _super.call(this, menu, 'label', content, id) || this;\n }\n Label.fromJson = function (_factory, _a, menu) {\n var content = _a.content, id = _a.id;\n return new this(menu, content, id);\n };\n Label.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n var html = this.html;\n html.classList.add(html_classes_js_1.HtmlClasses['MENULABEL']);\n };\n Label.prototype.toJson = function () {\n return { type: ''\n };\n };\n return Label;\n}(abstract_item_js_1.AbstractItem));\nexports.Label = Label;\n//# sourceMappingURL=item_label.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Radio = void 0;\nvar abstract_variable_item_js_1 = require(\"./abstract_variable_item.js\");\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar Radio = (function (_super) {\n __extends(Radio, _super);\n function Radio(menu, content, variable, id) {\n var _this = _super.call(this, menu, 'radio', content, id) || this;\n _this.role = 'menuitemradio';\n _this.variable = menu.pool.lookup(variable);\n _this.register();\n return _this;\n }\n Radio.fromJson = function (_factory, _a, menu) {\n var content = _a.content, variable = _a.variable, id = _a.id;\n return new this(menu, content, variable, id);\n };\n Radio.prototype.executeAction = function () {\n this.variable.setValue(this.id);\n menu_util_js_1.MenuUtil.close(this);\n };\n Radio.prototype.generateSpan = function () {\n this.span = document.createElement('span');\n this.span.textContent = '\\u2713';\n this.span.classList.add(html_classes_js_1.HtmlClasses['MENURADIOCHECK']);\n };\n Radio.prototype.updateAria = function () {\n this.html.setAttribute('aria-checked', this.variable.getValue() === this.id ? 'true' : 'false');\n };\n Radio.prototype.updateSpan = function () {\n this.span.style.display =\n this.variable.getValue() === this.id ? '' : 'none';\n };\n Radio.prototype.toJson = function () {\n return { type: ''\n };\n };\n return Radio;\n}(abstract_variable_item_js_1.AbstractVariableItem));\nexports.Radio = Radio;\n//# sourceMappingURL=item_radio.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rule = void 0;\nvar abstract_entry_js_1 = require(\"./abstract_entry.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar Rule = (function (_super) {\n __extends(Rule, _super);\n function Rule(menu) {\n var _this = _super.call(this, menu, 'rule') || this;\n _this.className = html_classes_js_1.HtmlClasses['MENUITEM'];\n _this.role = 'separator';\n return _this;\n }\n Rule.fromJson = function (_factory, _a, menu) {\n return new this(menu);\n };\n Rule.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n var html = this.html;\n html.classList.add(html_classes_js_1.HtmlClasses['MENURULE']);\n html.setAttribute('aria-orientation', 'vertical');\n };\n Rule.prototype.addEvents = function (_element) { };\n Rule.prototype.toJson = function () {\n return { type: 'rule' };\n };\n return Rule;\n}(abstract_entry_js_1.AbstractEntry));\nexports.Rule = Rule;\n//# sourceMappingURL=item_rule.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slider = void 0;\nvar abstract_variable_item_js_1 = require(\"./abstract_variable_item.js\");\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar key_navigatable_js_1 = require(\"./key_navigatable.js\");\nvar Slider = (function (_super) {\n __extends(Slider, _super);\n function Slider(menu, content, variable, id) {\n var _this = _super.call(this, menu, 'slider', content, id) || this;\n _this.role = 'slider';\n _this.labelId = 'ctx_slideLabel' + menu_util_js_1.MenuUtil.counter();\n _this.valueId = 'ctx_slideValue' + menu_util_js_1.MenuUtil.counter();\n _this.inputEvent = false;\n _this.variable = menu.pool.lookup(variable);\n _this.register();\n return _this;\n }\n Slider.fromJson = function (_factory, _a, menu) {\n var content = _a.content, variable = _a.variable, id = _a.id;\n return new this(menu, content, variable, id);\n };\n Slider.prototype.executeAction = function () {\n this.variable.setValue(this.input.value, menu_util_js_1.MenuUtil.getActiveElement(this));\n this.update();\n };\n Slider.prototype.space = function (event) {\n _super.prototype.space.call(this, event);\n menu_util_js_1.MenuUtil.close(this);\n };\n Slider.prototype.focus = function () {\n _super.prototype.focus.call(this);\n this.input.focus();\n };\n Slider.prototype.unfocus = function () {\n _super.prototype.unfocus.call(this);\n this.updateSpan();\n };\n Slider.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n var html = this.html;\n html.classList.add(html_classes_js_1.HtmlClasses['MENUSLIDER']);\n this.valueSpan = document.createElement('span');\n this.valueSpan.setAttribute('id', this.valueId);\n this.valueSpan.classList.add(html_classes_js_1.HtmlClasses['SLIDERVALUE']);\n this.html.appendChild(this.valueSpan);\n };\n Slider.prototype.generateSpan = function () {\n this.span = document.createElement('span');\n this.labelSpan = document.createElement('span');\n this.labelSpan.setAttribute('id', this.labelId);\n this.labelSpan.appendChild(this.html.childNodes[0]);\n this.html.appendChild(this.labelSpan);\n this.input = document.createElement('input');\n this.input.setAttribute('type', 'range');\n this.input.setAttribute('min', '0');\n this.input.setAttribute('max', '100');\n this.input.setAttribute('aria-valuemin', '0');\n this.input.setAttribute('aria-valuemax', '100');\n this.input.setAttribute('aria-labelledby', this.labelId);\n this.input.addEventListener('keydown', this.inputKey.bind(this));\n this.input.addEventListener('input', this.executeAction.bind(this));\n this.input.classList.add(html_classes_js_1.HtmlClasses['SLIDERBAR']);\n this.span.appendChild(this.input);\n };\n Slider.prototype.inputKey = function (_event) {\n this.inputEvent = true;\n };\n Slider.prototype.mousedown = function (event) {\n event.stopPropagation();\n };\n Slider.prototype.mouseup = function (_event) {\n event.stopPropagation();\n };\n Slider.prototype.keydown = function (event) {\n var code = event.keyCode;\n if (code === key_navigatable_js_1.KEY.UP || code === key_navigatable_js_1.KEY.DOWN) {\n event.preventDefault();\n _super.prototype.keydown.call(this, event);\n return;\n }\n if (this.inputEvent &&\n code !== key_navigatable_js_1.KEY.ESCAPE && code !== key_navigatable_js_1.KEY.RETURN) {\n this.inputEvent = false;\n event.stopPropagation();\n return;\n }\n _super.prototype.keydown.call(this, event);\n event.stopPropagation();\n };\n Slider.prototype.updateAria = function () {\n var value = this.variable.getValue();\n if (value && this.input) {\n this.input.setAttribute('aria-valuenow', value);\n this.input.setAttribute('aria-valuetext', value + '%');\n }\n };\n Slider.prototype.updateSpan = function () {\n var initValue;\n try {\n initValue = this.variable.getValue(menu_util_js_1.MenuUtil.getActiveElement(this));\n this.valueSpan.innerHTML = initValue + '%';\n }\n catch (e) {\n initValue = '';\n }\n this.input.value = initValue;\n };\n Slider.prototype.toJson = function () {\n return { type: ''\n };\n };\n return Slider;\n}(abstract_variable_item_js_1.AbstractVariableItem));\nexports.Slider = Slider;\n//# sourceMappingURL=item_slider.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Submenu = void 0;\nvar abstract_item_js_1 = require(\"./abstract_item.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar Submenu = (function (_super) {\n __extends(Submenu, _super);\n function Submenu(menu, content, id) {\n var _this = _super.call(this, menu, 'submenu', content, id) || this;\n _this._submenu = null;\n return _this;\n }\n Submenu.fromJson = function (factory, _a, menu) {\n var content = _a.content, submenu = _a.menu, id = _a.id;\n var item = new this(menu, content, id);\n var sm = factory.get('subMenu')(factory, submenu, item);\n item.submenu = sm;\n return item;\n };\n Object.defineProperty(Submenu.prototype, \"submenu\", {\n get: function () {\n return this._submenu;\n },\n set: function (menu) {\n this._submenu = menu;\n },\n enumerable: false,\n configurable: true\n });\n Submenu.prototype.mouseover = function (event) {\n this.focus();\n this.stop(event);\n };\n Submenu.prototype.mouseout = function (event) {\n this.stop(event);\n };\n Submenu.prototype.unfocus = function () {\n if (!this.submenu.isPosted()) {\n _super.prototype.unfocus.call(this);\n return;\n }\n if (this.menu.focused !== this) {\n _super.prototype.unfocus.call(this);\n this.menu.unpostSubmenus();\n return;\n }\n this.html.setAttribute('tabindex', '-1');\n this.html.blur();\n };\n Submenu.prototype.focus = function () {\n _super.prototype.focus.call(this);\n if (!this.submenu.isPosted() && !this.disabled) {\n this.submenu.post();\n }\n };\n Submenu.prototype.executeAction = function () {\n this.submenu.isPosted() ? this.submenu.unpost() : this.submenu.post();\n };\n Submenu.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n var html = this.html;\n this.span = document.createElement('span');\n this.span.textContent = '\\u25BA';\n this.span.classList.add(html_classes_js_1.HtmlClasses['MENUARROW']);\n html.appendChild(this.span);\n html.setAttribute('aria-haspopup', 'true');\n };\n Submenu.prototype.left = function (event) {\n if (this.submenu.isPosted()) {\n this.submenu.unpost();\n }\n else {\n _super.prototype.left.call(this, event);\n }\n };\n Submenu.prototype.right = function (event) {\n if (!this.submenu.isPosted()) {\n this.submenu.post();\n }\n else {\n this.submenu.down(event);\n }\n };\n Submenu.prototype.toJson = function () {\n return { type: ''\n };\n };\n return Submenu;\n}(abstract_item_js_1.AbstractItem));\nexports.Submenu = Submenu;\n//# sourceMappingURL=item_submenu.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KEY = void 0;\nvar KEY;\n(function (KEY) {\n KEY[KEY[\"RETURN\"] = 13] = \"RETURN\";\n KEY[KEY[\"ESCAPE\"] = 27] = \"ESCAPE\";\n KEY[KEY[\"SPACE\"] = 32] = \"SPACE\";\n KEY[KEY[\"LEFT\"] = 37] = \"LEFT\";\n KEY[KEY[\"UP\"] = 38] = \"UP\";\n KEY[KEY[\"RIGHT\"] = 39] = \"RIGHT\";\n KEY[KEY[\"DOWN\"] = 40] = \"DOWN\";\n})(KEY = exports.KEY || (exports.KEY = {}));\n//# sourceMappingURL=key_navigatable.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MenuElement = void 0;\nvar abstract_navigatable_js_1 = require(\"./abstract_navigatable.js\");\nvar MenuElement = (function (_super) {\n __extends(MenuElement, _super);\n function MenuElement() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MenuElement.prototype.addAttributes = function (attributes) {\n for (var attr in attributes) {\n this.html.setAttribute(attr, attributes[attr]);\n }\n };\n Object.defineProperty(MenuElement.prototype, \"html\", {\n get: function () {\n if (!this._html) {\n this.generateHtml();\n }\n return this._html;\n },\n set: function (html) {\n this._html = html;\n this.addEvents(html);\n },\n enumerable: false,\n configurable: true\n });\n MenuElement.prototype.generateHtml = function () {\n var html = document.createElement('div');\n html.classList.add(this.className);\n html.setAttribute('role', this.role);\n this.html = html;\n };\n MenuElement.prototype.focus = function () {\n var html = this.html;\n html.setAttribute('tabindex', '0');\n html.focus();\n };\n MenuElement.prototype.unfocus = function () {\n var html = this.html;\n if (html.hasAttribute('tabindex')) {\n html.setAttribute('tabindex', '-1');\n }\n try {\n html.blur();\n }\n catch (e) {\n }\n html.blur();\n };\n return MenuElement;\n}(abstract_navigatable_js_1.AbstractNavigatable));\nexports.MenuElement = MenuElement;\n//# sourceMappingURL=menu_element.js.map","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MenuStore = void 0;\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar key_navigatable_js_1 = require(\"./key_navigatable.js\");\nvar MenuStore = (function () {\n function MenuStore(menu) {\n this.menu = menu;\n this.store = [];\n this._active = null;\n this.counter = 0;\n this.attachedClass = html_classes_js_1.HtmlClasses['ATTACHED'] + '_' +\n menu_util_js_1.MenuUtil.counter();\n this.taborder = true;\n this.attrMap = {};\n }\n Object.defineProperty(MenuStore.prototype, \"active\", {\n get: function () {\n return this._active;\n },\n set: function (element) {\n do {\n if (this.store.indexOf(element) !== -1) {\n this._active = element;\n break;\n }\n element = element.parentNode;\n } while (element);\n },\n enumerable: false,\n configurable: true\n });\n MenuStore.prototype.next = function () {\n var length = this.store.length;\n if (length === 0) {\n this.active = null;\n return null;\n }\n var index = this.store.indexOf(this.active);\n index = index === -1 ? 0 : (index < length - 1 ? index + 1 : 0);\n this.active = this.store[index];\n return this.active;\n };\n MenuStore.prototype.previous = function () {\n var length = this.store.length;\n if (length === 0) {\n this.active = null;\n return null;\n }\n var last = length - 1;\n var index = this.store.indexOf(this.active);\n index = index === -1 ? last : (index === 0 ? last : index - 1);\n this.active = this.store[index];\n return this.active;\n };\n MenuStore.prototype.clear = function () {\n this.remove(this.store);\n };\n MenuStore.prototype.insert = function (elementOrList) {\n var e_1, _a;\n var elements = elementOrList instanceof HTMLElement ?\n [elementOrList] : elementOrList;\n try {\n for (var elements_1 = __values(elements), elements_1_1 = elements_1.next(); !elements_1_1.done; elements_1_1 = elements_1.next()) {\n var element = elements_1_1.value;\n this.insertElement(element);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (elements_1_1 && !elements_1_1.done && (_a = elements_1.return)) _a.call(elements_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.sort();\n };\n MenuStore.prototype.remove = function (elementOrList) {\n var e_2, _a;\n var elements = elementOrList instanceof HTMLElement ?\n [elementOrList] : elementOrList;\n try {\n for (var elements_2 = __values(elements), elements_2_1 = elements_2.next(); !elements_2_1.done; elements_2_1 = elements_2.next()) {\n var element = elements_2_1.value;\n this.removeElement(element);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (elements_2_1 && !elements_2_1.done && (_a = elements_2.return)) _a.call(elements_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n this.sort();\n };\n MenuStore.prototype.inTaborder = function (flag) {\n if (this.taborder && !flag) {\n this.removeTaborder();\n }\n if (!this.taborder && flag) {\n this.insertTaborder();\n }\n this.taborder = flag;\n };\n MenuStore.prototype.insertTaborder = function () {\n if (this.taborder) {\n this.insertTaborder_();\n }\n };\n MenuStore.prototype.removeTaborder = function () {\n if (this.taborder) {\n this.removeTaborder_();\n }\n };\n MenuStore.prototype.insertElement = function (element) {\n if (element.classList.contains(this.attachedClass)) {\n return;\n }\n element.classList.add(this.attachedClass);\n if (this.taborder) {\n this.addTabindex(element);\n }\n this.addEvents(element);\n };\n MenuStore.prototype.removeElement = function (element) {\n if (!element.classList.contains(this.attachedClass)) {\n return;\n }\n element.classList.remove(this.attachedClass);\n if (this.taborder) {\n this.removeTabindex(element);\n }\n this.removeEvents(element);\n };\n MenuStore.prototype.sort = function () {\n var nodes = document.getElementsByClassName(this.attachedClass);\n this.store = [].slice.call(nodes);\n };\n MenuStore.prototype.insertTaborder_ = function () {\n this.store.forEach(function (x) { return x.setAttribute('tabindex', '0'); });\n };\n MenuStore.prototype.removeTaborder_ = function () {\n this.store.forEach(function (x) { return x.setAttribute('tabindex', '-1'); });\n };\n MenuStore.prototype.addTabindex = function (element) {\n if (element.hasAttribute('tabindex')) {\n element.setAttribute(html_classes_js_1.HtmlAttrs['OLDTAB'], element.getAttribute('tabindex'));\n }\n element.setAttribute('tabindex', '0');\n };\n MenuStore.prototype.removeTabindex = function (element) {\n if (element.hasAttribute(html_classes_js_1.HtmlAttrs['OLDTAB'])) {\n element.setAttribute('tabindex', element.getAttribute(html_classes_js_1.HtmlAttrs['OLDTAB']));\n element.removeAttribute(html_classes_js_1.HtmlAttrs['OLDTAB']);\n }\n else {\n element.removeAttribute('tabindex');\n }\n };\n MenuStore.prototype.addEvents = function (element) {\n if (element.hasAttribute(html_classes_js_1.HtmlAttrs['COUNTER'])) {\n return;\n }\n this.addEvent(element, 'contextmenu', this.menu.post.bind(this.menu));\n this.addEvent(element, 'keydown', this.keydown.bind(this));\n element.setAttribute(html_classes_js_1.HtmlAttrs['COUNTER'], this.counter.toString());\n this.counter++;\n };\n MenuStore.prototype.addEvent = function (element, name, func) {\n var attrName = html_classes_js_1.HtmlAttrs[name.toUpperCase() + 'FUNC'];\n this.attrMap[attrName + this.counter] = func;\n element.addEventListener(name, func);\n };\n MenuStore.prototype.removeEvents = function (element) {\n if (!element.hasAttribute(html_classes_js_1.HtmlAttrs['COUNTER'])) {\n return;\n }\n var counter = element.getAttribute(html_classes_js_1.HtmlAttrs['COUNTER']);\n this.removeEvent(element, 'contextmenu', counter);\n this.removeEvent(element, 'keydown', counter);\n element.removeAttribute(html_classes_js_1.HtmlAttrs['COUNTER']);\n };\n MenuStore.prototype.removeEvent = function (element, name, counter) {\n var attrName = html_classes_js_1.HtmlAttrs[name.toUpperCase() + 'FUNC'];\n var menuFunc = this.attrMap[attrName + counter];\n element.removeEventListener(name, menuFunc);\n };\n MenuStore.prototype.keydown = function (event) {\n if (event.keyCode === key_navigatable_js_1.KEY.SPACE) {\n this.menu.post(event);\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n return MenuStore;\n}());\nexports.MenuStore = MenuStore;\n//# sourceMappingURL=menu_store.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MenuUtil = void 0;\nvar MenuUtil;\n(function (MenuUtil) {\n function close(item) {\n var menu = item.menu;\n if (menu.baseMenu) {\n menu.baseMenu.unpost();\n }\n else {\n menu.unpost();\n }\n }\n MenuUtil.close = close;\n function getActiveElement(item) {\n var menu = item.menu;\n var baseMenu = (menu.baseMenu ? menu.baseMenu : menu);\n return baseMenu.store.active;\n }\n MenuUtil.getActiveElement = getActiveElement;\n function error(_error, msg) {\n console.error('ContextMenu Error: ' + msg);\n }\n MenuUtil.error = error;\n function counter() {\n return count++;\n }\n MenuUtil.counter = counter;\n var count = 0;\n})(MenuUtil = exports.MenuUtil || (exports.MenuUtil = {}));\n//# sourceMappingURL=menu_util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MOUSE = void 0;\nexports.MOUSE = {\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DOWN: 'mousedown',\n UP: 'mouseup',\n OVER: 'mouseover',\n OUT: 'mouseout',\n MOVE: 'mousemove',\n SELECTEND: 'selectend',\n SELECTSTART: 'selectstart'\n};\n//# sourceMappingURL=mouse_navigatable.js.map","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar item_command_js_1 = require(\"./item_command.js\");\nvar context_menu_js_1 = require(\"./context_menu.js\");\nvar variable_js_1 = require(\"./variable.js\");\nvar item_checkbox_js_1 = require(\"./item_checkbox.js\");\nvar item_combo_js_1 = require(\"./item_combo.js\");\nvar item_label_js_1 = require(\"./item_label.js\");\nvar item_radio_js_1 = require(\"./item_radio.js\");\nvar item_submenu_js_1 = require(\"./item_submenu.js\");\nvar item_rule_js_1 = require(\"./item_rule.js\");\nvar item_slider_js_1 = require(\"./item_slider.js\");\nvar sub_menu_js_1 = require(\"./sub_menu.js\");\nvar selection_box_js_1 = require(\"./selection_box.js\");\nvar parser_factory_js_1 = require(\"./parser_factory.js\");\nvar Parser = (function () {\n function Parser(init) {\n var _this = this;\n if (init === void 0) { init = []; }\n this._initList = [\n ['command', item_command_js_1.Command.fromJson.bind(item_command_js_1.Command)],\n ['checkbox', item_checkbox_js_1.Checkbox.fromJson.bind(item_checkbox_js_1.Checkbox)],\n ['combo', item_combo_js_1.Combo.fromJson.bind(item_combo_js_1.Combo)],\n ['slider', item_slider_js_1.Slider.fromJson.bind(item_slider_js_1.Slider)],\n ['label', item_label_js_1.Label.fromJson.bind(item_label_js_1.Label)],\n ['radio', item_radio_js_1.Radio.fromJson.bind(item_radio_js_1.Radio)],\n ['rule', item_rule_js_1.Rule.fromJson.bind(item_rule_js_1.Rule)],\n ['submenu', item_submenu_js_1.Submenu.fromJson.bind(item_submenu_js_1.Submenu)],\n ['contextMenu', context_menu_js_1.ContextMenu.fromJson.bind(context_menu_js_1.ContextMenu)],\n ['subMenu', sub_menu_js_1.SubMenu.fromJson.bind(sub_menu_js_1.SubMenu)],\n ['variable', variable_js_1.Variable.fromJson.bind(variable_js_1.Variable)],\n ['items', this.items.bind(this)],\n ['selectionMenu', selection_box_js_1.SelectionMenu.fromJson.bind(selection_box_js_1.SelectionMenu)],\n ['selectionBox', selection_box_js_1.SelectionBox.fromJson.bind(selection_box_js_1.SelectionBox)]\n ];\n this._factory = new parser_factory_js_1.ParserFactory(this._initList);\n init.forEach(function (_a) {\n var _b = __read(_a, 2), x = _b[0], y = _b[1];\n return _this.factory.add(x, y);\n });\n }\n Object.defineProperty(Parser.prototype, \"factory\", {\n get: function () {\n return this._factory;\n },\n enumerable: false,\n configurable: true\n });\n Parser.prototype.items = function (_factory, its, ctxt) {\n var e_1, _a;\n var hidden = [];\n try {\n for (var its_1 = __values(its), its_1_1 = its_1.next(); !its_1_1.done; its_1_1 = its_1.next()) {\n var item = its_1_1.value;\n var entry = this.parse(item, ctxt);\n if (!entry) {\n continue;\n }\n ctxt.items.push(entry);\n if (item.disabled) {\n entry.disable();\n }\n if (item.hidden) {\n hidden.push(entry);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (its_1_1 && !its_1_1.done && (_a = its_1.return)) _a.call(its_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n hidden.forEach(function (x) { return x.hide(); });\n return ctxt.items;\n };\n Parser.prototype.parse = function (_a) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var kind = _a.type, json = __rest(_a, [\"type\"]);\n var func = this.factory.get(kind);\n return func ? func.apply(void 0, __spread([this.factory, json], rest)) : null;\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=parse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParserFactory = void 0;\nvar ParserFactory = (function () {\n function ParserFactory(init) {\n this._parser = new Map(init);\n }\n ParserFactory.prototype.get = function (name) {\n return this._parser.get(name);\n };\n ParserFactory.prototype.add = function (name, method) {\n this._parser.set(name, method);\n };\n return ParserFactory;\n}());\nexports.ParserFactory = ParserFactory;\n//# sourceMappingURL=parser_factory.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionBox = exports.SelectionMenu = void 0;\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar html_classes_js_1 = require(\"./html_classes.js\");\nvar abstract_menu_js_1 = require(\"./abstract_menu.js\");\nvar info_js_1 = require(\"./info.js\");\nvar SelectionMenu = (function (_super) {\n __extends(SelectionMenu, _super);\n function SelectionMenu(anchor) {\n var _this = _super.call(this) || this;\n _this.anchor = anchor;\n _this.className = html_classes_js_1.HtmlClasses['SELECTIONMENU'];\n _this.variablePool = _this.anchor.menu.pool;\n _this.baseMenu = _this.anchor.menu;\n return _this;\n }\n SelectionMenu.fromJson = function (factory, _a, sb) {\n var title = _a.title, values = _a.values, variable = _a.variable;\n var selection = new this(sb);\n var tit = factory.get('label')(factory, { content: title || '', id: title || 'id' }, selection);\n var rul = factory.get('rule')(factory, {}, selection);\n var radios = values.map(function (x) { return factory.get('radio')(factory, { content: x, variable: variable, id: x }, selection); });\n var items = [tit, rul].concat(radios);\n selection.items = items;\n return selection;\n };\n SelectionMenu.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n this.items.forEach(function (item) { return item.html.classList.add(html_classes_js_1.HtmlClasses['SELECTIONITEM']); });\n };\n SelectionMenu.prototype.display = function () { };\n SelectionMenu.prototype.right = function (event) {\n this.anchor.right(event);\n };\n SelectionMenu.prototype.left = function (event) {\n this.anchor.left(event);\n };\n return SelectionMenu;\n}(abstract_menu_js_1.AbstractMenu));\nexports.SelectionMenu = SelectionMenu;\nvar SelectionBox = (function (_super) {\n __extends(SelectionBox, _super);\n function SelectionBox(title, signature, style, grid) {\n if (style === void 0) { style = \"none\"; }\n if (grid === void 0) { grid = \"vertical\"; }\n var _this = _super.call(this, title, null, signature) || this;\n _this.style = style;\n _this.grid = grid;\n _this._selections = [];\n _this.prefix = 'ctxt-selection';\n _this._balanced = true;\n return _this;\n }\n SelectionBox.fromJson = function (factory, _a, ctxt) {\n var title = _a.title, signature = _a.signature, selections = _a.selections, order = _a.order, grid = _a.grid;\n var sb = new this(title, signature, order, grid);\n sb.attachMenu(ctxt);\n var sels = selections.map(function (x) { return factory.get('selectionMenu')(factory, x, sb); });\n sb.selections = sels;\n return sb;\n };\n SelectionBox.prototype.attachMenu = function (menu) {\n this.menu = menu;\n };\n Object.defineProperty(SelectionBox.prototype, \"selections\", {\n get: function () {\n return this._selections;\n },\n set: function (selections) {\n var _this = this;\n this._selections = [];\n selections.forEach(function (x) { return _this.addSelection(x); });\n },\n enumerable: false,\n configurable: true\n });\n SelectionBox.prototype.addSelection = function (selection) {\n selection.anchor = this;\n this._selections.push(selection);\n };\n SelectionBox.prototype.rowDiv = function (sels) {\n var _this = this;\n var div = document.createElement('div');\n this.contentDiv.appendChild(div);\n var rects = sels.map(function (sel) {\n div.appendChild(sel.html);\n if (!sel.html.id) {\n sel.html.id = _this.prefix + menu_util_js_1.MenuUtil.counter();\n }\n return sel.html.getBoundingClientRect();\n });\n var column = rects.map(function (x) { return x.width; });\n var width = column.reduce(function (x, y) { return x + y; }, 0);\n var height = rects.reduce(function (x, y) { return Math.max(x, y.height); }, 0);\n div.classList.add(html_classes_js_1.HtmlClasses['SELECTIONDIVIDER']);\n div.setAttribute('style', 'height: ' + height + 'px;');\n return [div, width, height, column];\n };\n SelectionBox.prototype.display = function () {\n _super.prototype.display.call(this);\n this.order();\n if (!this.selections.length) {\n return;\n }\n var outerDivs = [];\n var maxWidth = 0;\n var balancedColumn = [];\n var chunks = this.getChunkSize(this.selections.length);\n var _loop_1 = function (i) {\n var sels = this_1.selections.slice(i, i + chunks);\n var _a = __read(this_1.rowDiv(sels), 4), div = _a[0], width = _a[1], height = _a[2], column = _a[3];\n outerDivs.push(div);\n maxWidth = Math.max(maxWidth, width);\n sels.forEach(function (sel) { return sel.html.style.height = height + 'px'; });\n balancedColumn = this_1.combineColumn(balancedColumn, column);\n };\n var this_1 = this;\n for (var i = 0; i < this.selections.length; i += chunks) {\n _loop_1(i);\n }\n if (this._balanced) {\n this.balanceColumn(outerDivs, balancedColumn);\n maxWidth = balancedColumn.reduce(function (x, y) { return x + y; }, 20);\n }\n outerDivs.forEach(function (div) { return div.style.width = maxWidth + 'px'; });\n };\n SelectionBox.prototype.getChunkSize = function (size) {\n switch (this.grid) {\n case \"square\":\n return Math.floor(Math.sqrt(size));\n case \"horizontal\":\n return Math.floor(size / SelectionBox.chunkSize);\n case \"vertical\":\n default:\n return SelectionBox.chunkSize;\n }\n };\n SelectionBox.prototype.balanceColumn = function (divs, column) {\n divs.forEach(function (div) {\n var children = Array.from(div.children);\n for (var i = 0, child = void 0; child = children[i]; i++) {\n child.style.width = column[i] + 'px';\n }\n });\n };\n SelectionBox.prototype.combineColumn = function (col1, col2) {\n var result = [];\n var i = 0;\n while (col1[i] || col2[i]) {\n if (!col1[i]) {\n result = result.concat(col2.slice(i));\n break;\n }\n if (!col2[i]) {\n result = result.concat(col1.slice(i));\n break;\n }\n result.push(Math.max(col1[i], col2[i]));\n i++;\n }\n ;\n return result;\n };\n SelectionBox.prototype.left = function (event) {\n var _this = this;\n this.move(event, function (index) {\n return (index === 0 ? _this.selections.length : index) - 1;\n });\n };\n SelectionBox.prototype.right = function (event) {\n var _this = this;\n this.move(event, function (index) {\n return index === _this.selections.length - 1 ? 0 : index + 1;\n });\n };\n SelectionBox.prototype.generateHtml = function () {\n _super.prototype.generateHtml.call(this);\n this.html.classList.add(html_classes_js_1.HtmlClasses['SELECTION']);\n };\n SelectionBox.prototype.generateContent = function () {\n var div = _super.prototype.generateContent.call(this);\n div.classList.add(html_classes_js_1.HtmlClasses['SELECTIONBOX']);\n div.removeAttribute('tabindex');\n return div;\n };\n SelectionBox.prototype.findSelection = function (event) {\n var target = event.target;\n var selection = null;\n if (target.id) {\n selection = this.selections.find(function (x) { return x.html.id === target.id; });\n }\n if (!selection) {\n var id_1 = target.parentElement.id;\n selection = this.selections.find(function (x) { return x.html.id === id_1; });\n }\n return selection;\n };\n SelectionBox.prototype.move = function (event, isNext) {\n var selection = this.findSelection(event);\n if (selection.focused) {\n selection.focused.unfocus();\n }\n var index = this.selections.indexOf(selection);\n var next = isNext(index);\n this.selections[next].focus();\n };\n SelectionBox.prototype.order = function () {\n this.selections.sort(SelectionBox.orderMethod.get(this.style));\n };\n SelectionBox.prototype.toJson = function () {\n return { type: ''\n };\n };\n SelectionBox.chunkSize = 4;\n SelectionBox.orderMethod = new Map([\n [\"alphabetical\", function (x, y) { return x.items[0].content.localeCompare(y.items[0].content); }],\n [\"none\", function (_x, _y) { return 1; }],\n [\"decreasing\", function (x, y) {\n var xl = x.items.length;\n var yl = y.items.length;\n return (xl < yl) ? 1 : ((yl < xl) ? -1 : 0);\n }],\n [\"increasing\", function (x, y) {\n var xl = x.items.length;\n var yl = y.items.length;\n return (xl < yl) ? -1 : ((yl < xl) ? 1 : 0);\n }],\n ]);\n return SelectionBox;\n}(info_js_1.Info));\nexports.SelectionBox = SelectionBox;\n//# sourceMappingURL=selection_box.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubMenu = void 0;\nvar abstract_menu_js_1 = require(\"./abstract_menu.js\");\nvar SubMenu = (function (_super) {\n __extends(SubMenu, _super);\n function SubMenu(_anchor) {\n var _this = _super.call(this) || this;\n _this._anchor = _anchor;\n _this.variablePool = _this.anchor.menu.pool;\n _this.setBaseMenu();\n return _this;\n }\n SubMenu.fromJson = function (factory, _a, anchor) {\n var its = _a.items;\n var submenu = new this(anchor);\n var itemList = factory.get('items')(factory, its, submenu);\n submenu.items = itemList;\n return submenu;\n };\n Object.defineProperty(SubMenu.prototype, \"anchor\", {\n get: function () {\n return this._anchor;\n },\n enumerable: false,\n configurable: true\n });\n SubMenu.prototype.post = function () {\n if (!this.anchor.menu.isPosted()) {\n return;\n }\n var mobileFlag = false;\n var rtlFlag = false;\n var margin = 5;\n var parent = this.anchor.html;\n var menu = this.html;\n var base = this.baseMenu.frame;\n var mw = parent.offsetWidth;\n var x = (mobileFlag ? 30 : mw - 2);\n var y = 0;\n while (parent && parent !== base) {\n x += parent.offsetLeft;\n y += parent.offsetTop;\n parent = parent.parentNode;\n }\n if (!mobileFlag) {\n if ((rtlFlag && x - mw - menu.offsetWidth > margin) ||\n (!rtlFlag && x + menu.offsetWidth >\n document.body.offsetWidth - margin)) {\n x = Math.max(margin, x - mw - menu.offsetWidth + 6);\n }\n }\n _super.prototype.post.call(this, x, y);\n };\n SubMenu.prototype.display = function () {\n this.baseMenu.frame.appendChild(this.html);\n };\n SubMenu.prototype.setBaseMenu = function () {\n var menu = this;\n do {\n menu = menu.anchor.menu;\n } while (menu instanceof SubMenu);\n this.baseMenu = menu;\n };\n SubMenu.prototype.left = function (_event) {\n this.focused = null;\n this.anchor.focus();\n };\n SubMenu.prototype.toJson = function () {\n return { type: ''\n };\n };\n return SubMenu;\n}(abstract_menu_js_1.AbstractMenu));\nexports.SubMenu = SubMenu;\n//# sourceMappingURL=sub_menu.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\nvar menu_util_js_1 = require(\"./menu_util.js\");\nvar Variable = (function () {\n function Variable(_name, getter, setter) {\n this._name = _name;\n this.getter = getter;\n this.setter = setter;\n this.items = [];\n }\n Variable.fromJson = function (_factory, _a, pool) {\n var name = _a.name, getter = _a.getter, setter = _a.setter;\n var variable = new this(name, getter, setter);\n pool.insert(variable);\n };\n Object.defineProperty(Variable.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Variable.prototype.getValue = function (node) {\n try {\n return this.getter(node);\n }\n catch (e) {\n menu_util_js_1.MenuUtil.error(e, 'Command of variable ' + this.name + ' failed.');\n return null;\n }\n };\n Variable.prototype.setValue = function (value, node) {\n try {\n this.setter(value, node);\n }\n catch (e) {\n menu_util_js_1.MenuUtil.error(e, 'Command of variable ' + this.name + ' failed.');\n }\n this.update();\n };\n Variable.prototype.register = function (item) {\n if (this.items.indexOf(item) === -1) {\n this.items.push(item);\n }\n };\n Variable.prototype.unregister = function (item) {\n var index = this.items.indexOf(item);\n if (index !== -1) {\n this.items.splice(index, 1);\n }\n };\n Variable.prototype.update = function () {\n this.items.forEach(function (x) { return x.update(); });\n };\n Variable.prototype.registerCallback = function (func) {\n this.items.forEach(function (x) { return x.registerCallback(func); });\n };\n Variable.prototype.unregisterCallback = function (func) {\n this.items.forEach(function (x) { return x.unregisterCallback(func); });\n };\n Variable.prototype.toJson = function () {\n return { type: 'variable',\n name: this.name,\n getter: this.getter.toString(),\n setter: this.setter.toString() };\n };\n return Variable;\n}());\nexports.Variable = Variable;\n//# sourceMappingURL=variable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VariablePool = void 0;\nvar VariablePool = (function () {\n function VariablePool() {\n this.pool = {};\n }\n VariablePool.prototype.insert = function (variable) {\n this.pool[variable.name] = variable;\n };\n VariablePool.prototype.lookup = function (name) {\n return this.pool[name];\n };\n VariablePool.prototype.remove = function (name) {\n delete this.pool[name];\n };\n VariablePool.prototype.update = function () {\n for (var variable in this.pool) {\n this.pool[variable].update();\n }\n };\n return VariablePool;\n}());\nexports.VariablePool = VariablePool;\n//# sourceMappingURL=variable_pool.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractAudioRenderer = void 0;\nconst engine_1 = require(\"../common/engine\");\nclass AbstractAudioRenderer {\n constructor() {\n this.separator_ = ' ';\n }\n setSeparator(sep) {\n this.separator_ = sep;\n }\n getSeparator() {\n return engine_1.default.getInstance().modality === 'braille' ? '' : this.separator_;\n }\n error(_key) {\n return null;\n }\n merge(spans) {\n let str = '';\n const len = spans.length - 1;\n for (let i = 0, span; (span = spans[i]); i++) {\n str += span.speech;\n if (i < len) {\n const sep = span.attributes['separator'];\n str += sep !== undefined ? sep : this.getSeparator();\n }\n }\n return str;\n }\n finalize(str) {\n return str;\n }\n pauseValue(value) {\n let numeric;\n switch (value) {\n case 'long':\n numeric = 750;\n break;\n case 'medium':\n numeric = 500;\n break;\n case 'short':\n numeric = 250;\n break;\n default:\n numeric = parseInt(value, 10);\n }\n return Math.floor((numeric * engine_1.default.getInstance().getRate()) / 100);\n }\n}\nexports.AbstractAudioRenderer = AbstractAudioRenderer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AcssRenderer = void 0;\nconst EngineConst = require(\"../common/engine_const\");\nconst EventUtil = require(\"../common/event_util\");\nconst AudioUtil = require(\"./audio_util\");\nconst markup_renderer_1 = require(\"./markup_renderer\");\nclass AcssRenderer extends markup_renderer_1.MarkupRenderer {\n markup(descrs) {\n this.setScaleFunction(-2, 2, 0, 10, 0);\n const markup = AudioUtil.personalityMarkup(descrs);\n const result = [];\n const currentPers = { open: [] };\n let pause = null;\n let isString = false;\n for (let i = 0, descr; (descr = markup[i]); i++) {\n if (AudioUtil.isMarkupElement(descr)) {\n AudioUtil.mergeMarkup(currentPers, descr);\n continue;\n }\n if (AudioUtil.isPauseElement(descr)) {\n if (isString) {\n pause = AudioUtil.mergePause(pause, descr, Math.max);\n }\n continue;\n }\n const str = '\"' + this.merge(descr.span) + '\"';\n isString = true;\n if (pause) {\n result.push(this.pause(pause));\n pause = null;\n }\n const prosody = this.prosody_(currentPers);\n result.push(prosody ? '(text (' + prosody + ') ' + str + ')' : str);\n }\n return '(exp ' + result.join(' ') + ')';\n }\n error(key) {\n return '(error \"' + EventUtil.Move.get(key) + '\")';\n }\n prosodyElement(key, value) {\n value = this.applyScaleFunction(value);\n switch (key) {\n case EngineConst.personalityProps.RATE:\n return '(richness . ' + value + ')';\n case EngineConst.personalityProps.PITCH:\n return '(average-pitch . ' + value + ')';\n case EngineConst.personalityProps.VOLUME:\n return '(stress . ' + value + ')';\n }\n return '(value . ' + value + ')';\n }\n pause(pause) {\n return ('(pause . ' +\n this.pauseValue(pause[EngineConst.personalityProps.PAUSE]) +\n ')');\n }\n prosody_(pros) {\n const keys = pros.open;\n const result = [];\n for (let i = 0, key; (key = keys[i]); i++) {\n result.push(this.prosodyElement(key, pros[key]));\n }\n return result.join(' ');\n }\n}\nexports.AcssRenderer = AcssRenderer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSpanElement = exports.isPauseElement = exports.isMarkupElement = exports.personalityMarkup = exports.sortClose = exports.mergeMarkup = exports.mergePause = void 0;\nconst base_util_1 = require(\"../common/base_util\");\nconst EngineConst = require(\"../common/engine_const\");\nconst span_1 = require(\"./span\");\nfunction mergePause(oldPause, newPause, opt_merge) {\n if (!oldPause) {\n return newPause;\n }\n return { pause: mergePause_(oldPause.pause, newPause.pause, opt_merge) };\n}\nexports.mergePause = mergePause;\nfunction mergePause_(oldPause, newPause, opt_merge) {\n const merge = opt_merge ||\n function (x, y) {\n if (typeof x === 'number' && typeof y === 'number') {\n return x + y;\n }\n if (typeof x === 'number') {\n return y;\n }\n if (typeof y === 'number') {\n return x;\n }\n return [oldPause, newPause].sort()[0];\n };\n return merge.call(null, oldPause, newPause);\n}\nfunction mergeMarkup(oldPers, newPers) {\n delete oldPers.open;\n newPers.close.forEach((x) => delete oldPers[x]);\n newPers.open.forEach((x) => (oldPers[x] = newPers[x]));\n const keys = Object.keys(oldPers);\n oldPers.open = keys;\n}\nexports.mergeMarkup = mergeMarkup;\nfunction sortClose(open, descrs) {\n if (open.length <= 1) {\n return open;\n }\n const result = [];\n for (let i = 0, descr; (descr = descrs[i]), open.length; i++) {\n if (!descr.close || !descr.close.length) {\n continue;\n }\n descr.close.forEach(function (x) {\n const index = open.indexOf(x);\n if (index !== -1) {\n result.unshift(x);\n open.splice(index, 1);\n }\n });\n }\n return result;\n}\nexports.sortClose = sortClose;\nlet PersonalityRanges_ = {};\nlet LastOpen_ = [];\nfunction personalityMarkup(descrs) {\n PersonalityRanges_ = {};\n LastOpen_ = [];\n let result = [];\n const currentPers = {};\n for (let i = 0, descr; (descr = descrs[i]); i++) {\n let pause = null;\n const span = descr.descriptionSpan();\n const pers = descr.personality;\n const join = pers[EngineConst.personalityProps.JOIN];\n delete pers[EngineConst.personalityProps.JOIN];\n if (typeof pers[EngineConst.personalityProps.PAUSE] !== 'undefined') {\n pause = {\n [EngineConst.personalityProps.PAUSE]: pers[EngineConst.personalityProps.PAUSE]\n };\n delete pers[EngineConst.personalityProps.PAUSE];\n }\n const diff = personalityDiff_(pers, currentPers);\n appendMarkup_(result, span, diff, join, pause, true);\n }\n result = result.concat(finaliseMarkup_());\n result = simplifyMarkup_(result);\n return result;\n}\nexports.personalityMarkup = personalityMarkup;\nfunction appendElement_(markup, element) {\n const last = markup[markup.length - 1];\n if (!last) {\n markup.push(element);\n return;\n }\n if (isSpanElement(element) && isSpanElement(last)) {\n if (typeof last.join === 'undefined') {\n last.span = last.span.concat(element.span);\n return;\n }\n const lstr = last['span'].pop();\n const fstr = element['span'].shift();\n last['span'].push(lstr + last.join + fstr);\n last['span'] = last['span'].concat(element.span);\n last.join = element.join;\n return;\n }\n if (isPauseElement(element) && isPauseElement(last)) {\n last.pause = mergePause_(last.pause, element.pause);\n return;\n }\n markup.push(element);\n}\nfunction simplifyMarkup_(markup) {\n const lastPers = {};\n const result = [];\n for (let i = 0, element; (element = markup[i]); i++) {\n if (!isMarkupElement(element)) {\n appendElement_(result, element);\n continue;\n }\n if (!element.close || element.close.length !== 1 || element.open.length) {\n copyValues_(element, lastPers);\n result.push(element);\n continue;\n }\n let nextElement = markup[i + 1];\n if (!nextElement || isSpanElement(nextElement)) {\n copyValues_(element, lastPers);\n result.push(element);\n continue;\n }\n const pauseElement = isPauseElement(nextElement) ? nextElement : null;\n if (pauseElement) {\n nextElement = markup[i + 2];\n }\n if (nextElement &&\n isMarkupElement(nextElement) &&\n nextElement.open[0] === element.close[0] &&\n !nextElement.close.length &&\n nextElement[nextElement.open[0]] === lastPers[nextElement.open[0]]) {\n if (pauseElement) {\n appendElement_(result, pauseElement);\n i = i + 2;\n }\n else {\n i = i + 1;\n }\n }\n else {\n copyValues_(element, lastPers);\n result.push(element);\n }\n }\n return result;\n}\nfunction copyValues_(from, to) {\n if (from['rate']) {\n to['rate'] = from['rate'];\n }\n if (from['pitch']) {\n to['pitch'] = from['pitch'];\n }\n if (from['volume']) {\n to['volume'] = from['volume'];\n }\n}\nfunction finaliseMarkup_() {\n const final = [];\n for (let i = LastOpen_.length - 1; i >= 0; i--) {\n const pers = LastOpen_[i];\n if (pers.length) {\n const markup = { open: [], close: [] };\n for (let j = 0; j < pers.length; j++) {\n const per = pers[j];\n markup.close.push(per);\n markup[per] = 0;\n }\n final.push(markup);\n }\n }\n return final;\n}\nfunction isMarkupElement(element) {\n return typeof element === 'object' && element.open;\n}\nexports.isMarkupElement = isMarkupElement;\nfunction isPauseElement(element) {\n return (typeof element === 'object' &&\n Object.keys(element).length === 1 &&\n Object.keys(element)[0] === EngineConst.personalityProps.PAUSE);\n}\nexports.isPauseElement = isPauseElement;\nfunction isSpanElement(element) {\n const keys = Object.keys(element);\n return (typeof element === 'object' &&\n ((keys.length === 1 && keys[0] === 'span') ||\n (keys.length === 2 &&\n ((keys[0] === 'span' && keys[1] === 'join') ||\n (keys[1] === 'span' && keys[0] === 'join')))));\n}\nexports.isSpanElement = isSpanElement;\nfunction appendMarkup_(markup, span, pers, join, pause, merge = false) {\n if (merge) {\n const last = markup[markup.length - 1];\n let oldJoin;\n if (last) {\n oldJoin = last[EngineConst.personalityProps.JOIN];\n }\n if (last && !span.speech && pause && isPauseElement(last)) {\n const pauseProp = EngineConst.personalityProps.PAUSE;\n last[pauseProp] = mergePause_(last[pauseProp], pause[pauseProp]);\n pause = null;\n }\n if (last &&\n span.speech &&\n Object.keys(pers).length === 0 &&\n isSpanElement(last)) {\n if (typeof oldJoin !== 'undefined') {\n const lastSpan = last['span'].pop();\n span = new span_1.Span(lastSpan.speech + oldJoin + span.speech, lastSpan.attributes);\n }\n last['span'].push(span);\n span = new span_1.Span('', {});\n last[EngineConst.personalityProps.JOIN] = join;\n }\n }\n if (Object.keys(pers).length !== 0) {\n markup.push(pers);\n }\n if (span.speech) {\n markup.push({ span: [span], join: join });\n }\n if (pause) {\n markup.push(pause);\n }\n}\nfunction personalityDiff_(current, old) {\n if (!old) {\n return current;\n }\n const result = {};\n for (const prop of EngineConst.personalityPropList) {\n const currentValue = current[prop];\n const oldValue = old[prop];\n if ((!currentValue && !oldValue) ||\n (currentValue && oldValue && currentValue === oldValue)) {\n continue;\n }\n const value = currentValue || 0;\n if (!isMarkupElement(result)) {\n result.open = [];\n result.close = [];\n }\n if (!currentValue) {\n result.close.push(prop);\n }\n if (!oldValue) {\n result.open.push(prop);\n }\n if (oldValue && currentValue) {\n result.close.push(prop);\n result.open.push(prop);\n }\n old[prop] = value;\n result[prop] = value;\n PersonalityRanges_[prop]\n ? PersonalityRanges_[prop].push(value)\n : (PersonalityRanges_[prop] = [value]);\n }\n if (isMarkupElement(result)) {\n let c = result.close.slice();\n while (c.length > 0) {\n let lo = LastOpen_.pop();\n const loNew = (0, base_util_1.setdifference)(lo, c);\n c = (0, base_util_1.setdifference)(c, lo);\n lo = loNew;\n if (c.length === 0) {\n if (lo.length !== 0) {\n LastOpen_.push(lo);\n }\n continue;\n }\n if (lo.length === 0) {\n continue;\n }\n result.close = result.close.concat(lo);\n result.open = result.open.concat(lo);\n for (let i = 0, open; (open = lo[i]); i++) {\n result[open] = old[open];\n }\n }\n LastOpen_.push(result.open);\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuditoryDescription = void 0;\nconst grammar_1 = require(\"../rule_engine/grammar\");\nconst span_1 = require(\"./span\");\nclass AuditoryDescription {\n constructor({ context, text, userValue, annotation, attributes, personality, layout }) {\n this.context = context || '';\n this.text = text || '';\n this.userValue = userValue || '';\n this.annotation = annotation || '';\n this.attributes = attributes || {};\n this.personality = personality || {};\n this.layout = layout || '';\n }\n static create(args, flags = {}) {\n args.text = grammar_1.Grammar.getInstance().apply(args.text, flags);\n return new AuditoryDescription(args);\n }\n isEmpty() {\n return (this.context.length === 0 &&\n this.text.length === 0 &&\n this.userValue.length === 0 &&\n this.annotation.length === 0);\n }\n clone() {\n let personality;\n if (this.personality) {\n personality = {};\n for (const key in this.personality) {\n personality[key] = this.personality[key];\n }\n }\n let attributes;\n if (this.attributes) {\n attributes = {};\n for (const key in this.attributes) {\n attributes[key] = this.attributes[key];\n }\n }\n return new AuditoryDescription({\n context: this.context,\n text: this.text,\n userValue: this.userValue,\n annotation: this.annotation,\n personality: personality,\n attributes: attributes,\n layout: this.layout\n });\n }\n toString() {\n return ('AuditoryDescription(context=\"' +\n this.context +\n '\" ' +\n ' text=\"' +\n this.text +\n '\" ' +\n ' userValue=\"' +\n this.userValue +\n '\" ' +\n ' annotation=\"' +\n this.annotation +\n '\")');\n }\n descriptionString() {\n return this.context && this.text\n ? this.context + ' ' + this.text\n : this.context || this.text;\n }\n descriptionSpan() {\n return new span_1.Span(this.descriptionString(), this.attributes);\n }\n equals(that) {\n return (this.context === that.context &&\n this.text === that.text &&\n this.userValue === that.userValue &&\n this.annotation === that.annotation);\n }\n}\nexports.AuditoryDescription = AuditoryDescription;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isXml = exports.registerRenderer = exports.error = exports.finalize = exports.merge = exports.markup = exports.getSeparator = exports.setSeparator = void 0;\nconst engine_1 = require(\"../common/engine\");\nconst EngineConst = require(\"../common/engine_const\");\nconst acss_renderer_1 = require(\"./acss_renderer\");\nconst layout_renderer_1 = require(\"./layout_renderer\");\nconst punctuation_renderer_1 = require(\"./punctuation_renderer\");\nconst sable_renderer_1 = require(\"./sable_renderer\");\nconst span_1 = require(\"./span\");\nconst ssml_renderer_1 = require(\"./ssml_renderer\");\nconst ssml_step_renderer_1 = require(\"./ssml_step_renderer\");\nconst string_renderer_1 = require(\"./string_renderer\");\nconst xml_renderer_1 = require(\"./xml_renderer\");\nconst xmlInstance = new ssml_renderer_1.SsmlRenderer();\nconst renderers = new Map([\n [EngineConst.Markup.NONE, new string_renderer_1.StringRenderer()],\n [EngineConst.Markup.PUNCTUATION, new punctuation_renderer_1.PunctuationRenderer()],\n [EngineConst.Markup.LAYOUT, new layout_renderer_1.LayoutRenderer()],\n [EngineConst.Markup.ACSS, new acss_renderer_1.AcssRenderer()],\n [EngineConst.Markup.SABLE, new sable_renderer_1.SableRenderer()],\n [EngineConst.Markup.VOICEXML, xmlInstance],\n [EngineConst.Markup.SSML, xmlInstance],\n [EngineConst.Markup.SSML_STEP, new ssml_step_renderer_1.SsmlStepRenderer()]\n]);\nfunction setSeparator(sep) {\n const renderer = renderers.get(engine_1.default.getInstance().markup);\n if (renderer) {\n renderer.setSeparator(sep);\n }\n}\nexports.setSeparator = setSeparator;\nfunction getSeparator() {\n const renderer = renderers.get(engine_1.default.getInstance().markup);\n return renderer ? renderer.getSeparator() : '';\n}\nexports.getSeparator = getSeparator;\nfunction markup(descrs) {\n const renderer = renderers.get(engine_1.default.getInstance().markup);\n if (!renderer) {\n return '';\n }\n return renderer.markup(descrs);\n}\nexports.markup = markup;\nfunction merge(strs) {\n const span = strs.map((s) => {\n return typeof s === 'string' ? new span_1.Span(s, {}) : s;\n });\n const renderer = renderers.get(engine_1.default.getInstance().markup);\n if (!renderer) {\n return strs.join();\n }\n return renderer.merge(span);\n}\nexports.merge = merge;\nfunction finalize(str) {\n const renderer = renderers.get(engine_1.default.getInstance().markup);\n if (!renderer) {\n return str;\n }\n return renderer.finalize(str);\n}\nexports.finalize = finalize;\nfunction error(key) {\n const renderer = renderers.get(engine_1.default.getInstance().markup);\n if (!renderer) {\n return '';\n }\n return renderer.error(key);\n}\nexports.error = error;\nfunction registerRenderer(type, renderer) {\n renderers.set(type, renderer);\n}\nexports.registerRenderer = registerRenderer;\nfunction isXml() {\n return renderers.get(engine_1.default.getInstance().markup) instanceof xml_renderer_1.XmlRenderer;\n}\nexports.isXml = isXml;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LayoutRenderer = void 0;\nconst debugger_1 = require(\"../common/debugger\");\nconst DomUtil = require(\"../common/dom_util\");\nconst EngineConst = require(\"../common/engine_const\");\nconst AudioUtil = require(\"./audio_util\");\nconst xml_renderer_1 = require(\"./xml_renderer\");\nclass LayoutRenderer extends xml_renderer_1.XmlRenderer {\n finalize(str) {\n return setTwoDim(str);\n }\n pause(_pause) {\n return '';\n }\n prosodyElement(attr, value) {\n return attr === EngineConst.personalityProps.LAYOUT ? `<${value}>` : '';\n }\n closeTag(tag) {\n return ``;\n }\n markup(descrs) {\n const result = [];\n let content = [];\n for (const descr of descrs) {\n if (!descr.layout) {\n content.push(descr);\n continue;\n }\n result.push(this.processContent(content));\n content = [];\n const value = descr.layout;\n if (value.match(/^begin/)) {\n result.push('<' + value.replace(/^begin/, '') + '>');\n continue;\n }\n if (value.match(/^end/)) {\n result.push('');\n continue;\n }\n console.warn('Something went wrong with layout markup: ' + value);\n }\n result.push(this.processContent(content));\n return result.join('');\n }\n processContent(content) {\n const result = [];\n const markup = AudioUtil.personalityMarkup(content);\n for (let i = 0, descr; (descr = markup[i]); i++) {\n if (descr.span) {\n result.push(this.merge(descr.span));\n continue;\n }\n if (AudioUtil.isPauseElement(descr)) {\n continue;\n }\n }\n return result.join('');\n }\n}\nexports.LayoutRenderer = LayoutRenderer;\nlet twodExpr = '';\nconst handlers = {\n TABLE: handleTable,\n CASES: handleCases,\n CAYLEY: handleCayley,\n MATRIX: handleMatrix,\n CELL: recurseTree,\n FENCE: recurseTree,\n ROW: recurseTree,\n FRACTION: handleFraction,\n NUMERATOR: handleFractionPart,\n DENOMINATOR: handleFractionPart\n};\nfunction applyHandler(element) {\n const tag = DomUtil.tagName(element);\n const handler = handlers[tag];\n return handler ? handler(element) : element.textContent;\n}\nfunction setTwoDim(str) {\n twodExpr = '';\n const dom = DomUtil.parseInput(`${str}`);\n debugger_1.Debugger.getInstance().output(DomUtil.formatXml(dom.toString()));\n twodExpr = recurseTree(dom);\n return twodExpr;\n}\nfunction combineContent(str1, str2) {\n if (!str1 || !str2) {\n return str1 + str2;\n }\n const height1 = strHeight(str1);\n const height2 = strHeight(str2);\n const diff = height1 - height2;\n str1 = diff < 0 ? padCell(str1, height2, strWidth(str1)) : str1;\n str2 = diff > 0 ? padCell(str2, height1, strWidth(str2)) : str2;\n const lines1 = str1.split(/\\r\\n|\\r|\\n/);\n const lines2 = str2.split(/\\r\\n|\\r|\\n/);\n const result = [];\n for (let i = 0; i < lines1.length; i++) {\n result.push(lines1[i] + lines2[i]);\n }\n return result.join('\\n');\n}\nfunction recurseTree(dom) {\n let result = '';\n for (const child of Array.from(dom.childNodes)) {\n if (child.nodeType === DomUtil.NodeType.TEXT_NODE) {\n result = combineContent(result, child.textContent);\n continue;\n }\n result = combineContent(result, applyHandler(child));\n }\n return result;\n}\nfunction strHeight(str) {\n return str.split(/\\r\\n|\\r|\\n/).length;\n}\nfunction strWidth(str) {\n return str.split(/\\r\\n|\\r|\\n/).reduce((max, x) => Math.max(x.length, max), 0);\n}\nfunction padHeight(str, height) {\n const padding = height - strHeight(str);\n return str + (padding > 0 ? new Array(padding + 1).join('\\n') : '');\n}\nfunction padWidth(str, width) {\n const lines = str.split(/\\r\\n|\\r|\\n/);\n const result = [];\n for (const line of lines) {\n const padding = width - line.length;\n result.push(line + (padding > 0 ? new Array(padding + 1).join('⠀') : ''));\n }\n return result.join('\\n');\n}\nfunction padCell(str, height, width) {\n str = padHeight(str, height);\n return padWidth(str, width);\n}\nfunction assembleRows(matrix) {\n const children = Array.from(matrix.childNodes);\n const mat = [];\n for (const row of children) {\n if (row.nodeType !== DomUtil.NodeType.ELEMENT_NODE) {\n continue;\n }\n mat.push(handleRow(row));\n }\n return mat;\n}\nfunction getMaxParameters(mat) {\n const maxHeight = mat.reduce((max, x) => Math.max(x.height, max), 0);\n const maxWidth = [];\n for (let i = 0; i < mat[0].width.length; i++) {\n maxWidth.push(mat.map((x) => x.width[i]).reduce((max, x) => Math.max(max, x), 0));\n }\n return [maxHeight, maxWidth];\n}\nfunction combineCells(mat, maxWidth) {\n const newMat = [];\n for (const row of mat) {\n if (row.height === 0) {\n continue;\n }\n const newCells = [];\n for (let i = 0; i < row.cells.length; i++) {\n newCells.push(padCell(row.cells[i], row.height, maxWidth[i]));\n }\n row.cells = newCells;\n newMat.push(row);\n }\n return newMat;\n}\nfunction combineRows(mat, maxHeight) {\n if (maxHeight === 1) {\n return mat\n .map((row) => row.lfence + row.cells.join(row.sep) + row.rfence)\n .join('\\n');\n }\n const result = [];\n for (const row of mat) {\n const sep = verticalArrange(row.sep, row.height);\n let str = row.cells.shift();\n while (row.cells.length) {\n str = combineContent(str, sep);\n str = combineContent(str, row.cells.shift());\n }\n str = combineContent(verticalArrange(row.lfence, row.height), str);\n str = combineContent(str, verticalArrange(row.rfence, row.height));\n result.push(str);\n result.push(row.lfence + new Array(strWidth(str) - 3).join(row.sep) + row.rfence);\n }\n return result.slice(0, -1).join('\\n');\n}\nfunction verticalArrange(char, height) {\n let str = '';\n while (height) {\n str += char + '\\n';\n height--;\n }\n return str.slice(0, -1);\n}\nfunction getFence(node) {\n if (node.nodeType === DomUtil.NodeType.ELEMENT_NODE &&\n DomUtil.tagName(node) === 'FENCE') {\n return applyHandler(node);\n }\n return '';\n}\nfunction handleMatrix(matrix) {\n let mat = assembleRows(matrix);\n const [maxHeight, maxWidth] = getMaxParameters(mat);\n mat = combineCells(mat, maxWidth);\n return combineRows(mat, maxHeight);\n}\nfunction handleTable(table) {\n let mat = assembleRows(table);\n mat.forEach((row) => {\n row.cells = row.cells.slice(1).slice(0, -1);\n row.width = row.width.slice(1).slice(0, -1);\n });\n const [maxHeight, maxWidth] = getMaxParameters(mat);\n mat = combineCells(mat, maxWidth);\n return combineRows(mat, maxHeight);\n}\nfunction handleCases(cases) {\n let mat = assembleRows(cases);\n mat.forEach((row) => {\n row.cells = row.cells.slice(0, -1);\n row.width = row.width.slice(0, -1);\n });\n const [maxHeight, maxWidth] = getMaxParameters(mat);\n mat = combineCells(mat, maxWidth);\n return combineRows(mat, maxHeight);\n}\nfunction handleCayley(cayley) {\n let mat = assembleRows(cayley);\n mat.forEach((row) => {\n row.cells = row.cells.slice(1).slice(0, -1);\n row.width = row.width.slice(1).slice(0, -1);\n row.sep = row.sep + row.sep;\n });\n const [maxHeight, maxWidth] = getMaxParameters(mat);\n const bar = {\n lfence: '',\n rfence: '',\n cells: maxWidth.map((x) => '⠐' + new Array(x).join('⠒')),\n width: maxWidth,\n height: 1,\n sep: mat[0].sep\n };\n mat.splice(1, 0, bar);\n mat = combineCells(mat, maxWidth);\n return combineRows(mat, maxHeight);\n}\nfunction handleRow(row) {\n const children = Array.from(row.childNodes);\n const lfence = getFence(children[0]);\n const rfence = getFence(children[children.length - 1]);\n if (lfence) {\n children.shift();\n }\n if (rfence) {\n children.pop();\n }\n let sep = '';\n const cells = [];\n for (const child of children) {\n if (child.nodeType === DomUtil.NodeType.TEXT_NODE) {\n sep = child.textContent;\n continue;\n }\n const result = applyHandler(child);\n cells.push(result);\n }\n return {\n lfence: lfence,\n rfence: rfence,\n sep: sep,\n cells: cells,\n height: cells.reduce((max, x) => Math.max(strHeight(x), max), 0),\n width: cells.map(strWidth)\n };\n}\nfunction centerCell(cell, width) {\n const cw = strWidth(cell);\n const center = (width - cw) / 2;\n const [lpad, rpad] = Math.floor(center) === center\n ? [center, center]\n : [Math.floor(center), Math.ceil(center)];\n const lines = cell.split(/\\r\\n|\\r|\\n/);\n const result = [];\n const [lstr, rstr] = [\n new Array(lpad + 1).join('⠀'),\n new Array(rpad + 1).join('⠀')\n ];\n for (const line of lines) {\n result.push(lstr + line + rstr);\n }\n return result.join('\\n');\n}\nfunction handleFraction(frac) {\n const [open, num, , den, close] = Array.from(frac.childNodes);\n const numerator = applyHandler(num);\n const denominator = applyHandler(den);\n const nwidth = strWidth(numerator);\n const dwidth = strWidth(denominator);\n let maxWidth = Math.max(nwidth, dwidth);\n const bar = open + new Array(maxWidth + 1).join('⠒') + close;\n maxWidth = bar.length;\n return (`${centerCell(numerator, maxWidth)}\\n${bar}\\n` +\n `${centerCell(denominator, maxWidth)}`);\n}\nfunction handleFractionPart(prt) {\n const fchild = prt.firstChild;\n const content = recurseTree(prt);\n if (fchild && fchild.nodeType === DomUtil.NodeType.ELEMENT_NODE) {\n if (DomUtil.tagName(fchild) === 'ENGLISH') {\n return '⠰' + content;\n }\n if (DomUtil.tagName(fchild) === 'NUMBER') {\n return '⠼' + content;\n }\n }\n return content;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MarkupRenderer = void 0;\nconst EngineConst = require(\"../common/engine_const\");\nconst abstract_audio_renderer_1 = require(\"./abstract_audio_renderer\");\nclass MarkupRenderer extends abstract_audio_renderer_1.AbstractAudioRenderer {\n constructor() {\n super(...arguments);\n this.ignoreElements = [EngineConst.personalityProps.LAYOUT];\n this.scaleFunction = null;\n }\n setScaleFunction(a, b, c, d, decimals = 0) {\n this.scaleFunction = (x) => {\n const delta = (x - a) / (b - a);\n const num = c * (1 - delta) + d * delta;\n return +(Math.round((num + 'e+' + decimals)) +\n 'e-' +\n decimals);\n };\n }\n applyScaleFunction(value) {\n return this.scaleFunction ? this.scaleFunction(value) : value;\n }\n ignoreElement(key) {\n return this.ignoreElements.indexOf(key) !== -1;\n }\n}\nexports.MarkupRenderer = MarkupRenderer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PunctuationRenderer = void 0;\nconst EngineConst = require(\"../common/engine_const\");\nconst abstract_audio_renderer_1 = require(\"./abstract_audio_renderer\");\nconst AudioUtil = require(\"./audio_util\");\nclass PunctuationRenderer extends abstract_audio_renderer_1.AbstractAudioRenderer {\n markup(descrs) {\n const markup = AudioUtil.personalityMarkup(descrs);\n let str = '';\n let pause = null;\n let span = false;\n for (let i = 0, descr; (descr = markup[i]); i++) {\n if (AudioUtil.isMarkupElement(descr)) {\n continue;\n }\n if (AudioUtil.isPauseElement(descr)) {\n if (span) {\n pause = AudioUtil.mergePause(pause, descr, Math.max);\n }\n continue;\n }\n if (pause) {\n str += this.pause(pause[EngineConst.personalityProps.PAUSE]);\n pause = null;\n }\n str += (span ? this.getSeparator() : '') + this.merge(descr.span);\n span = true;\n }\n return str;\n }\n pause(pause) {\n let newPause;\n if (typeof pause === 'number') {\n if (pause <= 250) {\n newPause = 'short';\n }\n else if (pause <= 500) {\n newPause = 'medium';\n }\n else {\n newPause = 'long';\n }\n }\n else {\n newPause = pause;\n }\n return PunctuationRenderer.PAUSE_PUNCTUATION.get(newPause) || '';\n }\n}\nexports.PunctuationRenderer = PunctuationRenderer;\nPunctuationRenderer.PAUSE_PUNCTUATION = new Map([\n ['short', ','],\n ['medium', ';'],\n ['long', '.']\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SableRenderer = void 0;\nconst EngineConst = require(\"../common/engine_const\");\nconst xml_renderer_1 = require(\"./xml_renderer\");\nclass SableRenderer extends xml_renderer_1.XmlRenderer {\n finalize(str) {\n return ('' +\n '' +\n this.getSeparator() +\n str +\n this.getSeparator() +\n '');\n }\n pause(pause) {\n return ('');\n }\n prosodyElement(tag, value) {\n value = this.applyScaleFunction(value);\n switch (tag) {\n case EngineConst.personalityProps.PITCH:\n return '';\n case EngineConst.personalityProps.RATE:\n return '';\n case EngineConst.personalityProps.VOLUME:\n return '';\n default:\n return '<' + tag.toUpperCase() + ' VALUE=\"' + value + '\">';\n }\n }\n closeTag(tag) {\n return '';\n }\n}\nexports.SableRenderer = SableRenderer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Span = void 0;\nclass Span {\n constructor(speech, attributes) {\n this.speech = speech;\n this.attributes = attributes;\n }\n}\nexports.Span = Span;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SsmlRenderer = void 0;\nconst engine_1 = require(\"../common/engine\");\nconst EngineConst = require(\"../common/engine_const\");\nconst xml_renderer_1 = require(\"./xml_renderer\");\nclass SsmlRenderer extends xml_renderer_1.XmlRenderer {\n finalize(str) {\n return ('' +\n '' +\n this.getSeparator() +\n str +\n this.getSeparator() +\n '');\n }\n pause(pause) {\n return ('');\n }\n prosodyElement(attr, value) {\n value = Math.floor(this.applyScaleFunction(value));\n const valueStr = value < 0 ? value.toString() : '+' + value.toString();\n return ('' : '%\">'));\n }\n closeTag(_tag) {\n return '';\n }\n}\nexports.SsmlRenderer = SsmlRenderer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SsmlStepRenderer = void 0;\nconst ssml_renderer_1 = require(\"./ssml_renderer\");\nclass SsmlStepRenderer extends ssml_renderer_1.SsmlRenderer {\n markup(descrs) {\n SsmlStepRenderer.MARKS = {};\n return super.markup(descrs);\n }\n merge(spans) {\n const result = [];\n for (let i = 0; i < spans.length; i++) {\n const span = spans[i];\n const id = span.attributes['extid'];\n if (id && !SsmlStepRenderer.MARKS[id]) {\n result.push('');\n SsmlStepRenderer.MARKS[id] = true;\n }\n if (span.speech.length === 1 && span.speech.match(/[a-zA-Z]/)) {\n result.push('' +\n span.speech +\n '');\n }\n else {\n result.push(span.speech);\n }\n }\n return result.join(this.getSeparator());\n }\n}\nexports.SsmlStepRenderer = SsmlStepRenderer;\nSsmlStepRenderer.CHARACTER_ATTR = 'character';\nSsmlStepRenderer.MARKS = {};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringRenderer = void 0;\nconst abstract_audio_renderer_1 = require(\"./abstract_audio_renderer\");\nconst audio_util_1 = require(\"./audio_util\");\nclass StringRenderer extends abstract_audio_renderer_1.AbstractAudioRenderer {\n markup(descrs) {\n let str = '';\n const markup = (0, audio_util_1.personalityMarkup)(descrs);\n const clean = markup.filter((x) => x.span);\n if (!clean.length) {\n return str;\n }\n const len = clean.length - 1;\n for (let i = 0, descr; (descr = clean[i]); i++) {\n if (descr.span) {\n str += this.merge(descr.span);\n }\n if (i >= len) {\n continue;\n }\n const join = descr.join;\n str += typeof join === 'undefined' ? this.getSeparator() : join;\n }\n return str;\n }\n}\nexports.StringRenderer = StringRenderer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.XmlRenderer = void 0;\nconst engine_1 = require(\"../common/engine\");\nconst AudioUtil = require(\"./audio_util\");\nconst markup_renderer_1 = require(\"./markup_renderer\");\nclass XmlRenderer extends markup_renderer_1.MarkupRenderer {\n markup(descrs) {\n this.setScaleFunction(-2, 2, -100, 100, 2);\n const markup = AudioUtil.personalityMarkup(descrs);\n const result = [];\n const currentOpen = [];\n for (let i = 0, descr; (descr = markup[i]); i++) {\n if (descr.span) {\n result.push(this.merge(descr.span));\n continue;\n }\n if (AudioUtil.isPauseElement(descr)) {\n result.push(this.pause(descr));\n continue;\n }\n if (descr.close.length) {\n for (let j = 0; j < descr.close.length; j++) {\n const last = currentOpen.pop();\n if (descr.close.indexOf(last) === -1) {\n throw new engine_1.SREError('Unknown closing markup element: ' + last);\n }\n result.push(this.closeTag(last));\n }\n }\n if (descr.open.length) {\n const open = AudioUtil.sortClose(descr.open.slice(), markup.slice(i + 1));\n open.forEach((o) => {\n result.push(this.prosodyElement(o, descr[o]));\n currentOpen.push(o);\n });\n }\n }\n return result.join(' ');\n }\n}\nexports.XmlRenderer = XmlRenderer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.union = exports.setdifference = exports.interleaveLists = exports.removeEmpty = void 0;\nfunction removeEmpty(strs) {\n return strs.filter((str) => str);\n}\nexports.removeEmpty = removeEmpty;\nfunction interleaveLists(list1, list2) {\n const result = [];\n while (list1.length || list2.length) {\n list1.length && result.push(list1.shift());\n list2.length && result.push(list2.shift());\n }\n return result;\n}\nexports.interleaveLists = interleaveLists;\nfunction setdifference(a, b) {\n if (!a) {\n return [];\n }\n if (!b) {\n return a;\n }\n return a.filter((x) => b.indexOf(x) < 0);\n}\nexports.setdifference = setdifference;\nfunction union(a, b) {\n if (!a || !b) {\n return a || b || [];\n }\n return a.concat(setdifference(b, a));\n}\nexports.union = union;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadScript = exports.loadMapsForIE_ = exports.installWGXpath_ = exports.loadWGXpath_ = exports.mapsForIE = exports.detectEdge = exports.detectIE = void 0;\nconst system_external_1 = require(\"./system_external\");\nconst xpath_util_1 = require(\"./xpath_util\");\nfunction detectIE() {\n const isIE = typeof window !== 'undefined' &&\n 'ActiveXObject' in window &&\n 'clipboardData' in window;\n if (!isIE) {\n return false;\n }\n loadMapsForIE_();\n loadWGXpath_();\n return true;\n}\nexports.detectIE = detectIE;\nfunction detectEdge() {\n var _a;\n const isEdge = typeof window !== 'undefined' &&\n 'MSGestureEvent' in window &&\n ((_a = window.chrome) === null || _a === void 0 ? void 0 : _a.loadTimes) === null;\n if (!isEdge) {\n return false;\n }\n document.evaluate = null;\n loadWGXpath_(true);\n return true;\n}\nexports.detectEdge = detectEdge;\nexports.mapsForIE = null;\nfunction loadWGXpath_(opt_isEdge) {\n loadScript(system_external_1.default.WGXpath);\n installWGXpath_(opt_isEdge);\n}\nexports.loadWGXpath_ = loadWGXpath_;\nfunction installWGXpath_(opt_isEdge, opt_count) {\n let count = opt_count || 1;\n if (typeof wgxpath === 'undefined' && count < 10) {\n setTimeout(function () {\n installWGXpath_(opt_isEdge, count++);\n }, 200);\n return;\n }\n if (count >= 10) {\n return;\n }\n system_external_1.default.wgxpath = wgxpath;\n opt_isEdge\n ? system_external_1.default.wgxpath.install({ document: document })\n : system_external_1.default.wgxpath.install();\n xpath_util_1.xpath.evaluate = document.evaluate;\n xpath_util_1.xpath.result = XPathResult;\n xpath_util_1.xpath.createNSResolver = document.createNSResolver;\n}\nexports.installWGXpath_ = installWGXpath_;\nfunction loadMapsForIE_() {\n loadScript(system_external_1.default.mathmapsIePath);\n}\nexports.loadMapsForIE_ = loadMapsForIE_;\nfunction loadScript(src) {\n const scr = system_external_1.default.document.createElement('script');\n scr.type = 'text/javascript';\n scr.src = src;\n system_external_1.default.document.head\n ? system_external_1.default.document.head.appendChild(scr)\n : system_external_1.default.document.body.appendChild(scr);\n}\nexports.loadScript = loadScript;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Debugger = void 0;\nconst system_external_1 = require(\"./system_external\");\nclass Debugger {\n constructor() {\n this.isActive_ = false;\n this.outputFunction_ = console.info;\n this.fileHandle = Promise.resolve();\n this.stream_ = null;\n }\n static getInstance() {\n Debugger.instance = Debugger.instance || new Debugger();\n return Debugger.instance;\n }\n init(opt_file) {\n if (opt_file) {\n this.startDebugFile_(opt_file);\n }\n this.isActive_ = true;\n return this.fileHandle;\n }\n output(...args) {\n if (this.isActive_) {\n this.output_(args);\n }\n }\n generateOutput(func) {\n if (this.isActive_) {\n this.output_(func.apply(func, []));\n }\n }\n exit(callback = () => { }) {\n this.fileHandle.then(() => {\n if (this.isActive_ && this.stream_) {\n this.stream_.end('', '', callback);\n }\n });\n }\n startDebugFile_(filename) {\n this.fileHandle = system_external_1.default.fs.promises.open(filename, 'w');\n this.fileHandle = this.fileHandle.then((handle) => {\n this.stream_ = handle.createWriteStream(filename);\n this.outputFunction_ = function (...args) {\n this.stream_.write(args.join(' '));\n this.stream_.write('\\n');\n }.bind(this);\n this.stream_.on('error', function (_error) {\n console.info('Invalid log file. Debug information sent to console.');\n this.outputFunction_ = console.info;\n }.bind(this));\n this.stream_.on('finish', function () {\n console.info('Finalizing debug file.');\n });\n });\n }\n output_(outputList) {\n if (console.info === this.outputFunction_) {\n this.outputFunction_.apply(console, ['Speech Rule Engine Debugger:'].concat(outputList));\n return;\n }\n this.fileHandle.then(() => this.outputFunction_.apply(this.outputFunction_, ['Speech Rule Engine Debugger:'].concat(outputList)));\n }\n}\nexports.Debugger = Debugger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeXml = exports.cloneNode = exports.tagName = exports.querySelectorAll = exports.querySelectorAllByAttrValue = exports.querySelectorAllByAttr = exports.formatXml = exports.createTextNode = exports.createElementNS = exports.createElement = exports.replaceNode = exports.NodeType = exports.parseInput = exports.XML_ENTITIES = exports.trimInput_ = exports.toArray = void 0;\nconst engine_1 = require(\"./engine\");\nconst EngineConst = require(\"../common/engine_const\");\nconst system_external_1 = require(\"./system_external\");\nconst XpathUtil = require(\"./xpath_util\");\nfunction toArray(nodeList) {\n const nodeArray = [];\n for (let i = 0, m = nodeList.length; i < m; i++) {\n nodeArray.push(nodeList[i]);\n }\n return nodeArray;\n}\nexports.toArray = toArray;\nfunction trimInput_(input) {\n input = input.replace(/ /g, ' ');\n return input.replace(/>[ \\f\\n\\r\\t\\v\\u200b]+<').trim();\n}\nexports.trimInput_ = trimInput_;\nexports.XML_ENTITIES = {\n '<': true,\n '>': true,\n '&': true,\n '"': true,\n ''': true\n};\nfunction parseInput(input) {\n const dp = new system_external_1.default.xmldom.DOMParser();\n const clean_input = trimInput_(input);\n const allValues = clean_input.match(/&(?!lt|gt|amp|quot|apos)\\w+;/g);\n const html = !!allValues;\n if (!clean_input) {\n throw new Error('Empty input!');\n }\n try {\n const doc = dp.parseFromString(clean_input, html ? 'text/html' : 'text/xml');\n if (engine_1.default.getInstance().mode === EngineConst.Mode.HTTP) {\n XpathUtil.xpath.currentDocument = doc;\n return html ? doc.body.childNodes[0] : doc.documentElement;\n }\n return doc.documentElement;\n }\n catch (err) {\n throw new engine_1.SREError('Illegal input: ' + err.message);\n }\n}\nexports.parseInput = parseInput;\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n NodeType[NodeType[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n NodeType[NodeType[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n NodeType[NodeType[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType[NodeType[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n NodeType[NodeType[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n NodeType[NodeType[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n NodeType[NodeType[\"NOTATION_NODE\"] = 12] = \"NOTATION_NODE\";\n})(NodeType = exports.NodeType || (exports.NodeType = {}));\nfunction replaceNode(oldNode, newNode) {\n if (!oldNode.parentNode) {\n return;\n }\n oldNode.parentNode.insertBefore(newNode, oldNode);\n oldNode.parentNode.removeChild(oldNode);\n}\nexports.replaceNode = replaceNode;\nfunction createElement(tag) {\n return system_external_1.default.document.createElement(tag);\n}\nexports.createElement = createElement;\nfunction createElementNS(url, tag) {\n return system_external_1.default.document.createElementNS(url, tag);\n}\nexports.createElementNS = createElementNS;\nfunction createTextNode(content) {\n return system_external_1.default.document.createTextNode(content);\n}\nexports.createTextNode = createTextNode;\nfunction formatXml(xml) {\n let formatted = '';\n let reg = /(>)(<)(\\/*)/g;\n xml = xml.replace(reg, '$1\\r\\n$2$3');\n let pad = 0;\n let split = xml.split('\\r\\n');\n reg = /(\\.)*(<)(\\/*)/g;\n split = split\n .map((x) => x.replace(reg, '$1\\r\\n$2$3').split('\\r\\n'))\n .reduce((x, y) => x.concat(y), []);\n while (split.length) {\n let node = split.shift();\n if (!node) {\n continue;\n }\n let indent = 0;\n if (node.match(/^<\\w[^>/]*>[^>]+$/)) {\n const match = matchingStartEnd(node, split[0]);\n if (match[0]) {\n if (match[1]) {\n node = node + split.shift().slice(0, -match[1].length);\n if (match[1].trim()) {\n split.unshift(match[1]);\n }\n }\n else {\n node = node + split.shift();\n }\n }\n else {\n indent = 1;\n }\n }\n else if (node.match(/^<\\/\\w/)) {\n if (pad !== 0) {\n pad -= 1;\n }\n }\n else if (node.match(/^<\\w[^>]*[^/]>.*$/)) {\n indent = 1;\n }\n else if (node.match(/^<\\w[^>]*\\/>.+$/)) {\n const position = node.indexOf('>') + 1;\n const rest = node.slice(position);\n if (rest.trim()) {\n split.unshift();\n }\n node = node.slice(0, position);\n }\n else {\n indent = 0;\n }\n formatted += new Array(pad + 1).join(' ') + node + '\\r\\n';\n pad += indent;\n }\n return formatted;\n}\nexports.formatXml = formatXml;\nfunction matchingStartEnd(start, end) {\n if (!end) {\n return [false, ''];\n }\n const tag1 = start.match(/^<([^> ]+).*>/);\n const tag2 = end.match(/^<\\/([^>]+)>(.*)/);\n return tag1 && tag2 && tag1[1] === tag2[1] ? [true, tag2[2]] : [false, ''];\n}\nfunction querySelectorAllByAttr(node, attr) {\n return node.querySelectorAll\n ? toArray(node.querySelectorAll(`[${attr}]`))\n : XpathUtil.evalXPath(`.//*[@${attr}]`, node);\n}\nexports.querySelectorAllByAttr = querySelectorAllByAttr;\nfunction querySelectorAllByAttrValue(node, attr, value) {\n return node.querySelectorAll\n ? toArray(node.querySelectorAll(`[${attr}=\"${value}\"]`))\n : XpathUtil.evalXPath(`.//*[@${attr}=\"${value}\"]`, node);\n}\nexports.querySelectorAllByAttrValue = querySelectorAllByAttrValue;\nfunction querySelectorAll(node, tag) {\n return node.querySelectorAll\n ? toArray(node.querySelectorAll(tag))\n : XpathUtil.evalXPath(`.//${tag}`, node);\n}\nexports.querySelectorAll = querySelectorAll;\nfunction tagName(node) {\n return node.tagName.toUpperCase();\n}\nexports.tagName = tagName;\nfunction cloneNode(node) {\n return node.cloneNode(true);\n}\nexports.cloneNode = cloneNode;\nfunction serializeXml(node) {\n const xmls = new system_external_1.default.xmldom.XMLSerializer();\n return xmls.serializeToString(node);\n}\nexports.serializeXml = serializeXml;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnginePromise = exports.SREError = void 0;\nconst Dcstr = require(\"../rule_engine/dynamic_cstr\");\nconst EngineConst = require(\"./engine_const\");\nconst debugger_1 = require(\"./debugger\");\nconst variables_1 = require(\"./variables\");\nclass SREError extends Error {\n constructor(message = '') {\n super();\n this.message = message;\n this.name = 'SRE Error';\n }\n}\nexports.SREError = SREError;\nclass Engine {\n constructor() {\n this.customLoader = null;\n this.parsers = {};\n this.comparator = null;\n this.mode = EngineConst.Mode.SYNC;\n this.init = true;\n this.delay = false;\n this.comparators = {};\n this.domain = 'mathspeak';\n this.style = Dcstr.DynamicCstr.DEFAULT_VALUES[Dcstr.Axis.STYLE];\n this._defaultLocale = Dcstr.DynamicCstr.DEFAULT_VALUES[Dcstr.Axis.LOCALE];\n this.locale = this.defaultLocale;\n this.subiso = '';\n this.modality = Dcstr.DynamicCstr.DEFAULT_VALUES[Dcstr.Axis.MODALITY];\n this.speech = EngineConst.Speech.NONE;\n this.markup = EngineConst.Markup.NONE;\n this.walker = 'Table';\n this.structure = false;\n this.ruleSets = [];\n this.strict = false;\n this.isIE = false;\n this.isEdge = false;\n this.rate = '100';\n this.pprint = false;\n this.config = false;\n this.rules = '';\n this.prune = '';\n this.evaluator = Engine.defaultEvaluator;\n this.defaultParser = new Dcstr.DynamicCstrParser(Dcstr.DynamicCstr.DEFAULT_ORDER);\n this.parser = this.defaultParser;\n this.dynamicCstr = Dcstr.DynamicCstr.defaultCstr();\n }\n set defaultLocale(loc) {\n this._defaultLocale = variables_1.Variables.ensureLocale(loc, this._defaultLocale);\n }\n get defaultLocale() {\n return this._defaultLocale;\n }\n static getInstance() {\n Engine.instance = Engine.instance || new Engine();\n return Engine.instance;\n }\n static defaultEvaluator(str, _cstr) {\n return str;\n }\n static evaluateNode(node) {\n return Engine.nodeEvaluator(node);\n }\n getRate() {\n const numeric = parseInt(this.rate, 10);\n return isNaN(numeric) ? 100 : numeric;\n }\n setDynamicCstr(opt_dynamic) {\n if (this.defaultLocale) {\n Dcstr.DynamicCstr.DEFAULT_VALUES[Dcstr.Axis.LOCALE] = this.defaultLocale;\n }\n if (opt_dynamic) {\n const keys = Object.keys(opt_dynamic);\n for (let i = 0; i < keys.length; i++) {\n const feature = keys[i];\n if (Dcstr.DynamicCstr.DEFAULT_ORDER.indexOf(feature) !== -1) {\n const value = opt_dynamic[feature];\n this[feature] = value;\n }\n }\n }\n EngineConst.DOMAIN_TO_STYLES[this.domain] = this.style;\n const dynamic = [this.locale, this.modality, this.domain, this.style].join('.');\n const fallback = Dcstr.DynamicProperties.createProp([Dcstr.DynamicCstr.DEFAULT_VALUES[Dcstr.Axis.LOCALE]], [Dcstr.DynamicCstr.DEFAULT_VALUES[Dcstr.Axis.MODALITY]], [Dcstr.DynamicCstr.DEFAULT_VALUES[Dcstr.Axis.DOMAIN]], [Dcstr.DynamicCstr.DEFAULT_VALUES[Dcstr.Axis.STYLE]]);\n const comparator = this.comparators[this.domain];\n const parser = this.parsers[this.domain];\n this.parser = parser ? parser : this.defaultParser;\n this.dynamicCstr = this.parser.parse(dynamic);\n this.dynamicCstr.updateProperties(fallback.getProperties());\n this.comparator = comparator\n ? comparator()\n : new Dcstr.DefaultComparator(this.dynamicCstr);\n }\n configurate(feature) {\n if (this.mode === EngineConst.Mode.HTTP && !this.config) {\n configBlocks(feature);\n this.config = true;\n }\n configFeature(feature);\n }\n setCustomLoader(fn) {\n if (fn) {\n this.customLoader = fn;\n }\n }\n}\nexports.default = Engine;\nEngine.BINARY_FEATURES = ['strict', 'structure', 'pprint'];\nEngine.STRING_FEATURES = [\n 'markup',\n 'style',\n 'domain',\n 'speech',\n 'walker',\n 'defaultLocale',\n 'locale',\n 'delay',\n 'modality',\n 'rate',\n 'rules',\n 'subiso',\n 'prune'\n];\nEngine.nodeEvaluator = function (_node) {\n return [];\n};\nfunction configFeature(feature) {\n if (typeof SREfeature !== 'undefined') {\n for (const [name, feat] of Object.entries(SREfeature)) {\n feature[name] = feat;\n }\n }\n}\nfunction configBlocks(feature) {\n const scripts = document.documentElement.querySelectorAll('script[type=\"text/x-sre-config\"]');\n for (let i = 0, m = scripts.length; i < m; i++) {\n let inner;\n try {\n inner = scripts[i].innerHTML;\n const config = JSON.parse(inner);\n for (const f in config) {\n feature[f] = config[f];\n }\n }\n catch (err) {\n debugger_1.Debugger.getInstance().output('Illegal configuration ', inner);\n }\n }\n}\nclass EnginePromise {\n static get(locale = Engine.getInstance().locale) {\n return EnginePromise.promises[locale] || Promise.resolve('');\n }\n static getall() {\n return Promise.all(Object.values(EnginePromise.promises));\n }\n}\nexports.EnginePromise = EnginePromise;\nEnginePromise.loaded = {};\nEnginePromise.promises = {};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DOMAIN_TO_STYLES = exports.Markup = exports.Speech = exports.personalityPropList = exports.personalityProps = exports.Mode = void 0;\nvar Mode;\n(function (Mode) {\n Mode[\"SYNC\"] = \"sync\";\n Mode[\"ASYNC\"] = \"async\";\n Mode[\"HTTP\"] = \"http\";\n})(Mode = exports.Mode || (exports.Mode = {}));\nvar personalityProps;\n(function (personalityProps) {\n personalityProps[\"PITCH\"] = \"pitch\";\n personalityProps[\"RATE\"] = \"rate\";\n personalityProps[\"VOLUME\"] = \"volume\";\n personalityProps[\"PAUSE\"] = \"pause\";\n personalityProps[\"JOIN\"] = \"join\";\n personalityProps[\"LAYOUT\"] = \"layout\";\n})(personalityProps = exports.personalityProps || (exports.personalityProps = {}));\nexports.personalityPropList = [\n personalityProps.PITCH,\n personalityProps.RATE,\n personalityProps.VOLUME,\n personalityProps.PAUSE,\n personalityProps.JOIN\n];\nvar Speech;\n(function (Speech) {\n Speech[\"NONE\"] = \"none\";\n Speech[\"SHALLOW\"] = \"shallow\";\n Speech[\"DEEP\"] = \"deep\";\n})(Speech = exports.Speech || (exports.Speech = {}));\nvar Markup;\n(function (Markup) {\n Markup[\"NONE\"] = \"none\";\n Markup[\"LAYOUT\"] = \"layout\";\n Markup[\"PUNCTUATION\"] = \"punctuation\";\n Markup[\"SSML\"] = \"ssml\";\n Markup[\"SSML_STEP\"] = \"ssml_step\";\n Markup[\"ACSS\"] = \"acss\";\n Markup[\"SABLE\"] = \"sable\";\n Markup[\"VOICEXML\"] = \"voicexml\";\n})(Markup = exports.Markup || (exports.Markup = {}));\nexports.DOMAIN_TO_STYLES = {\n mathspeak: 'default',\n clearspeak: 'default'\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setup = void 0;\nconst L10n = require(\"../l10n/l10n\");\nconst MathMap = require(\"../speech_rules/math_map\");\nconst BrowserUtil = require(\"./browser_util\");\nconst debugger_1 = require(\"./debugger\");\nconst engine_1 = require(\"./engine\");\nconst FileUtil = require(\"./file_util\");\nconst system_external_1 = require(\"./system_external\");\nfunction setup(feature) {\n return __awaiter(this, void 0, void 0, function* () {\n const engine = engine_1.default.getInstance();\n if (feature.domain === 'default' &&\n (feature.modality === 'speech' ||\n !feature.modality ||\n engine.modality === 'speech')) {\n feature.domain = 'mathspeak';\n }\n const setIf = (feat) => {\n if (typeof feature[feat] !== 'undefined') {\n engine[feat] = !!feature[feat];\n }\n };\n const setMulti = (feat) => {\n if (typeof feature[feat] !== 'undefined') {\n engine[feat] = feature[feat];\n }\n };\n setMulti('mode');\n engine.configurate(feature);\n engine_1.default.BINARY_FEATURES.forEach(setIf);\n engine_1.default.STRING_FEATURES.forEach(setMulti);\n if (feature.debug) {\n debugger_1.Debugger.getInstance().init();\n }\n if (feature.json) {\n system_external_1.default.jsonPath = FileUtil.makePath(feature.json);\n }\n if (feature.xpath) {\n system_external_1.default.WGXpath = feature.xpath;\n }\n engine.setCustomLoader(feature.custom);\n setupBrowsers(engine);\n L10n.setLocale();\n engine.setDynamicCstr();\n if (engine.init) {\n engine_1.EnginePromise.promises['init'] = new Promise((res, _rej) => {\n setTimeout(() => {\n res('init');\n }, 10);\n });\n engine.init = false;\n return engine_1.EnginePromise.get();\n }\n if (engine.delay) {\n engine.delay = false;\n return engine_1.EnginePromise.get();\n }\n return MathMap.loadLocale();\n });\n}\nexports.setup = setup;\nfunction setupBrowsers(engine) {\n engine.isIE = BrowserUtil.detectIE();\n engine.isEdge = BrowserUtil.detectEdge();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Event = exports.EventType = exports.Move = exports.KeyCode = void 0;\nvar KeyCode;\n(function (KeyCode) {\n KeyCode[KeyCode[\"ENTER\"] = 13] = \"ENTER\";\n KeyCode[KeyCode[\"ESC\"] = 27] = \"ESC\";\n KeyCode[KeyCode[\"SPACE\"] = 32] = \"SPACE\";\n KeyCode[KeyCode[\"PAGE_UP\"] = 33] = \"PAGE_UP\";\n KeyCode[KeyCode[\"PAGE_DOWN\"] = 34] = \"PAGE_DOWN\";\n KeyCode[KeyCode[\"END\"] = 35] = \"END\";\n KeyCode[KeyCode[\"HOME\"] = 36] = \"HOME\";\n KeyCode[KeyCode[\"LEFT\"] = 37] = \"LEFT\";\n KeyCode[KeyCode[\"UP\"] = 38] = \"UP\";\n KeyCode[KeyCode[\"RIGHT\"] = 39] = \"RIGHT\";\n KeyCode[KeyCode[\"DOWN\"] = 40] = \"DOWN\";\n KeyCode[KeyCode[\"TAB\"] = 9] = \"TAB\";\n KeyCode[KeyCode[\"LESS\"] = 188] = \"LESS\";\n KeyCode[KeyCode[\"GREATER\"] = 190] = \"GREATER\";\n KeyCode[KeyCode[\"DASH\"] = 189] = \"DASH\";\n KeyCode[KeyCode[\"ZERO\"] = 48] = \"ZERO\";\n KeyCode[KeyCode[\"ONE\"] = 49] = \"ONE\";\n KeyCode[KeyCode[\"TWO\"] = 50] = \"TWO\";\n KeyCode[KeyCode[\"THREE\"] = 51] = \"THREE\";\n KeyCode[KeyCode[\"FOUR\"] = 52] = \"FOUR\";\n KeyCode[KeyCode[\"FIVE\"] = 53] = \"FIVE\";\n KeyCode[KeyCode[\"SIX\"] = 54] = \"SIX\";\n KeyCode[KeyCode[\"SEVEN\"] = 55] = \"SEVEN\";\n KeyCode[KeyCode[\"EIGHT\"] = 56] = \"EIGHT\";\n KeyCode[KeyCode[\"NINE\"] = 57] = \"NINE\";\n KeyCode[KeyCode[\"A\"] = 65] = \"A\";\n KeyCode[KeyCode[\"B\"] = 66] = \"B\";\n KeyCode[KeyCode[\"C\"] = 67] = \"C\";\n KeyCode[KeyCode[\"D\"] = 68] = \"D\";\n KeyCode[KeyCode[\"E\"] = 69] = \"E\";\n KeyCode[KeyCode[\"F\"] = 70] = \"F\";\n KeyCode[KeyCode[\"G\"] = 71] = \"G\";\n KeyCode[KeyCode[\"H\"] = 72] = \"H\";\n KeyCode[KeyCode[\"I\"] = 73] = \"I\";\n KeyCode[KeyCode[\"J\"] = 74] = \"J\";\n KeyCode[KeyCode[\"K\"] = 75] = \"K\";\n KeyCode[KeyCode[\"L\"] = 76] = \"L\";\n KeyCode[KeyCode[\"M\"] = 77] = \"M\";\n KeyCode[KeyCode[\"N\"] = 78] = \"N\";\n KeyCode[KeyCode[\"O\"] = 79] = \"O\";\n KeyCode[KeyCode[\"P\"] = 80] = \"P\";\n KeyCode[KeyCode[\"Q\"] = 81] = \"Q\";\n KeyCode[KeyCode[\"R\"] = 82] = \"R\";\n KeyCode[KeyCode[\"S\"] = 83] = \"S\";\n KeyCode[KeyCode[\"T\"] = 84] = \"T\";\n KeyCode[KeyCode[\"U\"] = 85] = \"U\";\n KeyCode[KeyCode[\"V\"] = 86] = \"V\";\n KeyCode[KeyCode[\"W\"] = 87] = \"W\";\n KeyCode[KeyCode[\"X\"] = 88] = \"X\";\n KeyCode[KeyCode[\"Y\"] = 89] = \"Y\";\n KeyCode[KeyCode[\"Z\"] = 90] = \"Z\";\n})(KeyCode = exports.KeyCode || (exports.KeyCode = {}));\nexports.Move = new Map([\n [13, 'ENTER'],\n [27, 'ESC'],\n [32, 'SPACE'],\n [33, 'PAGE_UP'],\n [34, 'PAGE_DOWN'],\n [35, 'END'],\n [36, 'HOME'],\n [37, 'LEFT'],\n [38, 'UP'],\n [39, 'RIGHT'],\n [40, 'DOWN'],\n [9, 'TAB'],\n [188, 'LESS'],\n [190, 'GREATER'],\n [189, 'DASH'],\n [48, 'ZERO'],\n [49, 'ONE'],\n [50, 'TWO'],\n [51, 'THREE'],\n [52, 'FOUR'],\n [53, 'FIVE'],\n [54, 'SIX'],\n [55, 'SEVEN'],\n [56, 'EIGHT'],\n [57, 'NINE'],\n [65, 'A'],\n [66, 'B'],\n [67, 'C'],\n [68, 'D'],\n [69, 'E'],\n [70, 'F'],\n [71, 'G'],\n [72, 'H'],\n [73, 'I'],\n [74, 'J'],\n [75, 'K'],\n [76, 'L'],\n [77, 'M'],\n [78, 'N'],\n [79, 'O'],\n [80, 'P'],\n [81, 'Q'],\n [82, 'R'],\n [83, 'S'],\n [84, 'T'],\n [85, 'U'],\n [86, 'V'],\n [87, 'W'],\n [88, 'X'],\n [89, 'Y'],\n [90, 'Z']\n]);\nvar EventType;\n(function (EventType) {\n EventType[\"CLICK\"] = \"click\";\n EventType[\"DBLCLICK\"] = \"dblclick\";\n EventType[\"MOUSEDOWN\"] = \"mousedown\";\n EventType[\"MOUSEUP\"] = \"mouseup\";\n EventType[\"MOUSEOVER\"] = \"mouseover\";\n EventType[\"MOUSEOUT\"] = \"mouseout\";\n EventType[\"MOUSEMOVE\"] = \"mousemove\";\n EventType[\"SELECTSTART\"] = \"selectstart\";\n EventType[\"KEYPRESS\"] = \"keypress\";\n EventType[\"KEYDOWN\"] = \"keydown\";\n EventType[\"KEYUP\"] = \"keyup\";\n EventType[\"TOUCHSTART\"] = \"touchstart\";\n EventType[\"TOUCHMOVE\"] = \"touchmove\";\n EventType[\"TOUCHEND\"] = \"touchend\";\n EventType[\"TOUCHCANCEL\"] = \"touchcancel\";\n})(EventType = exports.EventType || (exports.EventType = {}));\nclass Event {\n constructor(src, type, callback) {\n this.src = src;\n this.type = type;\n this.callback = callback;\n }\n add() {\n this.src.addEventListener(this.type, this.callback);\n }\n remove() {\n this.src.removeEventListener(this.type, this.callback);\n }\n}\nexports.Event = Event;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.localePath = exports.makePath = void 0;\nconst system_external_1 = require(\"./system_external\");\nfunction makePath(path) {\n return path.match('/$') ? path : path + '/';\n}\nexports.makePath = makePath;\nfunction localePath(locale, ext = 'json') {\n return (makePath(system_external_1.default.jsonPath) +\n locale +\n (ext.match(/^\\./) ? ext : '.' + ext));\n}\nexports.localePath = localePath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyProcessor = exports.Processor = void 0;\nconst event_util_1 = require(\"./event_util\");\nclass Processor {\n constructor(name, methods) {\n this.name = name;\n this.process = methods.processor;\n this.postprocess =\n methods.postprocessor || ((x, _y) => x);\n this.processor = this.postprocess\n ? function (x) {\n return this.postprocess(this.process(x), x);\n }\n : this.process;\n this.print = methods.print || Processor.stringify_;\n this.pprint = methods.pprint || this.print;\n }\n static stringify_(x) {\n return x ? x.toString() : x;\n }\n}\nexports.Processor = Processor;\nProcessor.LocalState = { walker: null, speechGenerator: null, highlighter: null };\nclass KeyProcessor extends Processor {\n constructor(name, methods) {\n super(name, methods);\n this.key = methods.key || KeyProcessor.getKey_;\n }\n static getKey_(key) {\n return typeof key === 'string'\n ?\n event_util_1.KeyCode[key.toUpperCase()]\n : key;\n }\n}\nexports.KeyProcessor = KeyProcessor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keypress = exports.output = exports.print = exports.process = exports.set = void 0;\nconst AuralRendering = require(\"../audio/aural_rendering\");\nconst Enrich = require(\"../enrich_mathml/enrich\");\nconst HighlighterFactory = require(\"../highlighter/highlighter_factory\");\nconst locale_1 = require(\"../l10n/locale\");\nconst Semantic = require(\"../semantic_tree/semantic\");\nconst SpeechGeneratorFactory = require(\"../speech_generator/speech_generator_factory\");\nconst SpeechGeneratorUtil = require(\"../speech_generator/speech_generator_util\");\nconst WalkerFactory = require(\"../walker/walker_factory\");\nconst WalkerUtil = require(\"../walker/walker_util\");\nconst DomUtil = require(\"./dom_util\");\nconst engine_1 = require(\"./engine\");\nconst EngineConst = require(\"../common/engine_const\");\nconst processor_1 = require(\"./processor\");\nconst XpathUtil = require(\"./xpath_util\");\nconst PROCESSORS = new Map();\nfunction set(processor) {\n PROCESSORS.set(processor.name, processor);\n}\nexports.set = set;\nfunction get_(name) {\n const processor = PROCESSORS.get(name);\n if (!processor) {\n throw new engine_1.SREError('Unknown processor ' + name);\n }\n return processor;\n}\nfunction process(name, expr) {\n const processor = get_(name);\n try {\n return processor.processor(expr);\n }\n catch (_e) {\n throw new engine_1.SREError('Processing error for expression ' + expr);\n }\n}\nexports.process = process;\nfunction print(name, data) {\n const processor = get_(name);\n return engine_1.default.getInstance().pprint\n ? processor.pprint(data)\n : processor.print(data);\n}\nexports.print = print;\nfunction output(name, expr) {\n const processor = get_(name);\n try {\n const data = processor.processor(expr);\n return engine_1.default.getInstance().pprint\n ? processor.pprint(data)\n : processor.print(data);\n }\n catch (_e) {\n throw new engine_1.SREError('Processing error for expression ' + expr);\n }\n}\nexports.output = output;\nfunction keypress(name, expr) {\n const processor = get_(name);\n const key = processor instanceof processor_1.KeyProcessor ? processor.key(expr) : expr;\n const data = processor.processor(key);\n return engine_1.default.getInstance().pprint\n ? processor.pprint(data)\n : processor.print(data);\n}\nexports.keypress = keypress;\nset(new processor_1.Processor('semantic', {\n processor: function (expr) {\n const mml = DomUtil.parseInput(expr);\n return Semantic.xmlTree(mml);\n },\n postprocessor: function (xml, _expr) {\n const setting = engine_1.default.getInstance().speech;\n if (setting === EngineConst.Speech.NONE) {\n return xml;\n }\n const clone = DomUtil.cloneNode(xml);\n let speech = SpeechGeneratorUtil.computeMarkup(clone);\n if (setting === EngineConst.Speech.SHALLOW) {\n xml.setAttribute('speech', AuralRendering.finalize(speech));\n return xml;\n }\n const nodesXml = XpathUtil.evalXPath('.//*[@id]', xml);\n const nodesClone = XpathUtil.evalXPath('.//*[@id]', clone);\n for (let i = 0, orig, node; (orig = nodesXml[i]), (node = nodesClone[i]); i++) {\n speech = SpeechGeneratorUtil.computeMarkup(node);\n orig.setAttribute('speech', AuralRendering.finalize(speech));\n }\n return xml;\n },\n pprint: function (tree) {\n return DomUtil.formatXml(tree.toString());\n }\n}));\nset(new processor_1.Processor('speech', {\n processor: function (expr) {\n const mml = DomUtil.parseInput(expr);\n const xml = Semantic.xmlTree(mml);\n const descrs = SpeechGeneratorUtil.computeSpeech(xml);\n return AuralRendering.finalize(AuralRendering.markup(descrs));\n },\n pprint: function (speech) {\n const str = speech.toString();\n return AuralRendering.isXml() ? DomUtil.formatXml(str) : str;\n }\n}));\nset(new processor_1.Processor('json', {\n processor: function (expr) {\n const mml = DomUtil.parseInput(expr);\n const stree = Semantic.getTree(mml);\n return stree.toJson();\n },\n postprocessor: function (json, expr) {\n const setting = engine_1.default.getInstance().speech;\n if (setting === EngineConst.Speech.NONE) {\n return json;\n }\n const mml = DomUtil.parseInput(expr);\n const xml = Semantic.xmlTree(mml);\n const speech = SpeechGeneratorUtil.computeMarkup(xml);\n if (setting === EngineConst.Speech.SHALLOW) {\n json.stree.speech = AuralRendering.finalize(speech);\n return json;\n }\n const addRec = (json) => {\n const node = XpathUtil.evalXPath(`.//*[@id=${json.id}]`, xml)[0];\n const speech = SpeechGeneratorUtil.computeMarkup(node);\n json.speech = AuralRendering.finalize(speech);\n if (json.children) {\n json.children.forEach(addRec);\n }\n };\n addRec(json.stree);\n return json;\n },\n print: function (json) {\n return JSON.stringify(json);\n },\n pprint: function (json) {\n return JSON.stringify(json, null, 2);\n }\n}));\nset(new processor_1.Processor('description', {\n processor: function (expr) {\n const mml = DomUtil.parseInput(expr);\n const xml = Semantic.xmlTree(mml);\n const descrs = SpeechGeneratorUtil.computeSpeech(xml);\n return descrs;\n },\n print: function (descrs) {\n return JSON.stringify(descrs);\n },\n pprint: function (descrs) {\n return JSON.stringify(descrs, null, 2);\n }\n}));\nset(new processor_1.Processor('enriched', {\n processor: function (expr) {\n return Enrich.semanticMathmlSync(expr);\n },\n postprocessor: function (enr, _expr) {\n const root = WalkerUtil.getSemanticRoot(enr);\n let generator;\n switch (engine_1.default.getInstance().speech) {\n case EngineConst.Speech.NONE:\n break;\n case EngineConst.Speech.SHALLOW:\n generator = SpeechGeneratorFactory.generator('Adhoc');\n generator.getSpeech(root, enr);\n break;\n case EngineConst.Speech.DEEP:\n generator = SpeechGeneratorFactory.generator('Tree');\n generator.getSpeech(enr, enr);\n break;\n default:\n break;\n }\n return enr;\n },\n pprint: function (tree) {\n return DomUtil.formatXml(tree.toString());\n }\n}));\nset(new processor_1.Processor('walker', {\n processor: function (expr) {\n const generator = SpeechGeneratorFactory.generator('Node');\n processor_1.Processor.LocalState.speechGenerator = generator;\n generator.setOptions({\n modality: engine_1.default.getInstance().modality,\n locale: engine_1.default.getInstance().locale,\n domain: engine_1.default.getInstance().domain,\n style: engine_1.default.getInstance().style\n });\n processor_1.Processor.LocalState.highlighter = HighlighterFactory.highlighter({ color: 'black' }, { color: 'white' }, { renderer: 'NativeMML' });\n const node = process('enriched', expr);\n const eml = print('enriched', node);\n processor_1.Processor.LocalState.walker = WalkerFactory.walker(engine_1.default.getInstance().walker, node, generator, processor_1.Processor.LocalState.highlighter, eml);\n return processor_1.Processor.LocalState.walker;\n },\n print: function (_walker) {\n return processor_1.Processor.LocalState.walker.speech();\n }\n}));\nset(new processor_1.KeyProcessor('move', {\n processor: function (direction) {\n if (!processor_1.Processor.LocalState.walker) {\n return null;\n }\n const move = processor_1.Processor.LocalState.walker.move(direction);\n return move === false\n ? AuralRendering.error(direction)\n : processor_1.Processor.LocalState.walker.speech();\n }\n}));\nset(new processor_1.Processor('number', {\n processor: function (numb) {\n const num = parseInt(numb, 10);\n return isNaN(num) ? '' : locale_1.LOCALE.NUMBERS.numberToWords(num);\n }\n}));\nset(new processor_1.Processor('ordinal', {\n processor: function (numb) {\n const num = parseInt(numb, 10);\n return isNaN(num) ? '' : locale_1.LOCALE.NUMBERS.wordOrdinal(num);\n }\n}));\nset(new processor_1.Processor('numericOrdinal', {\n processor: function (numb) {\n const num = parseInt(numb, 10);\n return isNaN(num) ? '' : locale_1.LOCALE.NUMBERS.numericOrdinal(num);\n }\n}));\nset(new processor_1.Processor('vulgar', {\n processor: function (numb) {\n const [en, den] = numb.split('/').map((x) => parseInt(x, 10));\n return isNaN(en) || isNaN(den)\n ? ''\n : process('speech', `${en}${den}`);\n }\n}));\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.localePath = exports.exit = exports.move = exports.walk = exports.processFile = exports.file = exports.vulgar = exports.numericOrdinal = exports.ordinal = exports.number = exports.toEnriched = exports.toDescription = exports.toJson = exports.toSemantic = exports.toSpeech = exports.localeLoader = exports.engineReady = exports.engineSetup = exports.setupEngine = exports.version = void 0;\nconst engine_1 = require(\"./engine\");\nconst engine_setup_1 = require(\"./engine_setup\");\nconst EngineConst = require(\"./engine_const\");\nconst FileUtil = require(\"./file_util\");\nconst ProcessorFactory = require(\"./processor_factory\");\nconst system_external_1 = require(\"./system_external\");\nconst variables_1 = require(\"./variables\");\nconst math_map_1 = require(\"../speech_rules/math_map\");\nexports.version = variables_1.Variables.VERSION;\nfunction setupEngine(feature) {\n return __awaiter(this, void 0, void 0, function* () {\n return (0, engine_setup_1.setup)(feature);\n });\n}\nexports.setupEngine = setupEngine;\nfunction engineSetup() {\n const engineFeatures = ['mode'].concat(engine_1.default.STRING_FEATURES, engine_1.default.BINARY_FEATURES);\n const engine = engine_1.default.getInstance();\n const features = {};\n engineFeatures.forEach(function (x) {\n features[x] = engine[x];\n });\n features.json = system_external_1.default.jsonPath;\n features.xpath = system_external_1.default.WGXpath;\n features.rules = engine.ruleSets.slice();\n return features;\n}\nexports.engineSetup = engineSetup;\nfunction engineReady() {\n return __awaiter(this, void 0, void 0, function* () {\n return setupEngine({}).then(() => engine_1.EnginePromise.getall());\n });\n}\nexports.engineReady = engineReady;\nexports.localeLoader = math_map_1.standardLoader;\nfunction toSpeech(expr) {\n return processString('speech', expr);\n}\nexports.toSpeech = toSpeech;\nfunction toSemantic(expr) {\n return processString('semantic', expr);\n}\nexports.toSemantic = toSemantic;\nfunction toJson(expr) {\n return processString('json', expr);\n}\nexports.toJson = toJson;\nfunction toDescription(expr) {\n return processString('description', expr);\n}\nexports.toDescription = toDescription;\nfunction toEnriched(expr) {\n return processString('enriched', expr);\n}\nexports.toEnriched = toEnriched;\nfunction number(expr) {\n return processString('number', expr);\n}\nexports.number = number;\nfunction ordinal(expr) {\n return processString('ordinal', expr);\n}\nexports.ordinal = ordinal;\nfunction numericOrdinal(expr) {\n return processString('numericOrdinal', expr);\n}\nexports.numericOrdinal = numericOrdinal;\nfunction vulgar(expr) {\n return processString('vulgar', expr);\n}\nexports.vulgar = vulgar;\nfunction processString(processor, input) {\n return ProcessorFactory.process(processor, input);\n}\nexports.file = {};\nexports.file.toSpeech = function (input, opt_output) {\n return processFile('speech', input, opt_output);\n};\nexports.file.toSemantic = function (input, opt_output) {\n return processFile('semantic', input, opt_output);\n};\nexports.file.toJson = function (input, opt_output) {\n return processFile('json', input, opt_output);\n};\nexports.file.toDescription = function (input, opt_output) {\n return processFile('description', input, opt_output);\n};\nexports.file.toEnriched = function (input, opt_output) {\n return processFile('enriched', input, opt_output);\n};\nfunction processFile(processor, input, opt_output) {\n switch (engine_1.default.getInstance().mode) {\n case EngineConst.Mode.ASYNC:\n return processFileAsync(processor, input, opt_output);\n case EngineConst.Mode.SYNC:\n return processFileSync(processor, input, opt_output);\n default:\n throw new engine_1.SREError(`Can process files in ${engine_1.default.getInstance().mode} mode`);\n }\n}\nexports.processFile = processFile;\nfunction processFileSync(processor, input, opt_output) {\n const expr = inputFileSync_(input);\n const result = ProcessorFactory.output(processor, expr);\n if (opt_output) {\n try {\n system_external_1.default.fs.writeFileSync(opt_output, result);\n }\n catch (err) {\n throw new engine_1.SREError('Can not write to file: ' + opt_output);\n }\n }\n return result;\n}\nfunction inputFileSync_(file) {\n let expr;\n try {\n expr = system_external_1.default.fs.readFileSync(file, { encoding: 'utf8' });\n }\n catch (err) {\n throw new engine_1.SREError('Can not open file: ' + file);\n }\n return expr;\n}\nfunction processFileAsync(processor, file, output) {\n return __awaiter(this, void 0, void 0, function* () {\n const expr = yield system_external_1.default.fs.promises.readFile(file, {\n encoding: 'utf8'\n });\n const result = ProcessorFactory.output(processor, expr);\n if (output) {\n try {\n system_external_1.default.fs.promises.writeFile(output, result);\n }\n catch (_err) {\n throw new engine_1.SREError('Can not write to file: ' + output);\n }\n }\n return result;\n });\n}\nfunction walk(expr) {\n return ProcessorFactory.output('walker', expr);\n}\nexports.walk = walk;\nfunction move(direction) {\n return ProcessorFactory.keypress('move', direction);\n}\nexports.move = move;\nfunction exit(opt_value) {\n const value = opt_value || 0;\n engine_1.EnginePromise.getall().then(() => process.exit(value));\n}\nexports.exit = exit;\nexports.localePath = FileUtil.localePath;\nif (system_external_1.default.documentSupported) {\n setupEngine({ mode: EngineConst.Mode.HTTP }).then(() => setupEngine({}));\n}\nelse {\n setupEngine({ mode: EngineConst.Mode.SYNC }).then(() => setupEngine({ mode: EngineConst.Mode.ASYNC }));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst variables_1 = require(\"./variables\");\nclass SystemExternal {\n static extRequire(library) {\n if (typeof process !== 'undefined' && typeof require !== 'undefined') {\n const nodeRequire = eval('require');\n return nodeRequire(library);\n }\n return null;\n }\n}\nexports.default = SystemExternal;\nSystemExternal.windowSupported = (() => !(typeof window === 'undefined'))();\nSystemExternal.documentSupported = (() => SystemExternal.windowSupported &&\n !(typeof window.document === 'undefined'))();\nSystemExternal.xmldom = SystemExternal.documentSupported\n ? window\n : SystemExternal.extRequire('xmldom-sre');\nSystemExternal.document = SystemExternal.documentSupported\n ? window.document\n : new SystemExternal.xmldom.DOMImplementation().createDocument('', '', 0);\nSystemExternal.xpath = SystemExternal.documentSupported\n ? document\n : (function () {\n const window = { document: {}, XPathResult: {} };\n const wgx = SystemExternal.extRequire('wicked-good-xpath');\n wgx.install(window);\n window.document.XPathResult = window.XPathResult;\n return window.document;\n })();\nSystemExternal.mathmapsIePath = 'https://cdn.jsdelivr.net/npm/sre-mathmaps-ie@' +\n variables_1.Variables.VERSION +\n 'mathmaps_ie.js';\nSystemExternal.commander = SystemExternal.documentSupported\n ? null\n : SystemExternal.extRequire('commander');\nSystemExternal.fs = SystemExternal.documentSupported\n ? null\n : SystemExternal.extRequire('fs');\nSystemExternal.url = variables_1.Variables.url;\nSystemExternal.jsonPath = (function () {\n return ((SystemExternal.documentSupported\n ? SystemExternal.url\n : process.env.SRE_JSON_PATH ||\n global.SRE_JSON_PATH ||\n (typeof __dirname !== 'undefined'\n ? __dirname + '/mathmaps'\n : process.cwd())) + '/');\n})();\nSystemExternal.WGXpath = variables_1.Variables.WGXpath;\nSystemExternal.wgxpath = null;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variables = void 0;\nclass Variables {\n static ensureLocale(loc, def) {\n if (!Variables.LOCALES.get(loc)) {\n console.error(`Locale ${loc} does not exist! Using` +\n ` ${Variables.LOCALES.get(def)} instead.`);\n return def;\n }\n return loc;\n }\n}\nexports.Variables = Variables;\nVariables.VERSION = '4.0.6';\nVariables.LOCALES = new Map([\n ['ca', 'Catalan'],\n ['da', 'Danish'],\n ['de', 'German'],\n ['en', 'English'],\n ['es', 'Spanish'],\n ['fr', 'French'],\n ['hi', 'Hindi'],\n ['it', 'Italian'],\n ['nb', 'Bokmål'],\n ['nn', 'Nynorsk'],\n ['sv', 'Swedish'],\n ['nemeth', 'Nemeth']\n]);\nVariables.mathjaxVersion = '3.2.1';\nVariables.url = 'https://cdn.jsdelivr.net/npm/speech-rule-engine@' +\n Variables.VERSION +\n '/lib/mathmaps';\nVariables.WGXpath = 'https://cdn.jsdelivr.net/npm/wicked-good-xpath@1.3.0/dist/wgxpath.install.js';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateEvaluator = exports.evaluateString = exports.evaluateBoolean = exports.getLeafNodes = exports.evalXPath = exports.resolveNameSpace = exports.xpath = void 0;\nconst engine_1 = require(\"./engine\");\nconst EngineConst = require(\"../common/engine_const\");\nconst system_external_1 = require(\"./system_external\");\nfunction xpathSupported() {\n if (typeof XPathResult === 'undefined') {\n return false;\n }\n return true;\n}\nexports.xpath = {\n currentDocument: null,\n evaluate: xpathSupported()\n ? document.evaluate\n : system_external_1.default.xpath.evaluate,\n result: xpathSupported() ? XPathResult : system_external_1.default.xpath.XPathResult,\n createNSResolver: xpathSupported()\n ? document.createNSResolver\n : system_external_1.default.xpath.createNSResolver\n};\nconst nameSpaces = {\n xhtml: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n mml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\nfunction resolveNameSpace(prefix) {\n return nameSpaces[prefix] || null;\n}\nexports.resolveNameSpace = resolveNameSpace;\nclass Resolver {\n constructor() {\n this.lookupNamespaceURI = resolveNameSpace;\n }\n}\nfunction evaluateXpath(expression, rootNode, type) {\n return engine_1.default.getInstance().mode === EngineConst.Mode.HTTP &&\n !engine_1.default.getInstance().isIE &&\n !engine_1.default.getInstance().isEdge\n ? exports.xpath.currentDocument.evaluate(expression, rootNode, resolveNameSpace, type, null)\n : exports.xpath.evaluate(expression, rootNode, new Resolver(), type, null);\n}\nfunction evalXPath(expression, rootNode) {\n let iterator;\n try {\n iterator = evaluateXpath(expression, rootNode, exports.xpath.result.ORDERED_NODE_ITERATOR_TYPE);\n }\n catch (err) {\n return [];\n }\n const results = [];\n for (let xpathNode = iterator.iterateNext(); xpathNode; xpathNode = iterator.iterateNext()) {\n results.push(xpathNode);\n }\n return results;\n}\nexports.evalXPath = evalXPath;\nfunction getLeafNodes(rootNode) {\n return evalXPath('.//*[count(*)=0]', rootNode);\n}\nexports.getLeafNodes = getLeafNodes;\nfunction evaluateBoolean(expression, rootNode) {\n let result;\n try {\n result = evaluateXpath(expression, rootNode, exports.xpath.result.BOOLEAN_TYPE);\n }\n catch (err) {\n return false;\n }\n return result.booleanValue;\n}\nexports.evaluateBoolean = evaluateBoolean;\nfunction evaluateString(expression, rootNode) {\n let result;\n try {\n result = evaluateXpath(expression, rootNode, exports.xpath.result.STRING_TYPE);\n }\n catch (err) {\n return '';\n }\n return result.stringValue;\n}\nexports.evaluateString = evaluateString;\nfunction updateEvaluator(node) {\n if (engine_1.default.getInstance().mode !== EngineConst.Mode.HTTP)\n return;\n let parent = node;\n while (parent && !parent.evaluate) {\n parent = parent.parentNode;\n }\n if (parent && parent.evaluate) {\n exports.xpath.currentDocument = parent;\n }\n else if (node.ownerDocument) {\n exports.xpath.currentDocument = node.ownerDocument;\n }\n}\nexports.updateEvaluator = updateEvaluator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractEnrichCase = void 0;\nclass AbstractEnrichCase {\n constructor(semantic) {\n this.semantic = semantic;\n }\n}\nexports.AbstractEnrichCase = AbstractEnrichCase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseBinomial = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst enrich_mathml_1 = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseBinomial extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.mml = semantic.mathmlTree;\n }\n static test(semantic) {\n return (!semantic.mathmlTree &&\n semantic.type === \"line\" &&\n semantic.role === \"binomial\");\n }\n getMathml() {\n if (!this.semantic.childNodes.length) {\n return this.mml;\n }\n const child = this.semantic.childNodes[0];\n this.mml = (0, enrich_mathml_1.walkTree)(child);\n if (this.mml.hasAttribute(enrich_attr_1.Attribute.TYPE)) {\n const mrow = DomUtil.createElement('mrow');\n mrow.setAttribute(enrich_attr_1.Attribute.ADDED, 'true');\n DomUtil.replaceNode(this.mml, mrow);\n mrow.appendChild(this.mml);\n this.mml = mrow;\n }\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n return this.mml;\n }\n}\nexports.CaseBinomial = CaseBinomial;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseDoubleScript = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseDoubleScript extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.mml = semantic.mathmlTree;\n }\n static test(semantic) {\n if (!semantic.mathmlTree || !semantic.childNodes.length) {\n return false;\n }\n const mmlTag = DomUtil.tagName(semantic.mathmlTree);\n const role = semantic.childNodes[0].role;\n return ((mmlTag === 'MSUBSUP' && role === \"subsup\") ||\n (mmlTag === 'MUNDEROVER' && role === \"underover\"));\n }\n getMathml() {\n const ignore = this.semantic.childNodes[0];\n const baseSem = ignore.childNodes[0];\n const supSem = this.semantic.childNodes[1];\n const subSem = ignore.childNodes[1];\n const supMml = EnrichMathml.walkTree(supSem);\n const baseMml = EnrichMathml.walkTree(baseSem);\n const subMml = EnrichMathml.walkTree(subSem);\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n this.mml.setAttribute(enrich_attr_1.Attribute.CHILDREN, (0, enrich_attr_1.makeIdList)([baseSem, subSem, supSem]));\n [baseMml, subMml, supMml].forEach((child) => EnrichMathml.getInnerNode(child).setAttribute(enrich_attr_1.Attribute.PARENT, this.mml.getAttribute(enrich_attr_1.Attribute.ID)));\n this.mml.setAttribute(enrich_attr_1.Attribute.TYPE, ignore.role);\n EnrichMathml.addCollapsedAttribute(this.mml, [\n this.semantic.id,\n [ignore.id, baseSem.id, subSem.id],\n supSem.id\n ]);\n return this.mml;\n }\n}\nexports.CaseDoubleScript = CaseDoubleScript;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseEmbellished = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst semantic_node_1 = require(\"../semantic_tree/semantic_node\");\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst case_double_script_1 = require(\"./case_double_script\");\nconst case_multiscripts_1 = require(\"./case_multiscripts\");\nconst case_tensor_1 = require(\"./case_tensor\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseEmbellished extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.fenced = null;\n this.fencedMml = null;\n this.fencedMmlNodes = [];\n this.ofence = null;\n this.ofenceMml = null;\n this.ofenceMap = {};\n this.cfence = null;\n this.cfenceMml = null;\n this.cfenceMap = {};\n this.parentCleanup = [];\n }\n static test(semantic) {\n return !!(semantic.mathmlTree &&\n semantic.fencePointer &&\n !semantic.mathmlTree.getAttribute('data-semantic-type'));\n }\n static makeEmptyNode_(id) {\n const mrow = DomUtil.createElement('mrow');\n const empty = new semantic_node_1.SemanticNode(id);\n empty.type = \"empty\";\n empty.mathmlTree = mrow;\n return empty;\n }\n static fencedMap_(fence, ids) {\n ids[fence.id] = fence.mathmlTree;\n if (!fence.embellished) {\n return;\n }\n CaseEmbellished.fencedMap_(fence.childNodes[0], ids);\n }\n getMathml() {\n this.getFenced_();\n this.fencedMml = EnrichMathml.walkTree(this.fenced);\n this.getFencesMml_();\n if (this.fenced.type === \"empty\" && !this.fencedMml.parentNode) {\n this.fencedMml.setAttribute(enrich_attr_1.Attribute.ADDED, 'true');\n this.cfenceMml.parentNode.insertBefore(this.fencedMml, this.cfenceMml);\n }\n this.getFencedMml_();\n const rewrite = this.rewrite_();\n return rewrite;\n }\n fencedElement(node) {\n return (node.type === \"fenced\" ||\n node.type === \"matrix\" ||\n node.type === \"vector\");\n }\n getFenced_() {\n let currentNode = this.semantic;\n while (!this.fencedElement(currentNode)) {\n currentNode = currentNode.childNodes[0];\n }\n this.fenced = currentNode.childNodes[0];\n this.ofence = currentNode.contentNodes[0];\n this.cfence = currentNode.contentNodes[1];\n CaseEmbellished.fencedMap_(this.ofence, this.ofenceMap);\n CaseEmbellished.fencedMap_(this.cfence, this.cfenceMap);\n }\n getFencedMml_() {\n let sibling = this.ofenceMml.nextSibling;\n sibling = sibling === this.fencedMml ? sibling : this.fencedMml;\n while (sibling && sibling !== this.cfenceMml) {\n this.fencedMmlNodes.push(sibling);\n sibling = sibling.nextSibling;\n }\n }\n getFencesMml_() {\n let currentNode = this.semantic;\n const ofenceIds = Object.keys(this.ofenceMap);\n const cfenceIds = Object.keys(this.cfenceMap);\n while ((!this.ofenceMml || !this.cfenceMml) &&\n currentNode !== this.fenced) {\n if (ofenceIds.indexOf(currentNode.fencePointer) !== -1 &&\n !this.ofenceMml) {\n this.ofenceMml = currentNode.mathmlTree;\n }\n if (cfenceIds.indexOf(currentNode.fencePointer) !== -1 &&\n !this.cfenceMml) {\n this.cfenceMml = currentNode.mathmlTree;\n }\n currentNode = currentNode.childNodes[0];\n }\n if (!this.ofenceMml) {\n this.ofenceMml = this.ofence.mathmlTree;\n }\n if (!this.cfenceMml) {\n this.cfenceMml = this.cfence.mathmlTree;\n }\n if (this.ofenceMml) {\n this.ofenceMml = EnrichMathml.ascendNewNode(this.ofenceMml);\n }\n if (this.cfenceMml) {\n this.cfenceMml = EnrichMathml.ascendNewNode(this.cfenceMml);\n }\n }\n rewrite_() {\n let currentNode = this.semantic;\n let result = null;\n const newNode = this.introduceNewLayer_();\n (0, enrich_attr_1.setAttributes)(newNode, this.fenced.parent);\n while (!this.fencedElement(currentNode)) {\n const mml = currentNode.mathmlTree;\n const specialCase = this.specialCase_(currentNode, mml);\n if (specialCase) {\n currentNode = specialCase;\n }\n else {\n (0, enrich_attr_1.setAttributes)(mml, currentNode);\n const mmlChildren = [];\n for (let i = 1, child; (child = currentNode.childNodes[i]); i++) {\n mmlChildren.push(EnrichMathml.walkTree(child));\n }\n currentNode = currentNode.childNodes[0];\n }\n const dummy = DomUtil.createElement('dummy');\n const saveChild = mml.childNodes[0];\n DomUtil.replaceNode(mml, dummy);\n DomUtil.replaceNode(newNode, mml);\n DomUtil.replaceNode(mml.childNodes[0], newNode);\n DomUtil.replaceNode(dummy, saveChild);\n if (!result) {\n result = mml;\n }\n }\n EnrichMathml.walkTree(this.ofence);\n EnrichMathml.walkTree(this.cfence);\n this.cleanupParents_();\n return result || newNode;\n }\n specialCase_(semantic, mml) {\n const mmlTag = DomUtil.tagName(mml);\n let parent = null;\n let caller;\n if (mmlTag === 'MSUBSUP') {\n parent = semantic.childNodes[0];\n caller = case_double_script_1.CaseDoubleScript;\n }\n else if (mmlTag === 'MMULTISCRIPTS') {\n if (semantic.type === \"superscript\" ||\n semantic.type === \"subscript\") {\n caller = case_multiscripts_1.CaseMultiscripts;\n }\n else if (semantic.type === \"tensor\") {\n caller = case_tensor_1.CaseTensor;\n }\n if (caller &&\n semantic.childNodes[0] &&\n semantic.childNodes[0].role === \"subsup\") {\n parent = semantic.childNodes[0];\n }\n else {\n parent = semantic;\n }\n }\n if (!parent) {\n return null;\n }\n const base = parent.childNodes[0];\n const empty = CaseEmbellished.makeEmptyNode_(base.id);\n parent.childNodes[0] = empty;\n mml = new caller(semantic).getMathml();\n parent.childNodes[0] = base;\n this.parentCleanup.push(mml);\n return parent.childNodes[0];\n }\n introduceNewLayer_() {\n const fullOfence = this.fullFence(this.ofenceMml);\n const fullCfence = this.fullFence(this.cfenceMml);\n let newNode = DomUtil.createElement('mrow');\n DomUtil.replaceNode(this.fencedMml, newNode);\n this.fencedMmlNodes.forEach((node) => newNode.appendChild(node));\n newNode.insertBefore(fullOfence, this.fencedMml);\n newNode.appendChild(fullCfence);\n if (!newNode.parentNode) {\n const mrow = DomUtil.createElement('mrow');\n while (newNode.childNodes.length > 0) {\n mrow.appendChild(newNode.childNodes[0]);\n }\n newNode.appendChild(mrow);\n newNode = mrow;\n }\n return newNode;\n }\n fullFence(fence) {\n const parent = this.fencedMml.parentNode;\n let currentFence = fence;\n while (currentFence.parentNode && currentFence.parentNode !== parent) {\n currentFence = currentFence.parentNode;\n }\n return currentFence;\n }\n cleanupParents_() {\n this.parentCleanup.forEach(function (x) {\n const parent = x.childNodes[1].getAttribute(enrich_attr_1.Attribute.PARENT);\n x.childNodes[0].setAttribute(enrich_attr_1.Attribute.PARENT, parent);\n });\n }\n}\nexports.CaseEmbellished = CaseEmbellished;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseLimit = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseLimit extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.mml = semantic.mathmlTree;\n }\n static test(semantic) {\n if (!semantic.mathmlTree || !semantic.childNodes.length) {\n return false;\n }\n const mmlTag = DomUtil.tagName(semantic.mathmlTree);\n const type = semantic.type;\n return (((type === \"limupper\" || type === \"limlower\") &&\n (mmlTag === 'MSUBSUP' || mmlTag === 'MUNDEROVER')) ||\n (type === \"limboth\" &&\n (mmlTag === 'MSUB' ||\n mmlTag === 'MUNDER' ||\n mmlTag === 'MSUP' ||\n mmlTag === 'MOVER')));\n }\n static walkTree_(node) {\n if (node) {\n EnrichMathml.walkTree(node);\n }\n }\n getMathml() {\n const children = this.semantic.childNodes;\n if (this.semantic.type !== \"limboth\" &&\n this.mml.childNodes.length >= 3) {\n this.mml = EnrichMathml.introduceNewLayer([this.mml], this.semantic);\n }\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n if (!children[0].mathmlTree) {\n children[0].mathmlTree = this.semantic.mathmlTree;\n }\n children.forEach(CaseLimit.walkTree_);\n return this.mml;\n }\n}\nexports.CaseLimit = CaseLimit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseLine = void 0;\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseLine extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.mml = semantic.mathmlTree;\n }\n static test(semantic) {\n return !!semantic.mathmlTree && semantic.type === \"line\";\n }\n getMathml() {\n if (this.semantic.contentNodes.length) {\n EnrichMathml.walkTree(this.semantic.contentNodes[0]);\n }\n if (this.semantic.childNodes.length) {\n EnrichMathml.walkTree(this.semantic.childNodes[0]);\n }\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n return this.mml;\n }\n}\nexports.CaseLine = CaseLine;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseMultiindex = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseMultiindex extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.mml = semantic.mathmlTree;\n }\n static multiscriptIndex(index) {\n if (index.type === \"punctuated\" &&\n index.contentNodes[0].role === \"dummy\") {\n return EnrichMathml.collapsePunctuated(index);\n }\n EnrichMathml.walkTree(index);\n return index.id;\n }\n static createNone_(semantic) {\n const newNode = DomUtil.createElement('none');\n if (semantic) {\n (0, enrich_attr_1.setAttributes)(newNode, semantic);\n }\n newNode.setAttribute(enrich_attr_1.Attribute.ADDED, 'true');\n return newNode;\n }\n completeMultiscript(rightIndices, leftIndices) {\n const children = DomUtil.toArray(this.mml.childNodes).slice(1);\n let childCounter = 0;\n const completeIndices = (indices) => {\n for (let i = 0, index; (index = indices[i]); i++) {\n const child = children[childCounter];\n if (!child ||\n index !==\n parseInt(EnrichMathml.getInnerNode(child).getAttribute(enrich_attr_1.Attribute.ID))) {\n const query = this.semantic.querySelectorAll((x) => x.id === index);\n this.mml.insertBefore(CaseMultiindex.createNone_(query[0]), child || null);\n }\n else {\n EnrichMathml.getInnerNode(child).setAttribute(enrich_attr_1.Attribute.PARENT, this.semantic.id.toString());\n childCounter++;\n }\n }\n };\n completeIndices(rightIndices);\n if (children[childCounter] &&\n DomUtil.tagName(children[childCounter]) !== 'MPRESCRIPTS') {\n this.mml.insertBefore(children[childCounter], DomUtil.createElement('mprescripts'));\n }\n else {\n childCounter++;\n }\n completeIndices(leftIndices);\n }\n}\nexports.CaseMultiindex = CaseMultiindex;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseMultiscripts = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst semantic_skeleton_1 = require(\"../semantic_tree/semantic_skeleton\");\nconst case_multiindex_1 = require(\"./case_multiindex\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseMultiscripts extends case_multiindex_1.CaseMultiindex {\n static test(semantic) {\n if (!semantic.mathmlTree) {\n return false;\n }\n const mmlTag = DomUtil.tagName(semantic.mathmlTree);\n return (mmlTag === 'MMULTISCRIPTS' &&\n (semantic.type === \"superscript\" ||\n semantic.type === \"subscript\"));\n }\n constructor(semantic) {\n super(semantic);\n }\n getMathml() {\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n let baseSem, rsup, rsub;\n if (this.semantic.childNodes[0] &&\n this.semantic.childNodes[0].role === \"subsup\") {\n const ignore = this.semantic.childNodes[0];\n baseSem = ignore.childNodes[0];\n rsup = case_multiindex_1.CaseMultiindex.multiscriptIndex(this.semantic.childNodes[1]);\n rsub = case_multiindex_1.CaseMultiindex.multiscriptIndex(ignore.childNodes[1]);\n const collapsed = [this.semantic.id, [ignore.id, baseSem.id, rsub], rsup];\n EnrichMathml.addCollapsedAttribute(this.mml, collapsed);\n this.mml.setAttribute(enrich_attr_1.Attribute.TYPE, ignore.role);\n this.completeMultiscript(semantic_skeleton_1.SemanticSkeleton.interleaveIds(rsub, rsup), []);\n }\n else {\n baseSem = this.semantic.childNodes[0];\n rsup = case_multiindex_1.CaseMultiindex.multiscriptIndex(this.semantic.childNodes[1]);\n const collapsed = [this.semantic.id, baseSem.id, rsup];\n EnrichMathml.addCollapsedAttribute(this.mml, collapsed);\n }\n const childIds = semantic_skeleton_1.SemanticSkeleton.collapsedLeafs(rsub || [], rsup);\n const base = EnrichMathml.walkTree(baseSem);\n EnrichMathml.getInnerNode(base).setAttribute(enrich_attr_1.Attribute.PARENT, this.semantic.id.toString());\n childIds.unshift(baseSem.id);\n this.mml.setAttribute(enrich_attr_1.Attribute.CHILDREN, childIds.join(','));\n return this.mml;\n }\n}\nexports.CaseMultiscripts = CaseMultiscripts;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseProof = void 0;\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseProof extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.mml = semantic.mathmlTree;\n }\n static test(semantic) {\n return (!!semantic.mathmlTree &&\n (semantic.type === \"inference\" ||\n semantic.type === \"premises\"));\n }\n getMathml() {\n if (!this.semantic.childNodes.length) {\n return this.mml;\n }\n this.semantic.contentNodes.forEach(function (x) {\n EnrichMathml.walkTree(x);\n (0, enrich_attr_1.setAttributes)(x.mathmlTree, x);\n });\n this.semantic.childNodes.forEach(function (x) {\n EnrichMathml.walkTree(x);\n });\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n if (this.mml.getAttribute('data-semantic-id') ===\n this.mml.getAttribute('data-semantic-parent')) {\n this.mml.removeAttribute('data-semantic-parent');\n }\n return this.mml;\n }\n}\nexports.CaseProof = CaseProof;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseTable = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseTable extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.inner = [];\n this.mml = semantic.mathmlTree;\n }\n static test(semantic) {\n return (semantic.type === \"matrix\" ||\n semantic.type === \"vector\" ||\n semantic.type === \"cases\");\n }\n getMathml() {\n const lfence = EnrichMathml.cloneContentNode(this.semantic.contentNodes[0]);\n const rfence = this.semantic.contentNodes[1]\n ? EnrichMathml.cloneContentNode(this.semantic.contentNodes[1])\n : null;\n this.inner = this.semantic.childNodes.map(EnrichMathml.walkTree);\n if (!this.mml) {\n this.mml = EnrichMathml.introduceNewLayer([lfence].concat(this.inner, [rfence]), this.semantic);\n }\n else if (DomUtil.tagName(this.mml) === 'MFENCED') {\n const children = this.mml.childNodes;\n this.mml.insertBefore(lfence, children[0] || null);\n rfence && this.mml.appendChild(rfence);\n this.mml = EnrichMathml.rewriteMfenced(this.mml);\n }\n else {\n const newChildren = [lfence, this.mml];\n rfence && newChildren.push(rfence);\n this.mml = EnrichMathml.introduceNewLayer(newChildren, this.semantic);\n }\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n return this.mml;\n }\n}\nexports.CaseTable = CaseTable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseTensor = void 0;\nconst semantic_skeleton_1 = require(\"../semantic_tree/semantic_skeleton\");\nconst case_multiindex_1 = require(\"./case_multiindex\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseTensor extends case_multiindex_1.CaseMultiindex {\n static test(semantic) {\n return !!semantic.mathmlTree && semantic.type === \"tensor\";\n }\n constructor(semantic) {\n super(semantic);\n }\n getMathml() {\n EnrichMathml.walkTree(this.semantic.childNodes[0]);\n const lsub = case_multiindex_1.CaseMultiindex.multiscriptIndex(this.semantic.childNodes[1]);\n const lsup = case_multiindex_1.CaseMultiindex.multiscriptIndex(this.semantic.childNodes[2]);\n const rsub = case_multiindex_1.CaseMultiindex.multiscriptIndex(this.semantic.childNodes[3]);\n const rsup = case_multiindex_1.CaseMultiindex.multiscriptIndex(this.semantic.childNodes[4]);\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n const collapsed = [\n this.semantic.id,\n this.semantic.childNodes[0].id,\n lsub,\n lsup,\n rsub,\n rsup\n ];\n EnrichMathml.addCollapsedAttribute(this.mml, collapsed);\n const childIds = semantic_skeleton_1.SemanticSkeleton.collapsedLeafs(lsub, lsup, rsub, rsup);\n childIds.unshift(this.semantic.childNodes[0].id);\n this.mml.setAttribute(enrich_attr_1.Attribute.CHILDREN, childIds.join(','));\n this.completeMultiscript(semantic_skeleton_1.SemanticSkeleton.interleaveIds(rsub, rsup), semantic_skeleton_1.SemanticSkeleton.interleaveIds(lsub, lsup));\n return this.mml;\n }\n}\nexports.CaseTensor = CaseTensor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CaseText = void 0;\nconst abstract_enrich_case_1 = require(\"./abstract_enrich_case\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nconst enrich_attr_1 = require(\"./enrich_attr\");\nclass CaseText extends abstract_enrich_case_1.AbstractEnrichCase {\n constructor(semantic) {\n super(semantic);\n this.mml = semantic.mathmlTree;\n }\n static test(semantic) {\n return (semantic.type === \"punctuated\" &&\n (semantic.role === \"text\" ||\n semantic.contentNodes.every((x) => x.role === \"dummy\")));\n }\n getMathml() {\n const children = [];\n const collapsed = EnrichMathml.collapsePunctuated(this.semantic, children);\n this.mml = EnrichMathml.introduceNewLayer(children, this.semantic);\n (0, enrich_attr_1.setAttributes)(this.mml, this.semantic);\n this.mml.removeAttribute(enrich_attr_1.Attribute.CONTENT);\n EnrichMathml.addCollapsedAttribute(this.mml, collapsed);\n return this.mml;\n }\n}\nexports.CaseText = CaseText;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareMmlString = exports.testTranslation = exports.semanticMathml = exports.semanticMathmlSync = exports.semanticMathmlNode = void 0;\nconst debugger_1 = require(\"../common/debugger\");\nconst DomUtil = require(\"../common/dom_util\");\nconst engine_1 = require(\"../common/engine\");\nconst Semantic = require(\"../semantic_tree/semantic\");\nconst EnrichMathml = require(\"./enrich_mathml\");\nrequire(\"./enrich_case_factory\");\nfunction semanticMathmlNode(mml) {\n const clone = DomUtil.cloneNode(mml);\n const tree = Semantic.getTree(clone);\n return EnrichMathml.enrich(clone, tree);\n}\nexports.semanticMathmlNode = semanticMathmlNode;\nfunction semanticMathmlSync(expr) {\n const mml = DomUtil.parseInput(expr);\n return semanticMathmlNode(mml);\n}\nexports.semanticMathmlSync = semanticMathmlSync;\nfunction semanticMathml(expr, callback) {\n engine_1.EnginePromise.getall().then(() => {\n const mml = DomUtil.parseInput(expr);\n callback(semanticMathmlNode(mml));\n });\n}\nexports.semanticMathml = semanticMathml;\nfunction testTranslation(expr) {\n debugger_1.Debugger.getInstance().init();\n const mml = semanticMathmlSync(prepareMmlString(expr));\n debugger_1.Debugger.getInstance().exit();\n return mml;\n}\nexports.testTranslation = testTranslation;\nfunction prepareMmlString(expr) {\n if (!expr.match(/^$/)) {\n expr += '';\n }\n return expr;\n}\nexports.prepareMmlString = prepareMmlString;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addPrefix = exports.removeAttributePrefix = exports.setPostfix = exports.setAttributes = exports.makeIdList = exports.EnrichAttributes = exports.Attribute = exports.Prefix = void 0;\nexports.Prefix = 'data-semantic-';\nvar Attribute;\n(function (Attribute) {\n Attribute[\"ADDED\"] = \"data-semantic-added\";\n Attribute[\"ALTERNATIVE\"] = \"data-semantic-alternative\";\n Attribute[\"CHILDREN\"] = \"data-semantic-children\";\n Attribute[\"COLLAPSED\"] = \"data-semantic-collapsed\";\n Attribute[\"CONTENT\"] = \"data-semantic-content\";\n Attribute[\"EMBELLISHED\"] = \"data-semantic-embellished\";\n Attribute[\"FENCEPOINTER\"] = \"data-semantic-fencepointer\";\n Attribute[\"FONT\"] = \"data-semantic-font\";\n Attribute[\"ID\"] = \"data-semantic-id\";\n Attribute[\"ANNOTATION\"] = \"data-semantic-annotation\";\n Attribute[\"ATTRIBUTES\"] = \"data-semantic-attributes\";\n Attribute[\"OPERATOR\"] = \"data-semantic-operator\";\n Attribute[\"OWNS\"] = \"data-semantic-owns\";\n Attribute[\"PARENT\"] = \"data-semantic-parent\";\n Attribute[\"POSTFIX\"] = \"data-semantic-postfix\";\n Attribute[\"PREFIX\"] = \"data-semantic-prefix\";\n Attribute[\"ROLE\"] = \"data-semantic-role\";\n Attribute[\"SPEECH\"] = \"data-semantic-speech\";\n Attribute[\"STRUCTURE\"] = \"data-semantic-structure\";\n Attribute[\"TYPE\"] = \"data-semantic-type\";\n})(Attribute = exports.Attribute || (exports.Attribute = {}));\nexports.EnrichAttributes = [\n Attribute.ADDED,\n Attribute.ALTERNATIVE,\n Attribute.CHILDREN,\n Attribute.COLLAPSED,\n Attribute.CONTENT,\n Attribute.EMBELLISHED,\n Attribute.FENCEPOINTER,\n Attribute.FONT,\n Attribute.ID,\n Attribute.ANNOTATION,\n Attribute.ATTRIBUTES,\n Attribute.OPERATOR,\n Attribute.OWNS,\n Attribute.PARENT,\n Attribute.POSTFIX,\n Attribute.PREFIX,\n Attribute.ROLE,\n Attribute.SPEECH,\n Attribute.STRUCTURE,\n Attribute.TYPE\n];\nfunction makeIdList(nodes) {\n return nodes\n .map(function (node) {\n return node.id;\n })\n .join(',');\n}\nexports.makeIdList = makeIdList;\nfunction setAttributes(mml, semantic) {\n mml.setAttribute(Attribute.TYPE, semantic.type);\n const attributes = semantic.allAttributes();\n for (let i = 0, attr; (attr = attributes[i]); i++) {\n mml.setAttribute(exports.Prefix + attr[0].toLowerCase(), attr[1]);\n }\n if (semantic.childNodes.length) {\n mml.setAttribute(Attribute.CHILDREN, makeIdList(semantic.childNodes));\n }\n if (semantic.contentNodes.length) {\n mml.setAttribute(Attribute.CONTENT, makeIdList(semantic.contentNodes));\n }\n if (semantic.parent) {\n mml.setAttribute(Attribute.PARENT, semantic.parent.id.toString());\n }\n const external = semantic.attributesXml();\n if (external) {\n mml.setAttribute(Attribute.ATTRIBUTES, external);\n }\n setPostfix(mml, semantic);\n}\nexports.setAttributes = setAttributes;\nfunction setPostfix(mml, semantic) {\n const postfix = [];\n if (semantic.role === \"mglyph\") {\n postfix.push('image');\n }\n if (semantic.attributes['href']) {\n postfix.push('link');\n }\n if (postfix.length) {\n mml.setAttribute(Attribute.POSTFIX, postfix.join(' '));\n }\n}\nexports.setPostfix = setPostfix;\nfunction removeAttributePrefix(mml) {\n return mml.toString().replace(new RegExp(exports.Prefix, 'g'), '');\n}\nexports.removeAttributePrefix = removeAttributePrefix;\nfunction addPrefix(attr) {\n return (exports.Prefix + attr);\n}\nexports.addPrefix = addPrefix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.factory = exports.getCase = void 0;\nfunction getCase(node) {\n for (let i = 0, enrich; (enrich = exports.factory[i]); i++) {\n if (enrich.test(node)) {\n return enrich.constr(node);\n }\n }\n return null;\n}\nexports.getCase = getCase;\nexports.factory = [];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst case_binomial_1 = require(\"./case_binomial\");\nconst case_double_script_1 = require(\"./case_double_script\");\nconst case_embellished_1 = require(\"./case_embellished\");\nconst case_limit_1 = require(\"./case_limit\");\nconst case_line_1 = require(\"./case_line\");\nconst case_multiscripts_1 = require(\"./case_multiscripts\");\nconst case_proof_1 = require(\"./case_proof\");\nconst case_table_1 = require(\"./case_table\");\nconst case_tensor_1 = require(\"./case_tensor\");\nconst case_text_1 = require(\"./case_text\");\nconst enrich_case_1 = require(\"./enrich_case\");\nenrich_case_1.factory.push(...[\n {\n test: case_limit_1.CaseLimit.test,\n constr: (node) => new case_limit_1.CaseLimit(node)\n },\n {\n test: case_embellished_1.CaseEmbellished.test,\n constr: (node) => new case_embellished_1.CaseEmbellished(node)\n },\n {\n test: case_double_script_1.CaseDoubleScript.test,\n constr: (node) => new case_double_script_1.CaseDoubleScript(node)\n },\n {\n test: case_tensor_1.CaseTensor.test,\n constr: (node) => new case_tensor_1.CaseTensor(node)\n },\n {\n test: case_multiscripts_1.CaseMultiscripts.test,\n constr: (node) => new case_multiscripts_1.CaseMultiscripts(node)\n },\n { test: case_line_1.CaseLine.test, constr: (node) => new case_line_1.CaseLine(node) },\n {\n test: case_binomial_1.CaseBinomial.test,\n constr: (node) => new case_binomial_1.CaseBinomial(node)\n },\n {\n test: case_proof_1.CaseProof.test,\n constr: (node) => new case_proof_1.CaseProof(node)\n },\n {\n test: case_table_1.CaseTable.test,\n constr: (node) => new case_table_1.CaseTable(node)\n },\n { test: case_text_1.CaseText.test, constr: (node) => new case_text_1.CaseText(node) }\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printNodeList__ = exports.collapsePunctuated = exports.getInnerNode = exports.setOperatorAttribute_ = exports.createInvisibleOperator_ = exports.rewriteMfenced = exports.cloneContentNode = exports.addCollapsedAttribute = exports.parentNode_ = exports.isIgnorable_ = exports.unitChild_ = exports.descendNode_ = exports.ascendNewNode = exports.validLca_ = exports.pathToRoot_ = exports.attachedElement_ = exports.prunePath_ = exports.mathmlLca_ = exports.lcaType = exports.functionApplication_ = exports.isDescendant_ = exports.insertNewChild_ = exports.mergeChildren_ = exports.collectChildNodes_ = exports.collateChildNodes_ = exports.childrenSubset_ = exports.moveSemanticAttributes_ = exports.introduceLayerAboveLca = exports.introduceNewLayer = exports.walkTree = exports.enrich = exports.SETTINGS = void 0;\nconst debugger_1 = require(\"../common/debugger\");\nconst DomUtil = require(\"../common/dom_util\");\nconst engine_1 = require(\"../common/engine\");\nconst SemanticAttr = require(\"../semantic_tree/semantic_attr\");\nconst SemanticHeuristics = require(\"../semantic_tree/semantic_heuristic_factory\");\nconst semantic_skeleton_1 = require(\"../semantic_tree/semantic_skeleton\");\nconst SemanticUtil = require(\"../semantic_tree/semantic_util\");\nconst EnrichAttr = require(\"./enrich_attr\");\nconst enrich_case_1 = require(\"./enrich_case\");\nexports.SETTINGS = {\n collapsed: true,\n implicit: true,\n wiki: true\n};\nfunction enrich(mml, semantic) {\n const oldMml = DomUtil.cloneNode(mml);\n walkTree(semantic.root);\n if (engine_1.default.getInstance().structure) {\n mml.setAttribute(EnrichAttr.Attribute.STRUCTURE, semantic_skeleton_1.SemanticSkeleton.fromStructure(mml, semantic).toString());\n }\n debugger_1.Debugger.getInstance().generateOutput(() => [\n formattedOutput(oldMml, 'Original MathML', exports.SETTINGS.wiki),\n formattedOutput(semantic, 'Semantic Tree', exports.SETTINGS.wiki),\n formattedOutput(mml, 'Semantically enriched MathML', exports.SETTINGS.wiki)\n ]);\n return mml;\n}\nexports.enrich = enrich;\nfunction walkTree(semantic) {\n const specialCase = (0, enrich_case_1.getCase)(semantic);\n let newNode;\n if (specialCase) {\n newNode = specialCase.getMathml();\n return ascendNewNode(newNode);\n }\n if (semantic.mathml.length === 1) {\n debugger_1.Debugger.getInstance().output('Walktree Case 0');\n newNode = semantic.mathml[0];\n EnrichAttr.setAttributes(newNode, semantic);\n if (semantic.childNodes.length) {\n debugger_1.Debugger.getInstance().output('Walktree Case 0.1');\n semantic.childNodes.forEach(function (child) {\n if (child.type === \"empty\") {\n newNode.appendChild(walkTree(child));\n }\n });\n }\n return ascendNewNode(newNode);\n }\n const newContent = semantic.contentNodes.map(cloneContentNode);\n setOperatorAttribute_(semantic, newContent);\n const newChildren = semantic.childNodes.map(walkTree);\n const childrenList = semantic_skeleton_1.SemanticSkeleton.combineContentChildren(semantic, newContent, newChildren);\n newNode = semantic.mathmlTree;\n if (newNode === null) {\n debugger_1.Debugger.getInstance().output('Walktree Case 1');\n newNode = introduceNewLayer(childrenList, semantic);\n }\n else {\n const attached = attachedElement_(childrenList);\n debugger_1.Debugger.getInstance().output('Walktree Case 2');\n if (attached) {\n debugger_1.Debugger.getInstance().output('Walktree Case 2.1');\n newNode = attached.parentNode;\n }\n else {\n debugger_1.Debugger.getInstance().output('Walktree Case 2.2');\n newNode = getInnerNode(newNode);\n }\n }\n newNode = rewriteMfenced(newNode);\n mergeChildren_(newNode, childrenList, semantic);\n EnrichAttr.setAttributes(newNode, semantic);\n return ascendNewNode(newNode);\n}\nexports.walkTree = walkTree;\nfunction introduceNewLayer(children, semantic) {\n const lca = mathmlLca_(children);\n let newNode = lca.node;\n const info = lca.type;\n if (info !== lcaType.VALID || !SemanticUtil.hasEmptyTag(newNode)) {\n debugger_1.Debugger.getInstance().output('Walktree Case 1.1');\n newNode = DomUtil.createElement('mrow');\n if (info === lcaType.PRUNED) {\n debugger_1.Debugger.getInstance().output('Walktree Case 1.1.0');\n newNode = introduceLayerAboveLca(newNode, lca.node, children);\n }\n else if (children[0]) {\n debugger_1.Debugger.getInstance().output('Walktree Case 1.1.1');\n const node = attachedElement_(children);\n const oldChildren = childrenSubset_(node.parentNode, children);\n DomUtil.replaceNode(node, newNode);\n oldChildren.forEach(function (x) {\n newNode.appendChild(x);\n });\n }\n }\n if (!semantic.mathmlTree) {\n semantic.mathmlTree = newNode;\n }\n return newNode;\n}\nexports.introduceNewLayer = introduceNewLayer;\nfunction introduceLayerAboveLca(mrow, lca, children) {\n let innerNode = descendNode_(lca);\n if (SemanticUtil.hasMathTag(innerNode)) {\n debugger_1.Debugger.getInstance().output('Walktree Case 1.1.0.0');\n moveSemanticAttributes_(innerNode, mrow);\n DomUtil.toArray(innerNode.childNodes).forEach(function (x) {\n mrow.appendChild(x);\n });\n const auxNode = mrow;\n mrow = innerNode;\n innerNode = auxNode;\n }\n const index = children.indexOf(lca);\n children[index] = innerNode;\n DomUtil.replaceNode(innerNode, mrow);\n mrow.appendChild(innerNode);\n children.forEach(function (x) {\n mrow.appendChild(x);\n });\n return mrow;\n}\nexports.introduceLayerAboveLca = introduceLayerAboveLca;\nfunction moveSemanticAttributes_(oldNode, newNode) {\n for (const attr of EnrichAttr.EnrichAttributes) {\n if (oldNode.hasAttribute(attr)) {\n newNode.setAttribute(attr, oldNode.getAttribute(attr));\n oldNode.removeAttribute(attr);\n }\n }\n}\nexports.moveSemanticAttributes_ = moveSemanticAttributes_;\nfunction childrenSubset_(node, newChildren) {\n const oldChildren = DomUtil.toArray(node.childNodes);\n let leftIndex = +Infinity;\n let rightIndex = -Infinity;\n newChildren.forEach(function (child) {\n const index = oldChildren.indexOf(child);\n if (index !== -1) {\n leftIndex = Math.min(leftIndex, index);\n rightIndex = Math.max(rightIndex, index);\n }\n });\n return oldChildren.slice(leftIndex, rightIndex + 1);\n}\nexports.childrenSubset_ = childrenSubset_;\nfunction collateChildNodes_(node, children, semantic) {\n const oldChildren = [];\n let newChildren = DomUtil.toArray(node.childNodes);\n let notFirst = false;\n while (newChildren.length) {\n const child = newChildren.shift();\n if (child.hasAttribute(EnrichAttr.Attribute.TYPE)) {\n oldChildren.push(child);\n continue;\n }\n const collect = collectChildNodes_(child);\n if (collect.length === 0) {\n continue;\n }\n if (collect.length === 1) {\n oldChildren.push(child);\n continue;\n }\n if (notFirst) {\n child.setAttribute('AuxiliaryImplicit', true);\n }\n else {\n notFirst = true;\n }\n newChildren = collect.concat(newChildren);\n }\n const rear = [];\n const semChildren = semantic.childNodes.map(function (x) {\n return x.mathmlTree;\n });\n while (semChildren.length) {\n const schild = semChildren.pop();\n if (!schild) {\n continue;\n }\n if (oldChildren.indexOf(schild) !== -1) {\n break;\n }\n if (children.indexOf(schild) !== -1) {\n rear.unshift(schild);\n }\n }\n return oldChildren.concat(rear);\n}\nexports.collateChildNodes_ = collateChildNodes_;\nfunction collectChildNodes_(node) {\n const collect = [];\n let newChildren = DomUtil.toArray(node.childNodes);\n while (newChildren.length) {\n const child = newChildren.shift();\n if (child.nodeType !== DomUtil.NodeType.ELEMENT_NODE) {\n continue;\n }\n if (child.hasAttribute(EnrichAttr.Attribute.TYPE)) {\n collect.push(child);\n continue;\n }\n newChildren = DomUtil.toArray(child.childNodes).concat(newChildren);\n }\n return collect;\n}\nexports.collectChildNodes_ = collectChildNodes_;\nfunction mergeChildren_(node, newChildren, semantic) {\n const oldChildren = semantic.role === \"implicit\" &&\n SemanticHeuristics.flags.combine_juxtaposition\n ? collateChildNodes_(node, newChildren, semantic)\n : DomUtil.toArray(node.childNodes);\n if (!oldChildren.length) {\n newChildren.forEach(function (x) {\n node.appendChild(x);\n });\n return;\n }\n let oldCounter = 0;\n while (newChildren.length) {\n const newChild = newChildren[0];\n if (oldChildren[oldCounter] === newChild ||\n functionApplication_(oldChildren[oldCounter], newChild)) {\n newChildren.shift();\n oldCounter++;\n continue;\n }\n if (oldChildren[oldCounter] &&\n newChildren.indexOf(oldChildren[oldCounter]) === -1) {\n oldCounter++;\n continue;\n }\n if (isDescendant_(newChild, node)) {\n newChildren.shift();\n continue;\n }\n insertNewChild_(node, oldChildren[oldCounter], newChild);\n newChildren.shift();\n }\n}\nexports.mergeChildren_ = mergeChildren_;\nfunction insertNewChild_(node, oldChild, newChild) {\n if (!oldChild) {\n node.insertBefore(newChild, null);\n return;\n }\n let parent = oldChild;\n let next = parentNode_(parent);\n while (next &&\n next.firstChild === parent &&\n !parent.hasAttribute('AuxiliaryImplicit') &&\n next !== node) {\n parent = next;\n next = parentNode_(parent);\n }\n if (next) {\n next.insertBefore(newChild, parent);\n parent.removeAttribute('AuxiliaryImplicit');\n }\n}\nexports.insertNewChild_ = insertNewChild_;\nfunction isDescendant_(child, node) {\n if (!child) {\n return false;\n }\n do {\n child = child.parentNode;\n if (child === node) {\n return true;\n }\n } while (child);\n return false;\n}\nexports.isDescendant_ = isDescendant_;\nfunction functionApplication_(oldNode, newNode) {\n const appl = SemanticAttr.functionApplication();\n if (oldNode &&\n newNode &&\n oldNode.textContent &&\n newNode.textContent &&\n oldNode.textContent === appl &&\n newNode.textContent === appl &&\n newNode.getAttribute(EnrichAttr.Attribute.ADDED) === 'true') {\n for (let i = 0, attr; (attr = oldNode.attributes[i]); i++) {\n if (!newNode.hasAttribute(attr.nodeName)) {\n newNode.setAttribute(attr.nodeName, attr.nodeValue);\n }\n }\n DomUtil.replaceNode(oldNode, newNode);\n return true;\n }\n return false;\n}\nexports.functionApplication_ = functionApplication_;\nvar lcaType;\n(function (lcaType) {\n lcaType[\"VALID\"] = \"valid\";\n lcaType[\"INVALID\"] = \"invalid\";\n lcaType[\"PRUNED\"] = \"pruned\";\n})(lcaType = exports.lcaType || (exports.lcaType = {}));\nfunction mathmlLca_(children) {\n const leftMost = attachedElement_(children);\n if (!leftMost) {\n return { type: lcaType.INVALID, node: null };\n }\n const rightMost = attachedElement_(children.slice().reverse());\n if (leftMost === rightMost) {\n return { type: lcaType.VALID, node: leftMost };\n }\n const leftPath = pathToRoot_(leftMost);\n const newLeftPath = prunePath_(leftPath, children);\n const rightPath = pathToRoot_(rightMost, function (x) {\n return newLeftPath.indexOf(x) !== -1;\n });\n const lca = rightPath[0];\n const lIndex = newLeftPath.indexOf(lca);\n if (lIndex === -1) {\n return { type: lcaType.INVALID, node: null };\n }\n return {\n type: newLeftPath.length !== leftPath.length\n ? lcaType.PRUNED\n : validLca_(newLeftPath[lIndex + 1], rightPath[1])\n ? lcaType.VALID\n : lcaType.INVALID,\n node: lca\n };\n}\nexports.mathmlLca_ = mathmlLca_;\nfunction prunePath_(path, children) {\n let i = 0;\n while (path[i] && children.indexOf(path[i]) === -1) {\n i++;\n }\n return path.slice(0, i + 1);\n}\nexports.prunePath_ = prunePath_;\nfunction attachedElement_(nodes) {\n let count = 0;\n let attached = null;\n while (!attached && count < nodes.length) {\n if (nodes[count].parentNode) {\n attached = nodes[count];\n }\n count++;\n }\n return attached;\n}\nexports.attachedElement_ = attachedElement_;\nfunction pathToRoot_(node, opt_test) {\n const test = opt_test || ((_x) => false);\n const path = [node];\n while (!test(node) && !SemanticUtil.hasMathTag(node) && node.parentNode) {\n node = parentNode_(node);\n path.unshift(node);\n }\n return path;\n}\nexports.pathToRoot_ = pathToRoot_;\nfunction validLca_(left, right) {\n return !!(left && right && !left.previousSibling && !right.nextSibling);\n}\nexports.validLca_ = validLca_;\nfunction ascendNewNode(newNode) {\n while (!SemanticUtil.hasMathTag(newNode) && unitChild_(newNode)) {\n newNode = parentNode_(newNode);\n }\n return newNode;\n}\nexports.ascendNewNode = ascendNewNode;\nfunction descendNode_(node) {\n const children = DomUtil.toArray(node.childNodes);\n if (!children) {\n return node;\n }\n const remainder = children.filter(function (child) {\n return (child.nodeType === DomUtil.NodeType.ELEMENT_NODE &&\n !SemanticUtil.hasIgnoreTag(child));\n });\n if (remainder.length === 1 &&\n SemanticUtil.hasEmptyTag(remainder[0]) &&\n !remainder[0].hasAttribute(EnrichAttr.Attribute.TYPE)) {\n return descendNode_(remainder[0]);\n }\n return node;\n}\nexports.descendNode_ = descendNode_;\nfunction unitChild_(node) {\n const parent = parentNode_(node);\n if (!parent || !SemanticUtil.hasEmptyTag(parent)) {\n return false;\n }\n return DomUtil.toArray(parent.childNodes).every(function (child) {\n return child === node || isIgnorable_(child);\n });\n}\nexports.unitChild_ = unitChild_;\nfunction isIgnorable_(node) {\n if (node.nodeType !== DomUtil.NodeType.ELEMENT_NODE) {\n return true;\n }\n if (!node || SemanticUtil.hasIgnoreTag(node)) {\n return true;\n }\n const children = DomUtil.toArray(node.childNodes);\n if ((!SemanticUtil.hasEmptyTag(node) && children.length) ||\n SemanticUtil.hasDisplayTag(node) ||\n node.hasAttribute(EnrichAttr.Attribute.TYPE) ||\n SemanticUtil.isOrphanedGlyph(node)) {\n return false;\n }\n return DomUtil.toArray(node.childNodes).every(isIgnorable_);\n}\nexports.isIgnorable_ = isIgnorable_;\nfunction parentNode_(element) {\n return element.parentNode;\n}\nexports.parentNode_ = parentNode_;\nfunction addCollapsedAttribute(node, collapsed) {\n const skeleton = new semantic_skeleton_1.SemanticSkeleton(collapsed);\n node.setAttribute(EnrichAttr.Attribute.COLLAPSED, skeleton.toString());\n}\nexports.addCollapsedAttribute = addCollapsedAttribute;\nfunction cloneContentNode(content) {\n if (content.mathml.length) {\n return walkTree(content);\n }\n const clone = exports.SETTINGS.implicit\n ? createInvisibleOperator_(content)\n : DomUtil.createElement('mrow');\n content.mathml = [clone];\n return clone;\n}\nexports.cloneContentNode = cloneContentNode;\nfunction rewriteMfenced(mml) {\n if (DomUtil.tagName(mml) !== 'MFENCED') {\n return mml;\n }\n const newNode = DomUtil.createElement('mrow');\n for (let i = 0, attr; (attr = mml.attributes[i]); i++) {\n if (['open', 'close', 'separators'].indexOf(attr.name) === -1) {\n newNode.setAttribute(attr.name, attr.value);\n }\n }\n DomUtil.toArray(mml.childNodes).forEach(function (x) {\n newNode.appendChild(x);\n });\n DomUtil.replaceNode(mml, newNode);\n return newNode;\n}\nexports.rewriteMfenced = rewriteMfenced;\nfunction createInvisibleOperator_(operator) {\n const moNode = DomUtil.createElement('mo');\n const text = DomUtil.createTextNode(operator.textContent);\n moNode.appendChild(text);\n EnrichAttr.setAttributes(moNode, operator);\n moNode.setAttribute(EnrichAttr.Attribute.ADDED, 'true');\n return moNode;\n}\nexports.createInvisibleOperator_ = createInvisibleOperator_;\nfunction setOperatorAttribute_(semantic, content) {\n const operator = semantic.type + (semantic.textContent ? ',' + semantic.textContent : '');\n content.forEach(function (c) {\n getInnerNode(c).setAttribute(EnrichAttr.Attribute.OPERATOR, operator);\n });\n}\nexports.setOperatorAttribute_ = setOperatorAttribute_;\nfunction getInnerNode(node) {\n const children = DomUtil.toArray(node.childNodes);\n if (!children) {\n return node;\n }\n const remainder = children.filter(function (child) {\n return !isIgnorable_(child);\n });\n const result = [];\n for (let i = 0, remain; (remain = remainder[i]); i++) {\n if (SemanticUtil.hasEmptyTag(remain)) {\n const nextInner = getInnerNode(remain);\n if (nextInner && nextInner !== remain) {\n result.push(nextInner);\n }\n }\n else {\n result.push(remain);\n }\n }\n if (result.length === 1) {\n return result[0];\n }\n return node;\n}\nexports.getInnerNode = getInnerNode;\nfunction formattedOutput(element, name, wiki = false) {\n const output = EnrichAttr.removeAttributePrefix(DomUtil.formatXml(element.toString()));\n return wiki ? name + ':\\n```html\\n' + output + '\\n```\\n' : output;\n}\nfunction collapsePunctuated(semantic, opt_children) {\n const optional = !!opt_children;\n const children = opt_children || [];\n const parent = semantic.parent;\n const contentIds = semantic.contentNodes.map(function (x) {\n return x.id;\n });\n contentIds.unshift('c');\n const childIds = [semantic.id, contentIds];\n for (let i = 0, child; (child = semantic.childNodes[i]); i++) {\n const mmlChild = walkTree(child);\n children.push(mmlChild);\n const innerNode = getInnerNode(mmlChild);\n if (parent && !optional) {\n innerNode.setAttribute(EnrichAttr.Attribute.PARENT, parent.id.toString());\n }\n childIds.push(child.id);\n }\n return childIds;\n}\nexports.collapsePunctuated = collapsePunctuated;\nfunction printNodeList__(title, nodes) {\n console.info(title);\n DomUtil.toArray(nodes).forEach(function (x) {\n console.info(x.toString());\n });\n console.info('<<<<<<<<<<<<<<<<<');\n}\nexports.printNodeList__ = printNodeList__;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractHighlighter = void 0;\nconst XpathUtil = require(\"../common/xpath_util\");\nconst enrich_attr_1 = require(\"../enrich_mathml/enrich_attr\");\nclass AbstractHighlighter {\n constructor() {\n this.color = null;\n this.mactionName = '';\n this.currentHighlights = [];\n }\n highlight(nodes) {\n this.currentHighlights.push(nodes.map((node) => {\n const info = this.highlightNode(node);\n this.setHighlighted(node);\n return info;\n }));\n }\n highlightAll(node) {\n const mactions = this.getMactionNodes(node);\n for (let i = 0, maction; (maction = mactions[i]); i++) {\n this.highlight([maction]);\n }\n }\n unhighlight() {\n const nodes = this.currentHighlights.pop();\n if (!nodes) {\n return;\n }\n nodes.forEach((highlight) => {\n if (this.isHighlighted(highlight.node)) {\n this.unhighlightNode(highlight);\n this.unsetHighlighted(highlight.node);\n }\n });\n }\n unhighlightAll() {\n while (this.currentHighlights.length > 0) {\n this.unhighlight();\n }\n }\n setColor(color) {\n this.color = color;\n }\n colorString() {\n return this.color.rgba();\n }\n addEvents(node, events) {\n const mactions = this.getMactionNodes(node);\n for (let i = 0, maction; (maction = mactions[i]); i++) {\n for (const event in events) {\n maction.addEventListener(event, events[event]);\n }\n }\n }\n getMactionNodes(node) {\n return Array.from(node.getElementsByClassName(this.mactionName));\n }\n isMactionNode(node) {\n const className = node.className || node.getAttribute('class');\n return className ? !!className.match(new RegExp(this.mactionName)) : false;\n }\n isHighlighted(node) {\n return node.hasAttribute(AbstractHighlighter.ATTR);\n }\n setHighlighted(node) {\n node.setAttribute(AbstractHighlighter.ATTR, 'true');\n }\n unsetHighlighted(node) {\n node.removeAttribute(AbstractHighlighter.ATTR);\n }\n colorizeAll(node) {\n const allNodes = XpathUtil.evalXPath(`.//*[@${enrich_attr_1.Attribute.ID}]`, node);\n allNodes.forEach((x) => this.colorize(x));\n }\n uncolorizeAll(node) {\n const allNodes = XpathUtil.evalXPath(`.//*[@${enrich_attr_1.Attribute.ID}]`, node);\n allNodes.forEach((x) => this.uncolorize(x));\n }\n colorize(node) {\n const fore = (0, enrich_attr_1.addPrefix)('foreground');\n if (node.hasAttribute(fore)) {\n node.setAttribute(fore + '-old', node.style.color);\n node.style.color = node.getAttribute(fore);\n }\n }\n uncolorize(node) {\n const fore = (0, enrich_attr_1.addPrefix)('foreground') + '-old';\n if (node.hasAttribute(fore)) {\n node.style.color = node.getAttribute(fore);\n }\n }\n}\nexports.AbstractHighlighter = AbstractHighlighter;\nAbstractHighlighter.ATTR = 'sre-highlight';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChtmlHighlighter = void 0;\nconst css_highlighter_1 = require(\"./css_highlighter\");\nclass ChtmlHighlighter extends css_highlighter_1.CssHighlighter {\n constructor() {\n super();\n }\n isMactionNode(node) {\n return node.tagName.toUpperCase() === this.mactionName.toUpperCase();\n }\n getMactionNodes(node) {\n return Array.from(node.getElementsByTagName(this.mactionName));\n }\n}\nexports.ChtmlHighlighter = ChtmlHighlighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContrastPicker = exports.ColorPicker = void 0;\nconst namedColors = {\n red: { red: 255, green: 0, blue: 0 },\n green: { red: 0, green: 255, blue: 0 },\n blue: { red: 0, green: 0, blue: 255 },\n yellow: { red: 255, green: 255, blue: 0 },\n cyan: { red: 0, green: 255, blue: 255 },\n magenta: { red: 255, green: 0, blue: 255 },\n white: { red: 255, green: 255, blue: 255 },\n black: { red: 0, green: 0, blue: 0 }\n};\nfunction getChannelColor(color, deflt) {\n const col = color || { color: deflt };\n let channel = Object.prototype.hasOwnProperty.call(col, 'color')\n ? namedColors[col.color]\n : col;\n if (!channel) {\n channel = namedColors[deflt];\n }\n channel.alpha = Object.prototype.hasOwnProperty.call(col, 'alpha')\n ? col.alpha\n : 1;\n return normalizeColor(channel);\n}\nfunction normalizeColor(color) {\n const normalizeCol = (col) => {\n col = Math.max(col, 0);\n col = Math.min(255, col);\n return Math.round(col);\n };\n color.red = normalizeCol(color.red);\n color.green = normalizeCol(color.green);\n color.blue = normalizeCol(color.blue);\n color.alpha = Math.max(color.alpha, 0);\n color.alpha = Math.min(1, color.alpha);\n return color;\n}\nclass ColorPicker {\n constructor(background, foreground) {\n this.foreground = getChannelColor(foreground, ColorPicker.DEFAULT_FOREGROUND_);\n this.background = getChannelColor(background, ColorPicker.DEFAULT_BACKGROUND_);\n }\n static toHex(num) {\n const hex = num.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n }\n rgba() {\n const rgba = function (col) {\n return ('rgba(' +\n col.red +\n ',' +\n col.green +\n ',' +\n col.blue +\n ',' +\n col.alpha +\n ')');\n };\n return {\n background: rgba(this.background),\n foreground: rgba(this.foreground)\n };\n }\n rgb() {\n const rgb = function (col) {\n return 'rgb(' + col.red + ',' + col.green + ',' + col.blue + ')';\n };\n return {\n background: rgb(this.background),\n alphaback: this.background.alpha.toString(),\n foreground: rgb(this.foreground),\n alphafore: this.foreground.alpha.toString()\n };\n }\n hex() {\n const hex = function (col) {\n return ('#' +\n ColorPicker.toHex(col.red) +\n ColorPicker.toHex(col.green) +\n ColorPicker.toHex(col.blue));\n };\n return {\n background: hex(this.background),\n alphaback: this.background.alpha.toString(),\n foreground: hex(this.foreground),\n alphafore: this.foreground.alpha.toString()\n };\n }\n}\nexports.ColorPicker = ColorPicker;\nColorPicker.DEFAULT_BACKGROUND_ = 'blue';\nColorPicker.DEFAULT_FOREGROUND_ = 'black';\nfunction hsl2rgb(h, s, l) {\n s = s > 1 ? s / 100 : s;\n l = l > 1 ? l / 100 : l;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0, g = 0, b = 0;\n if (0 <= h && h < 60) {\n [r, g, b] = [c, x, 0];\n }\n else if (60 <= h && h < 120) {\n [r, g, b] = [x, c, 0];\n }\n else if (120 <= h && h < 180) {\n [r, g, b] = [0, c, x];\n }\n else if (180 <= h && h < 240) {\n [r, g, b] = [0, x, c];\n }\n else if (240 <= h && h < 300) {\n [r, g, b] = [x, 0, c];\n }\n else if (300 <= h && h < 360) {\n [r, g, b] = [c, 0, x];\n }\n return { red: r + m, green: g + m, blue: b + m };\n}\nfunction rgb2RGB(rgb) {\n return {\n red: Math.round(255 * rgb.red),\n green: Math.round(255 * rgb.green),\n blue: Math.round(255 * rgb.blue)\n };\n}\nfunction RGB2hex(col) {\n return 'rgb(' + col.red + ',' + col.green + ',' + col.blue + ')';\n}\nclass ContrastPicker {\n constructor() {\n this.hue = 10;\n this.sat = 100;\n this.light = 50;\n this.incr = 50;\n }\n generate() {\n return RGB2hex(rgb2RGB(hsl2rgb(this.hue, this.sat, this.light)));\n }\n increment() {\n this.hue = (this.hue + this.incr) % 360;\n }\n}\nexports.ContrastPicker = ContrastPicker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CssHighlighter = void 0;\nconst abstract_highlighter_1 = require(\"./abstract_highlighter\");\nclass CssHighlighter extends abstract_highlighter_1.AbstractHighlighter {\n constructor() {\n super();\n this.mactionName = 'mjx-maction';\n }\n highlightNode(node) {\n const info = {\n node: node,\n background: node.style.backgroundColor,\n foreground: node.style.color\n };\n const color = this.colorString();\n node.style.backgroundColor = color.background;\n node.style.color = color.foreground;\n return info;\n }\n unhighlightNode(info) {\n info.node.style.backgroundColor = info.background;\n info.node.style.color = info.foreground;\n }\n}\nexports.CssHighlighter = CssHighlighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.highlighterMapping_ = exports.addEvents = exports.highlighter = void 0;\nconst chtml_highlighter_1 = require(\"./chtml_highlighter\");\nconst color_picker_1 = require(\"./color_picker\");\nconst css_highlighter_1 = require(\"./css_highlighter\");\nconst html_highlighter_1 = require(\"./html_highlighter\");\nconst mml_css_highlighter_1 = require(\"./mml_css_highlighter\");\nconst mml_highlighter_1 = require(\"./mml_highlighter\");\nconst svg_highlighter_1 = require(\"./svg_highlighter\");\nconst svg_v3_highlighter_1 = require(\"./svg_v3_highlighter\");\nfunction highlighter(back, fore, rendererInfo) {\n const colorPicker = new color_picker_1.ColorPicker(back, fore);\n const renderer = rendererInfo.renderer === 'NativeMML' && rendererInfo.browser === 'Safari'\n ? 'MML-CSS'\n : rendererInfo.renderer === 'SVG' && rendererInfo.browser === 'v3'\n ? 'SVG-V3'\n : rendererInfo.renderer;\n const highlighter = new (exports.highlighterMapping_[renderer] ||\n exports.highlighterMapping_['NativeMML'])();\n highlighter.setColor(colorPicker);\n return highlighter;\n}\nexports.highlighter = highlighter;\nfunction addEvents(node, events, rendererInfo) {\n const highlight = exports.highlighterMapping_[rendererInfo.renderer];\n if (highlight) {\n new highlight().addEvents(node, events);\n }\n}\nexports.addEvents = addEvents;\nexports.highlighterMapping_ = {\n SVG: svg_highlighter_1.SvgHighlighter,\n 'SVG-V3': svg_v3_highlighter_1.SvgV3Highlighter,\n NativeMML: mml_highlighter_1.MmlHighlighter,\n 'HTML-CSS': html_highlighter_1.HtmlHighlighter,\n 'MML-CSS': mml_css_highlighter_1.MmlCssHighlighter,\n CommonHTML: css_highlighter_1.CssHighlighter,\n CHTML: chtml_highlighter_1.ChtmlHighlighter\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HtmlHighlighter = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst abstract_highlighter_1 = require(\"./abstract_highlighter\");\nclass HtmlHighlighter extends abstract_highlighter_1.AbstractHighlighter {\n constructor() {\n super();\n this.mactionName = 'maction';\n }\n highlightNode(node) {\n const info = {\n node: node,\n foreground: node.style.color,\n position: node.style.position\n };\n const color = this.color.rgb();\n node.style.color = color.foreground;\n node.style.position = 'relative';\n const bbox = node.bbox;\n if (bbox && bbox.w) {\n const vpad = 0.05;\n const hpad = 0;\n const span = DomUtil.createElement('span');\n const left = parseFloat(node.style.paddingLeft || '0');\n span.style.backgroundColor = color.background;\n span.style.opacity = color.alphaback.toString();\n span.style.display = 'inline-block';\n span.style.height = bbox.h + bbox.d + 2 * vpad + 'em';\n span.style.verticalAlign = -bbox.d + 'em';\n span.style.marginTop = span.style.marginBottom = -vpad + 'em';\n span.style.width = bbox.w + 2 * hpad + 'em';\n span.style.marginLeft = left - hpad + 'em';\n span.style.marginRight = -bbox.w - hpad - left + 'em';\n node.parentNode.insertBefore(span, node);\n info.box = span;\n }\n return info;\n }\n unhighlightNode(info) {\n const node = info.node;\n node.style.color = info.foreground;\n node.style.position = info.position;\n if (info.box) {\n info.box.parentNode.removeChild(info.box);\n }\n }\n}\nexports.HtmlHighlighter = HtmlHighlighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlCssHighlighter = void 0;\nconst css_highlighter_1 = require(\"./css_highlighter\");\nclass MmlCssHighlighter extends css_highlighter_1.CssHighlighter {\n constructor() {\n super();\n this.mactionName = 'maction';\n }\n getMactionNodes(node) {\n return Array.from(node.getElementsByTagName(this.mactionName));\n }\n isMactionNode(node) {\n return node.tagName === this.mactionName;\n }\n}\nexports.MmlCssHighlighter = MmlCssHighlighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MmlHighlighter = void 0;\nconst abstract_highlighter_1 = require(\"./abstract_highlighter\");\nclass MmlHighlighter extends abstract_highlighter_1.AbstractHighlighter {\n constructor() {\n super();\n this.mactionName = 'maction';\n }\n highlightNode(node) {\n let style = node.getAttribute('style');\n style += ';background-color: ' + this.colorString().background;\n style += ';color: ' + this.colorString().foreground;\n node.setAttribute('style', style);\n return { node: node };\n }\n unhighlightNode(info) {\n let style = info.node.getAttribute('style');\n style = style.replace(';background-color: ' + this.colorString().background, '');\n style = style.replace(';color: ' + this.colorString().foreground, '');\n info.node.setAttribute('style', style);\n }\n colorString() {\n return this.color.rgba();\n }\n getMactionNodes(node) {\n return Array.from(node.getElementsByTagName(this.mactionName));\n }\n isMactionNode(node) {\n return node.tagName === this.mactionName;\n }\n}\nexports.MmlHighlighter = MmlHighlighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SvgHighlighter = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst abstract_highlighter_1 = require(\"./abstract_highlighter\");\nclass SvgHighlighter extends abstract_highlighter_1.AbstractHighlighter {\n constructor() {\n super();\n this.mactionName = 'mjx-svg-maction';\n }\n highlightNode(node) {\n let info;\n if (this.isHighlighted(node)) {\n info = {\n node: node.previousSibling || node,\n background: node.style.backgroundColor,\n foreground: node.style.color\n };\n return info;\n }\n if (node.tagName === 'svg') {\n const info = {\n node: node,\n background: node.style.backgroundColor,\n foreground: node.style.color\n };\n node.style.backgroundColor = this.colorString().background;\n node.style.color = this.colorString().foreground;\n return info;\n }\n const rect = DomUtil.createElementNS('http://www.w3.org/2000/svg', 'rect');\n const padding = 40;\n let bbox;\n if (node.nodeName === 'use') {\n const g = DomUtil.createElementNS('http://www.w3.org/2000/svg', 'g');\n node.parentNode.insertBefore(g, node);\n g.appendChild(node);\n bbox = g.getBBox();\n g.parentNode.replaceChild(node, g);\n }\n else {\n bbox = node.getBBox();\n }\n rect.setAttribute('x', (bbox.x - padding).toString());\n rect.setAttribute('y', (bbox.y - padding).toString());\n rect.setAttribute('width', (bbox.width + 2 * padding).toString());\n rect.setAttribute('height', (bbox.height + 2 * padding).toString());\n const transform = node.getAttribute('transform');\n if (transform) {\n rect.setAttribute('transform', transform);\n }\n rect.setAttribute('fill', this.colorString().background);\n rect.setAttribute(abstract_highlighter_1.AbstractHighlighter.ATTR, 'true');\n node.parentNode.insertBefore(rect, node);\n info = { node: rect, foreground: node.getAttribute('fill') };\n node.setAttribute('fill', this.colorString().foreground);\n return info;\n }\n setHighlighted(node) {\n if (node.tagName === 'svg') {\n super.setHighlighted(node);\n }\n }\n unhighlightNode(info) {\n if ('background' in info) {\n info.node.style.backgroundColor = info.background;\n info.node.style.color = info.foreground;\n return;\n }\n info.foreground\n ? info.node.nextSibling.setAttribute('fill', info.foreground)\n : info.node.nextSibling.removeAttribute('fill');\n info.node.parentNode.removeChild(info.node);\n }\n isMactionNode(node) {\n let className = node.className || node.getAttribute('class');\n className =\n className.baseVal !== undefined\n ? className.baseVal\n : className;\n return className ? !!className.match(new RegExp(this.mactionName)) : false;\n }\n}\nexports.SvgHighlighter = SvgHighlighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SvgV3Highlighter = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst abstract_highlighter_1 = require(\"./abstract_highlighter\");\nconst color_picker_1 = require(\"./color_picker\");\nconst svg_highlighter_1 = require(\"./svg_highlighter\");\nclass SvgV3Highlighter extends svg_highlighter_1.SvgHighlighter {\n constructor() {\n super();\n this.mactionName = 'maction';\n }\n highlightNode(node) {\n let info;\n if (this.isHighlighted(node)) {\n info = {\n node: node,\n background: this.colorString().background,\n foreground: this.colorString().foreground\n };\n return info;\n }\n if (node.tagName === 'svg' || node.tagName === 'MJX-CONTAINER') {\n info = {\n node: node,\n background: node.style.backgroundColor,\n foreground: node.style.color\n };\n node.style.backgroundColor = this.colorString().background;\n node.style.color = this.colorString().foreground;\n return info;\n }\n const rect = DomUtil.createElementNS('http://www.w3.org/2000/svg', 'rect');\n rect.setAttribute('sre-highlighter-added', 'true');\n const padding = 40;\n const bbox = node.getBBox();\n rect.setAttribute('x', (bbox.x - padding).toString());\n rect.setAttribute('y', (bbox.y - padding).toString());\n rect.setAttribute('width', (bbox.width + 2 * padding).toString());\n rect.setAttribute('height', (bbox.height + 2 * padding).toString());\n const transform = node.getAttribute('transform');\n if (transform) {\n rect.setAttribute('transform', transform);\n }\n rect.setAttribute('fill', this.colorString().background);\n node.setAttribute(abstract_highlighter_1.AbstractHighlighter.ATTR, 'true');\n node.parentNode.insertBefore(rect, node);\n info = { node: node, foreground: node.getAttribute('fill') };\n if (node.nodeName === 'rect') {\n const picker = new color_picker_1.ColorPicker({ alpha: 0, color: 'black' });\n node.setAttribute('fill', picker.rgba().foreground);\n }\n else {\n node.setAttribute('fill', this.colorString().foreground);\n }\n return info;\n }\n unhighlightNode(info) {\n const previous = info.node.previousSibling;\n if (previous && previous.hasAttribute('sre-highlighter-added')) {\n info.foreground\n ? info.node.setAttribute('fill', info.foreground)\n : info.node.removeAttribute('fill');\n info.node.parentNode.removeChild(previous);\n return;\n }\n info.node.style.backgroundColor = info.background;\n info.node.style.color = info.foreground;\n }\n isMactionNode(node) {\n return node.getAttribute('data-mml-node') === this.mactionName;\n }\n getMactionNodes(node) {\n return Array.from(XpathUtil.evalXPath(`.//*[@data-mml-node=\"${this.mactionName}\"]`, node));\n }\n}\nexports.SvgV3Highlighter = SvgV3Highlighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StaticTrieNode = exports.AbstractTrieNode = void 0;\nconst debugger_1 = require(\"../common/debugger\");\nconst trie_node_1 = require(\"./trie_node\");\nclass AbstractTrieNode {\n constructor(constraint, test) {\n this.constraint = constraint;\n this.test = test;\n this.children_ = {};\n this.kind = trie_node_1.TrieNodeKind.ROOT;\n }\n getConstraint() {\n return this.constraint;\n }\n getKind() {\n return this.kind;\n }\n applyTest(object) {\n return this.test(object);\n }\n addChild(node) {\n const constraint = node.getConstraint();\n const child = this.children_[constraint];\n this.children_[constraint] = node;\n return child;\n }\n getChild(constraint) {\n return this.children_[constraint];\n }\n getChildren() {\n const children = [];\n for (const key in this.children_) {\n children.push(this.children_[key]);\n }\n return children;\n }\n findChildren(object) {\n const children = [];\n for (const key in this.children_) {\n const child = this.children_[key];\n if (child.applyTest(object)) {\n children.push(child);\n }\n }\n return children;\n }\n removeChild(constraint) {\n delete this.children_[constraint];\n }\n toString() {\n return this.constraint;\n }\n}\nexports.AbstractTrieNode = AbstractTrieNode;\nclass StaticTrieNode extends AbstractTrieNode {\n constructor(constraint, test) {\n super(constraint, test);\n this.rule_ = null;\n this.kind = trie_node_1.TrieNodeKind.STATIC;\n }\n getRule() {\n return this.rule_;\n }\n setRule(rule) {\n if (this.rule_) {\n debugger_1.Debugger.getInstance().output('Replacing rule ' + this.rule_ + ' with ' + rule);\n }\n this.rule_ = rule;\n }\n toString() {\n const rule = this.getRule();\n return rule\n ? this.constraint + '\\n' + '==> ' + this.getRule().action\n : this.constraint;\n }\n}\nexports.StaticTrieNode = StaticTrieNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Trie = void 0;\nconst trie_node_1 = require(\"./trie_node\");\nconst trie_node_factory_1 = require(\"./trie_node_factory\");\nclass Trie {\n constructor() {\n this.root = (0, trie_node_factory_1.getNode)(trie_node_1.TrieNodeKind.ROOT, '', null);\n }\n static collectRules_(root) {\n const rules = [];\n let explore = [root];\n while (explore.length) {\n const node = explore.shift();\n if (node.getKind() === trie_node_1.TrieNodeKind.QUERY ||\n node.getKind() === trie_node_1.TrieNodeKind.BOOLEAN) {\n const rule = node.getRule();\n if (rule) {\n rules.unshift(rule);\n }\n }\n explore = explore.concat(node.getChildren());\n }\n return rules;\n }\n static printWithDepth_(node, depth, str) {\n const prefix = new Array(depth + 2).join(depth.toString()) + ': ';\n str += prefix + node.toString() + '\\n';\n const children = node.getChildren();\n for (let i = 0, child; (child = children[i]); i++) {\n str = Trie.printWithDepth_(child, depth + 1, str);\n }\n return str;\n }\n static order_(node) {\n const children = node.getChildren();\n if (!children.length) {\n return 0;\n }\n const max = Math.max.apply(null, children.map(Trie.order_));\n return Math.max(children.length, max);\n }\n addRule(rule) {\n let node = this.root;\n const context = rule.context;\n const dynamicCstr = rule.dynamicCstr.getValues();\n for (let i = 0, l = dynamicCstr.length; i < l; i++) {\n node = this.addNode_(node, dynamicCstr[i], trie_node_1.TrieNodeKind.DYNAMIC, context);\n }\n node = this.addNode_(node, rule.precondition.query, trie_node_1.TrieNodeKind.QUERY, context);\n const booleans = rule.precondition.constraints;\n for (let i = 0, l = booleans.length; i < l; i++) {\n node = this.addNode_(node, booleans[i], trie_node_1.TrieNodeKind.BOOLEAN, context);\n }\n node.setRule(rule);\n }\n lookupRules(xml, dynamic) {\n let nodes = [this.root];\n const rules = [];\n while (dynamic.length) {\n const dynamicSet = dynamic.shift();\n const newNodes = [];\n while (nodes.length) {\n const node = nodes.shift();\n const children = node.getChildren();\n children.forEach((child) => {\n if (child.getKind() !== trie_node_1.TrieNodeKind.DYNAMIC ||\n dynamicSet.indexOf(child.getConstraint()) !== -1) {\n newNodes.push(child);\n }\n });\n }\n nodes = newNodes.slice();\n }\n while (nodes.length) {\n const node = nodes.shift();\n if (node.getRule) {\n const rule = node.getRule();\n if (rule) {\n rules.push(rule);\n }\n }\n const children = node.findChildren(xml);\n nodes = nodes.concat(children);\n }\n return rules;\n }\n hasSubtrie(cstrs) {\n let subtrie = this.root;\n for (let i = 0, l = cstrs.length; i < l; i++) {\n const cstr = cstrs[i];\n subtrie = subtrie.getChild(cstr);\n if (!subtrie) {\n return false;\n }\n }\n return true;\n }\n toString() {\n return Trie.printWithDepth_(this.root, 0, '');\n }\n collectRules() {\n return Trie.collectRules_(this.root);\n }\n order() {\n return Trie.order_(this.root);\n }\n enumerate(opt_info) {\n return this.enumerate_(this.root, opt_info);\n }\n byConstraint(constraint) {\n let node = this.root;\n while (constraint.length && node) {\n const cstr = constraint.shift();\n node = node.getChild(cstr);\n }\n return node || null;\n }\n enumerate_(node, info) {\n info = info || {};\n const children = node.getChildren();\n for (let i = 0, child; (child = children[i]); i++) {\n if (child.kind !== trie_node_1.TrieNodeKind.DYNAMIC) {\n continue;\n }\n info[child.getConstraint()] = this.enumerate_(child, info[child.getConstraint()]);\n }\n return info;\n }\n addNode_(node, constraint, kind, context) {\n let nextNode = node.getChild(constraint);\n if (!nextNode) {\n nextNode = (0, trie_node_factory_1.getNode)(kind, constraint, context);\n node.addChild(nextNode);\n }\n return nextNode;\n }\n}\nexports.Trie = Trie;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TrieNodeKind = void 0;\nvar TrieNodeKind;\n(function (TrieNodeKind) {\n TrieNodeKind[\"ROOT\"] = \"root\";\n TrieNodeKind[\"DYNAMIC\"] = \"dynamic\";\n TrieNodeKind[\"QUERY\"] = \"query\";\n TrieNodeKind[\"BOOLEAN\"] = \"boolean\";\n TrieNodeKind[\"STATIC\"] = \"static\";\n})(TrieNodeKind = exports.TrieNodeKind || (exports.TrieNodeKind = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BooleanTrieNode = exports.QueryTrieNode = exports.constraintTest_ = exports.DynamicTrieNode = exports.RootTrieNode = exports.getNode = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst grammar_1 = require(\"../rule_engine/grammar\");\nconst MathCompoundStore = require(\"../rule_engine/math_compound_store\");\nconst abstract_trie_node_1 = require(\"./abstract_trie_node\");\nconst abstract_trie_node_2 = require(\"./abstract_trie_node\");\nconst trie_node_1 = require(\"./trie_node\");\nfunction getNode(kind, constraint, context) {\n switch (kind) {\n case trie_node_1.TrieNodeKind.ROOT:\n return new RootTrieNode();\n case trie_node_1.TrieNodeKind.DYNAMIC:\n return new DynamicTrieNode(constraint);\n case trie_node_1.TrieNodeKind.QUERY:\n return new QueryTrieNode(constraint, context);\n case trie_node_1.TrieNodeKind.BOOLEAN:\n return new BooleanTrieNode(constraint, context);\n default:\n return null;\n }\n}\nexports.getNode = getNode;\nclass RootTrieNode extends abstract_trie_node_1.AbstractTrieNode {\n constructor() {\n super('', () => true);\n this.kind = trie_node_1.TrieNodeKind.ROOT;\n }\n}\nexports.RootTrieNode = RootTrieNode;\nclass DynamicTrieNode extends abstract_trie_node_1.AbstractTrieNode {\n constructor(constraint) {\n super(constraint, (axis) => axis === constraint);\n this.kind = trie_node_1.TrieNodeKind.DYNAMIC;\n }\n}\nexports.DynamicTrieNode = DynamicTrieNode;\nconst comparator = {\n '=': (x, y) => x === y,\n '!=': (x, y) => x !== y,\n '<': (x, y) => x < y,\n '>': (x, y) => x > y,\n '<=': (x, y) => x <= y,\n '>=': (x, y) => x >= y\n};\nfunction constraintTest_(constraint) {\n if (constraint.match(/^self::\\*$/)) {\n return (_node) => true;\n }\n if (constraint.match(/^self::\\w+$/)) {\n const tag = constraint.slice(6).toUpperCase();\n return (node) => node.tagName && DomUtil.tagName(node) === tag;\n }\n if (constraint.match(/^self::\\w+:\\w+$/)) {\n const inter = constraint.split(':');\n const namespace = XpathUtil.resolveNameSpace(inter[2]);\n if (!namespace) {\n return null;\n }\n const tag = inter[3].toUpperCase();\n return (node) => node.localName &&\n node.localName.toUpperCase() === tag &&\n node.namespaceURI === namespace;\n }\n if (constraint.match(/^@\\w+$/)) {\n const attr = constraint.slice(1);\n return (node) => node.hasAttribute && node.hasAttribute(attr);\n }\n if (constraint.match(/^@\\w+=\"[\\w\\d ]+\"$/)) {\n const split = constraint.split('=');\n const attr = split[0].slice(1);\n const value = split[1].slice(1, -1);\n return (node) => node.hasAttribute &&\n node.hasAttribute(attr) &&\n node.getAttribute(attr) === value;\n }\n if (constraint.match(/^@\\w+!=\"[\\w\\d ]+\"$/)) {\n const split = constraint.split('!=');\n const attr = split[0].slice(1);\n const value = split[1].slice(1, -1);\n return (node) => !node.hasAttribute ||\n !node.hasAttribute(attr) ||\n node.getAttribute(attr) !== value;\n }\n if (constraint.match(/^contains\\(\\s*@grammar\\s*,\\s*\"[\\w\\d ]+\"\\s*\\)$/)) {\n const split = constraint.split('\"');\n const value = split[1];\n return (_node) => !!grammar_1.Grammar.getInstance().getParameter(value);\n }\n if (constraint.match(/^not\\(\\s*contains\\(\\s*@grammar\\s*,\\s*\"[\\w\\d ]+\"\\s*\\)\\s*\\)$/)) {\n const split = constraint.split('\"');\n const value = split[1];\n return (_node) => !grammar_1.Grammar.getInstance().getParameter(value);\n }\n if (constraint.match(/^name\\(\\.\\.\\/\\.\\.\\)=\"\\w+\"$/)) {\n const split = constraint.split('\"');\n const tag = split[1].toUpperCase();\n return (node) => {\n var _a, _b;\n return ((_b = (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.parentNode) === null || _b === void 0 ? void 0 : _b.tagName) &&\n DomUtil.tagName(node.parentNode.parentNode) === tag;\n };\n }\n if (constraint.match(/^count\\(preceding-sibling::\\*\\)=\\d+$/)) {\n const split = constraint.split('=');\n const num = parseInt(split[1], 10);\n return (node) => { var _a; return ((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.childNodes[num]) === node; };\n }\n if (constraint.match(/^.+\\[@category!?=\".+\"\\]$/)) {\n let [, query, equality, category] = constraint.match(/^(.+)\\[@category(!?=)\"(.+)\"\\]$/);\n const unit = category.match(/^unit:(.+)$/);\n let add = '';\n if (unit) {\n category = unit[1];\n add = ':unit';\n }\n return (node) => {\n const xpath = XpathUtil.evalXPath(query, node)[0];\n if (xpath) {\n const result = MathCompoundStore.lookupCategory(xpath.textContent + add);\n return equality === '=' ? result === category : result !== category;\n }\n return false;\n };\n }\n if (constraint.match(/^string-length\\(.+\\)\\W+\\d+/)) {\n const [, select, comp, count] = constraint.match(/^string-length\\((.+)\\)(\\W+)(\\d+)/);\n const func = comparator[comp] || comparator['='];\n const numb = parseInt(count, 10);\n return (node) => {\n const xpath = XpathUtil.evalXPath(select, node)[0];\n if (!xpath) {\n return false;\n }\n return func(Array.from(xpath.textContent).length, numb);\n };\n }\n return null;\n}\nexports.constraintTest_ = constraintTest_;\nclass QueryTrieNode extends abstract_trie_node_2.StaticTrieNode {\n constructor(constraint, context) {\n super(constraint, constraintTest_(constraint));\n this.context = context;\n this.kind = trie_node_1.TrieNodeKind.QUERY;\n }\n applyTest(object) {\n return this.test\n ? this.test(object)\n : this.context.applyQuery(object, this.constraint) === object;\n }\n}\nexports.QueryTrieNode = QueryTrieNode;\nclass BooleanTrieNode extends abstract_trie_node_2.StaticTrieNode {\n constructor(constraint, context) {\n super(constraint, constraintTest_(constraint));\n this.context = context;\n this.kind = trie_node_1.TrieNodeKind.BOOLEAN;\n }\n applyTest(object) {\n return this.test\n ? this.test(object)\n : this.context.applyConstraint(object, this.constraint);\n }\n}\nexports.BooleanTrieNode = BooleanTrieNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.completeLocale = exports.getLocale = exports.setLocale = exports.locales = void 0;\nconst engine_1 = require(\"../common/engine\");\nconst variables_1 = require(\"../common/variables\");\nconst grammar_1 = require(\"../rule_engine/grammar\");\nconst locale_ca_1 = require(\"./locales/locale_ca\");\nconst locale_da_1 = require(\"./locales/locale_da\");\nconst locale_de_1 = require(\"./locales/locale_de\");\nconst locale_en_1 = require(\"./locales/locale_en\");\nconst locale_es_1 = require(\"./locales/locale_es\");\nconst locale_fr_1 = require(\"./locales/locale_fr\");\nconst locale_hi_1 = require(\"./locales/locale_hi\");\nconst locale_it_1 = require(\"./locales/locale_it\");\nconst locale_nb_1 = require(\"./locales/locale_nb\");\nconst locale_nemeth_1 = require(\"./locales/locale_nemeth\");\nconst locale_nn_1 = require(\"./locales/locale_nn\");\nconst locale_sv_1 = require(\"./locales/locale_sv\");\nconst locale_1 = require(\"./locale\");\nexports.locales = {\n ca: locale_ca_1.ca,\n da: locale_da_1.da,\n de: locale_de_1.de,\n en: locale_en_1.en,\n es: locale_es_1.es,\n fr: locale_fr_1.fr,\n hi: locale_hi_1.hi,\n it: locale_it_1.it,\n nb: locale_nb_1.nb,\n nn: locale_nn_1.nn,\n sv: locale_sv_1.sv,\n nemeth: locale_nemeth_1.nemeth\n};\nfunction setLocale() {\n const msgs = getLocale();\n setSubiso(msgs);\n if (msgs) {\n for (const key of Object.getOwnPropertyNames(msgs)) {\n locale_1.LOCALE[key] = msgs[key];\n }\n for (const [key, func] of Object.entries(msgs.CORRECTIONS)) {\n grammar_1.Grammar.getInstance().setCorrection(key, func);\n }\n }\n}\nexports.setLocale = setLocale;\nfunction setSubiso(msg) {\n const subiso = engine_1.default.getInstance().subiso;\n if (msg.SUBISO.all.indexOf(subiso) === -1) {\n engine_1.default.getInstance().subiso = msg.SUBISO.default;\n }\n msg.SUBISO.current = engine_1.default.getInstance().subiso;\n}\nfunction getLocale() {\n const locale = variables_1.Variables.ensureLocale(engine_1.default.getInstance().locale, engine_1.default.getInstance().defaultLocale);\n engine_1.default.getInstance().locale = locale;\n return exports.locales[locale]();\n}\nexports.getLocale = getLocale;\nfunction completeLocale(json) {\n const locale = exports.locales[json.locale];\n if (!locale) {\n console.error('Locale ' + json.locale + ' does not exist!');\n return;\n }\n const kind = json.kind.toUpperCase();\n const messages = json.messages;\n if (!messages)\n return;\n const loc = locale();\n for (const [key, value] of Object.entries(messages)) {\n loc[kind][key] = value;\n }\n}\nexports.completeLocale = completeLocale;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createLocale = exports.LOCALE = void 0;\nconst messages_1 = require(\"./messages\");\nexports.LOCALE = createLocale();\nfunction createLocale() {\n return {\n FUNCTIONS: (0, messages_1.FUNCTIONS)(),\n MESSAGES: (0, messages_1.MESSAGES)(),\n ALPHABETS: (0, messages_1.ALPHABETS)(),\n NUMBERS: (0, messages_1.NUMBERS)(),\n COMBINERS: {},\n CORRECTIONS: {},\n SUBISO: (0, messages_1.SUBISO)()\n };\n}\nexports.createLocale = createLocale;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.localeFontCombiner = exports.extractString = exports.localEnclose = exports.localRole = exports.localFont = exports.combinePostfixIndex = exports.nestingToString = void 0;\nconst locale_1 = require(\"./locale\");\nconst transformers_1 = require(\"./transformers\");\nfunction nestingToString(count) {\n switch (count) {\n case 1:\n return locale_1.LOCALE.MESSAGES.MS.ONCE || '';\n case 2:\n return locale_1.LOCALE.MESSAGES.MS.TWICE;\n default:\n return count.toString();\n }\n}\nexports.nestingToString = nestingToString;\nfunction combinePostfixIndex(postfix, index) {\n return postfix === locale_1.LOCALE.MESSAGES.MS.ROOTINDEX ||\n postfix === locale_1.LOCALE.MESSAGES.MS.INDEX\n ? postfix\n : postfix + ' ' + index;\n}\nexports.combinePostfixIndex = combinePostfixIndex;\nfunction localFont(font) {\n return extractString(locale_1.LOCALE.MESSAGES.font[font], font);\n}\nexports.localFont = localFont;\nfunction localRole(role) {\n return extractString(locale_1.LOCALE.MESSAGES.role[role], role);\n}\nexports.localRole = localRole;\nfunction localEnclose(enclose) {\n return extractString(locale_1.LOCALE.MESSAGES.enclose[enclose], enclose);\n}\nexports.localEnclose = localEnclose;\nfunction extractString(combiner, fallback) {\n if (combiner === undefined) {\n return fallback;\n }\n return typeof combiner === 'string' ? combiner : combiner[0];\n}\nexports.extractString = extractString;\nfunction localeFontCombiner(font) {\n return typeof font === 'string'\n ? { font: font, combiner: locale_1.LOCALE.ALPHABETS.combiner }\n : {\n font: font[0],\n combiner: locale_1.LOCALE.COMBINERS[font[1]] ||\n transformers_1.Combiners[font[1]] ||\n locale_1.LOCALE.ALPHABETS.combiner\n };\n}\nexports.localeFontCombiner = localeFontCombiner;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ca = void 0;\nconst locale_1 = require(\"../locale\");\nconst locale_util_1 = require(\"../locale_util\");\nconst numbers_ca_1 = require(\"../numbers/numbers_ca\");\nconst transformers_1 = require(\"../transformers\");\nconst sansserifCombiner = function (letter, font, cap) {\n letter = 'sans serif ' + (cap ? cap + ' ' + letter : letter);\n return font ? letter + ' ' + font : letter;\n};\nlet locale = null;\nfunction ca() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.ca = ca;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_ca_1.default;\n loc.COMBINERS['sansserif'] = sansserifCombiner;\n loc.FUNCTIONS.fracNestDepth = (_node) => false;\n (loc.FUNCTIONS.combineRootIndex = locale_util_1.combinePostfixIndex),\n (loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => a + c);\n loc.FUNCTIONS.fontRegexp = (font) => RegExp('^' + font + ' ');\n (loc.FUNCTIONS.plural = (unit) => {\n if (/.*os$/.test(unit)) {\n return unit + 'sos';\n }\n if (/.*s$/.test(unit)) {\n return unit + 'os';\n }\n if (/.*ga$/.test(unit)) {\n return unit.slice(0, -2) + 'gues';\n }\n if (/.*ça$/.test(unit)) {\n return unit.slice(0, -2) + 'ces';\n }\n if (/.*ca$/.test(unit)) {\n return unit.slice(0, -2) + 'ques';\n }\n if (/.*ja$/.test(unit)) {\n return unit.slice(0, -2) + 'ges';\n }\n if (/.*qua$/.test(unit)) {\n return unit.slice(0, -3) + 'qües';\n }\n if (/.*a$/.test(unit)) {\n return unit.slice(0, -1) + 'es';\n }\n if (/.*(e|i)$/.test(unit)) {\n return unit + 'ns';\n }\n if (/.*í$/.test(unit)) {\n return unit.slice(0, -1) + 'ins';\n }\n return unit + 's';\n }),\n (loc.FUNCTIONS.si = (prefix, unit) => {\n if (unit.match(/^metre/)) {\n prefix = prefix\n .replace(/a$/, 'à')\n .replace(/o$/, 'ò')\n .replace(/i$/, 'í');\n }\n return prefix + unit;\n });\n loc.ALPHABETS.combiner = transformers_1.Combiners.prefixCombiner;\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.da = void 0;\nconst locale_1 = require(\"../locale\");\nconst locale_util_1 = require(\"../locale_util\");\nconst numbers_da_1 = require(\"../numbers/numbers_da\");\nconst tr = require(\"../transformers\");\nlet locale = null;\nfunction da() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.da = da;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_da_1.default;\n loc.FUNCTIONS.radicalNestDepth = locale_util_1.nestingToString;\n loc.FUNCTIONS.fontRegexp = (font) => {\n return font === loc.ALPHABETS.capPrefix['default']\n ? RegExp('^' + font + ' ')\n : RegExp(' ' + font + '$');\n };\n loc.ALPHABETS.combiner = tr.Combiners.postfixCombiner;\n loc.ALPHABETS.digitTrans.default = numbers_da_1.default.numberToWords;\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.de = void 0;\nconst grammar_1 = require(\"../../rule_engine/grammar\");\nconst locale_util_1 = require(\"../locale_util\");\nconst locale_1 = require(\"../locale\");\nconst numbers_de_1 = require(\"../numbers/numbers_de\");\nconst germanPrefixCombiner = function (letter, font, cap) {\n if (cap === 's') {\n font = font\n .split(' ')\n .map(function (x) {\n return x.replace(/s$/, '');\n })\n .join(' ');\n cap = '';\n }\n letter = cap ? cap + ' ' + letter : letter;\n return font ? font + ' ' + letter : letter;\n};\nconst germanPostfixCombiner = function (letter, font, cap) {\n letter = !cap || cap === 's' ? letter : cap + ' ' + letter;\n return font ? letter + ' ' + font : letter;\n};\nlet locale = null;\nfunction de() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.de = de;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_de_1.default;\n loc.COMBINERS['germanPostfix'] = germanPostfixCombiner;\n loc.ALPHABETS.combiner = germanPrefixCombiner;\n loc.FUNCTIONS.radicalNestDepth = (x) => {\n return x > 1 ? loc.NUMBERS.numberToWords(x) + 'fach' : '';\n };\n loc.FUNCTIONS.combineRootIndex = (postfix, index) => {\n const root = index ? index + 'wurzel' : '';\n return postfix.replace('Wurzel', root);\n };\n loc.FUNCTIONS.combineNestedRadical = (a, b, c) => {\n a = c.match(/exponent$/) ? a + 'r' : a;\n const count = (b ? b + ' ' : '') + a;\n return c.match(/ /) ? c.replace(/ /, ' ' + count + ' ') : count + ' ' + c;\n };\n loc.FUNCTIONS.fontRegexp = function (font) {\n font = font\n .split(' ')\n .map(function (x) {\n return x.replace(/s$/, '(|s)');\n })\n .join(' ');\n return new RegExp('((^' + font + ' )|( ' + font + '$))');\n };\n loc.CORRECTIONS.correctOne = (num) => num.replace(/^eins$/, 'ein');\n loc.CORRECTIONS.localFontNumber = (font) => {\n const realFont = (0, locale_util_1.localFont)(font);\n return realFont\n .split(' ')\n .map(function (x) {\n return x.replace(/s$/, '');\n })\n .join(' ');\n };\n loc.CORRECTIONS.lowercase = (name) => name.toLowerCase();\n loc.CORRECTIONS.article = (name) => {\n const decl = grammar_1.Grammar.getInstance().getParameter('case');\n const plural = grammar_1.Grammar.getInstance().getParameter('plural');\n if (decl === 'dative') {\n return { der: 'dem', die: plural ? 'den' : 'der', das: 'dem' }[name];\n }\n return name;\n };\n loc.CORRECTIONS.masculine = (name) => {\n const decl = grammar_1.Grammar.getInstance().getParameter('case');\n if (decl === 'dative') {\n return name + 'n';\n }\n return name;\n };\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.en = void 0;\nconst grammar_1 = require(\"../../rule_engine/grammar\");\nconst locale_1 = require(\"../locale\");\nconst locale_util_1 = require(\"../locale_util\");\nconst numbers_en_1 = require(\"../numbers/numbers_en\");\nconst tr = require(\"../transformers\");\nlet locale = null;\nfunction en() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.en = en;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_en_1.default;\n loc.FUNCTIONS.radicalNestDepth = locale_util_1.nestingToString;\n loc.FUNCTIONS.plural = (unit) => {\n return /.*s$/.test(unit) ? unit : unit + 's';\n };\n loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;\n loc.ALPHABETS.digitTrans.default = numbers_en_1.default.numberToWords;\n loc.CORRECTIONS.article = (name) => {\n return grammar_1.Grammar.getInstance().getParameter('noArticle') ? '' : name;\n };\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.es = void 0;\nconst locale_1 = require(\"../locale\");\nconst locale_util_1 = require(\"../locale_util\");\nconst numbers_es_1 = require(\"../numbers/numbers_es\");\nconst transformers_1 = require(\"../transformers\");\nconst sansserifCombiner = function (letter, font, cap) {\n letter = 'sans serif ' + (cap ? cap + ' ' + letter : letter);\n return font ? letter + ' ' + font : letter;\n};\nlet locale = null;\nfunction es() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.es = es;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_es_1.default;\n loc.COMBINERS['sansserif'] = sansserifCombiner;\n loc.FUNCTIONS.fracNestDepth = (_node) => false;\n (loc.FUNCTIONS.combineRootIndex = locale_util_1.combinePostfixIndex),\n (loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => a + c);\n loc.FUNCTIONS.fontRegexp = (font) => RegExp('^' + font + ' ');\n (loc.FUNCTIONS.plural = (unit) => {\n if (/.*(a|e|i|o|u)$/.test(unit)) {\n return unit + 's';\n }\n if (/.*z$/.test(unit)) {\n return unit.slice(0, -1) + 'ces';\n }\n if (/.*c$/.test(unit)) {\n return unit.slice(0, -1) + 'ques';\n }\n if (/.*g$/.test(unit)) {\n return unit + 'ues';\n }\n if (/.*\\u00f3n$/.test(unit)) {\n return unit.slice(0, -2) + 'ones';\n }\n return unit + 'es';\n }),\n (loc.FUNCTIONS.si = (prefix, unit) => {\n if (unit.match(/^metro/)) {\n prefix = prefix\n .replace(/a$/, 'á')\n .replace(/o$/, 'ó')\n .replace(/i$/, 'í');\n }\n return prefix + unit;\n });\n loc.ALPHABETS.combiner = transformers_1.Combiners.prefixCombiner;\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fr = void 0;\nconst grammar_1 = require(\"../../rule_engine/grammar\");\nconst locale_1 = require(\"../locale\");\nconst locale_util_1 = require(\"../locale_util\");\nconst numbers_fr_1 = require(\"../numbers/numbers_fr\");\nconst transformers_1 = require(\"../transformers\");\nlet locale = null;\nfunction fr() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.fr = fr;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_fr_1.default;\n loc.FUNCTIONS.radicalNestDepth = locale_util_1.nestingToString;\n loc.FUNCTIONS.combineRootIndex = locale_util_1.combinePostfixIndex;\n loc.FUNCTIONS.combineNestedFraction = (a, b, c) => c.replace(/ $/g, '') + b + a;\n loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => c + ' ' + a;\n loc.FUNCTIONS.fontRegexp = (font) => RegExp(' (en |)' + font + '$');\n loc.FUNCTIONS.plural = (unit) => {\n return /.*s$/.test(unit) ? unit : unit + 's';\n };\n loc.CORRECTIONS.article = (name) => {\n return grammar_1.Grammar.getInstance().getParameter('noArticle') ? '' : name;\n };\n loc.ALPHABETS.combiner = transformers_1.Combiners.romanceCombiner;\n loc.SUBISO = {\n default: 'fr',\n current: 'fr',\n all: ['fr', 'be', 'ch']\n };\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hi = void 0;\nconst locale_1 = require(\"../locale\");\nconst numbers_hi_1 = require(\"../numbers/numbers_hi\");\nconst transformers_1 = require(\"../transformers\");\nconst locale_util_1 = require(\"../locale_util\");\nlet locale = null;\nfunction hi() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.hi = hi;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_hi_1.default;\n loc.ALPHABETS.combiner = transformers_1.Combiners.prefixCombiner;\n loc.FUNCTIONS.radicalNestDepth = locale_util_1.nestingToString;\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.it = void 0;\nconst locale_util_1 = require(\"../locale_util\");\nconst locale_1 = require(\"../locale\");\nconst numbers_it_1 = require(\"../numbers/numbers_it\");\nconst transformers_1 = require(\"../transformers\");\nconst italianPostfixCombiner = function (letter, font, cap) {\n if (letter.match(/^[a-zA-Z]$/)) {\n font = font.replace('cerchiato', 'cerchiata');\n }\n letter = cap ? letter + ' ' + cap : letter;\n return font ? letter + ' ' + font : letter;\n};\nlet locale = null;\nfunction it() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.it = it;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_it_1.default;\n loc.COMBINERS['italianPostfix'] = italianPostfixCombiner;\n loc.FUNCTIONS.radicalNestDepth = locale_util_1.nestingToString;\n loc.FUNCTIONS.combineRootIndex = locale_util_1.combinePostfixIndex;\n loc.FUNCTIONS.combineNestedFraction = (a, b, c) => c.replace(/ $/g, '') + b + a;\n loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => c + ' ' + a;\n loc.FUNCTIONS.fontRegexp = (font) => RegExp(' (en |)' + font + '$');\n loc.ALPHABETS.combiner = transformers_1.Combiners.romanceCombiner;\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nb = void 0;\nconst locale_1 = require(\"../locale\");\nconst locale_util_1 = require(\"../locale_util\");\nconst numbers_nn_1 = require(\"../numbers/numbers_nn\");\nconst tr = require(\"../transformers\");\nlet locale = null;\nfunction nb() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.nb = nb;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_nn_1.default;\n loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;\n loc.ALPHABETS.digitTrans.default = numbers_nn_1.default.numberToWords;\n loc.FUNCTIONS.radicalNestDepth = locale_util_1.nestingToString;\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nemeth = void 0;\nconst locale_1 = require(\"../locale\");\nconst numbers_nemeth_1 = require(\"../numbers/numbers_nemeth\");\nconst transformers_1 = require(\"../transformers\");\nconst simpleEnglish = function (letter) {\n return letter.match(RegExp('^' + locale.ALPHABETS.languagePrefix.english))\n ? letter.slice(1)\n : letter;\n};\nconst postfixCombiner = function (letter, font, _number) {\n letter = simpleEnglish(letter);\n return font ? letter + font : letter;\n};\nconst germanCombiner = function (letter, font, _cap) {\n return font + simpleEnglish(letter);\n};\nconst embellishCombiner = function (letter, font, num) {\n letter = simpleEnglish(letter);\n return font + (num ? num : '') + letter + '⠻';\n};\nconst doubleEmbellishCombiner = function (letter, font, num) {\n letter = simpleEnglish(letter);\n return font + (num ? num : '') + letter + '⠻⠻';\n};\nconst parensCombiner = function (letter, font, _number) {\n letter = simpleEnglish(letter);\n return font + letter + '⠾';\n};\nlet locale = null;\nfunction nemeth() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.nemeth = nemeth;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_nemeth_1.default;\n loc.COMBINERS = {\n postfixCombiner: postfixCombiner,\n germanCombiner: germanCombiner,\n embellishCombiner: embellishCombiner,\n doubleEmbellishCombiner: doubleEmbellishCombiner,\n parensCombiner: parensCombiner\n };\n loc.FUNCTIONS.fracNestDepth = (_node) => false;\n loc.FUNCTIONS.fontRegexp = (font) => RegExp('^' + font);\n (loc.FUNCTIONS.si = transformers_1.identityTransformer),\n (loc.ALPHABETS.combiner = (letter, font, num) => {\n return font ? font + num + letter : simpleEnglish(letter);\n });\n loc.ALPHABETS.digitTrans = { default: numbers_nemeth_1.default.numberToWords };\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nn = void 0;\nconst locale_1 = require(\"../locale\");\nconst locale_util_1 = require(\"../locale_util\");\nconst numbers_nn_1 = require(\"../numbers/numbers_nn\");\nconst tr = require(\"../transformers\");\nlet locale = null;\nfunction nn() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.nn = nn;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_nn_1.default;\n loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;\n loc.ALPHABETS.digitTrans.default = numbers_nn_1.default.numberToWords;\n loc.FUNCTIONS.radicalNestDepth = locale_util_1.nestingToString;\n loc.SUBISO = {\n default: '',\n current: '',\n all: ['', 'alt']\n };\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sv = void 0;\nconst locale_1 = require(\"../locale\");\nconst locale_util_1 = require(\"../locale_util\");\nconst numbers_sv_1 = require(\"../numbers/numbers_sv\");\nconst tr = require(\"../transformers\");\nlet locale = null;\nfunction sv() {\n if (!locale) {\n locale = create();\n }\n return locale;\n}\nexports.sv = sv;\nfunction create() {\n const loc = (0, locale_1.createLocale)();\n loc.NUMBERS = numbers_sv_1.default;\n loc.FUNCTIONS.radicalNestDepth = locale_util_1.nestingToString;\n loc.FUNCTIONS.fontRegexp = function (font) {\n return new RegExp('((^' + font + ' )|( ' + font + '$))');\n };\n loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;\n loc.ALPHABETS.digitTrans.default = numbers_sv_1.default.numberToWords;\n loc.CORRECTIONS.correctOne = (num) => num.replace(/^ett$/, 'en');\n return loc;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SUBISO = exports.FUNCTIONS = exports.ALPHABETS = exports.NUMBERS = exports.MESSAGES = void 0;\nconst tr = require(\"./transformers\");\nfunction MESSAGES() {\n return {\n MS: {},\n MSroots: {},\n font: {},\n embellish: {},\n role: {},\n enclose: {},\n navigate: {},\n regexp: {},\n unitTimes: ''\n };\n}\nexports.MESSAGES = MESSAGES;\nfunction NUMBERS() {\n return {\n zero: 'zero',\n ones: [],\n tens: [],\n large: [],\n special: {},\n wordOrdinal: tr.identityTransformer,\n numericOrdinal: tr.identityTransformer,\n numberToWords: tr.identityTransformer,\n numberToOrdinal: tr.pluralCase,\n vulgarSep: ' ',\n numSep: ' '\n };\n}\nexports.NUMBERS = NUMBERS;\nfunction ALPHABETS() {\n return {\n latinSmall: [],\n latinCap: [],\n greekSmall: [],\n greekCap: [],\n capPrefix: { default: '' },\n smallPrefix: { default: '' },\n digitPrefix: { default: '' },\n languagePrefix: {},\n digitTrans: {\n default: tr.identityTransformer,\n mathspeak: tr.identityTransformer,\n clearspeak: tr.identityTransformer\n },\n letterTrans: { default: tr.identityTransformer },\n combiner: (letter, _font, _cap) => {\n return letter;\n }\n };\n}\nexports.ALPHABETS = ALPHABETS;\nfunction FUNCTIONS() {\n return {\n fracNestDepth: (n) => tr.vulgarFractionSmall(n, 10, 100),\n radicalNestDepth: (_count) => '',\n combineRootIndex: function (postfix, _index) {\n return postfix;\n },\n combineNestedFraction: tr.Combiners.identityCombiner,\n combineNestedRadical: tr.Combiners.identityCombiner,\n fontRegexp: function (font) {\n return new RegExp('^' + font.split(/ |-/).join('( |-)') + '( |-)');\n },\n si: tr.siCombiner,\n plural: tr.identityTransformer\n };\n}\nexports.FUNCTIONS = FUNCTIONS;\nfunction SUBISO() {\n return {\n default: '',\n current: '',\n all: []\n };\n}\nexports.SUBISO = SUBISO;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst grammar_1 = require(\"../../rule_engine/grammar\");\nconst messages_1 = require(\"../messages\");\nfunction tensToWords_(num) {\n const n = num % 100;\n if (n < 20) {\n return NUMBERS.ones[n];\n }\n const ten = Math.floor(n / 10);\n const tens = NUMBERS.tens[ten];\n const ones = NUMBERS.ones[n % 10];\n return tens && ones ? tens + (ten === 2 ? '-i-' : '-') + ones : tens || ones;\n}\nfunction hundredsToWords_(num) {\n const n = num % 1000;\n const hundred = Math.floor(n / 100);\n const hundreds = hundred\n ? hundred === 1\n ? 'cent'\n : NUMBERS.ones[hundred] + '-cents'\n : '';\n const tens = tensToWords_(n % 100);\n return hundreds && tens ? hundreds + NUMBERS.numSep + tens : hundreds || tens;\n}\nfunction numberToWords(num) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % (pos > 1 ? 1000000 : 1000);\n if (hundreds) {\n let large = NUMBERS.large[pos];\n if (!pos) {\n str = hundredsToWords_(hundreds);\n }\n else if (pos === 1) {\n str =\n (hundreds === 1 ? '' : hundredsToWords_(hundreds) + NUMBERS.numSep) +\n large +\n (str ? NUMBERS.numSep + str : '');\n }\n else {\n const thousands = numberToWords(hundreds);\n large = hundreds === 1 ? large : large.replace(/\\u00f3$/, 'ons');\n str =\n thousands +\n NUMBERS.numSep +\n large +\n (str ? NUMBERS.numSep + str : '');\n }\n }\n num = Math.floor(num / (pos > 1 ? 1000000 : 1000));\n pos++;\n }\n return str;\n}\nfunction numberToOrdinal(num, _plural) {\n if (num > 1999) {\n return numericOrdinal(num);\n }\n if (num <= 10) {\n return NUMBERS.special.onesOrdinals[num - 1];\n }\n const result = numberToWords(num);\n if (result.match(/mil$/)) {\n return result.replace(/mil$/, 'mil·lèsima');\n }\n if (result.match(/u$/)) {\n return result.replace(/u$/, 'vena');\n }\n if (result.match(/a$/)) {\n return result.replace(/a$/, 'ena');\n }\n return result + (result.match(/e$/) ? 'na' : 'ena');\n}\nfunction numericOrdinal(num) {\n const gender = grammar_1.Grammar.getInstance().getParameter('gender');\n return num.toString() + (gender === 'f' ? 'a' : 'n');\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst messages_1 = require(\"../messages\");\nfunction onePrefix_(num, mill = false) {\n return num === NUMBERS.ones[1] ? (mill ? 'et' : 'en') : num;\n}\nfunction hundredsToWords_(num, ordinal = false) {\n let n = num % 1000;\n let str = '';\n let ones = NUMBERS.ones[Math.floor(n / 100)];\n str += ones ? onePrefix_(ones, true) + ' hundrede' : '';\n n = n % 100;\n if (n) {\n str += str ? ' og ' : '';\n ones = ordinal ? NUMBERS.special.smallOrdinals[n] : NUMBERS.ones[n];\n if (ones) {\n str += ones;\n }\n else {\n const tens = ordinal\n ? NUMBERS.special.tensOrdinals[Math.floor(n / 10)]\n : NUMBERS.tens[Math.floor(n / 10)];\n ones = NUMBERS.ones[n % 10];\n str += ones ? onePrefix_(ones) + 'og' + tens : tens;\n }\n }\n return str;\n}\nfunction numberToWords(num, ordinal = false) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n const hund = hundredsToWords_(hundreds, ordinal && !pos);\n if (pos) {\n const large = NUMBERS.large[pos];\n const plural = hundreds > 1 ? 'er' : '';\n str =\n onePrefix_(hund, pos <= 1) +\n ' ' +\n large +\n plural +\n (str ? ' og ' : '') +\n str;\n }\n else {\n str = onePrefix_(hund) + str;\n }\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return str;\n}\nfunction numberToOrdinal(num, plural) {\n if (num === 1) {\n return plural ? 'hel' : 'hele';\n }\n if (num === 2) {\n return plural ? 'halv' : 'halve';\n }\n return wordOrdinal(num) + (plural ? 'dele' : 'del');\n}\nfunction wordOrdinal(num) {\n if (num % 100) {\n return numberToWords(num, true);\n }\n const ordinal = numberToWords(num);\n return ordinal.match(/e$/) ? ordinal : ordinal + 'e';\n}\nfunction numericOrdinal(num) {\n return num.toString() + '.';\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.wordOrdinal = wordOrdinal;\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst messages_1 = require(\"../messages\");\nfunction onePrefix_(num, mill = false) {\n return num === NUMBERS.ones[1] ? (mill ? 'eine' : 'ein') : num;\n}\nfunction hundredsToWords_(num) {\n let n = num % 1000;\n let str = '';\n let ones = NUMBERS.ones[Math.floor(n / 100)];\n str += ones ? onePrefix_(ones) + 'hundert' : '';\n n = n % 100;\n if (n) {\n str += str ? NUMBERS.numSep : '';\n ones = NUMBERS.ones[n];\n if (ones) {\n str += ones;\n }\n else {\n const tens = NUMBERS.tens[Math.floor(n / 10)];\n ones = NUMBERS.ones[n % 10];\n str += ones ? onePrefix_(ones) + 'und' + tens : tens;\n }\n }\n return str;\n}\nfunction numberToWords(num) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n const hund = hundredsToWords_(num % 1000);\n if (pos) {\n const large = NUMBERS.large[pos];\n const plural = pos > 1 && hundreds > 1 ? (large.match(/e$/) ? 'n' : 'en') : '';\n str = onePrefix_(hund, pos > 1) + large + plural + str;\n }\n else {\n str = onePrefix_(hund, pos > 1) + str;\n }\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return str.replace(/ein$/, 'eins');\n}\nfunction numberToOrdinal(num, plural) {\n if (num === 1) {\n return 'eintel';\n }\n if (num === 2) {\n return plural ? 'halbe' : 'halb';\n }\n return wordOrdinal(num) + 'l';\n}\nfunction wordOrdinal(num) {\n if (num === 1) {\n return 'erste';\n }\n if (num === 3) {\n return 'dritte';\n }\n if (num === 7) {\n return 'siebte';\n }\n if (num === 8) {\n return 'achte';\n }\n const ordinal = numberToWords(num);\n return ordinal + (num < 19 ? 'te' : 'ste');\n}\nfunction numericOrdinal(num) {\n return num.toString() + '.';\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.wordOrdinal = wordOrdinal;\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst messages_1 = require(\"../messages\");\nfunction hundredsToWords_(num) {\n let n = num % 1000;\n let str = '';\n str += NUMBERS.ones[Math.floor(n / 100)]\n ? NUMBERS.ones[Math.floor(n / 100)] + NUMBERS.numSep + 'hundred'\n : '';\n n = n % 100;\n if (n) {\n str += str ? NUMBERS.numSep : '';\n str +=\n NUMBERS.ones[n] ||\n NUMBERS.tens[Math.floor(n / 10)] +\n (n % 10 ? NUMBERS.numSep + NUMBERS.ones[n % 10] : '');\n }\n return str;\n}\nfunction numberToWords(num) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n str =\n hundredsToWords_(num % 1000) +\n (pos ? '-' + NUMBERS.large[pos] + '-' : '') +\n str;\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return str.replace(/-$/, '');\n}\nfunction numberToOrdinal(num, plural) {\n if (num === 1) {\n return plural ? 'oneths' : 'oneth';\n }\n if (num === 2) {\n return plural ? 'halves' : 'half';\n }\n const ordinal = wordOrdinal(num);\n return plural ? ordinal + 's' : ordinal;\n}\nfunction wordOrdinal(num) {\n let ordinal = numberToWords(num);\n if (ordinal.match(/one$/)) {\n ordinal = ordinal.slice(0, -3) + 'first';\n }\n else if (ordinal.match(/two$/)) {\n ordinal = ordinal.slice(0, -3) + 'second';\n }\n else if (ordinal.match(/three$/)) {\n ordinal = ordinal.slice(0, -5) + 'third';\n }\n else if (ordinal.match(/five$/)) {\n ordinal = ordinal.slice(0, -4) + 'fifth';\n }\n else if (ordinal.match(/eight$/)) {\n ordinal = ordinal.slice(0, -5) + 'eighth';\n }\n else if (ordinal.match(/nine$/)) {\n ordinal = ordinal.slice(0, -4) + 'ninth';\n }\n else if (ordinal.match(/twelve$/)) {\n ordinal = ordinal.slice(0, -6) + 'twelfth';\n }\n else if (ordinal.match(/ty$/)) {\n ordinal = ordinal.slice(0, -2) + 'tieth';\n }\n else {\n ordinal = ordinal + 'th';\n }\n return ordinal;\n}\nfunction numericOrdinal(num) {\n const tens = num % 100;\n const numStr = num.toString();\n if (tens > 10 && tens < 20) {\n return numStr + 'th';\n }\n switch (num % 10) {\n case 1:\n return numStr + 'st';\n case 2:\n return numStr + 'nd';\n case 3:\n return numStr + 'rd';\n default:\n return numStr + 'th';\n }\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.wordOrdinal = wordOrdinal;\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst grammar_1 = require(\"../../rule_engine/grammar\");\nconst messages_1 = require(\"../messages\");\nfunction tensToWords_(num) {\n const n = num % 100;\n if (n < 30) {\n return NUMBERS.ones[n];\n }\n const tens = NUMBERS.tens[Math.floor(n / 10)];\n const ones = NUMBERS.ones[n % 10];\n return tens && ones ? tens + ' y ' + ones : tens || ones;\n}\nfunction hundredsToWords_(num) {\n const n = num % 1000;\n const hundred = Math.floor(n / 100);\n const hundreds = NUMBERS.special.hundreds[hundred];\n const tens = tensToWords_(n % 100);\n if (hundred === 1) {\n if (!tens) {\n return hundreds;\n }\n return hundreds + 'to' + ' ' + tens;\n }\n return hundreds && tens ? hundreds + ' ' + tens : hundreds || tens;\n}\nfunction numberToWords(num) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n let large = NUMBERS.large[pos];\n const huns = hundredsToWords_(hundreds);\n if (!pos) {\n str = huns;\n }\n else if (hundreds === 1) {\n large = large.match('/^mil( |$)/') ? large : 'un ' + large;\n str = large + (str ? ' ' + str : '');\n }\n else {\n large = large.replace(/\\u00f3n$/, 'ones');\n str = hundredsToWords_(hundreds) + ' ' + large + (str ? ' ' + str : '');\n }\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return str;\n}\nfunction numberToOrdinal(num, _plural) {\n if (num > 1999) {\n return num.toString() + 'a';\n }\n if (num <= 12) {\n return NUMBERS.special.onesOrdinals[num - 1];\n }\n const result = [];\n if (num >= 1000) {\n num = num - 1000;\n result.push('milésima');\n }\n if (!num) {\n return result.join(' ');\n }\n let pos = 0;\n pos = Math.floor(num / 100);\n if (pos > 0) {\n result.push(NUMBERS.special.hundredsOrdinals[pos - 1]);\n num = num % 100;\n }\n if (num <= 12) {\n result.push(NUMBERS.special.onesOrdinals[num - 1]);\n }\n else {\n pos = Math.floor(num / 10);\n if (pos > 0) {\n result.push(NUMBERS.special.tensOrdinals[pos - 1]);\n num = num % 10;\n }\n if (num > 0) {\n result.push(NUMBERS.special.onesOrdinals[num - 1]);\n }\n }\n return result.join(' ');\n}\nfunction numericOrdinal(num) {\n const gender = grammar_1.Grammar.getInstance().getParameter('gender');\n return num.toString() + (gender === 'f' ? 'a' : 'o');\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst engine_1 = require(\"../../common/engine\");\nconst grammar_1 = require(\"../../rule_engine/grammar\");\nconst messages_1 = require(\"../messages\");\nfunction hundredsToWords_(num) {\n let n = num % 1000;\n let str = '';\n str += NUMBERS.ones[Math.floor(n / 100)]\n ? NUMBERS.ones[Math.floor(n / 100)] + '-cent'\n : '';\n n = n % 100;\n if (n) {\n str += str ? '-' : '';\n let ones = NUMBERS.ones[n];\n if (ones) {\n str += ones;\n }\n else {\n const tens = NUMBERS.tens[Math.floor(n / 10)];\n if (tens.match(/-dix$/)) {\n ones = NUMBERS.ones[(n % 10) + 10];\n str += tens.replace(/-dix$/, '') + '-' + ones;\n }\n else {\n str += tens + (n % 10 ? '-' + NUMBERS.ones[n % 10] : '');\n }\n }\n }\n const match = str.match(/s-\\w+$/);\n return match\n ? str.replace(/s-\\w+$/, match[0].slice(1))\n : str.replace(/-un$/, '-et-un');\n}\nfunction numberToWords(num) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n if (NUMBERS.special['tens-' + engine_1.default.getInstance().subiso]) {\n NUMBERS.tens = NUMBERS.special['tens-' + engine_1.default.getInstance().subiso];\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n let large = NUMBERS.large[pos];\n const huns = hundredsToWords_(hundreds);\n if (large && large.match(/^mille /)) {\n const rest = large.replace(/^mille /, '');\n if (str.match(RegExp(rest))) {\n str = huns + (pos ? '-mille-' : '') + str;\n }\n else if (str.match(RegExp(rest.replace(/s$/, '')))) {\n str =\n huns +\n (pos ? '-mille-' : '') +\n str.replace(rest.replace(/s$/, ''), rest);\n }\n else {\n str = huns + (pos ? '-' + large + '-' : '') + str;\n }\n }\n else {\n large = hundreds === 1 && large ? large.replace(/s$/, '') : large;\n str = huns + (pos ? '-' + large + '-' : '') + str;\n }\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return str.replace(/-$/, '');\n}\nconst SMALL_ORDINAL = {\n 1: 'unième',\n 2: 'demi',\n 3: 'tiers',\n 4: 'quart'\n};\nfunction numberToOrdinal(num, plural) {\n const ordinal = SMALL_ORDINAL[num] || wordOrdinal(num);\n return num === 3 ? ordinal : plural ? ordinal + 's' : ordinal;\n}\nfunction wordOrdinal(num) {\n if (num === 1) {\n return 'première';\n }\n let ordinal = numberToWords(num);\n if (ordinal.match(/^neuf$/)) {\n ordinal = ordinal.slice(0, -1) + 'v';\n }\n else if (ordinal.match(/cinq$/)) {\n ordinal = ordinal + 'u';\n }\n else if (ordinal.match(/trois$/)) {\n ordinal = ordinal + '';\n }\n else if (ordinal.match(/e$/) || ordinal.match(/s$/)) {\n ordinal = ordinal.slice(0, -1);\n }\n ordinal = ordinal + 'ième';\n return ordinal;\n}\nfunction numericOrdinal(num) {\n const gender = grammar_1.Grammar.getInstance().getParameter('gender');\n return num === 1\n ? num.toString() + (gender === 'm' ? 'er' : 're')\n : num.toString() + 'e';\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.wordOrdinal = wordOrdinal;\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst grammar_1 = require(\"../../rule_engine/grammar\");\nconst messages_1 = require(\"../messages\");\nfunction hundredsToWords_(num) {\n let n = num % 1000;\n let str = '';\n str += NUMBERS.ones[Math.floor(n / 100)]\n ? NUMBERS.ones[Math.floor(n / 100)] +\n NUMBERS.numSep +\n NUMBERS.special.hundred\n : '';\n n = n % 100;\n if (n) {\n str += str ? NUMBERS.numSep : '';\n str += NUMBERS.ones[n];\n }\n return str;\n}\nfunction numberToWords(num) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 32)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n const hundreds = num % 1000;\n const hundredsWords = hundredsToWords_(hundreds);\n num = Math.floor(num / 1000);\n if (!num) {\n return hundredsWords;\n }\n while (num > 0) {\n const thousands = num % 100;\n if (thousands) {\n str =\n NUMBERS.ones[thousands] +\n NUMBERS.numSep +\n NUMBERS.large[pos] +\n (str ? NUMBERS.numSep + str : '');\n }\n num = Math.floor(num / 100);\n pos++;\n }\n return hundredsWords ? str + NUMBERS.numSep + hundredsWords : str;\n}\nfunction numberToOrdinal(num, _plural) {\n if (num <= 10) {\n return NUMBERS.special.smallDenominators[num];\n }\n return wordOrdinal(num) + ' अंश';\n}\nfunction wordOrdinal(num) {\n const gender = grammar_1.Grammar.getInstance().getParameter('gender');\n if (num <= 0) {\n return num.toString();\n }\n if (num < 10) {\n return gender === 'f'\n ? NUMBERS.special.ordinalsFeminine[num]\n : NUMBERS.special.ordinalsMasculine[num];\n }\n const ordinal = numberToWords(num);\n return ordinal + (gender === 'f' ? 'वीं' : 'वाँ');\n}\nfunction numericOrdinal(num) {\n const gender = grammar_1.Grammar.getInstance().getParameter('gender');\n if (num > 0 && num < 10) {\n return gender === 'f'\n ? NUMBERS.special.simpleSmallOrdinalsFeminine[num]\n : NUMBERS.special.simpleSmallOrdinalsMasculine[num];\n }\n const ordinal = num\n .toString()\n .split('')\n .map(function (x) {\n const num = parseInt(x, 10);\n return isNaN(num) ? '' : NUMBERS.special.simpleNumbers[num];\n })\n .join('');\n return ordinal + (gender === 'f' ? 'वीं' : 'वाँ');\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.wordOrdinal = wordOrdinal;\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst grammar_1 = require(\"../../rule_engine/grammar\");\nconst messages_1 = require(\"../messages\");\nfunction hundredsToWords_(num) {\n let n = num % 1000;\n let str = '';\n str += NUMBERS.ones[Math.floor(n / 100)]\n ? NUMBERS.ones[Math.floor(n / 100)] + NUMBERS.numSep + 'cento'\n : '';\n n = n % 100;\n if (n) {\n str += str ? NUMBERS.numSep : '';\n const ones = NUMBERS.ones[n];\n if (ones) {\n str += ones;\n }\n else {\n let tens = NUMBERS.tens[Math.floor(n / 10)];\n const rest = n % 10;\n if (rest === 1 || rest === 8) {\n tens = tens.slice(0, -1);\n }\n str += tens;\n str += rest ? NUMBERS.numSep + NUMBERS.ones[n % 10] : '';\n }\n }\n return str;\n}\nfunction numberToWords(num) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n if (num === 1 && grammar_1.Grammar.getInstance().getParameter('fraction')) {\n return 'un';\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n str =\n hundredsToWords_(num % 1000) +\n (pos ? '-' + NUMBERS.large[pos] + '-' : '') +\n str;\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return str.replace(/-$/, '');\n}\nfunction numberToOrdinal(num, plural) {\n if (num === 2) {\n return plural ? 'mezzi' : 'mezzo';\n }\n const ordinal = wordOrdinal(num);\n if (!plural) {\n return ordinal;\n }\n const gender = ordinal.match(/o$/) ? 'i' : 'e';\n return ordinal.slice(0, -1) + gender;\n}\nfunction wordOrdinal(num) {\n const gender = grammar_1.Grammar.getInstance().getParameter('gender');\n const postfix = gender === 'm' ? 'o' : 'a';\n let ordinal = NUMBERS.special.onesOrdinals[num];\n if (ordinal) {\n return ordinal.slice(0, -1) + postfix;\n }\n ordinal = numberToWords(num);\n return ordinal.slice(0, -1) + 'esim' + postfix;\n}\nfunction numericOrdinal(num) {\n const gender = grammar_1.Grammar.getInstance().getParameter('gender');\n return num.toString() + (gender === 'm' ? 'o' : 'a');\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.wordOrdinal = wordOrdinal;\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst messages_1 = require(\"../messages\");\nfunction numberToWords(num) {\n const digits = num.toString().split('');\n return digits\n .map(function (digit) {\n return NUMBERS.ones[parseInt(digit, 10)];\n })\n .join('');\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToWords;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst engine_1 = require(\"../../common/engine\");\nconst messages_1 = require(\"../messages\");\nfunction hundredsToWordsRo_(num, ordinal = false) {\n let n = num % 1000;\n let str = '';\n const count = Math.floor(n / 100);\n const ones = NUMBERS.ones[count];\n str += ones ? (count === 1 ? '' : ones) + 'hundre' : '';\n n = n % 100;\n if (n) {\n str += str ? 'og' : '';\n if (ordinal) {\n const ord = NUMBERS.special.smallOrdinals[n];\n if (ord) {\n return str + ord;\n }\n if (n % 10) {\n return (str +\n NUMBERS.tens[Math.floor(n / 10)] +\n NUMBERS.special.smallOrdinals[n % 10]);\n }\n }\n str +=\n NUMBERS.ones[n] ||\n NUMBERS.tens[Math.floor(n / 10)] + (n % 10 ? NUMBERS.ones[n % 10] : '');\n }\n return ordinal ? replaceOrdinal(str) : str;\n}\nfunction numberToWordsRo(num, ordinal = false) {\n if (num === 0) {\n return ordinal ? NUMBERS.special.smallOrdinals[0] : NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n const hund = hundredsToWordsRo_(num % 1000, pos ? false : ordinal);\n if (!pos && ordinal) {\n ordinal = !ordinal;\n }\n str =\n hund +\n (pos\n ? ' ' +\n (NUMBERS.large[pos] + (pos > 1 && hundreds > 1 ? 'er' : '')) +\n (str ? ' ' : '')\n : '') +\n str;\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return ordinal ? str + (str.match(/tusen$/) ? 'de' : 'te') : str;\n}\nfunction numberToOrdinal(num, _plural) {\n return wordOrdinal(num);\n}\nfunction replaceOrdinal(str) {\n const letOne = NUMBERS.special.endOrdinal[0];\n if (letOne === 'a' && str.match(/en$/)) {\n return str.slice(0, -2) + NUMBERS.special.endOrdinal;\n }\n if (str.match(/(d|n)$/) || str.match(/hundre$/)) {\n return str + 'de';\n }\n if (str.match(/i$/)) {\n return str + NUMBERS.special.endOrdinal;\n }\n if (letOne === 'a' && str.match(/e$/)) {\n return str.slice(0, -1) + NUMBERS.special.endOrdinal;\n }\n if (str.match(/e$/)) {\n return str + 'nde';\n }\n return str + 'nde';\n}\nfunction wordOrdinal(num) {\n const ordinal = numberToWords(num, true);\n return ordinal;\n}\nfunction numericOrdinal(num) {\n return num.toString() + '.';\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.wordOrdinal = wordOrdinal;\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\nfunction onePrefix_(num, thd = false) {\n const numOne = NUMBERS.ones[1];\n return num === numOne ? (num === 'ein' ? 'eitt ' : thd ? 'et' : 'ett') : num;\n}\nfunction hundredsToWordsGe_(num, ordinal = false) {\n let n = num % 1000;\n let str = '';\n let ones = NUMBERS.ones[Math.floor(n / 100)];\n str += ones ? onePrefix_(ones) + 'hundre' : '';\n n = n % 100;\n if (n) {\n str += str ? 'og' : '';\n if (ordinal) {\n const ord = NUMBERS.special.smallOrdinals[n];\n if (ord) {\n return (str += ord);\n }\n }\n ones = NUMBERS.ones[n];\n if (ones) {\n str += ones;\n }\n else {\n const tens = NUMBERS.tens[Math.floor(n / 10)];\n ones = NUMBERS.ones[n % 10];\n str += ones ? ones + 'og' + tens : tens;\n }\n }\n return ordinal ? replaceOrdinal(str) : str;\n}\nfunction numberToWordsGe(num, ordinal = false) {\n if (num === 0) {\n return ordinal ? NUMBERS.special.smallOrdinals[0] : NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n const hund = hundredsToWordsGe_(num % 1000, pos ? false : ordinal);\n if (!pos && ordinal) {\n ordinal = !ordinal;\n }\n str =\n (pos === 1 ? onePrefix_(hund, true) : hund) +\n (pos > 1 ? NUMBERS.numSep : '') +\n (pos\n ?\n NUMBERS.large[pos] + (pos > 1 && hundreds > 1 ? 'er' : '')\n : '') +\n (pos > 1 && str ? NUMBERS.numSep : '') +\n str;\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return ordinal ? str + (str.match(/tusen$/) ? 'de' : 'te') : str;\n}\nfunction numberToWords(num, ordinal = false) {\n const word = engine_1.default.getInstance().subiso === 'alt'\n ? numberToWordsGe(num, ordinal)\n : numberToWordsRo(num, ordinal);\n return word;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst messages_1 = require(\"../messages\");\nfunction hundredsToWords_(num) {\n let n = num % 1000;\n let str = '';\n const hundreds = Math.floor(n / 100);\n str += NUMBERS.ones[hundreds]\n ? (hundreds === 1 ? '' : NUMBERS.ones[hundreds] + NUMBERS.numSep) + 'hundra'\n : '';\n n = n % 100;\n if (n) {\n str += str ? NUMBERS.numSep : '';\n str +=\n NUMBERS.ones[n] ||\n NUMBERS.tens[Math.floor(n / 10)] +\n (n % 10 ? NUMBERS.numSep + NUMBERS.ones[n % 10] : '');\n }\n return str;\n}\nfunction numberToWords(num, ordinal = false) {\n if (num === 0) {\n return NUMBERS.zero;\n }\n if (num >= Math.pow(10, 36)) {\n return num.toString();\n }\n let pos = 0;\n let str = '';\n while (num > 0) {\n const hundreds = num % 1000;\n if (hundreds) {\n const large = NUMBERS.large[pos];\n const plural = hundreds > 1 && pos > 1 && !ordinal ? 'er' : '';\n str =\n (pos === 1 && hundreds === 1\n ? ''\n : (pos > 1 && hundreds === 1 ? 'en' : hundredsToWords_(num % 1000)) +\n (pos > 1 ? ' ' : '')) +\n (pos ? large + plural + (pos > 1 ? ' ' : '') : '') +\n str;\n }\n num = Math.floor(num / 1000);\n pos++;\n }\n return str.replace(/ $/, '');\n}\nfunction numberToOrdinal(num, plural) {\n if (num === 1) {\n return plural ? 'hel' : 'hel';\n }\n if (num === 2) {\n return plural ? 'halva' : 'halv';\n }\n let ordinal = wordOrdinal(num);\n ordinal = ordinal.match(/de$/) ? ordinal.replace(/de$/, '') : ordinal;\n return ordinal + (plural ? 'delar' : 'del');\n}\nfunction wordOrdinal(num) {\n let ordinal = numberToWords(num, true);\n if (ordinal.match(/^noll$/)) {\n ordinal = 'nollte';\n }\n else if (ordinal.match(/ett$/)) {\n ordinal = ordinal.replace(/ett$/, 'första');\n }\n else if (ordinal.match(/två$/)) {\n ordinal = ordinal.replace(/två$/, 'andra');\n }\n else if (ordinal.match(/tre$/)) {\n ordinal = ordinal.replace(/tre$/, 'tredje');\n }\n else if (ordinal.match(/fyra$/)) {\n ordinal = ordinal.replace(/fyra$/, 'fjärde');\n }\n else if (ordinal.match(/fem$/)) {\n ordinal = ordinal.replace(/fem$/, 'femte');\n }\n else if (ordinal.match(/sex$/)) {\n ordinal = ordinal.replace(/sex$/, 'sjätte');\n }\n else if (ordinal.match(/sju$/)) {\n ordinal = ordinal.replace(/sju$/, 'sjunde');\n }\n else if (ordinal.match(/åtta$/)) {\n ordinal = ordinal.replace(/åtta$/, 'åttonde');\n }\n else if (ordinal.match(/nio$/)) {\n ordinal = ordinal.replace(/nio$/, 'nionde');\n }\n else if (ordinal.match(/tio$/)) {\n ordinal = ordinal.replace(/tio$/, 'tionde');\n }\n else if (ordinal.match(/elva$/)) {\n ordinal = ordinal.replace(/elva$/, 'elfte');\n }\n else if (ordinal.match(/tolv$/)) {\n ordinal = ordinal.replace(/tolv$/, 'tolfte');\n }\n else if (ordinal.match(/tusen$/)) {\n ordinal = ordinal.replace(/tusen$/, 'tusonde');\n }\n else if (ordinal.match(/jard$/) || ordinal.match(/jon$/)) {\n ordinal = ordinal + 'te';\n }\n else {\n ordinal = ordinal + 'de';\n }\n return ordinal;\n}\nfunction numericOrdinal(num) {\n const str = num.toString();\n if (str.match(/11$|12$/)) {\n return str + ':e';\n }\n return str + (str.match(/1$|2$/) ? ':a' : ':e');\n}\nconst NUMBERS = (0, messages_1.NUMBERS)();\nNUMBERS.wordOrdinal = wordOrdinal;\nNUMBERS.numericOrdinal = numericOrdinal;\nNUMBERS.numberToWords = numberToWords;\nNUMBERS.numberToOrdinal = numberToOrdinal;\nexports.default = NUMBERS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.vulgarFractionSmall = exports.convertVulgarFraction = exports.Combiners = exports.siCombiner = exports.identityTransformer = exports.pluralCase = void 0;\nfunction pluralCase(num, _plural) {\n return num.toString();\n}\nexports.pluralCase = pluralCase;\nfunction identityTransformer(input) {\n return input.toString();\n}\nexports.identityTransformer = identityTransformer;\nfunction siCombiner(prefix, unit) {\n return prefix + unit.toLowerCase();\n}\nexports.siCombiner = siCombiner;\nexports.Combiners = {};\nexports.Combiners.identityCombiner = function (a, b, c) {\n return a + b + c;\n};\nexports.Combiners.prefixCombiner = function (letter, font, cap) {\n letter = cap ? cap + ' ' + letter : letter;\n return font ? font + ' ' + letter : letter;\n};\nexports.Combiners.postfixCombiner = function (letter, font, cap) {\n letter = cap ? cap + ' ' + letter : letter;\n return font ? letter + ' ' + font : letter;\n};\nexports.Combiners.romanceCombiner = function (letter, font, cap) {\n letter = cap ? letter + ' ' + cap : letter;\n return font ? letter + ' ' + font : letter;\n};\nfunction convertVulgarFraction(node, over = '') {\n if (!node.childNodes ||\n !node.childNodes[0] ||\n !node.childNodes[0].childNodes ||\n node.childNodes[0].childNodes.length < 2 ||\n node.childNodes[0].childNodes[0].tagName !==\n \"number\" ||\n node.childNodes[0].childNodes[0].getAttribute('role') !==\n \"integer\" ||\n node.childNodes[0].childNodes[1].tagName !==\n \"number\" ||\n node.childNodes[0].childNodes[1].getAttribute('role') !==\n \"integer\") {\n return { convertible: false, content: node.textContent };\n }\n const denStr = node.childNodes[0].childNodes[1].textContent;\n const enumStr = node.childNodes[0].childNodes[0].textContent;\n const denominator = Number(denStr);\n const enumerator = Number(enumStr);\n if (isNaN(denominator) || isNaN(enumerator)) {\n return {\n convertible: false,\n content: `${enumStr} ${over} ${denStr}`\n };\n }\n return {\n convertible: true,\n enumerator: enumerator,\n denominator: denominator\n };\n}\nexports.convertVulgarFraction = convertVulgarFraction;\nfunction vulgarFractionSmall(node, enumer, denom) {\n const conversion = convertVulgarFraction(node);\n if (conversion.convertible) {\n const enumerator = conversion.enumerator;\n const denominator = conversion.denominator;\n return (enumerator > 0 &&\n enumerator < enumer &&\n denominator > 0 &&\n denominator < denom);\n }\n return false;\n}\nexports.vulgarFractionSmall = vulgarFractionSmall;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Condition = exports.BaseRuleStore = void 0;\nconst auditory_description_1 = require(\"../audio/auditory_description\");\nconst dynamic_cstr_1 = require(\"./dynamic_cstr\");\nconst speech_rule_1 = require(\"./speech_rule\");\nconst speech_rule_context_1 = require(\"./speech_rule_context\");\nclass BaseRuleStore {\n constructor() {\n this.context = new speech_rule_context_1.SpeechRuleContext();\n this.parseOrder = dynamic_cstr_1.DynamicCstr.DEFAULT_ORDER;\n this.parser = new dynamic_cstr_1.DynamicCstrParser(this.parseOrder);\n this.locale = dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.LOCALE];\n this.modality = dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.MODALITY];\n this.domain = '';\n this.initialized = false;\n this.inherits = null;\n this.kind = 'standard';\n this.customTranscriptions = {};\n this.preconditions = new Map();\n this.speechRules_ = [];\n this.rank = 0;\n this.parseMethods = {\n Rule: this.defineRule,\n Generator: this.generateRules,\n Action: this.defineAction,\n Precondition: this.definePrecondition,\n Ignore: this.ignoreRules\n };\n }\n static compareStaticConstraints_(cstr1, cstr2) {\n if (cstr1.length !== cstr2.length) {\n return false;\n }\n for (let i = 0, cstr; (cstr = cstr1[i]); i++) {\n if (cstr2.indexOf(cstr) === -1) {\n return false;\n }\n }\n return true;\n }\n static comparePreconditions_(rule1, rule2) {\n const prec1 = rule1.precondition;\n const prec2 = rule2.precondition;\n if (prec1.query !== prec2.query) {\n return false;\n }\n return BaseRuleStore.compareStaticConstraints_(prec1.constraints, prec2.constraints);\n }\n defineRule(name, dynamic, action, prec, ...args) {\n const postc = this.parseAction(action);\n const fullPrec = this.parsePrecondition(prec, args);\n const dynamicCstr = this.parseCstr(dynamic);\n if (!(postc && fullPrec && dynamicCstr)) {\n console.error(`Rule Error: ${prec}, (${dynamic}): ${action}`);\n return null;\n }\n const rule = new speech_rule_1.SpeechRule(name, dynamicCstr, fullPrec, postc);\n rule.precondition.rank = this.rank++;\n this.addRule(rule);\n return rule;\n }\n addRule(rule) {\n rule.context = this.context;\n this.speechRules_.unshift(rule);\n }\n deleteRule(rule) {\n const index = this.speechRules_.indexOf(rule);\n if (index !== -1) {\n this.speechRules_.splice(index, 1);\n }\n }\n findRule(pred) {\n for (let i = 0, rule; (rule = this.speechRules_[i]); i++) {\n if (pred(rule)) {\n return rule;\n }\n }\n return null;\n }\n findAllRules(pred) {\n return this.speechRules_.filter(pred);\n }\n evaluateDefault(node) {\n const rest = node.textContent.slice(0);\n if (rest.match(/^\\s+$/)) {\n return this.evaluateWhitespace(rest);\n }\n return this.evaluateString(rest);\n }\n evaluateWhitespace(_str) {\n return [];\n }\n evaluateCustom(str) {\n const trans = this.customTranscriptions[str];\n return trans !== undefined\n ? auditory_description_1.AuditoryDescription.create({ text: trans }, { adjust: true, translate: false })\n : null;\n }\n evaluateCharacter(str) {\n return (this.evaluateCustom(str) ||\n auditory_description_1.AuditoryDescription.create({ text: str }, { adjust: true, translate: true }));\n }\n removeDuplicates(rule) {\n for (let i = this.speechRules_.length - 1, oldRule; (oldRule = this.speechRules_[i]); i--) {\n if (oldRule !== rule &&\n rule.dynamicCstr.equal(oldRule.dynamicCstr) &&\n BaseRuleStore.comparePreconditions_(oldRule, rule)) {\n this.speechRules_.splice(i, 1);\n }\n }\n }\n getSpeechRules() {\n return this.speechRules_;\n }\n setSpeechRules(rules) {\n this.speechRules_ = rules;\n }\n getPreconditions() {\n return this.preconditions;\n }\n parseCstr(cstr) {\n try {\n return this.parser.parse(this.locale +\n '.' +\n this.modality +\n (this.domain ? '.' + this.domain : '') +\n '.' +\n cstr);\n }\n catch (err) {\n if (err.name === 'RuleError') {\n console.error('Rule Error ', `Illegal Dynamic Constraint: ${cstr}.`, err.message);\n return null;\n }\n else {\n throw err;\n }\n }\n }\n parsePrecondition(query, rest) {\n try {\n const queryCstr = this.parsePrecondition_(query);\n query = queryCstr[0];\n let restCstr = queryCstr.slice(1);\n for (const cstr of rest) {\n restCstr = restCstr.concat(this.parsePrecondition_(cstr));\n }\n return new speech_rule_1.Precondition(query, ...restCstr);\n }\n catch (err) {\n if (err.name === 'RuleError') {\n console.error('Rule Error ', `Illegal preconditions: ${query}, ${rest}.`, err.message);\n return null;\n }\n else {\n throw err;\n }\n }\n }\n parseAction(action) {\n try {\n return speech_rule_1.Action.fromString(action);\n }\n catch (err) {\n if (err.name === 'RuleError') {\n console.error('Rule Error ', `Illegal action: ${action}.`, err.message);\n return null;\n }\n else {\n throw err;\n }\n }\n }\n parse(ruleSet) {\n this.modality = ruleSet.modality || this.modality;\n this.locale = ruleSet.locale || this.locale;\n this.domain = ruleSet.domain || this.domain;\n this.context.parse(ruleSet.functions || []);\n if (ruleSet.kind !== 'actions') {\n this.kind = ruleSet.kind || this.kind;\n this.inheritRules();\n }\n this.parseRules(ruleSet.rules || []);\n }\n parseRules(rules) {\n for (let i = 0, rule; (rule = rules[i]); i++) {\n const type = rule[0];\n const method = this.parseMethods[type];\n if (type && method) {\n method.apply(this, rule.slice(1));\n }\n }\n }\n generateRules(generator) {\n const method = this.context.customGenerators.lookup(generator);\n if (method) {\n method(this);\n }\n }\n defineAction(name, action) {\n let postc;\n try {\n postc = speech_rule_1.Action.fromString(action);\n }\n catch (err) {\n if (err.name === 'RuleError') {\n console.error('Action Error ', action, err.message);\n return;\n }\n else {\n throw err;\n }\n }\n const prec = this.getFullPreconditions(name);\n if (!prec) {\n console.error(`Action Error: No precondition for action ${name}`);\n return;\n }\n this.ignoreRules(name);\n const regexp = new RegExp('^\\\\w+\\\\.\\\\w+\\\\.' + (this.domain ? '\\\\w+\\\\.' : ''));\n prec.conditions.forEach(([dynamic, prec]) => {\n const newDynamic = this.parseCstr(dynamic.toString().replace(regexp, ''));\n this.addRule(new speech_rule_1.SpeechRule(name, newDynamic, prec, postc));\n });\n }\n getFullPreconditions(name) {\n const prec = this.preconditions.get(name);\n if (prec || !this.inherits) {\n return prec;\n }\n return this.inherits.getFullPreconditions(name);\n }\n definePrecondition(name, dynamic, prec, ...args) {\n const fullPrec = this.parsePrecondition(prec, args);\n const dynamicCstr = this.parseCstr(dynamic);\n if (!(fullPrec && dynamicCstr)) {\n console.error(`Precondition Error: ${prec}, (${dynamic})`);\n return;\n }\n fullPrec.rank = this.rank++;\n this.preconditions.set(name, new Condition(dynamicCstr, fullPrec));\n }\n inheritRules() {\n if (!this.inherits || !this.inherits.getSpeechRules().length) {\n return;\n }\n const regexp = new RegExp('^\\\\w+\\\\.\\\\w+\\\\.' + (this.domain ? '\\\\w+\\\\.' : ''));\n this.inherits.getSpeechRules().forEach((rule) => {\n const newDynamic = this.parseCstr(rule.dynamicCstr.toString().replace(regexp, ''));\n this.addRule(new speech_rule_1.SpeechRule(rule.name, newDynamic, rule.precondition, rule.action));\n });\n }\n ignoreRules(name, ...cstrs) {\n let rules = this.findAllRules((r) => r.name === name);\n if (!cstrs.length) {\n rules.forEach(this.deleteRule.bind(this));\n return;\n }\n let rest = [];\n for (const cstr of cstrs) {\n const dynamic = this.parseCstr(cstr);\n for (const rule of rules) {\n if (dynamic.equal(rule.dynamicCstr)) {\n this.deleteRule(rule);\n }\n else {\n rest.push(rule);\n }\n }\n rules = rest;\n rest = [];\n }\n }\n parsePrecondition_(cstr) {\n const generator = this.context.customGenerators.lookup(cstr);\n return generator ? generator() : [cstr];\n }\n}\nexports.BaseRuleStore = BaseRuleStore;\nclass Condition {\n constructor(base, condition) {\n this.base = base;\n this._conditions = [];\n this.constraints = [];\n this.allCstr = {};\n this.constraints.push(base);\n this.addCondition(base, condition);\n }\n get conditions() {\n return this._conditions;\n }\n addConstraint(dynamic) {\n if (this.constraints.filter((cstr) => cstr.equal(dynamic)).length) {\n return;\n }\n this.constraints.push(dynamic);\n const newConds = [];\n for (const [dyn, pre] of this.conditions) {\n if (this.base.equal(dyn)) {\n newConds.push([dynamic, pre]);\n }\n }\n this._conditions = this._conditions.concat(newConds);\n }\n addBaseCondition(cond) {\n this.addCondition(this.base, cond);\n }\n addFullCondition(cond) {\n this.constraints.forEach((cstr) => this.addCondition(cstr, cond));\n }\n addCondition(dynamic, cond) {\n const condStr = dynamic.toString() + ' ' + cond.toString();\n if (this.allCstr.condStr) {\n return;\n }\n this.allCstr[condStr] = true;\n this._conditions.push([dynamic, cond]);\n }\n}\nexports.Condition = Condition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrailleStore = void 0;\nconst semantic_annotations_1 = require(\"../semantic_tree/semantic_annotations\");\nconst math_store_1 = require(\"./math_store\");\nclass BrailleStore extends math_store_1.MathStore {\n constructor() {\n super(...arguments);\n this.modality = 'braille';\n this.customTranscriptions = { '\\u22ca': '⠈⠡⠳' };\n }\n evaluateString(str) {\n const descs = [];\n const text = Array.from(str);\n for (let i = 0; i < text.length; i++) {\n descs.push(this.evaluateCharacter(text[i]));\n }\n return descs;\n }\n annotations() {\n for (let i = 0, annotator; (annotator = this.annotators[i]); i++) {\n (0, semantic_annotations_1.activate)(this.locale, annotator);\n }\n }\n}\nexports.BrailleStore = BrailleStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultComparator = exports.DynamicCstrParser = exports.DynamicCstr = exports.DynamicProperties = exports.Axis = void 0;\nvar Axis;\n(function (Axis) {\n Axis[\"DOMAIN\"] = \"domain\";\n Axis[\"STYLE\"] = \"style\";\n Axis[\"LOCALE\"] = \"locale\";\n Axis[\"TOPIC\"] = \"topic\";\n Axis[\"MODALITY\"] = \"modality\";\n})(Axis = exports.Axis || (exports.Axis = {}));\nclass DynamicProperties {\n constructor(properties, order = Object.keys(properties)) {\n this.properties = properties;\n this.order = order;\n }\n static createProp(...cstrList) {\n const axes = DynamicCstr.DEFAULT_ORDER;\n const dynamicCstr = {};\n for (let i = 0, l = cstrList.length, k = axes.length; i < l && i < k; i++) {\n dynamicCstr[axes[i]] = cstrList[i];\n }\n return new DynamicProperties(dynamicCstr);\n }\n getProperties() {\n return this.properties;\n }\n getOrder() {\n return this.order;\n }\n getAxes() {\n return this.order;\n }\n getProperty(key) {\n return this.properties[key];\n }\n updateProperties(props) {\n this.properties = props;\n }\n allProperties() {\n const propLists = [];\n this.order.forEach((key) => propLists.push(this.getProperty(key).slice()));\n return propLists;\n }\n toString() {\n const cstrStrings = [];\n this.order.forEach((key) => cstrStrings.push(key + ': ' + this.getProperty(key).toString()));\n return cstrStrings.join('\\n');\n }\n}\nexports.DynamicProperties = DynamicProperties;\nclass DynamicCstr extends DynamicProperties {\n constructor(components_, order) {\n const properties = {};\n for (const [key, value] of Object.entries(components_)) {\n properties[key] = [value];\n }\n super(properties, order);\n this.components = components_;\n }\n static createCstr(...cstrList) {\n const axes = DynamicCstr.DEFAULT_ORDER;\n const dynamicCstr = {};\n for (let i = 0, l = cstrList.length, k = axes.length; i < l && i < k; i++) {\n dynamicCstr[axes[i]] = cstrList[i];\n }\n return new DynamicCstr(dynamicCstr);\n }\n static defaultCstr() {\n return DynamicCstr.createCstr.apply(null, DynamicCstr.DEFAULT_ORDER.map(function (x) {\n return DynamicCstr.DEFAULT_VALUES[x];\n }));\n }\n static validOrder(order) {\n const axes = DynamicCstr.DEFAULT_ORDER.slice();\n return order.every((x) => {\n const index = axes.indexOf(x);\n return index !== -1 && axes.splice(index, 1);\n });\n }\n getComponents() {\n return this.components;\n }\n getValue(key) {\n return this.components[key];\n }\n getValues() {\n return this.order.map((key) => this.getValue(key));\n }\n allProperties() {\n const propLists = super.allProperties();\n for (let i = 0, props, key; (props = propLists[i]), (key = this.order[i]); i++) {\n const value = this.getValue(key);\n if (props.indexOf(value) === -1) {\n props.unshift(value);\n }\n }\n return propLists;\n }\n toString() {\n return this.getValues().join('.');\n }\n equal(cstr) {\n const keys1 = cstr.getAxes();\n if (this.order.length !== keys1.length) {\n return false;\n }\n for (let j = 0, key; (key = keys1[j]); j++) {\n const comp2 = this.getValue(key);\n if (!comp2 || cstr.getValue(key) !== comp2) {\n return false;\n }\n }\n return true;\n }\n}\nexports.DynamicCstr = DynamicCstr;\nDynamicCstr.DEFAULT_ORDER = [\n Axis.LOCALE,\n Axis.MODALITY,\n Axis.DOMAIN,\n Axis.STYLE,\n Axis.TOPIC\n];\nDynamicCstr.BASE_LOCALE = 'base';\nDynamicCstr.DEFAULT_VALUE = 'default';\nDynamicCstr.DEFAULT_VALUES = {\n [Axis.LOCALE]: 'en',\n [Axis.DOMAIN]: DynamicCstr.DEFAULT_VALUE,\n [Axis.STYLE]: DynamicCstr.DEFAULT_VALUE,\n [Axis.TOPIC]: DynamicCstr.DEFAULT_VALUE,\n [Axis.MODALITY]: 'speech'\n};\nclass DynamicCstrParser {\n constructor(order) {\n this.order = order;\n }\n parse(str) {\n const order = str.split('.');\n const cstr = {};\n if (order.length > this.order.length) {\n throw new Error('Invalid dynamic constraint: ' + cstr);\n }\n let j = 0;\n for (let i = 0, key; (key = this.order[i]), order.length; i++, j++) {\n const value = order.shift();\n cstr[key] = value;\n }\n return new DynamicCstr(cstr, this.order.slice(0, j));\n }\n}\nexports.DynamicCstrParser = DynamicCstrParser;\nclass DefaultComparator {\n constructor(reference, fallback = new DynamicProperties(reference.getProperties(), reference.getOrder())) {\n this.reference = reference;\n this.fallback = fallback;\n this.order = this.reference.getOrder();\n }\n getReference() {\n return this.reference;\n }\n setReference(cstr, props) {\n this.reference = cstr;\n this.fallback =\n props || new DynamicProperties(cstr.getProperties(), cstr.getOrder());\n this.order = this.reference.getOrder();\n }\n match(cstr) {\n const keys1 = cstr.getAxes();\n return (keys1.length === this.reference.getAxes().length &&\n keys1.every((key) => {\n const value = cstr.getValue(key);\n return (value === this.reference.getValue(key) ||\n this.fallback.getProperty(key).indexOf(value) !== -1);\n }));\n }\n compare(cstr1, cstr2) {\n let ignore = false;\n for (let i = 0, key; (key = this.order[i]); i++) {\n const value1 = cstr1.getValue(key);\n const value2 = cstr2.getValue(key);\n if (!ignore) {\n const ref = this.reference.getValue(key);\n if (ref === value1 && ref !== value2) {\n return -1;\n }\n if (ref === value2 && ref !== value1) {\n return 1;\n }\n if (ref === value1 && ref === value2) {\n continue;\n }\n if (ref !== value1 && ref !== value2) {\n ignore = true;\n }\n }\n const prop = this.fallback.getProperty(key);\n const index1 = prop.indexOf(value1);\n const index2 = prop.indexOf(value2);\n if (index1 < index2) {\n return -1;\n }\n if (index2 < index1) {\n return 1;\n }\n }\n return 0;\n }\n toString() {\n return this.reference.toString() + '\\n' + this.fallback.toString();\n }\n}\nexports.DefaultComparator = DefaultComparator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numbersToAlpha = exports.Grammar = exports.ATTRIBUTE = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst engine_1 = require(\"../common/engine\");\nconst LocaleUtil = require(\"../l10n/locale_util\");\nconst locale_1 = require(\"../l10n/locale\");\nexports.ATTRIBUTE = 'grammar';\nclass Grammar {\n constructor() {\n this.currentFlags = {};\n this.parameters_ = {};\n this.corrections_ = {};\n this.preprocessors_ = {};\n this.stateStack_ = [];\n }\n static getInstance() {\n Grammar.instance = Grammar.instance || new Grammar();\n return Grammar.instance;\n }\n static parseInput(grammar) {\n const attributes = {};\n const components = grammar.split(':');\n for (let i = 0, l = components.length; i < l; i++) {\n const comp = components[i].split('=');\n const key = comp[0].trim();\n if (comp[1]) {\n attributes[key] = comp[1].trim();\n continue;\n }\n key.match(/^!/)\n ? (attributes[key.slice(1)] = false)\n : (attributes[key] = true);\n }\n return attributes;\n }\n static parseState(stateStr) {\n const state = {};\n const corrections = stateStr.split(' ');\n for (let i = 0, l = corrections.length; i < l; i++) {\n const corr = corrections[i].split(':');\n const key = corr[0];\n const value = corr[1];\n state[key] = value ? value : true;\n }\n return state;\n }\n static translateString_(text) {\n if (text.match(/:unit$/)) {\n return Grammar.translateUnit_(text);\n }\n const engine = engine_1.default.getInstance();\n let result = engine.evaluator(text, engine.dynamicCstr);\n result = result === null ? text : result;\n if (Grammar.getInstance().getParameter('plural')) {\n result = locale_1.LOCALE.FUNCTIONS.plural(result);\n }\n return result;\n }\n static translateUnit_(text) {\n text = Grammar.prepareUnit_(text);\n const engine = engine_1.default.getInstance();\n const plural = Grammar.getInstance().getParameter('plural');\n const strict = engine.strict;\n const baseCstr = `${engine.locale}.${engine.modality}.default`;\n engine.strict = true;\n let cstr;\n let result;\n if (plural) {\n cstr = engine.defaultParser.parse(baseCstr + '.plural');\n result = engine.evaluator(text, cstr);\n }\n if (result) {\n engine.strict = strict;\n return result;\n }\n cstr = engine.defaultParser.parse(baseCstr + '.default');\n result = engine.evaluator(text, cstr);\n engine.strict = strict;\n if (!result) {\n return Grammar.cleanUnit_(text);\n }\n if (plural) {\n result = locale_1.LOCALE.FUNCTIONS.plural(result);\n }\n return result;\n }\n static prepareUnit_(text) {\n const match = text.match(/:unit$/);\n return match\n ? text.slice(0, match.index).replace(/\\s+/g, ' ') +\n text.slice(match.index)\n : text;\n }\n static cleanUnit_(text) {\n if (text.match(/:unit$/)) {\n return text.replace(/:unit$/, '');\n }\n return text;\n }\n clear() {\n this.parameters_ = {};\n this.stateStack_ = [];\n }\n setParameter(parameter, value) {\n const oldValue = this.parameters_[parameter];\n value\n ? (this.parameters_[parameter] = value)\n : delete this.parameters_[parameter];\n return oldValue;\n }\n getParameter(parameter) {\n return this.parameters_[parameter];\n }\n setCorrection(correction, func) {\n this.corrections_[correction] = func;\n }\n setPreprocessor(preprocessor, func) {\n this.preprocessors_[preprocessor] = func;\n }\n getCorrection(correction) {\n return this.corrections_[correction];\n }\n getState() {\n const pairs = [];\n for (const key in this.parameters_) {\n const value = this.parameters_[key];\n pairs.push(typeof value === 'string' ? key + ':' + value : key);\n }\n return pairs.join(' ');\n }\n pushState(assignment) {\n for (const key in assignment) {\n assignment[key] = this.setParameter(key, assignment[key]);\n }\n this.stateStack_.push(assignment);\n }\n popState() {\n const assignment = this.stateStack_.pop();\n for (const key in assignment) {\n this.setParameter(key, assignment[key]);\n }\n }\n setAttribute(node) {\n if (node && node.nodeType === DomUtil.NodeType.ELEMENT_NODE) {\n const state = this.getState();\n if (state) {\n node.setAttribute(exports.ATTRIBUTE, state);\n }\n }\n }\n preprocess(text) {\n return this.runProcessors_(text, this.preprocessors_);\n }\n correct(text) {\n return this.runProcessors_(text, this.corrections_);\n }\n apply(text, opt_flags) {\n this.currentFlags = opt_flags || {};\n text =\n this.currentFlags.adjust || this.currentFlags.preprocess\n ? Grammar.getInstance().preprocess(text)\n : text;\n if (this.parameters_['translate'] || this.currentFlags.translate) {\n text = Grammar.translateString_(text);\n }\n text =\n this.currentFlags.adjust || this.currentFlags.correct\n ? Grammar.getInstance().correct(text)\n : text;\n this.currentFlags = {};\n return text;\n }\n runProcessors_(text, funcs) {\n for (const key in this.parameters_) {\n const func = funcs[key];\n if (!func) {\n continue;\n }\n const value = this.parameters_[key];\n text = value === true ? func(text) : func(text, value);\n }\n return text;\n }\n}\nexports.Grammar = Grammar;\nfunction correctFont_(text, correction) {\n if (!correction || !text) {\n return text;\n }\n const regexp = locale_1.LOCALE.FUNCTIONS.fontRegexp(LocaleUtil.localFont(correction));\n return text.replace(regexp, '');\n}\nfunction correctCaps_(text) {\n let cap = locale_1.LOCALE.ALPHABETS.capPrefix[engine_1.default.getInstance().domain];\n if (typeof cap === 'undefined') {\n cap = locale_1.LOCALE.ALPHABETS.capPrefix['default'];\n }\n return correctFont_(text, cap);\n}\nfunction addAnnotation_(text, annotation) {\n return text + ':' + annotation;\n}\nfunction numbersToAlpha(text) {\n return text.match(/\\d+/)\n ? locale_1.LOCALE.NUMBERS.numberToWords(parseInt(text, 10))\n : text;\n}\nexports.numbersToAlpha = numbersToAlpha;\nfunction noTranslateText_(text) {\n if (text.match(new RegExp('^[' + locale_1.LOCALE.MESSAGES.regexp.TEXT + ']+$'))) {\n Grammar.getInstance().currentFlags['translate'] = false;\n }\n return text;\n}\nGrammar.getInstance().setCorrection('localFont', LocaleUtil.localFont);\nGrammar.getInstance().setCorrection('localRole', LocaleUtil.localRole);\nGrammar.getInstance().setCorrection('localEnclose', LocaleUtil.localEnclose);\nGrammar.getInstance().setCorrection('ignoreFont', correctFont_);\nGrammar.getInstance().setPreprocessor('annotation', addAnnotation_);\nGrammar.getInstance().setPreprocessor('noTranslateText', noTranslateText_);\nGrammar.getInstance().setCorrection('ignoreCaps', correctCaps_);\nGrammar.getInstance().setPreprocessor('numbers2alpha', numbersToAlpha);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enumerate = exports.lookupString = exports.lookupCategory = exports.lookupRule = exports.addSiUnitRules = exports.addUnitRules = exports.addFunctionRules = exports.addSymbolRules = exports.defineRule = exports.defineRules = exports.setSiPrefixes = void 0;\nconst debugger_1 = require(\"../common/debugger\");\nconst engine_1 = require(\"../common/engine\");\nconst l10n_1 = require(\"../l10n/l10n\");\nconst math_simple_store_1 = require(\"./math_simple_store\");\nconst dynamic_cstr_1 = require(\"./dynamic_cstr\");\nlet locale = dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.LOCALE];\nlet modality = dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.MODALITY];\nlet siPrefixes = {};\nfunction setSiPrefixes(prefixes) {\n siPrefixes = prefixes;\n}\nexports.setSiPrefixes = setSiPrefixes;\nconst subStores_ = {};\nfunction defineRules(name, str, cat, mappings) {\n const store = getSubStore_(str);\n setupStore_(store, cat);\n store.defineRulesFromMappings(name, locale, modality, str, mappings);\n}\nexports.defineRules = defineRules;\nfunction defineRule(name, domain, style, cat, str, content) {\n const store = getSubStore_(str);\n setupStore_(store, cat);\n store.defineRuleFromStrings(name, locale, modality, domain, style, str, content);\n}\nexports.defineRule = defineRule;\nfunction addSymbolRules(json) {\n if (changeLocale_(json)) {\n return;\n }\n const key = math_simple_store_1.MathSimpleStore.parseUnicode(json['key']);\n defineRules(json['key'], key, json['category'], json['mappings']);\n}\nexports.addSymbolRules = addSymbolRules;\nfunction addFunctionRules(json) {\n if (changeLocale_(json)) {\n return;\n }\n const names = json['names'];\n const mappings = json['mappings'];\n const category = json['category'];\n for (let j = 0, name; (name = names[j]); j++) {\n defineRules(name, name, category, mappings);\n }\n}\nexports.addFunctionRules = addFunctionRules;\nfunction addUnitRules(json) {\n if (changeLocale_(json)) {\n return;\n }\n if (json['si']) {\n addSiUnitRules(json);\n return;\n }\n addUnitRules_(json);\n}\nexports.addUnitRules = addUnitRules;\nfunction addSiUnitRules(json) {\n for (const key of Object.keys(siPrefixes)) {\n const newJson = Object.assign({}, json);\n newJson.mappings = {};\n const prefix = siPrefixes[key];\n newJson['key'] = key + newJson['key'];\n newJson['names'] = newJson['names'].map(function (name) {\n return key + name;\n });\n for (const domain of Object.keys(json['mappings'])) {\n newJson.mappings[domain] = {};\n for (const style of Object.keys(json['mappings'][domain])) {\n newJson['mappings'][domain][style] = l10n_1.locales[locale]().FUNCTIONS.si(prefix, json['mappings'][domain][style]);\n }\n }\n addUnitRules_(newJson);\n }\n addUnitRules_(json);\n}\nexports.addSiUnitRules = addSiUnitRules;\nfunction lookupRule(node, dynamic) {\n const store = subStores_[node];\n return store ? store.lookupRule(null, dynamic) : null;\n}\nexports.lookupRule = lookupRule;\nfunction lookupCategory(character) {\n const store = subStores_[character];\n return store ? store.category : '';\n}\nexports.lookupCategory = lookupCategory;\nfunction lookupString(text, dynamic) {\n const rule = lookupRule(text, dynamic);\n if (!rule) {\n return null;\n }\n return rule.action;\n}\nexports.lookupString = lookupString;\nengine_1.default.getInstance().evaluator = lookupString;\nfunction enumerate(info = {}) {\n for (const store of Object.values(subStores_)) {\n for (const [, rules] of store.rules.entries()) {\n for (const { cstr: dynamic } of rules) {\n info = enumerate_(dynamic.getValues(), info);\n }\n }\n }\n return info;\n}\nexports.enumerate = enumerate;\nfunction enumerate_(dynamic, info) {\n info = info || {};\n if (!dynamic.length) {\n return info;\n }\n info[dynamic[0]] = enumerate_(dynamic.slice(1), info[dynamic[0]]);\n return info;\n}\nfunction addUnitRules_(json) {\n const names = json['names'];\n if (names) {\n json['names'] = names.map(function (name) {\n return name + ':' + 'unit';\n });\n }\n addFunctionRules(json);\n}\nfunction changeLocale_(json) {\n if (!json['locale'] && !json['modality']) {\n return false;\n }\n locale = json['locale'] || locale;\n modality = json['modality'] || modality;\n return true;\n}\nfunction getSubStore_(key) {\n let store = subStores_[key];\n if (store) {\n debugger_1.Debugger.getInstance().output('Store exists! ' + key);\n return store;\n }\n store = new math_simple_store_1.MathSimpleStore();\n subStores_[key] = store;\n return store;\n}\nfunction setupStore_(store, opt_cat) {\n if (opt_cat) {\n store.category = opt_cat;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MathSimpleStore = void 0;\nconst engine_1 = require(\"../common/engine\");\nconst dynamic_cstr_1 = require(\"./dynamic_cstr\");\nclass MathSimpleStore {\n constructor() {\n this.category = '';\n this.rules = new Map();\n }\n static parseUnicode(num) {\n const keyValue = parseInt(num, 16);\n return String.fromCodePoint(keyValue);\n }\n static testDynamicConstraints_(dynamic, rule) {\n if (engine_1.default.getInstance().strict) {\n return rule.cstr.equal(dynamic);\n }\n return engine_1.default.getInstance().comparator.match(rule.cstr);\n }\n defineRulesFromMappings(name, locale, modality, str, mapping) {\n for (const domain in mapping) {\n for (const style in mapping[domain]) {\n const content = mapping[domain][style];\n this.defineRuleFromStrings(name, locale, modality, domain, style, str, content);\n }\n }\n }\n getRules(key) {\n let store = this.rules.get(key);\n if (!store) {\n store = [];\n this.rules.set(key, store);\n }\n return store;\n }\n defineRuleFromStrings(_name, locale, modality, domain, style, _str, content) {\n let store = this.getRules(locale);\n const parser = engine_1.default.getInstance().parsers[domain] ||\n engine_1.default.getInstance().defaultParser;\n const comp = engine_1.default.getInstance().comparators[domain];\n const cstr = `${locale}.${modality}.${domain}.${style}`;\n const dynamic = parser.parse(cstr);\n const comparator = comp ? comp() : engine_1.default.getInstance().comparator;\n const oldCstr = comparator.getReference();\n comparator.setReference(dynamic);\n const rule = { cstr: dynamic, action: content };\n store = store.filter((r) => !dynamic.equal(r.cstr));\n store.push(rule);\n this.rules.set(locale, store);\n comparator.setReference(oldCstr);\n }\n lookupRule(_node, dynamic) {\n let rules = this.getRules(dynamic.getValue(dynamic_cstr_1.Axis.LOCALE));\n rules = rules.filter(function (rule) {\n return MathSimpleStore.testDynamicConstraints_(dynamic, rule);\n });\n if (rules.length === 1) {\n return rules[0];\n }\n return rules.length\n ? rules.sort((r1, r2) => engine_1.default.getInstance().comparator.compare(r1.cstr, r2.cstr))[0]\n : null;\n }\n}\nexports.MathSimpleStore = MathSimpleStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MathStore = void 0;\nconst BaseUtil = require(\"../common/base_util\");\nconst locale_1 = require(\"../l10n/locale\");\nconst semantic_annotations_1 = require(\"../semantic_tree/semantic_annotations\");\nconst base_rule_store_1 = require(\"./base_rule_store\");\nconst speech_rule_1 = require(\"./speech_rule\");\nclass MathStore extends base_rule_store_1.BaseRuleStore {\n constructor() {\n super();\n this.annotators = [];\n this.parseMethods['Alias'] = this.defineAlias;\n this.parseMethods['SpecializedRule'] = this.defineSpecializedRule;\n this.parseMethods['Specialized'] = this.defineSpecialized;\n }\n initialize() {\n if (this.initialized) {\n return;\n }\n this.annotations();\n this.initialized = true;\n }\n annotations() {\n for (let i = 0, annotator; (annotator = this.annotators[i]); i++) {\n (0, semantic_annotations_1.activate)(this.domain, annotator);\n }\n }\n defineAlias(name, prec, ...args) {\n const fullPrec = this.parsePrecondition(prec, args);\n if (!fullPrec) {\n console.error(`Precondition Error: ${prec} ${args}`);\n return;\n }\n const condition = this.preconditions.get(name);\n if (!condition) {\n console.error(`Alias Error: No precondition by the name of ${name}`);\n return;\n }\n condition.addFullCondition(fullPrec);\n }\n defineRulesAlias(name, query, ...args) {\n const rules = this.findAllRules(function (rule) {\n return rule.name === name;\n });\n if (rules.length === 0) {\n throw new speech_rule_1.OutputError('Rule with name ' + name + ' does not exist.');\n }\n const keep = [];\n const findKeep = (rule) => {\n const cstr = rule.dynamicCstr.toString();\n const action = rule.action.toString();\n for (let i = 0, k; (k = keep[i]); i++) {\n if (k.action === action && k.cstr === cstr) {\n return false;\n }\n }\n keep.push({ cstr: cstr, action: action });\n return true;\n };\n rules.forEach((rule) => {\n if (findKeep(rule)) {\n this.addAlias_(rule, query, args);\n }\n });\n }\n defineSpecializedRule(name, oldDynamic, newDynamic, opt_action) {\n const dynamicCstr = this.parseCstr(oldDynamic);\n const rule = this.findRule((rule) => rule.name === name && dynamicCstr.equal(rule.dynamicCstr));\n const newCstr = this.parseCstr(newDynamic);\n if (!rule && opt_action) {\n throw new speech_rule_1.OutputError('Rule named ' + name + ' with style ' + oldDynamic + ' does not exist.');\n }\n const action = opt_action ? speech_rule_1.Action.fromString(opt_action) : rule.action;\n const newRule = new speech_rule_1.SpeechRule(rule.name, newCstr, rule.precondition, action);\n this.addRule(newRule);\n }\n defineSpecialized(name, _old, dynamic) {\n const cstr = this.parseCstr(dynamic);\n if (!cstr) {\n console.error(`Dynamic Constraint Error: ${dynamic}`);\n return;\n }\n const condition = this.preconditions.get(name);\n if (!condition) {\n console.error(`Alias Error: No precondition by the name of ${name}`);\n return;\n }\n condition.addConstraint(cstr);\n }\n evaluateString(str) {\n const descs = [];\n if (str.match(/^\\s+$/)) {\n return descs;\n }\n let num = this.matchNumber_(str);\n if (num && num.length === str.length) {\n descs.push(this.evaluateCharacter(num.number));\n return descs;\n }\n const split = BaseUtil.removeEmpty(str.replace(/\\s/g, ' ').split(' '));\n for (let i = 0, s; (s = split[i]); i++) {\n if (s.length === 1) {\n descs.push(this.evaluateCharacter(s));\n }\n else if (s.match(new RegExp('^[' + locale_1.LOCALE.MESSAGES.regexp.TEXT + ']+$'))) {\n descs.push(this.evaluateCharacter(s));\n }\n else {\n let rest = s;\n while (rest) {\n num = this.matchNumber_(rest);\n const alpha = rest.match(new RegExp('^[' + locale_1.LOCALE.MESSAGES.regexp.TEXT + ']+'));\n if (num) {\n descs.push(this.evaluateCharacter(num.number));\n rest = rest.substring(num.length);\n }\n else if (alpha) {\n descs.push(this.evaluateCharacter(alpha[0]));\n rest = rest.substring(alpha[0].length);\n }\n else {\n const chars = Array.from(rest);\n const chr = chars[0];\n descs.push(this.evaluateCharacter(chr));\n rest = chars.slice(1).join('');\n }\n }\n }\n }\n return descs;\n }\n parse(ruleSet) {\n super.parse(ruleSet);\n this.annotators = ruleSet['annotators'] || [];\n }\n addAlias_(rule, query, cstrList) {\n const prec = this.parsePrecondition(query, cstrList);\n const newRule = new speech_rule_1.SpeechRule(rule.name, rule.dynamicCstr, prec, rule.action);\n newRule.name = rule.name;\n this.addRule(newRule);\n }\n matchNumber_(str) {\n const locNum = str.match(new RegExp('^' + locale_1.LOCALE.MESSAGES.regexp.NUMBER));\n const enNum = str.match(new RegExp('^' + MathStore.regexp.NUMBER));\n if (!locNum && !enNum) {\n return null;\n }\n const isEn = enNum && enNum[0] === str;\n const isLoc = (locNum && locNum[0] === str) || !isEn;\n if (isLoc) {\n return locNum ? { number: locNum[0], length: locNum[0].length } : null;\n }\n const num = enNum[0]\n .replace(new RegExp(MathStore.regexp.DIGIT_GROUP, 'g'), 'X')\n .replace(new RegExp(MathStore.regexp.DECIMAL_MARK, 'g'), locale_1.LOCALE.MESSAGES.regexp.DECIMAL_MARK)\n .replace(/X/g, locale_1.LOCALE.MESSAGES.regexp.DIGIT_GROUP.replace(/\\\\/g, ''));\n return { number: num, length: enNum[0].length };\n }\n}\nexports.MathStore = MathStore;\nMathStore.regexp = {\n NUMBER: '((\\\\d{1,3})(?=(,| ))((,| )\\\\d{3})*(\\\\.\\\\d+)?)|^\\\\d*\\\\.\\\\d+|^\\\\d+',\n DECIMAL_MARK: '\\\\.',\n DIGIT_GROUP: ','\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OutputError = exports.Precondition = exports.Action = exports.Component = exports.ActionType = exports.SpeechRule = void 0;\nconst engine_1 = require(\"../common/engine\");\nconst Grammar = require(\"./grammar\");\nclass SpeechRule {\n constructor(name, dynamicCstr, precondition, action) {\n this.name = name;\n this.dynamicCstr = dynamicCstr;\n this.precondition = precondition;\n this.action = action;\n this.context = null;\n }\n toString() {\n return (this.name +\n ' | ' +\n this.dynamicCstr.toString() +\n ' | ' +\n this.precondition.toString() +\n ' ==> ' +\n this.action.toString());\n }\n}\nexports.SpeechRule = SpeechRule;\nvar ActionType;\n(function (ActionType) {\n ActionType[\"NODE\"] = \"NODE\";\n ActionType[\"MULTI\"] = \"MULTI\";\n ActionType[\"TEXT\"] = \"TEXT\";\n ActionType[\"PERSONALITY\"] = \"PERSONALITY\";\n})(ActionType = exports.ActionType || (exports.ActionType = {}));\nfunction actionFromString(str) {\n switch (str) {\n case '[n]':\n return ActionType.NODE;\n case '[m]':\n return ActionType.MULTI;\n case '[t]':\n return ActionType.TEXT;\n case '[p]':\n return ActionType.PERSONALITY;\n default:\n throw 'Parse error: ' + str;\n }\n}\nfunction actionToString(speechType) {\n switch (speechType) {\n case ActionType.NODE:\n return '[n]';\n case ActionType.MULTI:\n return '[m]';\n case ActionType.TEXT:\n return '[t]';\n case ActionType.PERSONALITY:\n return '[p]';\n default:\n throw 'Unknown type error: ' + speechType;\n }\n}\nclass Component {\n constructor({ type, content, attributes, grammar }) {\n this.type = type;\n this.content = content;\n this.attributes = attributes;\n this.grammar = grammar;\n }\n static grammarFromString(grammar) {\n return Grammar.Grammar.parseInput(grammar);\n }\n static fromString(input) {\n const output = {\n type: actionFromString(input.substring(0, 3))\n };\n let rest = input.slice(3).trim();\n if (!rest) {\n throw new OutputError('Missing content.');\n }\n switch (output.type) {\n case ActionType.TEXT:\n if (rest[0] === '\"') {\n const quotedString = splitString(rest, '\\\\(')[0].trim();\n if (quotedString.slice(-1) !== '\"') {\n throw new OutputError('Invalid string syntax.');\n }\n output.content = quotedString;\n rest = rest.slice(quotedString.length).trim();\n if (rest.indexOf('(') === -1) {\n rest = '';\n }\n break;\n }\n case ActionType.NODE:\n case ActionType.MULTI:\n {\n const bracket = rest.indexOf(' (');\n if (bracket === -1) {\n output.content = rest.trim();\n rest = '';\n break;\n }\n output.content = rest.substring(0, bracket).trim();\n rest = rest.slice(bracket).trim();\n }\n break;\n }\n if (rest) {\n const attributes = Component.attributesFromString(rest);\n if (attributes.grammar) {\n output.grammar = attributes.grammar;\n delete attributes.grammar;\n }\n if (Object.keys(attributes).length) {\n output.attributes = attributes;\n }\n }\n return new Component(output);\n }\n static attributesFromString(attrs) {\n if (attrs[0] !== '(' || attrs.slice(-1) !== ')') {\n throw new OutputError('Invalid attribute expression: ' + attrs);\n }\n const attributes = {};\n const attribs = splitString(attrs.slice(1, -1), ',');\n for (let i = 0, m = attribs.length; i < m; i++) {\n const attr = attribs[i];\n const colon = attr.indexOf(':');\n if (colon === -1) {\n attributes[attr.trim()] = 'true';\n }\n else {\n const key = attr.substring(0, colon).trim();\n const value = attr.slice(colon + 1).trim();\n attributes[key] =\n key === Grammar.ATTRIBUTE\n ? Component.grammarFromString(value)\n : value;\n }\n }\n return attributes;\n }\n toString() {\n let strs = '';\n strs += actionToString(this.type);\n strs += this.content ? ' ' + this.content : '';\n const attrs = this.attributesToString();\n strs += attrs ? ' ' + attrs : '';\n return strs;\n }\n grammarToString() {\n return this.getGrammar().join(':');\n }\n getGrammar() {\n const attribs = [];\n for (const key in this.grammar) {\n if (this.grammar[key] === true) {\n attribs.push(key);\n }\n else if (this.grammar[key] === false) {\n attribs.push('!' + key);\n }\n else {\n attribs.push(key + '=' + this.grammar[key]);\n }\n }\n return attribs;\n }\n attributesToString() {\n const attribs = this.getAttributes();\n const grammar = this.grammarToString();\n if (grammar) {\n attribs.push('grammar:' + grammar);\n }\n return attribs.length > 0 ? '(' + attribs.join(', ') + ')' : '';\n }\n getAttributes() {\n const attribs = [];\n for (const key in this.attributes) {\n const value = this.attributes[key];\n value === 'true' ? attribs.push(key) : attribs.push(key + ':' + value);\n }\n return attribs;\n }\n}\nexports.Component = Component;\nclass Action {\n constructor(components) {\n this.components = components;\n }\n static fromString(input) {\n const comps = splitString(input, ';')\n .filter(function (x) {\n return x.match(/\\S/);\n })\n .map(function (x) {\n return x.trim();\n });\n const newComps = [];\n for (let i = 0, m = comps.length; i < m; i++) {\n const comp = Component.fromString(comps[i]);\n if (comp) {\n newComps.push(comp);\n }\n }\n return new Action(newComps);\n }\n toString() {\n const comps = this.components.map(function (c) {\n return c.toString();\n });\n return comps.join('; ');\n }\n}\nexports.Action = Action;\nclass Precondition {\n constructor(query, ...cstr) {\n this.query = query;\n this.constraints = cstr;\n const [exists, user] = this.presetPriority();\n this.priority = exists ? user : this.calculatePriority();\n }\n static constraintValue(constr, priorities) {\n for (let i = 0, regexp; (regexp = priorities[i]); i++) {\n if (constr.match(regexp)) {\n return ++i;\n }\n }\n return 0;\n }\n toString() {\n const constrs = this.constraints.join(', ');\n return `${this.query}, ${constrs} (${this.priority}, ${this.rank})`;\n }\n calculatePriority() {\n const query = Precondition.constraintValue(this.query, Precondition.queryPriorities);\n if (!query) {\n return 0;\n }\n const inner = this.query.match(/^self::.+\\[(.+)\\]/)[1];\n const attr = Precondition.constraintValue(inner, Precondition.attributePriorities);\n return query * 100 + attr * 10;\n }\n presetPriority() {\n if (!this.constraints.length) {\n return [false, 0];\n }\n const last = this.constraints[this.constraints.length - 1].match(/^priority=(.*$)/);\n if (!last) {\n return [false, 0];\n }\n this.constraints.pop();\n const numb = parseFloat(last[1]);\n return [true, isNaN(numb) ? 0 : numb];\n }\n}\nexports.Precondition = Precondition;\nPrecondition.queryPriorities = [\n /^self::\\*\\[.+\\]$/,\n /^self::[\\w-]+\\[.+\\]$/\n];\nPrecondition.attributePriorities = [\n /^@[\\w-]+$/,\n /^@[\\w-]+!=\".+\"$/,\n /^not\\(contains\\(@[\\w-]+,\\s*\".+\"\\)\\)$/,\n /^contains\\(@[\\w-]+,\".+\"\\)$/,\n /^@[\\w-]+=\".+\"$/\n];\nclass OutputError extends engine_1.SREError {\n constructor(msg) {\n super(msg);\n this.name = 'RuleError';\n }\n}\nexports.OutputError = OutputError;\nfunction splitString(str, sep) {\n const strList = [];\n let prefix = '';\n while (str !== '') {\n const sepPos = str.search(sep);\n if (sepPos === -1) {\n if ((str.match(/\"/g) || []).length % 2 !== 0) {\n throw new OutputError('Invalid string in expression: ' + str);\n }\n strList.push(prefix + str);\n prefix = '';\n str = '';\n }\n else if ((str.substring(0, sepPos).match(/\"/g) || []).length % 2 === 0) {\n strList.push(prefix + str.substring(0, sepPos));\n prefix = '';\n str = str.substring(sepPos + 1);\n }\n else {\n const nextQuot = str.substring(sepPos).search('\"');\n if (nextQuot === -1) {\n throw new OutputError('Invalid string in expression: ' + str);\n }\n else {\n prefix = prefix + str.substring(0, sepPos + nextQuot + 1);\n str = str.substring(sepPos + nextQuot + 1);\n }\n }\n }\n if (prefix) {\n strList.push(prefix);\n }\n return strList;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpeechRuleContext = void 0;\nconst XpathUtil = require(\"../common/xpath_util\");\nconst srf = require(\"./speech_rule_functions\");\nclass SpeechRuleContext {\n constructor() {\n this.customQueries = new srf.CustomQueries();\n this.customStrings = new srf.CustomStrings();\n this.contextFunctions = new srf.ContextFunctions();\n this.customGenerators = new srf.CustomGenerators();\n }\n applyCustomQuery(node, funcName) {\n const func = this.customQueries.lookup(funcName);\n return func ? func(node) : null;\n }\n applySelector(node, expr) {\n const result = this.applyCustomQuery(node, expr);\n return result || XpathUtil.evalXPath(expr, node);\n }\n applyQuery(node, expr) {\n const results = this.applySelector(node, expr);\n if (results.length > 0) {\n return results[0];\n }\n return null;\n }\n applyConstraint(node, expr) {\n const result = this.applyQuery(node, expr);\n return !!result || XpathUtil.evaluateBoolean(expr, node);\n }\n constructString(node, expr) {\n if (!expr) {\n return '';\n }\n if (expr.charAt(0) === '\"') {\n return expr.slice(1, -1);\n }\n const func = this.customStrings.lookup(expr);\n if (func) {\n return func(node);\n }\n return XpathUtil.evaluateString(expr, node);\n }\n parse(functions) {\n const functs = Array.isArray(functions)\n ? functions\n : Object.entries(functions);\n for (let i = 0, func; (func = functs[i]); i++) {\n const kind = func[0].slice(0, 3);\n switch (kind) {\n case 'CQF':\n this.customQueries.add(func[0], func[1]);\n break;\n case 'CSF':\n this.customStrings.add(func[0], func[1]);\n break;\n case 'CTF':\n this.contextFunctions.add(func[0], func[1]);\n break;\n case 'CGF':\n this.customGenerators.add(func[0], func[1]);\n break;\n default:\n console.error('FunctionError: Invalid function name ' + func[0]);\n }\n }\n }\n}\nexports.SpeechRuleContext = SpeechRuleContext;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeFactory = exports.SpeechRuleEngine = void 0;\nconst auditory_description_1 = require(\"../audio/auditory_description\");\nconst debugger_1 = require(\"../common/debugger\");\nconst DomUtil = require(\"../common/dom_util\");\nconst engine_1 = require(\"../common/engine\");\nconst EngineConst = require(\"../common/engine_const\");\nconst xpath_util_1 = require(\"../common/xpath_util\");\nconst SpeechRules = require(\"../speech_rules/speech_rules\");\nconst SpeechRuleStores = require(\"../speech_rules/speech_rule_stores\");\nconst braille_store_1 = require(\"./braille_store\");\nconst dynamic_cstr_1 = require(\"./dynamic_cstr\");\nconst grammar_1 = require(\"./grammar\");\nconst math_store_1 = require(\"./math_store\");\nconst speech_rule_1 = require(\"./speech_rule\");\nconst trie_1 = require(\"../indexing/trie\");\nclass SpeechRuleEngine {\n constructor() {\n this.trie = null;\n this.evaluators_ = {};\n this.trie = new trie_1.Trie();\n }\n static getInstance() {\n SpeechRuleEngine.instance =\n SpeechRuleEngine.instance || new SpeechRuleEngine();\n return SpeechRuleEngine.instance;\n }\n static debugSpeechRule(rule, node) {\n const prec = rule.precondition;\n const queryResult = rule.context.applyQuery(node, prec.query);\n debugger_1.Debugger.getInstance().output(prec.query, queryResult ? queryResult.toString() : queryResult);\n prec.constraints.forEach((cstr) => debugger_1.Debugger.getInstance().output(cstr, rule.context.applyConstraint(node, cstr)));\n }\n static debugNamedSpeechRule(name, node) {\n const rules = SpeechRuleEngine.getInstance().trie.collectRules();\n const allRules = rules.filter((rule) => rule.name == name);\n for (let i = 0, rule; (rule = allRules[i]); i++) {\n debugger_1.Debugger.getInstance().output('Rule', name, 'DynamicCstr:', rule.dynamicCstr.toString(), 'number', i);\n SpeechRuleEngine.debugSpeechRule(rule, node);\n }\n }\n evaluateNode(node) {\n (0, xpath_util_1.updateEvaluator)(node);\n const timeIn = new Date().getTime();\n let result = [];\n try {\n result = this.evaluateNode_(node);\n }\n catch (err) {\n console.error('Something went wrong computing speech.');\n debugger_1.Debugger.getInstance().output(err);\n }\n const timeOut = new Date().getTime();\n debugger_1.Debugger.getInstance().output('Time:', timeOut - timeIn);\n return result;\n }\n toString() {\n const allRules = this.trie.collectRules();\n return allRules.map((rule) => rule.toString()).join('\\n');\n }\n runInSetting(settings, callback) {\n const engine = engine_1.default.getInstance();\n const save = {};\n for (const key in settings) {\n save[key] = engine[key];\n engine[key] = settings[key];\n }\n engine.setDynamicCstr();\n const result = callback();\n for (const key in save) {\n engine[key] = save[key];\n }\n engine.setDynamicCstr();\n return result;\n }\n addStore(set) {\n const store = storeFactory(set);\n if (store.kind !== 'abstract') {\n store.getSpeechRules().forEach((x) => this.trie.addRule(x));\n }\n this.addEvaluator(store);\n }\n processGrammar(context, node, grammar) {\n const assignment = {};\n for (const key in grammar) {\n const value = grammar[key];\n assignment[key] =\n typeof value === 'string'\n ?\n context.constructString(node, value)\n : value;\n }\n grammar_1.Grammar.getInstance().pushState(assignment);\n }\n addEvaluator(store) {\n const fun = store.evaluateDefault.bind(store);\n const loc = this.evaluators_[store.locale];\n if (loc) {\n loc[store.modality] = fun;\n return;\n }\n const mod = {};\n mod[store.modality] = fun;\n this.evaluators_[store.locale] = mod;\n }\n getEvaluator(locale, modality) {\n const loc = this.evaluators_[locale] ||\n this.evaluators_[dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.LOCALE]];\n return loc[modality] || loc[dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.MODALITY]];\n }\n enumerate(opt_info) {\n return this.trie.enumerate(opt_info);\n }\n evaluateNode_(node) {\n if (!node) {\n return [];\n }\n this.updateConstraint_();\n return this.evaluateTree_(node);\n }\n evaluateTree_(node) {\n const engine = engine_1.default.getInstance();\n let result;\n debugger_1.Debugger.getInstance().output(engine.mode !== EngineConst.Mode.HTTP ? node.toString() : node);\n grammar_1.Grammar.getInstance().setAttribute(node);\n const rule = this.lookupRule(node, engine.dynamicCstr);\n if (!rule) {\n if (engine.strict) {\n return [];\n }\n result = this.getEvaluator(engine.locale, engine.modality)(node);\n if (node.attributes) {\n this.addPersonality_(result, {}, false, node);\n }\n return result;\n }\n debugger_1.Debugger.getInstance().generateOutput(() => [\n 'Apply Rule:',\n rule.name,\n rule.dynamicCstr.toString(),\n (engine.mode !== EngineConst.Mode.HTTP ? node : node).toString()\n ]);\n const context = rule.context;\n const components = rule.action.components;\n result = [];\n for (let i = 0, component; (component = components[i]); i++) {\n let descrs = [];\n const content = component.content || '';\n const attributes = component.attributes || {};\n let multi = false;\n if (component.grammar) {\n this.processGrammar(context, node, component.grammar);\n }\n let saveEngine = null;\n if (attributes.engine) {\n saveEngine = engine_1.default.getInstance().dynamicCstr.getComponents();\n const features = grammar_1.Grammar.parseInput(attributes.engine);\n engine_1.default.getInstance().setDynamicCstr(features);\n }\n switch (component.type) {\n case speech_rule_1.ActionType.NODE:\n {\n const selected = context.applyQuery(node, content);\n if (selected) {\n descrs = this.evaluateTree_(selected);\n }\n }\n break;\n case speech_rule_1.ActionType.MULTI:\n {\n multi = true;\n const selects = context.applySelector(node, content);\n if (selects.length > 0) {\n descrs = this.evaluateNodeList_(context, selects, attributes['sepFunc'], context.constructString(node, attributes['separator']), attributes['ctxtFunc'], context.constructString(node, attributes['context']));\n }\n }\n break;\n case speech_rule_1.ActionType.TEXT:\n {\n const xpath = attributes['span'];\n const attrs = {};\n if (xpath) {\n const nodes = (0, xpath_util_1.evalXPath)(xpath, node);\n if (nodes.length) {\n attrs.extid = nodes[0].getAttribute('extid');\n }\n }\n const str = context.constructString(node, content);\n if (str || str === '') {\n if (Array.isArray(str)) {\n descrs = str.map(function (span) {\n return auditory_description_1.AuditoryDescription.create({ text: span.speech, attributes: span.attributes }, { adjust: true });\n });\n }\n else {\n descrs = [\n auditory_description_1.AuditoryDescription.create({ text: str, attributes: attrs }, { adjust: true })\n ];\n }\n }\n }\n break;\n case speech_rule_1.ActionType.PERSONALITY:\n default:\n descrs = [auditory_description_1.AuditoryDescription.create({ text: content })];\n }\n if (descrs[0] && !multi) {\n if (attributes['context']) {\n descrs[0]['context'] =\n context.constructString(node, attributes['context']) +\n (descrs[0]['context'] || '');\n }\n if (attributes['annotation']) {\n descrs[0]['annotation'] = attributes['annotation'];\n }\n }\n this.addLayout(descrs, attributes, multi);\n if (component.grammar) {\n grammar_1.Grammar.getInstance().popState();\n }\n result = result.concat(this.addPersonality_(descrs, attributes, multi, node));\n if (saveEngine) {\n engine_1.default.getInstance().setDynamicCstr(saveEngine);\n }\n }\n return result;\n }\n evaluateNodeList_(context, nodes, sepFunc, sepStr, ctxtFunc, ctxtStr) {\n if (!nodes.length) {\n return [];\n }\n const sep = sepStr || '';\n const cont = ctxtStr || '';\n const cFunc = context.contextFunctions.lookup(ctxtFunc);\n const ctxtClosure = cFunc\n ? cFunc(nodes, cont)\n : function () {\n return cont;\n };\n const sFunc = context.contextFunctions.lookup(sepFunc);\n const sepClosure = sFunc\n ? sFunc(nodes, sep)\n : function () {\n return [\n auditory_description_1.AuditoryDescription.create({ text: sep }, { translate: true })\n ];\n };\n let result = [];\n for (let i = 0, node; (node = nodes[i]); i++) {\n const descrs = this.evaluateTree_(node);\n if (descrs.length > 0) {\n descrs[0]['context'] = ctxtClosure() + (descrs[0]['context'] || '');\n result = result.concat(descrs);\n if (i < nodes.length - 1) {\n const text = sepClosure();\n result = result.concat(text);\n }\n }\n }\n return result;\n }\n addLayout(descrs, props, _multi) {\n const layout = props.layout;\n if (!layout) {\n return;\n }\n if (layout.match(/^begin/)) {\n descrs.unshift(new auditory_description_1.AuditoryDescription({ text: '', layout: layout }));\n return;\n }\n if (layout.match(/^end/)) {\n descrs.push(new auditory_description_1.AuditoryDescription({ text: '', layout: layout }));\n return;\n }\n descrs.unshift(new auditory_description_1.AuditoryDescription({ text: '', layout: `begin${layout}` }));\n descrs.push(new auditory_description_1.AuditoryDescription({ text: '', layout: `end${layout}` }));\n }\n addPersonality_(descrs, props, multi, node) {\n const personality = {};\n let pause = null;\n for (const key of EngineConst.personalityPropList) {\n const value = props[key];\n if (typeof value === 'undefined') {\n continue;\n }\n const numeral = parseFloat(value);\n const realValue = isNaN(numeral)\n ? value.charAt(0) === '\"'\n ? value.slice(1, -1)\n : value\n : numeral;\n if (key === EngineConst.personalityProps.PAUSE) {\n pause = realValue;\n }\n else {\n personality[key] = realValue;\n }\n }\n for (let i = 0, descr; (descr = descrs[i]); i++) {\n this.addRelativePersonality_(descr, personality);\n this.addExternalAttributes_(descr, node);\n }\n if (multi && descrs.length) {\n delete descrs[descrs.length - 1].personality[EngineConst.personalityProps.JOIN];\n }\n if (pause && descrs.length) {\n const last = descrs[descrs.length - 1];\n if (last.text || Object.keys(last.personality).length) {\n descrs.push(auditory_description_1.AuditoryDescription.create({\n text: '',\n personality: { pause: pause }\n }));\n }\n else {\n last.personality[EngineConst.personalityProps.PAUSE] = pause;\n }\n }\n return descrs;\n }\n addExternalAttributes_(descr, node) {\n if (node.hasAttributes()) {\n const attrs = node.attributes;\n for (let i = attrs.length - 1; i >= 0; i--) {\n const key = attrs[i].name;\n if (!descr.attributes[key] && key.match(/^ext/)) {\n descr.attributes[key] = attrs[i].value;\n }\n }\n }\n }\n addRelativePersonality_(descr, personality) {\n if (!descr['personality']) {\n descr['personality'] = personality;\n return descr;\n }\n const descrPersonality = descr['personality'];\n for (const p in personality) {\n if (descrPersonality[p] &&\n typeof descrPersonality[p] == 'number' &&\n typeof personality[p] == 'number') {\n descrPersonality[p] = descrPersonality[p] + personality[p];\n }\n else if (!descrPersonality[p]) {\n descrPersonality[p] = personality[p];\n }\n }\n return descr;\n }\n updateConstraint_() {\n const dynamic = engine_1.default.getInstance().dynamicCstr;\n const strict = engine_1.default.getInstance().strict;\n const trie = this.trie;\n const props = {};\n let locale = dynamic.getValue(dynamic_cstr_1.Axis.LOCALE);\n let modality = dynamic.getValue(dynamic_cstr_1.Axis.MODALITY);\n let domain = dynamic.getValue(dynamic_cstr_1.Axis.DOMAIN);\n if (!trie.hasSubtrie([locale, modality, domain])) {\n domain = dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.DOMAIN];\n if (!trie.hasSubtrie([locale, modality, domain])) {\n modality = dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.MODALITY];\n if (!trie.hasSubtrie([locale, modality, domain])) {\n locale = dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.LOCALE];\n }\n }\n }\n props[dynamic_cstr_1.Axis.LOCALE] = [locale];\n props[dynamic_cstr_1.Axis.MODALITY] = [\n modality !== 'summary'\n ? modality\n : dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.MODALITY]\n ];\n props[dynamic_cstr_1.Axis.DOMAIN] = [\n modality !== 'speech' ? dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.DOMAIN] : domain\n ];\n const order = dynamic.getOrder();\n for (let i = 0, axis; (axis = order[i]); i++) {\n if (!props[axis]) {\n const value = dynamic.getValue(axis);\n const valueSet = this.makeSet_(value, dynamic.preference);\n const def = dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[axis];\n if (!strict && value !== def) {\n valueSet.push(def);\n }\n props[axis] = valueSet;\n }\n }\n dynamic.updateProperties(props);\n }\n makeSet_(value, preferences) {\n if (!preferences || !Object.keys(preferences).length) {\n return [value];\n }\n return value.split(':');\n }\n lookupRule(node, dynamic) {\n if (!node ||\n (node.nodeType !== DomUtil.NodeType.ELEMENT_NODE &&\n node.nodeType !== DomUtil.NodeType.TEXT_NODE)) {\n return null;\n }\n const matchingRules = this.lookupRules(node, dynamic);\n return matchingRules.length > 0\n ? this.pickMostConstraint_(dynamic, matchingRules)\n : null;\n }\n lookupRules(node, dynamic) {\n return this.trie.lookupRules(node, dynamic.allProperties());\n }\n pickMostConstraint_(_dynamic, rules) {\n const comparator = engine_1.default.getInstance().comparator;\n rules.sort(function (r1, r2) {\n return (comparator.compare(r1.dynamicCstr, r2.dynamicCstr) ||\n r2.precondition.priority - r1.precondition.priority ||\n r2.precondition.constraints.length -\n r1.precondition.constraints.length ||\n r2.precondition.rank - r1.precondition.rank);\n });\n debugger_1.Debugger.getInstance().generateOutput((() => {\n return rules.map((x) => x.name + '(' + x.dynamicCstr.toString() + ')');\n }).bind(this));\n return rules[0];\n }\n}\nexports.SpeechRuleEngine = SpeechRuleEngine;\nconst stores = new Map();\nfunction getStore(modality) {\n if (modality === 'braille') {\n return new braille_store_1.BrailleStore();\n }\n return new math_store_1.MathStore();\n}\nfunction storeFactory(set) {\n const name = `${set.locale}.${set.modality}.${set.domain}`;\n if (set.kind === 'actions') {\n const store = stores.get(name);\n store.parse(set);\n return store;\n }\n SpeechRuleStores.init();\n if (set && !set.functions) {\n set.functions = SpeechRules.getStore(set.locale, set.modality, set.domain);\n }\n const store = getStore(set.modality);\n stores.set(name, store);\n if (set.inherits) {\n store.inherits = stores.get(`${set.inherits}.${set.modality}.${set.domain}`);\n }\n store.parse(set);\n store.initialize();\n return store;\n}\nexports.storeFactory = storeFactory;\nengine_1.default.nodeEvaluator = SpeechRuleEngine.getInstance().evaluateNode.bind(SpeechRuleEngine.getInstance());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomGenerators = exports.ContextFunctions = exports.CustomStrings = exports.CustomQueries = void 0;\nclass FunctionsStore {\n constructor(prefix, store) {\n this.prefix = prefix;\n this.store = store;\n }\n add(name, func) {\n if (this.checkCustomFunctionSyntax_(name)) {\n this.store[name] = func;\n }\n }\n addStore(store) {\n const keys = Object.keys(store.store);\n for (let i = 0, key; (key = keys[i]); i++) {\n this.add(key, store.store[key]);\n }\n }\n lookup(name) {\n return this.store[name];\n }\n checkCustomFunctionSyntax_(name) {\n const reg = new RegExp('^' + this.prefix);\n if (!name.match(reg)) {\n console.error('FunctionError: Invalid function name. Expected prefix ' + this.prefix);\n return false;\n }\n return true;\n }\n}\nclass CustomQueries extends FunctionsStore {\n constructor() {\n const store = {};\n super('CQF', store);\n }\n}\nexports.CustomQueries = CustomQueries;\nclass CustomStrings extends FunctionsStore {\n constructor() {\n const store = {};\n super('CSF', store);\n }\n}\nexports.CustomStrings = CustomStrings;\nclass ContextFunctions extends FunctionsStore {\n constructor() {\n const store = {};\n super('CTF', store);\n }\n}\nexports.ContextFunctions = ContextFunctions;\nclass CustomGenerators extends FunctionsStore {\n constructor() {\n const store = {};\n super('CGF', store);\n }\n}\nexports.CustomGenerators = CustomGenerators;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentIterator = exports.pauseSeparator = exports.nodeCounter = void 0;\nconst auditory_description_1 = require(\"../audio/auditory_description\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst engine_1 = require(\"../common/engine\");\nfunction nodeCounter(nodes, context) {\n const localLength = nodes.length;\n let localCounter = 0;\n let localContext = context;\n if (!context) {\n localContext = '';\n }\n return function () {\n if (localCounter < localLength) {\n localCounter += 1;\n }\n return localContext + ' ' + localCounter;\n };\n}\nexports.nodeCounter = nodeCounter;\nfunction pauseSeparator(_nodes, context) {\n const numeral = parseFloat(context);\n const value = isNaN(numeral) ? context : numeral;\n return function () {\n return [\n auditory_description_1.AuditoryDescription.create({\n text: '',\n personality: { pause: value }\n })\n ];\n };\n}\nexports.pauseSeparator = pauseSeparator;\nfunction contentIterator(nodes, context) {\n let contentNodes;\n if (nodes.length > 0) {\n contentNodes = XpathUtil.evalXPath('../../content/*', nodes[0]);\n }\n else {\n contentNodes = [];\n }\n return function () {\n const content = contentNodes.shift();\n const contextDescr = context\n ? [auditory_description_1.AuditoryDescription.create({ text: context }, { translate: true })]\n : [];\n if (!content) {\n return contextDescr;\n }\n const descrs = engine_1.default.evaluateNode(content);\n return contextDescr.concat(descrs);\n };\n}\nexports.contentIterator = contentIterator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTreeFromString = exports.getTree = exports.xmlTree = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst semantic_tree_1 = require(\"./semantic_tree\");\nfunction xmlTree(mml) {\n return getTree(mml).xml();\n}\nexports.xmlTree = xmlTree;\nfunction getTree(mml) {\n return new semantic_tree_1.SemanticTree(mml);\n}\nexports.getTree = getTree;\nfunction getTreeFromString(expr) {\n const mml = DomUtil.parseInput(expr);\n return getTree(mml);\n}\nexports.getTreeFromString = getTreeFromString;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.annotate = exports.activate = exports.register = exports.visitors = exports.annotators = void 0;\nconst semantic_annotator_1 = require(\"./semantic_annotator\");\nexports.annotators = new Map();\nexports.visitors = new Map();\nfunction register(annotator) {\n const name = annotator.domain + ':' + annotator.name;\n annotator instanceof semantic_annotator_1.SemanticAnnotator\n ? exports.annotators.set(name, annotator)\n : exports.visitors.set(name, annotator);\n}\nexports.register = register;\nfunction activate(domain, name) {\n const key = domain + ':' + name;\n const annotator = exports.annotators.get(key) || exports.visitors.get(key);\n if (annotator) {\n annotator.active = true;\n }\n}\nexports.activate = activate;\nfunction annotate(node) {\n for (const annotator of exports.annotators.values()) {\n if (annotator.active) {\n annotator.annotate(node);\n }\n }\n for (const visitor of exports.visitors.values()) {\n if (visitor.active) {\n visitor.visit(node, Object.assign({}, visitor.def));\n }\n }\n}\nexports.annotate = annotate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticVisitor = exports.SemanticAnnotator = void 0;\nclass SemanticAnnotator {\n constructor(domain, name, func) {\n this.domain = domain;\n this.name = name;\n this.func = func;\n this.active = false;\n }\n annotate(node) {\n node.childNodes.forEach(this.annotate.bind(this));\n node.addAnnotation(this.domain, this.func(node));\n }\n}\nexports.SemanticAnnotator = SemanticAnnotator;\nclass SemanticVisitor {\n constructor(domain, name, func, def = {}) {\n this.domain = domain;\n this.name = name;\n this.func = func;\n this.def = def;\n this.active = false;\n }\n visit(node, info) {\n let result = this.func(node, info);\n node.addAnnotation(this.domain, result[0]);\n for (let i = 0, child; (child = node.childNodes[i]); i++) {\n result = this.visit(child, result[1]);\n }\n return result;\n }\n}\nexports.SemanticVisitor = SemanticVisitor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupSecondary = exports.isEmbellishedType = exports.isMatchingFence = exports.functionApplication = exports.invisibleComma = exports.invisiblePlus = exports.invisibleTimes = exports.lookupMeaning = exports.lookupRole = exports.lookupType = exports.equal = exports.allLettersRegExp = void 0;\nconst generalPunctuations = [\n '!',\n '\"',\n '#',\n '%',\n '&',\n ';',\n '?',\n '@',\n '\\\\',\n '¡',\n '§',\n '¶',\n '¿',\n '‗',\n '†',\n '‡',\n '•',\n '‣',\n '․',\n '‥',\n '‧',\n '‰',\n '‱',\n '‸',\n '※',\n '‼',\n '‽',\n '‾',\n '⁁',\n '⁂',\n '⁃',\n '⁇',\n '⁈',\n '⁉',\n '⁋',\n '⁌',\n '⁍',\n '⁎',\n '⁏',\n '⁐',\n '⁑',\n '⁓',\n '⁕',\n '⁖',\n '⁘',\n '⁙',\n '⁚',\n '⁛',\n '⁜',\n '⁝',\n '⁞',\n '︐',\n '︔',\n '︕',\n '︖',\n '︰',\n '﹅',\n '﹆',\n '﹉',\n '﹊',\n '﹋',\n '﹌',\n '﹔',\n '﹖',\n '﹗',\n '﹟',\n '﹠',\n '﹡',\n '﹨',\n '﹪',\n '﹫',\n '!',\n '"',\n '#',\n '%',\n '&',\n ''',\n '*',\n '/',\n ';',\n '?',\n '@',\n '\'\n];\nconst colons = ['︓', ':', ':', '﹕'];\nconst invisibleComma_ = String.fromCodePoint(0x2063);\nconst commas = [',', '﹐', ',', invisibleComma_];\nconst ellipses = ['…', '⋮', '⋯', '⋰', '⋱', '︙'];\nconst fullStops = ['.', '﹒', '.'];\nconst dashes = [\n '¯',\n '‒',\n '–',\n '—',\n '―',\n '﹘',\n '-',\n '⁻',\n '₋',\n '−',\n '➖',\n '﹣',\n '-',\n '‐',\n '‑',\n '‾',\n '_'\n];\nconst tildes = ['~', '̃', '∼', '˜', '∽', '˷', '̴', '̰'];\nconst primes = [\"'\", '′', '″', '‴', '‵', '‶', '‷', '⁗', 'ʹ', 'ʺ'];\nconst degrees = ['°'];\nconst openClosePairs = {\n '(': ')',\n '[': ']',\n '{': '}',\n '\\u2045': '⁆',\n '\\u2329': '〉',\n '\\u2768': '❩',\n '\\u276a': '❫',\n '\\u276c': '❭',\n '\\u276e': '❯',\n '\\u2770': '❱',\n '\\u2772': '❳',\n '\\u2774': '❵',\n '\\u27c5': '⟆',\n '\\u27e6': '⟧',\n '\\u27e8': '⟩',\n '\\u27ea': '⟫',\n '\\u27ec': '⟭',\n '\\u27ee': '⟯',\n '\\u2983': '⦄',\n '\\u2985': '⦆',\n '\\u2987': '⦈',\n '\\u2989': '⦊',\n '\\u298b': '⦌',\n '\\u298d': '⦎',\n '\\u298f': '⦐',\n '\\u2991': '⦒',\n '\\u2993': '⦔',\n '\\u2995': '⦖',\n '\\u2997': '⦘',\n '\\u29d8': '⧙',\n '\\u29da': '⧛',\n '\\u29fc': '⧽',\n '\\u2e22': '⸣',\n '\\u2e24': '⸥',\n '\\u2e26': '⸧',\n '\\u2e28': '⸩',\n '\\u3008': '〉',\n '\\u300a': '》',\n '\\u300c': '」',\n '\\u300e': '』',\n '\\u3010': '】',\n '\\u3014': '〕',\n '\\u3016': '〗',\n '\\u3018': '〙',\n '\\u301a': '〛',\n '\\u301d': '〞',\n '\\ufd3e': '﴿',\n '\\ufe17': '︘',\n '\\ufe59': '﹚',\n '\\ufe5b': '﹜',\n '\\ufe5d': '﹞',\n '\\uff08': ')',\n '\\uff3b': ']',\n '\\uff5b': '}',\n '\\uff5f': '⦆',\n '\\uff62': '」',\n '\\u2308': '⌉',\n '\\u230a': '⌋',\n '\\u230c': '⌍',\n '\\u230e': '⌏',\n '\\u231c': '⌝',\n '\\u231e': '⌟',\n '\\u239b': '⎞',\n '\\u239c': '⎟',\n '\\u239d': '⎠',\n '\\u23a1': '⎤',\n '\\u23a2': '⎥',\n '\\u23a3': '⎦',\n '\\u23a7': '⎫',\n '\\u23a8': '⎬',\n '\\u23a9': '⎭',\n '\\u23b0': '⎱',\n '\\u23b8': '⎹'\n};\nconst topBottomPairs = {\n '\\u23b4': '⎵',\n '\\u23dc': '⏝',\n '\\u23de': '⏟',\n '\\u23e0': '⏡',\n '\\ufe35': '︶',\n '\\ufe37': '︸',\n '\\ufe39': '︺',\n '\\ufe3b': '︼',\n '\\ufe3d': '︾',\n '\\ufe3f': '﹀',\n '\\ufe41': '﹂',\n '\\ufe43': '﹄',\n '\\ufe47': '﹈'\n};\nconst leftFences = Object.keys(openClosePairs);\nconst rightFences = Object.values(openClosePairs);\nrightFences.push('〟');\nconst topFences = Object.keys(topBottomPairs);\nconst bottomFences = Object.values(topBottomPairs);\nconst neutralFences = [\n '|',\n '¦',\n '∣',\n '⏐',\n '⎸',\n '⎹',\n '❘',\n '|',\n '¦',\n '︱',\n '︲'\n];\nconst metricFences = ['‖', '∥', '⦀', '⫴'];\nconst capitalLatin = [\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z'\n];\nconst smallLatin = [\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'ı',\n 'ȷ'\n];\nconst capitalLatinFullWidth = [\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z'\n];\nconst smallLatinFullWidth = [\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z'\n];\nconst capitalLatinBold = [\n '𝐀',\n '𝐁',\n '𝐂',\n '𝐃',\n '𝐄',\n '𝐅',\n '𝐆',\n '𝐇',\n '𝐈',\n '𝐉',\n '𝐊',\n '𝐋',\n '𝐌',\n '𝐍',\n '𝐎',\n '𝐏',\n '𝐐',\n '𝐑',\n '𝐒',\n '𝐓',\n '𝐔',\n '𝐕',\n '𝐖',\n '𝐗',\n '𝐘',\n '𝐙'\n];\nconst smallLatinBold = [\n '𝐚',\n '𝐛',\n '𝐜',\n '𝐝',\n '𝐞',\n '𝐟',\n '𝐠',\n '𝐡',\n '𝐢',\n '𝐣',\n '𝐤',\n '𝐥',\n '𝐦',\n '𝐧',\n '𝐨',\n '𝐩',\n '𝐪',\n '𝐫',\n '𝐬',\n '𝐭',\n '𝐮',\n '𝐯',\n '𝐰',\n '𝐱',\n '𝐲',\n '𝐳'\n];\nconst capitalLatinItalic = [\n '𝐴',\n '𝐵',\n '𝐶',\n '𝐷',\n '𝐸',\n '𝐹',\n '𝐺',\n '𝐻',\n '𝐼',\n '𝐽',\n '𝐾',\n '𝐿',\n '𝑀',\n '𝑁',\n '𝑂',\n '𝑃',\n '𝑄',\n '𝑅',\n '𝑆',\n '𝑇',\n '𝑈',\n '𝑉',\n '𝑊',\n '𝑋',\n '𝑌',\n '𝑍'\n];\nconst smallLatinItalic = [\n '𝑎',\n '𝑏',\n '𝑐',\n '𝑑',\n '𝑒',\n '𝑓',\n '𝑔',\n 'ℎ',\n '𝑖',\n '𝑗',\n '𝑘',\n '𝑙',\n '𝑚',\n '𝑛',\n '𝑜',\n '𝑝',\n '𝑞',\n '𝑟',\n '𝑠',\n '𝑡',\n '𝑢',\n '𝑣',\n '𝑤',\n '𝑥',\n '𝑦',\n '𝑧',\n '𝚤',\n '𝚥'\n];\nconst capitalLatinBoldItalic = [\n '𝑨',\n '𝑩',\n '𝑪',\n '𝑫',\n '𝑬',\n '𝑭',\n '𝑮',\n '𝑯',\n '𝑰',\n '𝑱',\n '𝑲',\n '𝑳',\n '𝑴',\n '𝑵',\n '𝑶',\n '𝑷',\n '𝑸',\n '𝑹',\n '𝑺',\n '𝑻',\n '𝑼',\n '𝑽',\n '𝑾',\n '𝑿',\n '𝒀',\n '𝒁'\n];\nconst smallLatinBoldItalic = [\n '𝒂',\n '𝒃',\n '𝒄',\n '𝒅',\n '𝒆',\n '𝒇',\n '𝒈',\n '𝒉',\n '𝒊',\n '𝒋',\n '𝒌',\n '𝒍',\n '𝒎',\n '𝒏',\n '𝒐',\n '𝒑',\n '𝒒',\n '𝒓',\n '𝒔',\n '𝒕',\n '𝒖',\n '𝒗',\n '𝒘',\n '𝒙',\n '𝒚',\n '𝒛'\n];\nconst capitalLatinScript = [\n '𝒜',\n 'ℬ',\n '𝒞',\n '𝒟',\n 'ℰ',\n 'ℱ',\n '𝒢',\n 'ℋ',\n 'ℐ',\n '𝒥',\n '𝒦',\n 'ℒ',\n 'ℳ',\n '𝒩',\n '𝒪',\n '𝒫',\n '𝒬',\n 'ℛ',\n '𝒮',\n '𝒯',\n '𝒰',\n '𝒱',\n '𝒲',\n '𝒳',\n '𝒴',\n '𝒵',\n '℘'\n];\nconst smallLatinScript = [\n '𝒶',\n '𝒷',\n '𝒸',\n '𝒹',\n 'ℯ',\n '𝒻',\n 'ℊ',\n '𝒽',\n '𝒾',\n '𝒿',\n '𝓀',\n '𝓁',\n '𝓂',\n '𝓃',\n 'ℴ',\n '𝓅',\n '𝓆',\n '𝓇',\n '𝓈',\n '𝓉',\n '𝓊',\n '𝓋',\n '𝓌',\n '𝓍',\n '𝓎',\n '𝓏',\n 'ℓ'\n];\nconst capitalLatinBoldScript = [\n '𝓐',\n '𝓑',\n '𝓒',\n '𝓓',\n '𝓔',\n '𝓕',\n '𝓖',\n '𝓗',\n '𝓘',\n '𝓙',\n '𝓚',\n '𝓛',\n '𝓜',\n '𝓝',\n '𝓞',\n '𝓟',\n '𝓠',\n '𝓡',\n '𝓢',\n '𝓣',\n '𝓤',\n '𝓥',\n '𝓦',\n '𝓧',\n '𝓨',\n '𝓩'\n];\nconst smallLatinBoldScript = [\n '𝓪',\n '𝓫',\n '𝓬',\n '𝓭',\n '𝓮',\n '𝓯',\n '𝓰',\n '𝓱',\n '𝓲',\n '𝓳',\n '𝓴',\n '𝓵',\n '𝓶',\n '𝓷',\n '𝓸',\n '𝓹',\n '𝓺',\n '𝓻',\n '𝓼',\n '𝓽',\n '𝓾',\n '𝓿',\n '𝔀',\n '𝔁',\n '𝔂',\n '𝔃'\n];\nconst capitalLatinFraktur = [\n '𝔄',\n '𝔅',\n 'ℭ',\n '𝔇',\n '𝔈',\n '𝔉',\n '𝔊',\n 'ℌ',\n 'ℑ',\n '𝔍',\n '𝔎',\n '𝔏',\n '𝔐',\n '𝔑',\n '𝔒',\n '𝔓',\n '𝔔',\n 'ℜ',\n '𝔖',\n '𝔗',\n '𝔘',\n '𝔙',\n '𝔚',\n '𝔛',\n '𝔜',\n 'ℨ'\n];\nconst smallLatinFraktur = [\n '𝔞',\n '𝔟',\n '𝔠',\n '𝔡',\n '𝔢',\n '𝔣',\n '𝔤',\n '𝔥',\n '𝔦',\n '𝔧',\n '𝔨',\n '𝔩',\n '𝔪',\n '𝔫',\n '𝔬',\n '𝔭',\n '𝔮',\n '𝔯',\n '𝔰',\n '𝔱',\n '𝔲',\n '𝔳',\n '𝔴',\n '𝔵',\n '𝔶',\n '𝔷'\n];\nconst capitalLatinDoubleStruck = [\n '𝔸',\n '𝔹',\n 'ℂ',\n '𝔻',\n '𝔼',\n '𝔽',\n '𝔾',\n 'ℍ',\n '𝕀',\n '𝕁',\n '𝕂',\n '𝕃',\n '𝕄',\n 'ℕ',\n '𝕆',\n 'ℙ',\n 'ℚ',\n 'ℝ',\n '𝕊',\n '𝕋',\n '𝕌',\n '𝕍',\n '𝕎',\n '𝕏',\n '𝕐',\n 'ℤ'\n];\nconst smallLatinDoubleStruck = [\n '𝕒',\n '𝕓',\n '𝕔',\n '𝕕',\n '𝕖',\n '𝕗',\n '𝕘',\n '𝕙',\n '𝕚',\n '𝕛',\n '𝕜',\n '𝕝',\n '𝕞',\n '𝕟',\n '𝕠',\n '𝕡',\n '𝕢',\n '𝕣',\n '𝕤',\n '𝕥',\n '𝕦',\n '𝕧',\n '𝕨',\n '𝕩',\n '𝕪',\n '𝕫'\n];\nconst capitalLatinBoldFraktur = [\n '𝕬',\n '𝕭',\n '𝕮',\n '𝕯',\n '𝕰',\n '𝕱',\n '𝕲',\n '𝕳',\n '𝕴',\n '𝕵',\n '𝕶',\n '𝕷',\n '𝕸',\n '𝕹',\n '𝕺',\n '𝕻',\n '𝕼',\n '𝕽',\n '𝕾',\n '𝕿',\n '𝖀',\n '𝖁',\n '𝖂',\n '𝖃',\n '𝖄',\n '𝖅'\n];\nconst smallLatinBoldFraktur = [\n '𝖆',\n '𝖇',\n '𝖈',\n '𝖉',\n '𝖊',\n '𝖋',\n '𝖌',\n '𝖍',\n '𝖎',\n '𝖏',\n '𝖐',\n '𝖑',\n '𝖒',\n '𝖓',\n '𝖔',\n '𝖕',\n '𝖖',\n '𝖗',\n '𝖘',\n '𝖙',\n '𝖚',\n '𝖛',\n '𝖜',\n '𝖝',\n '𝖞',\n '𝖟'\n];\nconst capitalLatinSansSerif = [\n '𝖠',\n '𝖡',\n '𝖢',\n '𝖣',\n '𝖤',\n '𝖥',\n '𝖦',\n '𝖧',\n '𝖨',\n '𝖩',\n '𝖪',\n '𝖫',\n '𝖬',\n '𝖭',\n '𝖮',\n '𝖯',\n '𝖰',\n '𝖱',\n '𝖲',\n '𝖳',\n '𝖴',\n '𝖵',\n '𝖶',\n '𝖷',\n '𝖸',\n '𝖹'\n];\nconst smallLatinSansSerif = [\n '𝖺',\n '𝖻',\n '𝖼',\n '𝖽',\n '𝖾',\n '𝖿',\n '𝗀',\n '𝗁',\n '𝗂',\n '𝗃',\n '𝗄',\n '𝗅',\n '𝗆',\n '𝗇',\n '𝗈',\n '𝗉',\n '𝗊',\n '𝗋',\n '𝗌',\n '𝗍',\n '𝗎',\n '𝗏',\n '𝗐',\n '𝗑',\n '𝗒',\n '𝗓'\n];\nconst capitalLatinSansSerifBold = [\n '𝗔',\n '𝗕',\n '𝗖',\n '𝗗',\n '𝗘',\n '𝗙',\n '𝗚',\n '𝗛',\n '𝗜',\n '𝗝',\n '𝗞',\n '𝗟',\n '𝗠',\n '𝗡',\n '𝗢',\n '𝗣',\n '𝗤',\n '𝗥',\n '𝗦',\n '𝗧',\n '𝗨',\n '𝗩',\n '𝗪',\n '𝗫',\n '𝗬',\n '𝗭'\n];\nconst smallLatinSansSerifBold = [\n '𝗮',\n '𝗯',\n '𝗰',\n '𝗱',\n '𝗲',\n '𝗳',\n '𝗴',\n '𝗵',\n '𝗶',\n '𝗷',\n '𝗸',\n '𝗹',\n '𝗺',\n '𝗻',\n '𝗼',\n '𝗽',\n '𝗾',\n '𝗿',\n '𝘀',\n '𝘁',\n '𝘂',\n '𝘃',\n '𝘄',\n '𝘅',\n '𝘆',\n '𝘇'\n];\nconst capitalLatinSansSerifItalic = [\n '𝘈',\n '𝘉',\n '𝘊',\n '𝘋',\n '𝘌',\n '𝘍',\n '𝘎',\n '𝘏',\n '𝘐',\n '𝘑',\n '𝘒',\n '𝘓',\n '𝘔',\n '𝘕',\n '𝘖',\n '𝘗',\n '𝘘',\n '𝘙',\n '𝘚',\n '𝘛',\n '𝘜',\n '𝘝',\n '𝘞',\n '𝘟',\n '𝘠',\n '𝘡'\n];\nconst smallLatinSansSerifItalic = [\n '𝘢',\n '𝘣',\n '𝘤',\n '𝘥',\n '𝘦',\n '𝘧',\n '𝘨',\n '𝘩',\n '𝘪',\n '𝘫',\n '𝘬',\n '𝘭',\n '𝘮',\n '𝘯',\n '𝘰',\n '𝘱',\n '𝘲',\n '𝘳',\n '𝘴',\n '𝘵',\n '𝘶',\n '𝘷',\n '𝘸',\n '𝘹',\n '𝘺',\n '𝘻'\n];\nconst capitalLatinSansSerifBoldItalic = [\n '𝘼',\n '𝘽',\n '𝘾',\n '𝘿',\n '𝙀',\n '𝙁',\n '𝙂',\n '𝙃',\n '𝙄',\n '𝙅',\n '𝙆',\n '𝙇',\n '𝙈',\n '𝙉',\n '𝙊',\n '𝙋',\n '𝙌',\n '𝙍',\n '𝙎',\n '𝙏',\n '𝙐',\n '𝙑',\n '𝙒',\n '𝙓',\n '𝙔',\n '𝙕'\n];\nconst smallLatinSansSerifBoldItalic = [\n '𝙖',\n '𝙗',\n '𝙘',\n '𝙙',\n '𝙚',\n '𝙛',\n '𝙜',\n '𝙝',\n '𝙞',\n '𝙟',\n '𝙠',\n '𝙡',\n '𝙢',\n '𝙣',\n '𝙤',\n '𝙥',\n '𝙦',\n '𝙧',\n '𝙨',\n '𝙩',\n '𝙪',\n '𝙫',\n '𝙬',\n '𝙭',\n '𝙮',\n '𝙯'\n];\nconst capitalLatinMonospace = [\n '𝙰',\n '𝙱',\n '𝙲',\n '𝙳',\n '𝙴',\n '𝙵',\n '𝙶',\n '𝙷',\n '𝙸',\n '𝙹',\n '𝙺',\n '𝙻',\n '𝙼',\n '𝙽',\n '𝙾',\n '𝙿',\n '𝚀',\n '𝚁',\n '𝚂',\n '𝚃',\n '𝚄',\n '𝚅',\n '𝚆',\n '𝚇',\n '𝚈',\n '𝚉'\n];\nconst smallLatinMonospace = [\n '𝚊',\n '𝚋',\n '𝚌',\n '𝚍',\n '𝚎',\n '𝚏',\n '𝚐',\n '𝚑',\n '𝚒',\n '𝚓',\n '𝚔',\n '𝚕',\n '𝚖',\n '𝚗',\n '𝚘',\n '𝚙',\n '𝚚',\n '𝚛',\n '𝚜',\n '𝚝',\n '𝚞',\n '𝚟',\n '𝚠',\n '𝚡',\n '𝚢',\n '𝚣'\n];\nconst latinDoubleStruckItalic = ['ⅅ', 'ⅆ', 'ⅇ', 'ⅈ', 'ⅉ'];\nconst capitalGreek = [\n 'Α',\n 'Β',\n 'Γ',\n 'Δ',\n 'Ε',\n 'Ζ',\n 'Η',\n 'Θ',\n 'Ι',\n 'Κ',\n 'Λ',\n 'Μ',\n 'Ν',\n 'Ξ',\n 'Ο',\n 'Π',\n 'Ρ',\n 'Σ',\n 'Τ',\n 'Υ',\n 'Φ',\n 'Χ',\n 'Ψ',\n 'Ω'\n];\nconst smallGreek = [\n 'α',\n 'β',\n 'γ',\n 'δ',\n 'ε',\n 'ζ',\n 'η',\n 'θ',\n 'ι',\n 'κ',\n 'λ',\n 'μ',\n 'ν',\n 'ξ',\n 'ο',\n 'π',\n 'ρ',\n 'ς',\n 'σ',\n 'τ',\n 'υ',\n 'φ',\n 'χ',\n 'ψ',\n 'ω'\n];\nconst capitalGreekBold = [\n '𝚨',\n '𝚩',\n '𝚪',\n '𝚫',\n '𝚬',\n '𝚭',\n '𝚮',\n '𝚯',\n '𝚰',\n '𝚱',\n '𝚲',\n '𝚳',\n '𝚴',\n '𝚵',\n '𝚶',\n '𝚷',\n '𝚸',\n '𝚺',\n '𝚻',\n '𝚼',\n '𝚽',\n '𝚾',\n '𝚿',\n '𝛀'\n];\nconst smallGreekBold = [\n '𝛂',\n '𝛃',\n '𝛄',\n '𝛅',\n '𝛆',\n '𝛇',\n '𝛈',\n '𝛉',\n '𝛊',\n '𝛋',\n '𝛌',\n '𝛍',\n '𝛎',\n '𝛏',\n '𝛐',\n '𝛑',\n '𝛒',\n '𝛓',\n '𝛔',\n '𝛕',\n '𝛖',\n '𝛗',\n '𝛘',\n '𝛙',\n '𝛚'\n];\nconst capitalGreekItalic = [\n '𝛢',\n '𝛣',\n '𝛤',\n '𝛥',\n '𝛦',\n '𝛧',\n '𝛨',\n '𝛩',\n '𝛪',\n '𝛫',\n '𝛬',\n '𝛭',\n '𝛮',\n '𝛯',\n '𝛰',\n '𝛱',\n '𝛲',\n '𝛴',\n '𝛵',\n '𝛶',\n '𝛷',\n '𝛸',\n '𝛹',\n '𝛺'\n];\nconst smallGreekItalic = [\n '𝛼',\n '𝛽',\n '𝛾',\n '𝛿',\n '𝜀',\n '𝜁',\n '𝜂',\n '𝜃',\n '𝜄',\n '𝜅',\n '𝜆',\n '𝜇',\n '𝜈',\n '𝜉',\n '𝜊',\n '𝜋',\n '𝜌',\n '𝜍',\n '𝜎',\n '𝜏',\n '𝜐',\n '𝜑',\n '𝜒',\n '𝜓',\n '𝜔'\n];\nconst capitalGreekBoldItalic = [\n '𝜜',\n '𝜝',\n '𝜞',\n '𝜟',\n '𝜠',\n '𝜡',\n '𝜢',\n '𝜣',\n '𝜤',\n '𝜥',\n '𝜦',\n '𝜧',\n '𝜨',\n '𝜩',\n '𝜪',\n '𝜫',\n '𝜬',\n '𝜮',\n '𝜯',\n '𝜰',\n '𝜱',\n '𝜲',\n '𝜳',\n '𝜴'\n];\nconst smallGreekBoldItalic = [\n '𝜶',\n '𝜷',\n '𝜸',\n '𝜹',\n '𝜺',\n '𝜻',\n '𝜼',\n '𝜽',\n '𝜾',\n '𝜿',\n '𝝀',\n '𝝁',\n '𝝂',\n '𝝃',\n '𝝄',\n '𝝅',\n '𝝆',\n '𝝇',\n '𝝈',\n '𝝉',\n '𝝊',\n '𝝋',\n '𝝌',\n '𝝍',\n '𝝎'\n];\nconst capitalGreekSansSerifBold = [\n '𝝖',\n '𝝗',\n '𝝘',\n '𝝙',\n '𝝚',\n '𝝛',\n '𝝜',\n '𝝝',\n '𝝞',\n '𝝟',\n '𝝠',\n '𝝡',\n '𝝢',\n '𝝣',\n '𝝤',\n '𝝥',\n '𝝦',\n '𝝨',\n '𝝩',\n '𝝪',\n '𝝫',\n '𝝬',\n '𝝭',\n '𝝮'\n];\nconst smallGreekSansSerifBold = [\n '𝝰',\n '𝝱',\n '𝝲',\n '𝝳',\n '𝝴',\n '𝝵',\n '𝝶',\n '𝝷',\n '𝝸',\n '𝝹',\n '𝝺',\n '𝝻',\n '𝝼',\n '𝝽',\n '𝝾',\n '𝝿',\n '𝞀',\n '𝞁',\n '𝞂',\n '𝞃',\n '𝞄',\n '𝞅',\n '𝞆',\n '𝞇',\n '𝞈'\n];\nconst capitalGreekSansSerifBoldItalic = [\n '𝞐',\n '𝞑',\n '𝞒',\n '𝞓',\n '𝞔',\n '𝞕',\n '𝞖',\n '𝞗',\n '𝞘',\n '𝞙',\n '𝞚',\n '𝞛',\n '𝞜',\n '𝞝',\n '𝞞',\n '𝞟',\n '𝞠',\n '𝞢',\n '𝞣',\n '𝞤',\n '𝞥',\n '𝞦',\n '𝞧',\n '𝞨'\n];\nconst smallGreekSansSerifBoldItalic = [\n '𝞪',\n '𝞫',\n '𝞬',\n '𝞭',\n '𝞮',\n '𝞯',\n '𝞰',\n '𝞱',\n '𝞲',\n '𝞳',\n '𝞴',\n '𝞵',\n '𝞶',\n '𝞷',\n '𝞸',\n '𝞹',\n '𝞺',\n '𝞻',\n '𝞼',\n '𝞽',\n '𝞾',\n '𝞿',\n '𝟀',\n '𝟁',\n '𝟂'\n];\nconst greekDoubleStruck = ['ℼ', 'ℽ', 'ℾ', 'ℿ'];\nconst greekSpecial = [\n 'ϐ',\n 'ϑ',\n 'ϕ',\n 'ϖ',\n 'ϗ',\n 'ϰ',\n 'ϱ',\n 'ϵ',\n '϶',\n 'ϴ'\n];\nconst greekSpecialBold = ['𝛜', '𝛝', '𝛞', '𝛟', '𝛠', '𝛡'];\nconst greekSpecialItalic = ['𝜖', '𝜗', '𝜘', '𝜙', '𝜚', '𝜛'];\nconst greekSpecialSansSerifBold = ['𝞊', '𝞋', '𝞌', '𝞍', '𝞎', '𝞏'];\nconst hebrewLetters = ['ℵ', 'ℶ', 'ℷ', 'ℸ'];\nconst allLetters = capitalLatin.concat(smallLatin, capitalLatinFullWidth, smallLatinFullWidth, capitalLatinBold, smallLatinBold, capitalLatinItalic, capitalLatinBoldItalic, smallLatinBoldItalic, smallLatinItalic, capitalLatinScript, smallLatinScript, capitalLatinBoldScript, smallLatinBoldScript, capitalLatinFraktur, smallLatinFraktur, capitalLatinDoubleStruck, smallLatinDoubleStruck, capitalLatinBoldFraktur, smallLatinBoldFraktur, capitalLatinSansSerif, smallLatinSansSerif, capitalLatinSansSerifBold, smallLatinSansSerifBold, capitalLatinSansSerifItalic, smallLatinSansSerifItalic, capitalLatinSansSerifBoldItalic, smallLatinSansSerifBoldItalic, capitalLatinMonospace, smallLatinMonospace, latinDoubleStruckItalic, capitalGreek, smallGreek, capitalGreekBold, smallGreekBold, capitalGreekItalic, smallGreekItalic, capitalGreekBoldItalic, smallGreekBoldItalic, capitalGreekSansSerifBold, smallGreekSansSerifBold, greekDoubleStruck, greekSpecial, capitalGreekSansSerifBoldItalic, smallGreekSansSerifBoldItalic, greekSpecialBold, greekSpecialItalic, greekSpecialSansSerifBold, hebrewLetters);\nexports.allLettersRegExp = new RegExp(allLetters.join('|'));\nconst additions = [\n '+',\n '±',\n '∓',\n '∔',\n '∧',\n '∨',\n '∩',\n '∪',\n '⊌',\n '⊍',\n '⊎',\n '⊓',\n '⊔',\n '⊝',\n '⊞',\n '⊤',\n '⊥',\n '⊺',\n '⊻',\n '⊼',\n '⋄',\n '⋎',\n '⋏',\n '⋒',\n '⋓',\n '⩞',\n '⊕',\n '⋔'\n];\nconst invisiblePlus_ = String.fromCodePoint(0x2064);\nadditions.push(invisiblePlus_);\nconst multiplications = [\n '†',\n '‡',\n '∐',\n '∗',\n '∘',\n '∙',\n '≀',\n '⊚',\n '⊛',\n '⊠',\n '⊡',\n '⋅',\n '⋆',\n '⋇',\n '⋈',\n '⋉',\n '⋊',\n '⋋',\n '⋌',\n '○',\n '·',\n '*',\n '⊗',\n '⊙'\n];\nconst invisibleTimes_ = String.fromCodePoint(0x2062);\nmultiplications.push(invisibleTimes_);\nconst subtractions = [\n '¯',\n '-',\n '⁒',\n '⁻',\n '₋',\n '−',\n '∖',\n '∸',\n '≂',\n '⊖',\n '⊟',\n '➖',\n '⨩',\n '⨪',\n '⨫',\n '⨬',\n '⨺',\n '⩁',\n '﹣',\n '-',\n '‐',\n '‑'\n];\nconst divisions = ['/', '÷', '⁄', '∕', '⊘', '⟌', '⦼', '⨸'];\nconst functionApplication_ = String.fromCodePoint(0x2061);\nconst equalities = [\n '=',\n '~',\n '⁼',\n '₌',\n '∼',\n '∽',\n '≃',\n '≅',\n '≈',\n '≊',\n '≋',\n '≌',\n '≍',\n '≎',\n '≑',\n '≒',\n '≓',\n '≔',\n '≕',\n '≖',\n '≗',\n '≘',\n '≙',\n '≚',\n '≛',\n '≜',\n '≝',\n '≞',\n '≟',\n '≡',\n '≣',\n '⧤',\n '⩦',\n '⩮',\n '⩯',\n '⩰',\n '⩱',\n '⩲',\n '⩳',\n '⩴',\n '⩵',\n '⩶',\n '⩷',\n '⩸',\n '⋕',\n '⩭',\n '⩪',\n '⩫',\n '⩬',\n '﹦',\n '=',\n '⩬',\n '⊜',\n '∷'\n];\nconst inequalities = [\n '<',\n '>',\n '≁',\n '≂',\n '≄',\n '≆',\n '≇',\n '≉',\n '≏',\n '≐',\n '≠',\n '≢',\n '≤',\n '≥',\n '≦',\n '≧',\n '≨',\n '≩',\n '≪',\n '≫',\n '≬',\n '≭',\n '≮',\n '≯',\n '≰',\n '≱',\n '≲',\n '≳',\n '≴',\n '≵',\n '≶',\n '≷',\n '≸',\n '≹',\n '≺',\n '≻',\n '≼',\n '≽',\n '≾',\n '≿',\n '⊀',\n '⊁',\n '⋖',\n '⋗',\n '⋘',\n '⋙',\n '⋚',\n '⋛',\n '⋜',\n '⋝',\n '⋞',\n '⋟',\n '⋠',\n '⋡',\n '⋦',\n '⋧',\n '⋨',\n '⋩',\n '⩹',\n '⩺',\n '⩻',\n '⩼',\n '⩽',\n '⩾',\n '⩿',\n '⪀',\n '⪁',\n '⪂',\n '⪃',\n '⪄',\n '⪅',\n '⪆',\n '⪇',\n '⪈',\n '⪉',\n '⪊',\n '⪋',\n '⪌',\n '⪍',\n '⪎',\n '⪏',\n '⪐',\n '⪑',\n '⪒',\n '⪓',\n '⪔',\n '⪕',\n '⪖',\n '⪗',\n '⪘',\n '⪙',\n '⪚',\n '⪛',\n '⪜',\n '⪝',\n '⪞',\n '⪟',\n '⪠',\n '⪡',\n '⪢',\n '⪣',\n '⪤',\n '⪥',\n '⪦',\n '⪧',\n '⪨',\n '⪩',\n '⪪',\n '⪫',\n '⪬',\n '⪭',\n '⪮',\n '⪯',\n '⪰',\n '⪱',\n '⪲',\n '⪳',\n '⪴',\n '⪵',\n '⪶',\n '⪷',\n '⪸',\n '⪹',\n '⪺',\n '⪻',\n '⪼',\n '⫷',\n '⫸',\n '⫹',\n '⫺',\n '⧀',\n '⧁',\n '﹤',\n '﹥',\n '<',\n '>'\n];\nconst setRelations = [\n '⋢',\n '⋣',\n '⋤',\n '⋥',\n '⊂',\n '⊃',\n '⊄',\n '⊅',\n '⊆',\n '⊇',\n '⊈',\n '⊉',\n '⊊',\n '⊋',\n '⊏',\n '⊐',\n '⊑',\n '⊒',\n '⪽',\n '⪾',\n '⪿',\n '⫀',\n '⫁',\n '⫂',\n '⫃',\n '⫄',\n '⫅',\n '⫆',\n '⫇',\n '⫈',\n '⫉',\n '⫊',\n '⫋',\n '⫌',\n '⫍',\n '⫎',\n '⫏',\n '⫐',\n '⫑',\n '⫒',\n '⫓',\n '⫔',\n '⫕',\n '⫖',\n '⫗',\n '⫘',\n '⋐',\n '⋑',\n '⋪',\n '⋫',\n '⋬',\n '⋭',\n '⊲',\n '⊳',\n '⊴',\n '⊵'\n];\nconst elementRelations = [\n '∈',\n '∊',\n '⋲',\n '⋳',\n '⋴',\n '⋵',\n '⋶',\n '⋷',\n '⋸',\n '⋹',\n '⋿'\n];\nconst nonelementRelations = ['∉'];\nconst reelementRelations = ['∋', '∍', '⋺', '⋻', '⋼', '⋽', '⋾'];\nconst renonelementRelations = ['∌'];\nconst relations = [\n '⊢',\n '⊣',\n '⊦',\n '⊧',\n '⊨',\n '⊩',\n '⊪',\n '⊫',\n '⊬',\n '⊭',\n '⊮',\n '⊯',\n '⫞',\n '⫟',\n '⫠',\n '⫡',\n '⫢',\n '⫣',\n '⫤',\n '⫥',\n '⫦',\n '⫧',\n '⫨',\n '⫩',\n '⫪',\n '⫫',\n '⫬',\n '⫭'\n];\nconst arrows = [\n '←',\n '↑',\n '→',\n '↓',\n '↔',\n '↕',\n '↖',\n '↗',\n '↘',\n '↙',\n '↚',\n '↛',\n '↜',\n '↝',\n '↞',\n '↟',\n '↠',\n '↡',\n '↢',\n '↣',\n '↤',\n '↥',\n '↦',\n '↧',\n '↨',\n '↩',\n '↪',\n '↫',\n '↬',\n '↭',\n '↮',\n '↯',\n '↰',\n '↱',\n '↲',\n '↳',\n '↴',\n '↵',\n '↶',\n '↷',\n '↸',\n '↹',\n '↺',\n '↻',\n '⇄',\n '⇅',\n '⇆',\n '⇇',\n '⇈',\n '⇉',\n '⇊',\n '⇍',\n '⇎',\n '⇏',\n '⇐',\n '⇑',\n '⇒',\n '⇓',\n '⇔',\n '⇕',\n '⇖',\n '⇗',\n '⇘',\n '⇙',\n '⇚',\n '⇛',\n '⇜',\n '⇝',\n '⇞',\n '⇟',\n '⇠',\n '⇡',\n '⇢',\n '⇣',\n '⇤',\n '⇥',\n '⇦',\n '⇧',\n '⇨',\n '⇩',\n '⇪',\n '⇫',\n '⇬',\n '⇭',\n '⇮',\n '⇯',\n '⇰',\n '⇱',\n '⇲',\n '⇳',\n '⇴',\n '⇵',\n '⇶',\n '⇷',\n '⇸',\n '⇹',\n '⇺',\n '⇻',\n '⇼',\n '⇽',\n '⇾',\n '⇿',\n '⌁',\n '⌃',\n '⌄',\n '⌤',\n '⎋',\n '➔',\n '➘',\n '➙',\n '➚',\n '➛',\n '➜',\n '➝',\n '➞',\n '➟',\n '➠',\n '➡',\n '➢',\n '➣',\n '➤',\n '➥',\n '➦',\n '➧',\n '➨',\n '➩',\n '➪',\n '➫',\n '➬',\n '➭',\n '➮',\n '➯',\n '➱',\n '➲',\n '➳',\n '➴',\n '➵',\n '➶',\n '➷',\n '➸',\n '➹',\n '➺',\n '➻',\n '➼',\n '➽',\n '➾',\n '⟰',\n '⟱',\n '⟲',\n '⟳',\n '⟴',\n '⟵',\n '⟶',\n '⟷',\n '⟸',\n '⟹',\n '⟺',\n '⟻',\n '⟼',\n '⟽',\n '⟾',\n '⟿',\n '⤀',\n '⤁',\n '⤂',\n '⤃',\n '⤄',\n '⤅',\n '⤆',\n '⤇',\n '⤈',\n '⤉',\n '⤊',\n '⤋',\n '⤌',\n '⤍',\n '⤎',\n '⤏',\n '⤐',\n '⤑',\n '⤒',\n '⤓',\n '⤔',\n '⤕',\n '⤖',\n '⤗',\n '⤘',\n '⤙',\n '⤚',\n '⤛',\n '⤜',\n '⤝',\n '⤞',\n '⤟',\n '⤠',\n '⤡',\n '⤢',\n '⤣',\n '⤤',\n '⤥',\n '⤦',\n '⤧',\n '⤨',\n '⤩',\n '⤪',\n '⤭',\n '⤮',\n '⤯',\n '⤰',\n '⤱',\n '⤲',\n '⤳',\n '⤴',\n '⤵',\n '⤶',\n '⤷',\n '⤸',\n '⤹',\n '⤺',\n '⤻',\n '⤼',\n '⤽',\n '⤾',\n '⤿',\n '⥀',\n '⥁',\n '⥂',\n '⥃',\n '⥄',\n '⥅',\n '⥆',\n '⥇',\n '⥈',\n '⥉',\n '⥰',\n '⥱',\n '⥲',\n '⥳',\n '⥴',\n '⥵',\n '⥶',\n '⥷',\n '⥸',\n '⥹',\n '⥺',\n '⥻',\n '⦳',\n '⦴',\n '⦽',\n '⧪',\n '⧬',\n '⧭',\n '⨗',\n '⬀',\n '⬁',\n '⬂',\n '⬃',\n '⬄',\n '⬅',\n '⬆',\n '⬇',\n '⬈',\n '⬉',\n '⬊',\n '⬋',\n '⬌',\n '⬍',\n '⬎',\n '⬏',\n '⬐',\n '⬑',\n '⬰',\n '⬱',\n '⬲',\n '⬳',\n '⬴',\n '⬵',\n '⬶',\n '⬷',\n '⬸',\n '⬹',\n '⬺',\n '⬻',\n '⬼',\n '⬽',\n '⬾',\n '⬿',\n '⭀',\n '⭁',\n '⭂',\n '⭃',\n '⭄',\n '⭅',\n '⭆',\n '⭇',\n '⭈',\n '⭉',\n '⭊',\n '⭋',\n '⭌',\n '←',\n '↑',\n '→',\n '↓',\n '↼',\n '↽',\n '↾',\n '↿',\n '⇀',\n '⇁',\n '⇂',\n '⇃',\n '⇋',\n '⇌',\n '⥊',\n '⥋',\n '⥌',\n '⥍',\n '⥎',\n '⥏',\n '⥐',\n '⥑',\n '⥒',\n '⥓',\n '⥔',\n '⥕',\n '⥖',\n '⥗',\n '⥘',\n '⥙',\n '⥚',\n '⥛',\n '⥜',\n '⥝',\n '⥞',\n '⥟',\n '⥠',\n '⥡',\n '⥢',\n '⥣',\n '⥤',\n '⥥',\n '⥦',\n '⥧',\n '⥨',\n '⥩',\n '⥪',\n '⥫',\n '⥬',\n '⥭',\n '⥮',\n '⥯',\n '⥼',\n '⥽',\n '⥾',\n '⥿'\n];\nconst sumOps = [\n '⅀',\n '∏',\n '∐',\n '∑',\n '⋀',\n '⋁',\n '⋂',\n '⋃',\n '⨀',\n '⨁',\n '⨂',\n '⨃',\n '⨄',\n '⨅',\n '⨆',\n '⨇',\n '⨈',\n '⨉',\n '⨊',\n '⨋',\n '⫼',\n '⫿'\n];\nconst intOps = [\n '∫',\n '∬',\n '∭',\n '∮',\n '∯',\n '∰',\n '∱',\n '∲',\n '∳',\n '⨌',\n '⨍',\n '⨎',\n '⨏',\n '⨐',\n '⨑',\n '⨒',\n '⨓',\n '⨔',\n '⨕',\n '⨖',\n '⨗',\n '⨘',\n '⨙',\n '⨚',\n '⨛',\n '⨜'\n];\nconst geometryOps = [\n '∟',\n '∠',\n '∡',\n '∢',\n '⊾',\n '⊿',\n '△',\n '▷',\n '▽',\n '◁'\n];\nconst prefixOps = ['∀', '∃', '∆', '∇', '∂', '∁', '∄'];\nconst prefixOpsBold = ['𝛁', '𝛛', '𝟊', '𝟋'];\nconst prefixOpsItalic = ['𝛻', '𝜕'];\nconst prefixOpsSansSerifBold = ['𝝯', '𝞉'];\nconst digitsNormal = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9'\n];\nconst digitsFullWidth = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9'\n];\nconst digitsBold = ['𝟎', '𝟏', '𝟐', '𝟑', '𝟒', '𝟓', '𝟔', '𝟕', '𝟖', '𝟗'];\nconst digitsDoubleStruck = [\n '𝟘',\n '𝟙',\n '𝟚',\n '𝟛',\n '𝟜',\n '𝟝',\n '𝟞',\n '𝟟',\n '𝟠',\n '𝟡'\n];\nconst digitsSansSerif = [\n '𝟢',\n '𝟣',\n '𝟤',\n '𝟥',\n '𝟦',\n '𝟧',\n '𝟨',\n '𝟩',\n '𝟪',\n '𝟫'\n];\nconst digitsSansSerifBold = [\n '𝟬',\n '𝟭',\n '𝟮',\n '𝟯',\n '𝟰',\n '𝟱',\n '𝟲',\n '𝟳',\n '𝟴',\n '𝟵'\n];\nconst digitsMonospace = [\n '𝟶',\n '𝟷',\n '𝟸',\n '𝟹',\n '𝟺',\n '𝟻',\n '𝟼',\n '𝟽',\n '𝟾',\n '𝟿'\n];\nconst digitsSuperscript = [\n '²',\n '³',\n '¹',\n '⁰',\n '⁴',\n '⁵',\n '⁶',\n '⁷',\n '⁸',\n '⁹'\n];\nconst digitsSubscript = [\n '₀',\n '₁',\n '₂',\n '₃',\n '₄',\n '₅',\n '₆',\n '₇',\n '₈',\n '₉'\n];\nconst fractions = [\n '¼',\n '½',\n '¾',\n '⅐',\n '⅑',\n '⅒',\n '⅓',\n '⅔',\n '⅕',\n '⅖',\n '⅗',\n '⅘',\n '⅙',\n '⅚',\n '⅛',\n '⅜',\n '⅝',\n '⅞',\n '⅟',\n '↉'\n];\nconst enclosedNumbers = [\n '①',\n '②',\n '③',\n '④',\n '⑤',\n '⑥',\n '⑦',\n '⑧',\n '⑨',\n '⑩',\n '⑪',\n '⑫',\n '⑬',\n '⑭',\n '⑮',\n '⑯',\n '⑰',\n '⑱',\n '⑲',\n '⑳',\n '⓪',\n '⓫',\n '⓬',\n '⓭',\n '⓮',\n '⓯',\n '⓰',\n '⓱',\n '⓲',\n '⓳',\n '⓴',\n '⓵',\n '⓶',\n '⓷',\n '⓸',\n '⓹',\n '⓺',\n '⓻',\n '⓼',\n '⓽',\n '⓾',\n '⓿',\n '❶',\n '❷',\n '❸',\n '❹',\n '❺',\n '❻',\n '❼',\n '❽',\n '❾',\n '❿',\n '➀',\n '➁',\n '➂',\n '➃',\n '➄',\n '➅',\n '➆',\n '➇',\n '➈',\n '➉',\n '➊',\n '➋',\n '➌',\n '➍',\n '➎',\n '➏',\n '➐',\n '➑',\n '➒',\n '➓',\n '㉈',\n '㉉',\n '㉊',\n '㉋',\n '㉌',\n '㉍',\n '㉎',\n '㉏',\n '㉑',\n '㉒',\n '㉓',\n '㉔',\n '㉕',\n '㉖',\n '㉗',\n '㉘',\n '㉙',\n '㉚',\n '㉛',\n '㉜',\n '㉝',\n '㉞',\n '㉟',\n '㊱',\n '㊲',\n '㊳',\n '㊴',\n '㊵',\n '㊶',\n '㊷',\n '㊸',\n '㊹',\n '㊺',\n '㊻',\n '㊼',\n '㊽',\n '㊾',\n '㊿'\n];\nconst fencedNumbers = [\n '⑴',\n '⑵',\n '⑶',\n '⑷',\n '⑸',\n '⑹',\n '⑺',\n '⑻',\n '⑼',\n '⑽',\n '⑾',\n '⑿',\n '⒀',\n '⒁',\n '⒂',\n '⒃',\n '⒄',\n '⒅',\n '⒆',\n '⒇'\n];\nconst punctuatedNumbers = [\n '⒈',\n '⒉',\n '⒊',\n '⒋',\n '⒌',\n '⒍',\n '⒎',\n '⒏',\n '⒐',\n '⒑',\n '⒒',\n '⒓',\n '⒔',\n '⒕',\n '⒖',\n '⒗',\n '⒘',\n '⒙',\n '⒚',\n '⒛',\n '🄀',\n '🄁',\n '🄂',\n '🄃',\n '🄄',\n '🄅',\n '🄆',\n '🄇',\n '🄈',\n '🄉',\n '🄊'\n];\nconst numbers = fractions;\nconst otherNumbers = digitsSuperscript.concat(digitsSubscript, enclosedNumbers, fencedNumbers, punctuatedNumbers);\nconst trigonometricFunctions = [\n 'cos',\n 'cot',\n 'csc',\n 'sec',\n 'sin',\n 'tan',\n 'arccos',\n 'arccot',\n 'arccsc',\n 'arcsec',\n 'arcsin',\n 'arctan',\n 'arc cos',\n 'arc cot',\n 'arc csc',\n 'arc sec',\n 'arc sin',\n 'arc tan'\n];\nconst hyperbolicFunctions = [\n 'cosh',\n 'coth',\n 'csch',\n 'sech',\n 'sinh',\n 'tanh',\n 'arcosh',\n 'arcoth',\n 'arcsch',\n 'arsech',\n 'arsinh',\n 'artanh',\n 'arccosh',\n 'arccoth',\n 'arccsch',\n 'arcsech',\n 'arcsinh',\n 'arctanh'\n];\nconst algebraicFunctions = [\n 'deg',\n 'det',\n 'dim',\n 'hom',\n 'ker',\n 'Tr',\n 'tr'\n];\nconst elementaryFunctions = [\n 'log',\n 'ln',\n 'lg',\n 'exp',\n 'expt',\n 'gcd',\n 'gcd',\n 'arg',\n 'im',\n 're',\n 'Pr'\n];\nconst prefixFunctions = trigonometricFunctions.concat(hyperbolicFunctions, algebraicFunctions, elementaryFunctions);\nconst limitFunctions = [\n 'inf',\n 'lim',\n 'liminf',\n 'limsup',\n 'max',\n 'min',\n 'sup',\n 'injlim',\n 'projlim',\n 'inj lim',\n 'proj lim'\n];\nconst infixFunctions = ['mod', 'rem'];\nconst symbolSetToSemantic_ = [\n {\n set: generalPunctuations,\n type: \"punctuation\",\n role: \"unknown\"\n },\n {\n set: colons,\n type: \"punctuation\",\n role: \"colon\"\n },\n {\n set: commas,\n type: \"punctuation\",\n role: \"comma\"\n },\n {\n set: ellipses,\n type: \"punctuation\",\n role: \"ellipsis\"\n },\n {\n set: fullStops,\n type: \"punctuation\",\n role: \"fullstop\"\n },\n {\n set: dashes,\n type: \"operator\",\n role: \"dash\"\n },\n {\n set: tildes,\n type: \"operator\",\n role: \"tilde\"\n },\n {\n set: primes,\n type: \"punctuation\",\n role: \"prime\"\n },\n {\n set: degrees,\n type: \"punctuation\",\n role: \"degree\"\n },\n {\n set: leftFences,\n type: \"fence\",\n role: \"open\"\n },\n {\n set: rightFences,\n type: \"fence\",\n role: \"close\"\n },\n {\n set: topFences,\n type: \"fence\",\n role: \"top\"\n },\n {\n set: bottomFences,\n type: \"fence\",\n role: \"bottom\"\n },\n {\n set: neutralFences,\n type: \"fence\",\n role: \"neutral\"\n },\n {\n set: metricFences,\n type: \"fence\",\n role: \"metric\"\n },\n {\n set: smallLatin,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"normal\"\n },\n {\n set: capitalLatin,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"normal\"\n },\n {\n set: smallLatinFullWidth,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"normal\"\n },\n {\n set: capitalLatinFullWidth,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"normal\"\n },\n {\n set: smallLatinBold,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"bold\"\n },\n {\n set: capitalLatinBold,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"bold\"\n },\n {\n set: smallLatinItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"italic\"\n },\n {\n set: capitalLatinItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"italic\"\n },\n {\n set: smallLatinBoldItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"bold-italic\"\n },\n {\n set: capitalLatinBoldItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"bold-italic\"\n },\n {\n set: smallLatinScript,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"script\"\n },\n {\n set: capitalLatinScript,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"script\"\n },\n {\n set: smallLatinBoldScript,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"bold-script\"\n },\n {\n set: capitalLatinBoldScript,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"bold-script\"\n },\n {\n set: smallLatinFraktur,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"fraktur\"\n },\n {\n set: capitalLatinFraktur,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"fraktur\"\n },\n {\n set: smallLatinDoubleStruck,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"double-struck\"\n },\n {\n set: capitalLatinDoubleStruck,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"double-struck\"\n },\n {\n set: smallLatinBoldFraktur,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"bold-fraktur\"\n },\n {\n set: capitalLatinBoldFraktur,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"bold-fraktur\"\n },\n {\n set: smallLatinSansSerif,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"sans-serif\"\n },\n {\n set: capitalLatinSansSerif,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"sans-serif\"\n },\n {\n set: smallLatinSansSerifBold,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"sans-serif-bold\"\n },\n {\n set: capitalLatinSansSerifBold,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"sans-serif-bold\"\n },\n {\n set: smallLatinSansSerifItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"sans-serif-italic\"\n },\n {\n set: capitalLatinSansSerifItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"sans-serif-italic\"\n },\n {\n set: smallLatinSansSerifBoldItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"sans-serif-bold-italic\"\n },\n {\n set: capitalLatinSansSerifBoldItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"sans-serif-bold-italic\"\n },\n {\n set: smallLatinMonospace,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"monospace\"\n },\n {\n set: capitalLatinMonospace,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"monospace\"\n },\n {\n set: latinDoubleStruckItalic,\n type: \"identifier\",\n role: \"latinletter\",\n font: \"double-struck-italic\"\n },\n {\n set: smallGreek,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"normal\"\n },\n {\n set: capitalGreek,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"normal\"\n },\n {\n set: smallGreekBold,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"bold\"\n },\n {\n set: capitalGreekBold,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"bold\"\n },\n {\n set: smallGreekItalic,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"italic\"\n },\n {\n set: capitalGreekItalic,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"italic\"\n },\n {\n set: smallGreekBoldItalic,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"bold-italic\"\n },\n {\n set: capitalGreekBoldItalic,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"bold-italic\"\n },\n {\n set: smallGreekSansSerifBold,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"sans-serif-bold\"\n },\n {\n set: capitalGreekSansSerifBold,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"sans-serif-bold\"\n },\n {\n set: capitalGreekSansSerifBoldItalic,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"sans-serif-bold-italic\"\n },\n {\n set: smallGreekSansSerifBoldItalic,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"sans-serif-bold-italic\"\n },\n {\n set: greekDoubleStruck,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"double-struck\"\n },\n {\n set: greekSpecial,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"normal\"\n },\n {\n set: greekSpecialBold,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"bold\"\n },\n {\n set: greekSpecialItalic,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"italic\"\n },\n {\n set: greekSpecialSansSerifBold,\n type: \"identifier\",\n role: \"greekletter\",\n font: \"sans-serif-bold\"\n },\n {\n set: hebrewLetters,\n type: \"identifier\",\n role: \"otherletter\",\n font: \"normal\"\n },\n {\n set: digitsNormal,\n type: \"number\",\n role: \"integer\",\n font: \"normal\"\n },\n {\n set: digitsFullWidth,\n type: \"number\",\n role: \"integer\",\n font: \"normal\"\n },\n {\n set: digitsBold,\n type: \"number\",\n role: \"integer\",\n font: \"bold\"\n },\n {\n set: digitsDoubleStruck,\n type: \"number\",\n role: \"integer\",\n font: \"double-struck\"\n },\n {\n set: digitsSansSerif,\n type: \"number\",\n role: \"integer\",\n font: \"sans-serif\"\n },\n {\n set: digitsSansSerifBold,\n type: \"number\",\n role: \"integer\",\n font: \"sans-serif-bold\"\n },\n {\n set: digitsMonospace,\n type: \"number\",\n role: \"integer\",\n font: \"monospace\"\n },\n {\n set: numbers,\n type: \"number\",\n role: \"float\"\n },\n {\n set: otherNumbers,\n type: \"number\",\n role: \"othernumber\"\n },\n {\n set: additions,\n type: \"operator\",\n role: \"addition\"\n },\n {\n set: multiplications,\n type: \"operator\",\n role: \"multiplication\"\n },\n {\n set: subtractions,\n type: \"operator\",\n role: \"subtraction\"\n },\n {\n set: divisions,\n type: \"operator\",\n role: \"division\"\n },\n {\n set: prefixOps,\n type: \"operator\",\n role: \"prefix operator\"\n },\n {\n set: prefixOpsBold,\n type: \"operator\",\n role: \"prefix operator\",\n font: \"bold\"\n },\n {\n set: prefixOpsItalic,\n type: \"operator\",\n role: \"prefix operator\",\n font: \"italic\"\n },\n {\n set: prefixOpsSansSerifBold,\n type: \"operator\",\n role: \"prefix operator\",\n font: \"sans-serif-bold\"\n },\n {\n set: equalities,\n type: \"relation\",\n role: \"equality\"\n },\n {\n set: inequalities,\n type: \"relation\",\n role: \"inequality\"\n },\n {\n set: setRelations,\n type: \"relation\",\n role: \"set\"\n },\n {\n set: relations,\n type: \"relation\",\n role: \"unknown\"\n },\n {\n set: arrows,\n type: \"relation\",\n role: \"arrow\"\n },\n {\n set: elementRelations,\n type: \"operator\",\n role: \"element\"\n },\n {\n set: nonelementRelations,\n type: \"operator\",\n role: \"nonelement\"\n },\n {\n set: reelementRelations,\n type: \"operator\",\n role: \"reelement\"\n },\n {\n set: renonelementRelations,\n type: \"operator\",\n role: \"renonelement\"\n },\n {\n set: sumOps,\n type: \"largeop\",\n role: \"sum\"\n },\n {\n set: intOps,\n type: \"largeop\",\n role: \"integral\"\n },\n {\n set: geometryOps,\n type: \"operator\",\n role: \"geometry\"\n },\n {\n set: limitFunctions,\n type: \"function\",\n role: \"limit function\"\n },\n {\n set: prefixFunctions,\n type: \"function\",\n role: \"prefix function\"\n },\n {\n set: infixFunctions,\n type: \"operator\",\n role: \"prefix function\"\n }\n];\nconst meaning_ = (function () {\n const result = {};\n for (let i = 0, st; (st = symbolSetToSemantic_[i]); i++) {\n st.set.forEach(function (symbol) {\n result[symbol] = {\n role: st.role || \"unknown\",\n type: st.type || \"unknown\",\n font: st.font || \"unknown\"\n };\n });\n }\n return result;\n})();\nfunction equal(meaning1, meaning2) {\n return (meaning1.type === meaning2.type &&\n meaning1.role === meaning2.role &&\n meaning1.font === meaning2.font);\n}\nexports.equal = equal;\nfunction lookupType(symbol) {\n var _a;\n return ((_a = meaning_[symbol]) === null || _a === void 0 ? void 0 : _a.type) || \"unknown\";\n}\nexports.lookupType = lookupType;\nfunction lookupRole(symbol) {\n var _a;\n return ((_a = meaning_[symbol]) === null || _a === void 0 ? void 0 : _a.role) || \"unknown\";\n}\nexports.lookupRole = lookupRole;\nfunction lookupMeaning(symbol) {\n return (meaning_[symbol] || {\n role: \"unknown\",\n type: \"unknown\",\n font: \"unknown\"\n });\n}\nexports.lookupMeaning = lookupMeaning;\nfunction invisibleTimes() {\n return invisibleTimes_;\n}\nexports.invisibleTimes = invisibleTimes;\nfunction invisiblePlus() {\n return invisiblePlus_;\n}\nexports.invisiblePlus = invisiblePlus;\nfunction invisibleComma() {\n return invisibleComma_;\n}\nexports.invisibleComma = invisibleComma;\nfunction functionApplication() {\n return functionApplication_;\n}\nexports.functionApplication = functionApplication;\nfunction isMatchingFence(open, close) {\n if (neutralFences.indexOf(open) !== -1 || metricFences.indexOf(open) !== -1) {\n return open === close;\n }\n return openClosePairs[open] === close || topBottomPairs[open] === close;\n}\nexports.isMatchingFence = isMatchingFence;\nfunction isEmbellishedType(type) {\n return (type === \"operator\" ||\n type === \"relation\" ||\n type === \"fence\" ||\n type === \"punctuation\");\n}\nexports.isEmbellishedType = isEmbellishedType;\nconst secondary_ = new Map();\nfunction secKey(kind, char) {\n return `${kind} ${char}`;\n}\nfunction addSecondary_(kind, chars, annotation = '') {\n for (const char of chars) {\n secondary_.set(secKey(kind, char), annotation || kind);\n }\n}\naddSecondary_('d', [\n 'd',\n 'ⅆ',\n 'd',\n '𝐝',\n '𝑑',\n '𝒹',\n '𝓭',\n '𝔡',\n '𝕕',\n '𝖉',\n '𝖽',\n '𝗱',\n '𝘥',\n '𝚍'\n]);\naddSecondary_('bar', dashes);\naddSecondary_('tilde', tildes);\nfunction lookupSecondary(kind, char) {\n return secondary_.get(secKey(kind, char));\n}\nexports.lookupSecondary = lookupSecondary;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticMeaningCollator = exports.SemanticNodeCollator = exports.SemanticDefault = void 0;\nconst SemanticAttr = require(\"./semantic_attr\");\nconst semantic_ordering_1 = require(\"./semantic_ordering\");\nclass SemanticDefault {\n constructor() {\n this.map = {};\n }\n static key(symbol, font) {\n return font ? symbol + ':' + font : symbol;\n }\n add(symbol, meaning) {\n this.map[SemanticDefault.key(symbol, meaning.font)] = meaning;\n }\n addNode(node) {\n this.add(node.textContent, node.meaning());\n }\n retrieve(symbol, font) {\n return this.map[SemanticDefault.key(symbol, font)];\n }\n retrieveNode(node) {\n return this.retrieve(node.textContent, node.font);\n }\n size() {\n return Object.keys(this.map).length;\n }\n}\nexports.SemanticDefault = SemanticDefault;\nclass SemanticCollator {\n constructor() {\n this.map = {};\n }\n add(symbol, entry) {\n const list = this.map[symbol];\n if (list) {\n list.push(entry);\n }\n else {\n this.map[symbol] = [entry];\n }\n }\n retrieve(symbol, font) {\n return this.map[SemanticDefault.key(symbol, font)];\n }\n retrieveNode(node) {\n return this.retrieve(node.textContent, node.font);\n }\n copy() {\n const collator = this.copyCollator();\n for (const key in this.map) {\n collator.map[key] = this.map[key];\n }\n return collator;\n }\n minimize() {\n for (const key in this.map) {\n if (this.map[key].length === 1) {\n delete this.map[key];\n }\n }\n }\n minimalCollator() {\n const collator = this.copy();\n for (const key in collator.map) {\n if (collator.map[key].length === 1) {\n delete collator.map[key];\n }\n }\n return collator;\n }\n isMultiValued() {\n for (const key in this.map) {\n if (this.map[key].length > 1) {\n return true;\n }\n }\n return false;\n }\n isEmpty() {\n return !Object.keys(this.map).length;\n }\n}\nclass SemanticNodeCollator extends SemanticCollator {\n copyCollator() {\n return new SemanticNodeCollator();\n }\n add(symbol, entry) {\n const key = SemanticDefault.key(symbol, entry.font);\n super.add(key, entry);\n }\n addNode(node) {\n this.add(node.textContent, node);\n }\n toString() {\n const outer = [];\n for (const key in this.map) {\n const length = Array(key.length + 3).join(' ');\n const nodes = this.map[key];\n const inner = [];\n for (let i = 0, node; (node = nodes[i]); i++) {\n inner.push(node.toString());\n }\n outer.push(key + ': ' + inner.join('\\n' + length));\n }\n return outer.join('\\n');\n }\n collateMeaning() {\n const collator = new SemanticMeaningCollator();\n for (const key in this.map) {\n collator.map[key] = this.map[key].map(function (node) {\n return node.meaning();\n });\n }\n return collator;\n }\n}\nexports.SemanticNodeCollator = SemanticNodeCollator;\nclass SemanticMeaningCollator extends SemanticCollator {\n copyCollator() {\n return new SemanticMeaningCollator();\n }\n add(symbol, entry) {\n const list = this.retrieve(symbol, entry.font);\n if (!list ||\n !list.find(function (x) {\n return SemanticAttr.equal(x, entry);\n })) {\n const key = SemanticDefault.key(symbol, entry.font);\n super.add(key, entry);\n }\n }\n addNode(node) {\n this.add(node.textContent, node.meaning());\n }\n toString() {\n const outer = [];\n for (const key in this.map) {\n const length = Array(key.length + 3).join(' ');\n const nodes = this.map[key];\n const inner = [];\n for (let i = 0, node; (node = nodes[i]); i++) {\n inner.push('{type: ' +\n node.type +\n ', role: ' +\n node.role +\n ', font: ' +\n node.font +\n '}');\n }\n outer.push(key + ': ' + inner.join('\\n' + length));\n }\n return outer.join('\\n');\n }\n reduce() {\n for (const key in this.map) {\n if (this.map[key].length !== 1) {\n this.map[key] = (0, semantic_ordering_1.reduce)(this.map[key]);\n }\n }\n }\n default() {\n const def = new SemanticDefault();\n for (const key in this.map) {\n if (this.map[key].length === 1) {\n def.map[key] = this.map[key][0];\n }\n }\n return def;\n }\n newDefault() {\n const oldDefault = this.default();\n this.reduce();\n const newDefault = this.default();\n return oldDefault.size() !== newDefault.size() ? newDefault : null;\n }\n}\nexports.SemanticMeaningCollator = SemanticMeaningCollator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticMultiHeuristic = exports.SemanticTreeHeuristic = exports.SemanticAbstractHeuristic = void 0;\nclass SemanticAbstractHeuristic {\n constructor(name, method, predicate = (_x) => false) {\n this.name = name;\n this.apply = method;\n this.applicable = predicate;\n }\n}\nexports.SemanticAbstractHeuristic = SemanticAbstractHeuristic;\nclass SemanticTreeHeuristic extends SemanticAbstractHeuristic {\n}\nexports.SemanticTreeHeuristic = SemanticTreeHeuristic;\nclass SemanticMultiHeuristic extends SemanticAbstractHeuristic {\n}\nexports.SemanticMultiHeuristic = SemanticMultiHeuristic;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookup = exports.run = exports.add = exports.blacklist = exports.flags = exports.updateFactory = exports.factory = void 0;\nexports.factory = null;\nfunction updateFactory(nodeFactory) {\n exports.factory = nodeFactory;\n}\nexports.updateFactory = updateFactory;\nconst heuristics = new Map();\nexports.flags = {\n combine_juxtaposition: true,\n convert_juxtaposition: true,\n multioperator: true\n};\nexports.blacklist = {};\nfunction add(heuristic) {\n const name = heuristic.name;\n heuristics.set(name, heuristic);\n if (!exports.flags[name]) {\n exports.flags[name] = false;\n }\n}\nexports.add = add;\nfunction run(name, root, opt_alternative) {\n const heuristic = lookup(name);\n return heuristic &&\n !exports.blacklist[name] &&\n (exports.flags[name] || heuristic.applicable(root))\n ? heuristic.apply(root)\n : opt_alternative\n ? opt_alternative(root)\n : root;\n}\nexports.run = run;\nfunction lookup(name) {\n return heuristics.get(name);\n}\nexports.lookup = lookup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst debugger_1 = require(\"../common/debugger\");\nconst engine_1 = require(\"../common/engine\");\nconst SemanticAttr = require(\"./semantic_attr\");\nconst SemanticHeuristics = require(\"./semantic_heuristic_factory\");\nconst semantic_heuristic_1 = require(\"./semantic_heuristic\");\nconst SemanticPred = require(\"./semantic_pred\");\nconst semantic_processor_1 = require(\"./semantic_processor\");\nconst SemanticUtil = require(\"./semantic_util\");\nSemanticHeuristics.add(new semantic_heuristic_1.SemanticTreeHeuristic('combine_juxtaposition', combineJuxtaposition));\nfunction combineJuxtaposition(root) {\n for (let i = root.childNodes.length - 1, child; (child = root.childNodes[i]); i--) {\n if (!SemanticPred.isImplicitOp(child) || child.nobreaking) {\n continue;\n }\n root.childNodes.splice(i, 1, ...child.childNodes);\n root.contentNodes.splice(i, 0, ...child.contentNodes);\n child.childNodes.concat(child.contentNodes).forEach(function (x) {\n x.parent = root;\n });\n root.addMathmlNodes(child.mathml);\n }\n return root;\n}\nSemanticHeuristics.add(new semantic_heuristic_1.SemanticTreeHeuristic('propagateSimpleFunction', (node) => {\n if ((node.type === \"infixop\" ||\n node.type === \"fraction\") &&\n node.childNodes.every(SemanticPred.isSimpleFunction)) {\n node.role = \"composed function\";\n }\n return node;\n}, (_node) => engine_1.default.getInstance().domain === 'clearspeak'));\nSemanticHeuristics.add(new semantic_heuristic_1.SemanticTreeHeuristic('simpleNamedFunction', (node) => {\n const specialFunctions = ['f', 'g', 'h', 'F', 'G', 'H'];\n if (node.role !== \"unit\" &&\n specialFunctions.indexOf(node.textContent) !== -1) {\n node.role = \"simple function\";\n }\n return node;\n}, (_node) => engine_1.default.getInstance().domain === 'clearspeak'));\nSemanticHeuristics.add(new semantic_heuristic_1.SemanticTreeHeuristic('propagateComposedFunction', (node) => {\n if (node.type === \"fenced\" &&\n node.childNodes[0].role === \"composed function\") {\n node.role = \"composed function\";\n }\n return node;\n}, (_node) => engine_1.default.getInstance().domain === 'clearspeak'));\nSemanticHeuristics.add(new semantic_heuristic_1.SemanticTreeHeuristic('multioperator', (node) => {\n if (node.role !== \"unknown\" || node.textContent.length <= 1) {\n return;\n }\n const content = [...node.textContent];\n const meaning = content.map(SemanticAttr.lookupMeaning);\n const singleRole = meaning.reduce(function (prev, curr) {\n if (!prev ||\n !curr.role ||\n curr.role === \"unknown\" ||\n curr.role === prev) {\n return prev;\n }\n if (prev === \"unknown\") {\n return curr.role;\n }\n return null;\n }, \"unknown\");\n if (singleRole) {\n node.role = singleRole;\n }\n}));\nSemanticHeuristics.add(new semantic_heuristic_1.SemanticMultiHeuristic('convert_juxtaposition', (nodes) => {\n let partition = SemanticUtil.partitionNodes(nodes, function (x) {\n return (x.textContent === SemanticAttr.invisibleTimes() &&\n x.type === \"operator\");\n });\n partition = partition.rel.length\n ? juxtapositionPrePost(partition)\n : partition;\n nodes = partition.comp[0];\n for (let i = 1, c, r; (c = partition.comp[i]), (r = partition.rel[i - 1]); i++) {\n nodes.push(r);\n nodes = nodes.concat(c);\n }\n partition = SemanticUtil.partitionNodes(nodes, function (x) {\n return (x.textContent === SemanticAttr.invisibleTimes() &&\n (x.type === \"operator\" || x.type === \"infixop\"));\n });\n if (!partition.rel.length) {\n return nodes;\n }\n return recurseJuxtaposition(partition.comp.shift(), partition.rel, partition.comp);\n}));\nSemanticHeuristics.add(new semantic_heuristic_1.SemanticTreeHeuristic('simple2prefix', (node) => {\n if (node.textContent.length > 1 &&\n !node.textContent[0].match(/[A-Z]/)) {\n node.role = \"prefix function\";\n }\n return node;\n}, (node) => engine_1.default.getInstance().modality === 'braille' &&\n node.type === \"identifier\"));\nSemanticHeuristics.add(new semantic_heuristic_1.SemanticTreeHeuristic('detect_cycle', (node) => {\n node.type = \"matrix\";\n node.role = \"cycle\";\n const row = node.childNodes[0];\n row.type = \"row\";\n row.role = \"cycle\";\n row.textContent = '';\n row.contentNodes = [];\n return node;\n}, (node) => node.type === \"fenced\" &&\n node.childNodes[0].type === \"infixop\" &&\n node.childNodes[0].role === \"implicit\" &&\n node.childNodes[0].childNodes.every(function (x) {\n return x.type === \"number\";\n }) &&\n node.childNodes[0].contentNodes.every(function (x) {\n return x.role === \"space\";\n })));\nfunction juxtapositionPrePost(partition) {\n const rels = [];\n const comps = [];\n let next = partition.comp.shift();\n let rel = null;\n let collect = [];\n while (partition.comp.length) {\n collect = [];\n if (next.length) {\n if (rel) {\n rels.push(rel);\n }\n comps.push(next);\n rel = partition.rel.shift();\n next = partition.comp.shift();\n continue;\n }\n if (rel) {\n collect.push(rel);\n }\n while (!next.length && partition.comp.length) {\n next = partition.comp.shift();\n collect.push(partition.rel.shift());\n }\n rel = convertPrePost(collect, next, comps);\n }\n if (!collect.length && !next.length) {\n collect.push(rel);\n convertPrePost(collect, next, comps);\n }\n else {\n rels.push(rel);\n comps.push(next);\n }\n return { rel: rels, comp: comps };\n}\nfunction convertPrePost(collect, next, comps) {\n let rel = null;\n if (!collect.length) {\n return rel;\n }\n const prev = comps[comps.length - 1];\n const prevExists = prev && prev.length;\n const nextExists = next && next.length;\n const processor = semantic_processor_1.default.getInstance();\n if (prevExists && nextExists) {\n if (next[0].type === \"infixop\" &&\n next[0].role === \"implicit\") {\n rel = collect.pop();\n prev.push(processor['postfixNode_'](prev.pop(), collect));\n return rel;\n }\n rel = collect.shift();\n const result = processor['prefixNode_'](next.shift(), collect);\n next.unshift(result);\n return rel;\n }\n if (prevExists) {\n prev.push(processor['postfixNode_'](prev.pop(), collect));\n return rel;\n }\n if (nextExists) {\n next.unshift(processor['prefixNode_'](next.shift(), collect));\n }\n return rel;\n}\nfunction recurseJuxtaposition(acc, ops, elements) {\n if (!ops.length) {\n return acc;\n }\n const left = acc.pop();\n const op = ops.shift();\n const first = elements.shift();\n if (SemanticPred.isImplicitOp(op)) {\n debugger_1.Debugger.getInstance().output('Juxta Heuristic Case 2');\n const right = (left ? [left, op] : [op]).concat(first);\n return recurseJuxtaposition(acc.concat(right), ops, elements);\n }\n if (!left) {\n debugger_1.Debugger.getInstance().output('Juxta Heuristic Case 3');\n return recurseJuxtaposition([op].concat(first), ops, elements);\n }\n const right = first.shift();\n if (!right) {\n debugger_1.Debugger.getInstance().output('Juxta Heuristic Case 9');\n const newOp = SemanticHeuristics.factory.makeBranchNode(\"infixop\", [left, ops.shift()], [op], op.textContent);\n newOp.role = \"implicit\";\n SemanticHeuristics.run('combine_juxtaposition', newOp);\n ops.unshift(newOp);\n return recurseJuxtaposition(acc, ops, elements);\n }\n if (SemanticPred.isOperator(left) || SemanticPred.isOperator(right)) {\n debugger_1.Debugger.getInstance().output('Juxta Heuristic Case 4');\n return recurseJuxtaposition(acc.concat([left, op, right]).concat(first), ops, elements);\n }\n let result = null;\n if (SemanticPred.isImplicitOp(left) && SemanticPred.isImplicitOp(right)) {\n debugger_1.Debugger.getInstance().output('Juxta Heuristic Case 5');\n left.contentNodes.push(op);\n left.contentNodes = left.contentNodes.concat(right.contentNodes);\n left.childNodes.push(right);\n left.childNodes = left.childNodes.concat(right.childNodes);\n right.childNodes.forEach((x) => (x.parent = left));\n op.parent = left;\n left.addMathmlNodes(op.mathml);\n left.addMathmlNodes(right.mathml);\n result = left;\n }\n else if (SemanticPred.isImplicitOp(left)) {\n debugger_1.Debugger.getInstance().output('Juxta Heuristic Case 6');\n left.contentNodes.push(op);\n left.childNodes.push(right);\n right.parent = left;\n op.parent = left;\n left.addMathmlNodes(op.mathml);\n left.addMathmlNodes(right.mathml);\n result = left;\n }\n else if (SemanticPred.isImplicitOp(right)) {\n debugger_1.Debugger.getInstance().output('Juxta Heuristic Case 7');\n right.contentNodes.unshift(op);\n right.childNodes.unshift(left);\n left.parent = right;\n op.parent = right;\n right.addMathmlNodes(op.mathml);\n right.addMathmlNodes(left.mathml);\n result = right;\n }\n else {\n debugger_1.Debugger.getInstance().output('Juxta Heuristic Case 8');\n result = SemanticHeuristics.factory.makeBranchNode(\"infixop\", [left, right], [op], op.textContent);\n result.role = \"implicit\";\n }\n acc.push(result);\n return recurseJuxtaposition(acc.concat(first), ops, elements);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticMathml = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst semantic_parser_1 = require(\"./semantic_parser\");\nconst SemanticPred = require(\"./semantic_pred\");\nconst semantic_processor_1 = require(\"./semantic_processor\");\nconst SemanticUtil = require(\"./semantic_util\");\nclass SemanticMathml extends semantic_parser_1.SemanticAbstractParser {\n constructor() {\n super('MathML');\n this.parseMap_ = {\n SEMANTICS: this.semantics_.bind(this),\n MATH: this.rows_.bind(this),\n MROW: this.rows_.bind(this),\n MPADDED: this.rows_.bind(this),\n MSTYLE: this.rows_.bind(this),\n MFRAC: this.fraction_.bind(this),\n MSUB: this.limits_.bind(this),\n MSUP: this.limits_.bind(this),\n MSUBSUP: this.limits_.bind(this),\n MOVER: this.limits_.bind(this),\n MUNDER: this.limits_.bind(this),\n MUNDEROVER: this.limits_.bind(this),\n MROOT: this.root_.bind(this),\n MSQRT: this.sqrt_.bind(this),\n MTABLE: this.table_.bind(this),\n MLABELEDTR: this.tableLabeledRow_.bind(this),\n MTR: this.tableRow_.bind(this),\n MTD: this.tableCell_.bind(this),\n MS: this.text_.bind(this),\n MTEXT: this.text_.bind(this),\n MSPACE: this.space_.bind(this),\n 'ANNOTATION-XML': this.text_.bind(this),\n MI: this.identifier_.bind(this),\n MN: this.number_.bind(this),\n MO: this.operator_.bind(this),\n MFENCED: this.fenced_.bind(this),\n MENCLOSE: this.enclosed_.bind(this),\n MMULTISCRIPTS: this.multiscripts_.bind(this),\n ANNOTATION: this.empty_.bind(this),\n NONE: this.empty_.bind(this),\n MACTION: this.action_.bind(this)\n };\n const meaning = {\n type: \"identifier\",\n role: \"numbersetletter\",\n font: \"double-struck\"\n };\n [\n 'C',\n 'H',\n 'N',\n 'P',\n 'Q',\n 'R',\n 'Z',\n 'ℂ',\n 'ℍ',\n 'ℕ',\n 'ℙ',\n 'ℚ',\n 'ℝ',\n 'ℤ'\n ].forEach(((x) => this.getFactory().defaultMap.add(x, meaning)).bind(this));\n }\n static getAttribute_(node, attr, def) {\n if (!node.hasAttribute(attr)) {\n return def;\n }\n const value = node.getAttribute(attr);\n if (value.match(/^\\s*$/)) {\n return null;\n }\n return value;\n }\n parse(mml) {\n semantic_processor_1.default.getInstance().setNodeFactory(this.getFactory());\n const children = DomUtil.toArray(mml.childNodes);\n const tag = DomUtil.tagName(mml);\n const func = this.parseMap_[tag];\n const newNode = (func ? func : this.dummy_.bind(this))(mml, children);\n SemanticUtil.addAttributes(newNode, mml);\n if (['MATH', 'MROW', 'MPADDED', 'MSTYLE', 'SEMANTICS'].indexOf(tag) !== -1) {\n return newNode;\n }\n newNode.mathml.unshift(mml);\n newNode.mathmlTree = mml;\n return newNode;\n }\n semantics_(_node, children) {\n return children.length\n ? this.parse(children[0])\n : this.getFactory().makeEmptyNode();\n }\n rows_(node, children) {\n const semantics = node.getAttribute('semantics');\n if (semantics && semantics.match('bspr_')) {\n return semantic_processor_1.default.proof(node, semantics, this.parseList.bind(this));\n }\n children = SemanticUtil.purgeNodes(children);\n let newNode;\n if (children.length === 1) {\n newNode = this.parse(children[0]);\n if (newNode.type === \"empty\" && !newNode.mathmlTree) {\n newNode.mathmlTree = node;\n }\n }\n else {\n newNode = semantic_processor_1.default.getInstance().row(this.parseList(children));\n }\n newNode.mathml.unshift(node);\n return newNode;\n }\n fraction_(node, children) {\n if (!children.length) {\n return this.getFactory().makeEmptyNode();\n }\n const upper = this.parse(children[0]);\n const lower = children[1]\n ? this.parse(children[1])\n : this.getFactory().makeEmptyNode();\n const sem = semantic_processor_1.default.getInstance().fractionLikeNode(upper, lower, node.getAttribute('linethickness'), node.getAttribute('bevelled') === 'true');\n return sem;\n }\n limits_(node, children) {\n return semantic_processor_1.default.getInstance().limitNode(DomUtil.tagName(node), this.parseList(children));\n }\n root_(node, children) {\n if (!children[1]) {\n return this.sqrt_(node, children);\n }\n return this.getFactory().makeBranchNode(\"root\", [this.parse(children[1]), this.parse(children[0])], []);\n }\n sqrt_(_node, children) {\n const semNodes = this.parseList(SemanticUtil.purgeNodes(children));\n return this.getFactory().makeBranchNode(\"sqrt\", [semantic_processor_1.default.getInstance().row(semNodes)], []);\n }\n table_(node, children) {\n const semantics = node.getAttribute('semantics');\n if (semantics && semantics.match('bspr_')) {\n return semantic_processor_1.default.proof(node, semantics, this.parseList.bind(this));\n }\n const newNode = this.getFactory().makeBranchNode(\"table\", this.parseList(children), []);\n newNode.mathmlTree = node;\n semantic_processor_1.default.tableToMultiline(newNode);\n return newNode;\n }\n tableRow_(_node, children) {\n const newNode = this.getFactory().makeBranchNode(\"row\", this.parseList(children), []);\n newNode.role = \"table\";\n return newNode;\n }\n tableLabeledRow_(node, children) {\n if (!children.length) {\n return this.tableRow_(node, children);\n }\n const label = this.parse(children[0]);\n label.role = \"label\";\n const newNode = this.getFactory().makeBranchNode(\"row\", this.parseList(children.slice(1)), [label]);\n newNode.role = \"table\";\n return newNode;\n }\n tableCell_(_node, children) {\n const semNodes = this.parseList(SemanticUtil.purgeNodes(children));\n let childNodes;\n if (!semNodes.length) {\n childNodes = [];\n }\n else if (semNodes.length === 1 &&\n SemanticPred.isType(semNodes[0], \"empty\")) {\n childNodes = semNodes;\n }\n else {\n childNodes = [semantic_processor_1.default.getInstance().row(semNodes)];\n }\n const newNode = this.getFactory().makeBranchNode(\"cell\", childNodes, []);\n newNode.role = \"table\";\n return newNode;\n }\n space_(node, children) {\n const width = node.getAttribute('width');\n const match = width && width.match(/[a-z]*$/);\n if (!match) {\n return this.empty_(node, children);\n }\n const sizes = {\n cm: 0.4,\n pc: 0.5,\n em: 0.5,\n ex: 1,\n in: 0.15,\n pt: 5,\n mm: 5\n };\n const unit = match[0];\n const measure = parseFloat(width.slice(0, match.index));\n const size = sizes[unit];\n if (!size || isNaN(measure) || measure < size) {\n return this.empty_(node, children);\n }\n const newNode = this.getFactory().makeUnprocessed(node);\n return semantic_processor_1.default.getInstance().text(newNode, DomUtil.tagName(node));\n }\n text_(node, children) {\n const newNode = this.leaf_(node, children);\n if (!node.textContent) {\n return newNode;\n }\n newNode.updateContent(node.textContent, true);\n return semantic_processor_1.default.getInstance().text(newNode, DomUtil.tagName(node));\n }\n identifier_(node, children) {\n const newNode = this.leaf_(node, children);\n return semantic_processor_1.default.getInstance().identifierNode(newNode, semantic_processor_1.default.getInstance().font(node.getAttribute('mathvariant')), node.getAttribute('class'));\n }\n number_(node, children) {\n const newNode = this.leaf_(node, children);\n semantic_processor_1.default.number(newNode);\n return newNode;\n }\n operator_(node, children) {\n const newNode = this.leaf_(node, children);\n semantic_processor_1.default.getInstance().operatorNode(newNode);\n return newNode;\n }\n fenced_(node, children) {\n const semNodes = this.parseList(SemanticUtil.purgeNodes(children));\n const sepValue = SemanticMathml.getAttribute_(node, 'separators', ',');\n const open = SemanticMathml.getAttribute_(node, 'open', '(');\n const close = SemanticMathml.getAttribute_(node, 'close', ')');\n const newNode = semantic_processor_1.default.getInstance().mfenced(open, close, sepValue, semNodes);\n const nodes = semantic_processor_1.default.getInstance().tablesInRow([newNode]);\n return nodes[0];\n }\n enclosed_(node, children) {\n const semNodes = this.parseList(SemanticUtil.purgeNodes(children));\n const newNode = this.getFactory().makeBranchNode(\"enclose\", [semantic_processor_1.default.getInstance().row(semNodes)], []);\n newNode.role =\n node.getAttribute('notation') || \"unknown\";\n return newNode;\n }\n multiscripts_(_node, children) {\n if (!children.length) {\n return this.getFactory().makeEmptyNode();\n }\n const base = this.parse(children.shift());\n if (!children.length) {\n return base;\n }\n const lsup = [];\n const lsub = [];\n const rsup = [];\n const rsub = [];\n let prescripts = false;\n let scriptcount = 0;\n for (let i = 0, child; (child = children[i]); i++) {\n if (DomUtil.tagName(child) === 'MPRESCRIPTS') {\n prescripts = true;\n scriptcount = 0;\n continue;\n }\n prescripts\n ? scriptcount & 1\n ? lsup.push(child)\n : lsub.push(child)\n : scriptcount & 1\n ? rsup.push(child)\n : rsub.push(child);\n scriptcount++;\n }\n if (!SemanticUtil.purgeNodes(lsup).length &&\n !SemanticUtil.purgeNodes(lsub).length) {\n return semantic_processor_1.default.getInstance().pseudoTensor(base, this.parseList(rsub), this.parseList(rsup));\n }\n return semantic_processor_1.default.getInstance().tensor(base, this.parseList(lsub), this.parseList(lsup), this.parseList(rsub), this.parseList(rsup));\n }\n empty_(_node, _children) {\n return this.getFactory().makeEmptyNode();\n }\n action_(node, children) {\n return children.length > 1\n ? this.parse(children[1])\n : this.getFactory().makeUnprocessed(node);\n }\n dummy_(node, _children) {\n const unknown = this.getFactory().makeUnprocessed(node);\n unknown.role = node.tagName;\n unknown.textContent = node.textContent;\n return unknown;\n }\n leaf_(mml, children) {\n if (children.length === 1 &&\n children[0].nodeType !== DomUtil.NodeType.TEXT_NODE) {\n const node = this.getFactory().makeUnprocessed(mml);\n node.role = children[0].tagName;\n SemanticUtil.addAttributes(node, children[0]);\n return node;\n }\n return this.getFactory().makeLeafNode(mml.textContent, semantic_processor_1.default.getInstance().font(mml.getAttribute('mathvariant')));\n }\n}\nexports.SemanticMathml = SemanticMathml;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticNode = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst semantic_attr_1 = require(\"./semantic_attr\");\nconst SemanticUtil = require(\"./semantic_util\");\nclass SemanticNode {\n constructor(id) {\n this.id = id;\n this.mathml = [];\n this.parent = null;\n this.type = \"unknown\";\n this.role = \"unknown\";\n this.font = \"unknown\";\n this.embellished = null;\n this.fencePointer = '';\n this.childNodes = [];\n this.textContent = '';\n this.mathmlTree = null;\n this.contentNodes = [];\n this.annotation = {};\n this.attributes = {};\n this.nobreaking = false;\n }\n static fromXml(xml) {\n const id = parseInt(xml.getAttribute('id'), 10);\n const node = new SemanticNode(id);\n node.type = xml.tagName;\n SemanticNode.setAttribute(node, xml, 'role');\n SemanticNode.setAttribute(node, xml, 'font');\n SemanticNode.setAttribute(node, xml, 'embellished');\n SemanticNode.setAttribute(node, xml, 'fencepointer', 'fencePointer');\n if (xml.getAttribute('annotation')) {\n node.parseAnnotation(xml.getAttribute('annotation'));\n }\n SemanticUtil.addAttributes(node, xml);\n SemanticNode.processChildren(node, xml);\n return node;\n }\n static setAttribute(node, xml, attribute, opt_name) {\n opt_name = opt_name || attribute;\n const value = xml.getAttribute(attribute);\n if (value) {\n node[opt_name] = value;\n }\n }\n static processChildren(node, xml) {\n for (const child of DomUtil.toArray(xml.childNodes)) {\n if (child.nodeType === DomUtil.NodeType.TEXT_NODE) {\n node.textContent = child.textContent;\n continue;\n }\n const children = DomUtil.toArray(child.childNodes).map(SemanticNode.fromXml);\n children.forEach((x) => (x.parent = node));\n if (DomUtil.tagName(child) === 'CONTENT') {\n node.contentNodes = children;\n }\n else {\n node.childNodes = children;\n }\n }\n }\n querySelectorAll(pred) {\n let result = [];\n for (let i = 0, child; (child = this.childNodes[i]); i++) {\n result = result.concat(child.querySelectorAll(pred));\n }\n for (let i = 0, content; (content = this.contentNodes[i]); i++) {\n result = result.concat(content.querySelectorAll(pred));\n }\n if (pred(this)) {\n result.unshift(this);\n }\n return result;\n }\n xml(xml, brief) {\n const xmlNodeList = function (tag, nodes) {\n const xmlNodes = nodes.map(function (x) {\n return x.xml(xml, brief);\n });\n const tagNode = xml.createElementNS('', tag);\n for (let i = 0, child; (child = xmlNodes[i]); i++) {\n tagNode.appendChild(child);\n }\n return tagNode;\n };\n const node = xml.createElementNS('', this.type);\n if (!brief) {\n this.xmlAttributes(node);\n }\n node.textContent = this.textContent;\n if (this.contentNodes.length > 0) {\n node.appendChild(xmlNodeList(\"content\", this.contentNodes));\n }\n if (this.childNodes.length > 0) {\n node.appendChild(xmlNodeList(\"children\", this.childNodes));\n }\n return node;\n }\n toString(brief = false) {\n const xml = DomUtil.parseInput('');\n return DomUtil.serializeXml(this.xml(xml.ownerDocument, brief));\n }\n allAttributes() {\n const attributes = [];\n attributes.push([\"role\", this.role]);\n if (this.font !== \"unknown\") {\n attributes.push([\"font\", this.font]);\n }\n if (Object.keys(this.annotation).length) {\n attributes.push([\"annotation\", this.annotationXml()]);\n }\n if (this.embellished) {\n attributes.push([\"embellished\", this.embellished]);\n }\n if (this.fencePointer) {\n attributes.push([\"fencepointer\", this.fencePointer]);\n }\n attributes.push([\"id\", this.id.toString()]);\n return attributes;\n }\n annotationXml() {\n const result = [];\n for (const key in this.annotation) {\n this.annotation[key].forEach(function (mean) {\n result.push(key + ':' + mean);\n });\n }\n return result.join(';');\n }\n attributesXml() {\n const result = [];\n for (const [key, value] of Object.entries(this.attributes)) {\n result.push(key + ':' + value);\n }\n return result.join(';');\n }\n toJson() {\n const json = {};\n json[\"type\"] = this.type;\n const attributes = this.allAttributes();\n for (let i = 0, attr; (attr = attributes[i]); i++) {\n json[attr[0]] = attr[1].toString();\n }\n if (this.textContent) {\n json[\"$t\"] = this.textContent;\n }\n if (this.childNodes.length) {\n json[\"children\"] = this.childNodes.map(function (child) {\n return child.toJson();\n });\n }\n if (this.contentNodes.length) {\n json[\"content\"] = this.contentNodes.map(function (child) {\n return child.toJson();\n });\n }\n return json;\n }\n updateContent(content, text) {\n const newContent = text\n ? content\n .replace(/^[ \\f\\n\\r\\t\\v\\u200b]*/, '')\n .replace(/[ \\f\\n\\r\\t\\v\\u200b]*$/, '')\n : content.trim();\n content = content && !newContent ? content : newContent;\n if (this.textContent === content) {\n return;\n }\n const meaning = (0, semantic_attr_1.lookupMeaning)(content);\n this.textContent = content;\n this.role = meaning.role;\n this.type = meaning.type;\n this.font = meaning.font;\n }\n addMathmlNodes(mmlNodes) {\n for (let i = 0, mml; (mml = mmlNodes[i]); i++) {\n if (this.mathml.indexOf(mml) === -1) {\n this.mathml.push(mml);\n }\n }\n }\n appendChild(child) {\n this.childNodes.push(child);\n this.addMathmlNodes(child.mathml);\n child.parent = this;\n }\n replaceChild(oldNode, newNode) {\n const index = this.childNodes.indexOf(oldNode);\n if (index === -1) {\n return;\n }\n oldNode.parent = null;\n newNode.parent = this;\n this.childNodes[index] = newNode;\n const removeMathml = oldNode.mathml.filter(function (x) {\n return newNode.mathml.indexOf(x) === -1;\n });\n const addMathml = newNode.mathml.filter(function (x) {\n return oldNode.mathml.indexOf(x) === -1;\n });\n this.removeMathmlNodes(removeMathml);\n this.addMathmlNodes(addMathml);\n }\n appendContentNode(node) {\n if (node) {\n this.contentNodes.push(node);\n this.addMathmlNodes(node.mathml);\n node.parent = this;\n }\n }\n removeContentNode(node) {\n if (node) {\n const index = this.contentNodes.indexOf(node);\n if (index !== -1) {\n this.contentNodes.slice(index, 1);\n }\n }\n }\n equals(node) {\n if (!node) {\n return false;\n }\n if (this.type !== node.type ||\n this.role !== node.role ||\n this.textContent !== node.textContent ||\n this.childNodes.length !== node.childNodes.length ||\n this.contentNodes.length !== node.contentNodes.length) {\n return false;\n }\n for (let i = 0, node1, node2; (node1 = this.childNodes[i]), (node2 = node.childNodes[i]); i++) {\n if (!node1.equals(node2)) {\n return false;\n }\n }\n for (let i = 0, node1, node2; (node1 = this.contentNodes[i]), (node2 = node.contentNodes[i]); i++) {\n if (!node1.equals(node2)) {\n return false;\n }\n }\n return true;\n }\n displayTree() {\n console.info(this.displayTree_(0));\n }\n addAnnotation(domain, annotation) {\n if (annotation) {\n this.addAnnotation_(domain, annotation);\n }\n }\n getAnnotation(domain) {\n const content = this.annotation[domain];\n return content ? content : [];\n }\n hasAnnotation(domain, annotation) {\n const content = this.annotation[domain];\n if (!content) {\n return false;\n }\n return content.indexOf(annotation) !== -1;\n }\n parseAnnotation(stateStr) {\n const annotations = stateStr.split(';');\n for (let i = 0, l = annotations.length; i < l; i++) {\n const annotation = annotations[i].split(':');\n this.addAnnotation(annotation[0], annotation[1]);\n }\n }\n meaning() {\n return { type: this.type, role: this.role, font: this.font };\n }\n xmlAttributes(node) {\n const attributes = this.allAttributes();\n for (let i = 0, attr; (attr = attributes[i]); i++) {\n node.setAttribute(attr[0], attr[1]);\n }\n this.addExternalAttributes(node);\n }\n addExternalAttributes(node) {\n for (const attr in this.attributes) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n parseAttributes(stateStr) {\n if (!stateStr)\n return;\n const attributes = stateStr.split(';');\n for (let i = 0, l = attributes.length; i < l; i++) {\n const [key, value] = attributes[i].split(':');\n if (key) {\n this.attributes[key] = value;\n }\n }\n }\n removeMathmlNodes(mmlNodes) {\n const mmlList = this.mathml;\n for (let i = 0, mml; (mml = mmlNodes[i]); i++) {\n const index = mmlList.indexOf(mml);\n if (index !== -1) {\n mmlList.splice(index, 1);\n }\n }\n this.mathml = mmlList;\n }\n displayTree_(depth) {\n depth++;\n const depthString = Array(depth).join(' ');\n let result = '';\n result += '\\n' + depthString + this.toString();\n result += '\\n' + depthString + 'MathmlTree:';\n result += '\\n' + depthString + this.mathmlTreeString();\n result += '\\n' + depthString + 'MathML:';\n for (let i = 0, mml; (mml = this.mathml[i]); i++) {\n result += '\\n' + depthString + mml.toString();\n }\n result += '\\n' + depthString + 'Begin Content';\n this.contentNodes.forEach(function (x) {\n result += x.displayTree_(depth);\n });\n result += '\\n' + depthString + 'End Content';\n result += '\\n' + depthString + 'Begin Children';\n this.childNodes.forEach(function (x) {\n result += x.displayTree_(depth);\n });\n result += '\\n' + depthString + 'End Children';\n return result;\n }\n mathmlTreeString() {\n return this.mathmlTree ? this.mathmlTree.toString() : 'EMPTY';\n }\n addAnnotation_(domain, annotation) {\n const content = this.annotation[domain];\n if (content) {\n content.push(annotation);\n }\n else {\n this.annotation[domain] = [annotation];\n }\n }\n}\nexports.SemanticNode = SemanticNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticNodeFactory = void 0;\nconst semantic_default_1 = require(\"./semantic_default\");\nconst semantic_default_2 = require(\"./semantic_default\");\nconst semantic_node_1 = require(\"./semantic_node\");\nclass SemanticNodeFactory {\n constructor() {\n this.leafMap = new semantic_default_2.SemanticNodeCollator();\n this.defaultMap = new semantic_default_1.SemanticDefault();\n this.idCounter_ = -1;\n }\n makeNode(id) {\n return this.createNode_(id);\n }\n makeUnprocessed(mml) {\n const node = this.createNode_();\n node.mathml = [mml];\n node.mathmlTree = mml;\n return node;\n }\n makeEmptyNode() {\n const node = this.createNode_();\n node.type = \"empty\";\n return node;\n }\n makeContentNode(content) {\n const node = this.createNode_();\n node.updateContent(content);\n return node;\n }\n makeMultipleContentNodes(num, content) {\n const nodes = [];\n for (let i = 0; i < num; i++) {\n nodes.push(this.makeContentNode(content));\n }\n return nodes;\n }\n makeLeafNode(content, font) {\n if (!content) {\n return this.makeEmptyNode();\n }\n const node = this.makeContentNode(content);\n node.font = font || node.font;\n const meaning = this.defaultMap.retrieveNode(node);\n if (meaning) {\n node.type = meaning.type;\n node.role = meaning.role;\n node.font = meaning.font;\n }\n this.leafMap.addNode(node);\n return node;\n }\n makeBranchNode(type, children, contentNodes, opt_content) {\n const node = this.createNode_();\n if (opt_content) {\n node.updateContent(opt_content);\n }\n node.type = type;\n node.childNodes = children;\n node.contentNodes = contentNodes;\n children.concat(contentNodes).forEach(function (x) {\n x.parent = node;\n node.addMathmlNodes(x.mathml);\n });\n return node;\n }\n createNode_(id) {\n if (typeof id !== 'undefined') {\n this.idCounter_ = Math.max(this.idCounter_, id);\n }\n else {\n id = ++this.idCounter_;\n }\n return new semantic_node_1.SemanticNode(id);\n }\n}\nexports.SemanticNodeFactory = SemanticNodeFactory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticComparator = exports.reduce = exports.sort = exports.apply = exports.add = void 0;\nconst comparators = [];\nfunction add(comparator) {\n comparators.push(comparator);\n}\nexports.add = add;\nfunction apply(meaning1, meaning2) {\n for (let i = 0, comparator; (comparator = comparators[i]); i++) {\n const result = comparator.compare(meaning1, meaning2);\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n}\nexports.apply = apply;\nfunction sort(meanings) {\n meanings.sort(apply);\n}\nexports.sort = sort;\nfunction reduce(meanings) {\n if (meanings.length <= 1) {\n return meanings;\n }\n const copy = meanings.slice();\n sort(copy);\n const result = [];\n let last;\n do {\n last = copy.pop();\n result.push(last);\n } while (last && copy.length && apply(copy[copy.length - 1], last) === 0);\n return result;\n}\nexports.reduce = reduce;\nclass SemanticComparator {\n constructor(comparator, type = null) {\n this.comparator = comparator;\n this.type = type;\n add(this);\n }\n compare(meaning1, meaning2) {\n return this.type &&\n this.type === meaning1.type &&\n this.type === meaning2.type\n ? this.comparator(meaning1, meaning2)\n : 0;\n }\n}\nexports.SemanticComparator = SemanticComparator;\nfunction simpleFunction(meaning1, meaning2) {\n if (meaning1.role === \"simple function\") {\n return 1;\n }\n if (meaning2.role === \"simple function\") {\n return -1;\n }\n return 0;\n}\nnew SemanticComparator(simpleFunction, \"identifier\");\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticAbstractParser = void 0;\nconst semantic_node_factory_1 = require(\"./semantic_node_factory\");\nclass SemanticAbstractParser {\n constructor(type) {\n this.type = type;\n this.factory_ = new semantic_node_factory_1.SemanticNodeFactory();\n }\n getFactory() {\n return this.factory_;\n }\n setFactory(factory) {\n this.factory_ = factory;\n }\n getType() {\n return this.type;\n }\n parseList(list) {\n const result = [];\n for (let i = 0, element; (element = list[i]); i++) {\n result.push(this.parse(element));\n }\n return result;\n }\n}\nexports.SemanticAbstractParser = SemanticAbstractParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMembership = exports.elligibleRightNeutral = exports.elligibleLeftNeutral = exports.compareNeutralFences = exports.isNeutralFence = exports.isImplicitOp = exports.isImplicit = exports.isPureUnit = exports.isUnitCounter = exports.isNumber = exports.isSingletonSetContent = exports.scriptedElement_ = exports.illegalSingleton_ = exports.isSetNode = exports.isRightBrace = exports.isLeftBrace = exports.isSimpleFunction = exports.singlePunctAtPosition = exports.isSimpleFunctionHead = exports.isLimitBase = exports.isBinomial = exports.lineIsLabelled = exports.tableIsMultiline = exports.tableIsCases = exports.isFencedElement = exports.tableIsMatrixOrVector = exports.isTableOrMultiline = exports.isElligibleEmbellishedFence = exports.isFence = exports.isPunctuation = exports.isRelation = exports.isOperator = exports.isEmbellished = exports.isGeneralFunctionBoundary = exports.isIntegralDxBoundarySingle = exports.isIntegralDxBoundary = exports.isBigOpBoundary = exports.isPrefixFunctionBoundary = exports.isSimpleFunctionScope = exports.isAccent = exports.isRole = exports.embellishedType = exports.isType = void 0;\nconst SemanticAttr = require(\"./semantic_attr\");\nconst semantic_util_1 = require(\"./semantic_util\");\nfunction isType(node, attr) {\n return node.type === attr;\n}\nexports.isType = isType;\nfunction embellishedType(node, attr) {\n return node.embellished === attr;\n}\nexports.embellishedType = embellishedType;\nfunction isRole(node, attr) {\n return node.role === attr;\n}\nexports.isRole = isRole;\nfunction isAccent(node) {\n const inftyReg = new RegExp('∞|᪲');\n return (isType(node, \"fence\") ||\n isType(node, \"punctuation\") ||\n (isType(node, \"operator\") &&\n !node.textContent.match(inftyReg)) ||\n isType(node, \"relation\") ||\n (isType(node, \"identifier\") &&\n isRole(node, \"unknown\") &&\n !node.textContent.match(SemanticAttr.allLettersRegExp) &&\n !node.textContent.match(inftyReg)));\n}\nexports.isAccent = isAccent;\nfunction isSimpleFunctionScope(node) {\n const children = node.childNodes;\n if (children.length === 0) {\n return true;\n }\n if (children.length > 1) {\n return false;\n }\n const child = children[0];\n if (child.type === \"infixop\") {\n if (child.role !== \"implicit\") {\n return false;\n }\n if (child.childNodes.some((x) => isType(x, \"infixop\"))) {\n return false;\n }\n }\n return true;\n}\nexports.isSimpleFunctionScope = isSimpleFunctionScope;\nfunction isPrefixFunctionBoundary(node) {\n return ((isOperator(node) && !isRole(node, \"division\")) ||\n isType(node, \"appl\") ||\n isGeneralFunctionBoundary(node));\n}\nexports.isPrefixFunctionBoundary = isPrefixFunctionBoundary;\nfunction isBigOpBoundary(node) {\n return isOperator(node) || isGeneralFunctionBoundary(node);\n}\nexports.isBigOpBoundary = isBigOpBoundary;\nfunction isIntegralDxBoundary(firstNode, secondNode) {\n return (!!secondNode &&\n isType(secondNode, \"identifier\") &&\n SemanticAttr.lookupSecondary('d', firstNode.textContent));\n}\nexports.isIntegralDxBoundary = isIntegralDxBoundary;\nfunction isIntegralDxBoundarySingle(node) {\n if (isType(node, \"identifier\")) {\n const firstChar = node.textContent[0];\n return (firstChar &&\n node.textContent[1] &&\n SemanticAttr.lookupSecondary('d', firstChar));\n }\n return false;\n}\nexports.isIntegralDxBoundarySingle = isIntegralDxBoundarySingle;\nfunction isGeneralFunctionBoundary(node) {\n return isRelation(node) || isPunctuation(node);\n}\nexports.isGeneralFunctionBoundary = isGeneralFunctionBoundary;\nfunction isEmbellished(node) {\n if (node.embellished) {\n return node.embellished;\n }\n if (SemanticAttr.isEmbellishedType(node.type)) {\n return node.type;\n }\n return null;\n}\nexports.isEmbellished = isEmbellished;\nfunction isOperator(node) {\n return (isType(node, \"operator\") ||\n embellishedType(node, \"operator\"));\n}\nexports.isOperator = isOperator;\nfunction isRelation(node) {\n return (isType(node, \"relation\") ||\n embellishedType(node, \"relation\"));\n}\nexports.isRelation = isRelation;\nfunction isPunctuation(node) {\n return (isType(node, \"punctuation\") ||\n embellishedType(node, \"punctuation\"));\n}\nexports.isPunctuation = isPunctuation;\nfunction isFence(node) {\n return (isType(node, \"fence\") ||\n embellishedType(node, \"fence\"));\n}\nexports.isFence = isFence;\nfunction isElligibleEmbellishedFence(node) {\n if (!node || !isFence(node)) {\n return false;\n }\n if (!node.embellished) {\n return true;\n }\n return recurseBaseNode(node);\n}\nexports.isElligibleEmbellishedFence = isElligibleEmbellishedFence;\nfunction bothSide(node) {\n return (isType(node, \"tensor\") &&\n (!isType(node.childNodes[1], \"empty\") ||\n !isType(node.childNodes[2], \"empty\")) &&\n (!isType(node.childNodes[3], \"empty\") ||\n !isType(node.childNodes[4], \"empty\")));\n}\nfunction recurseBaseNode(node) {\n if (!node.embellished) {\n return true;\n }\n if (bothSide(node)) {\n return false;\n }\n if (isRole(node, \"close\") && isType(node, \"tensor\")) {\n return false;\n }\n if (isRole(node, \"open\") &&\n (isType(node, \"subscript\") ||\n isType(node, \"superscript\"))) {\n return false;\n }\n return recurseBaseNode(node.childNodes[0]);\n}\nfunction isTableOrMultiline(node) {\n return (!!node &&\n (isType(node, \"table\") || isType(node, \"multiline\")));\n}\nexports.isTableOrMultiline = isTableOrMultiline;\nfunction tableIsMatrixOrVector(node) {\n return (!!node && isFencedElement(node) && isTableOrMultiline(node.childNodes[0]));\n}\nexports.tableIsMatrixOrVector = tableIsMatrixOrVector;\nfunction isFencedElement(node) {\n return (!!node &&\n isType(node, \"fenced\") &&\n (isRole(node, \"leftright\") || isNeutralFence(node)) &&\n node.childNodes.length === 1);\n}\nexports.isFencedElement = isFencedElement;\nfunction tableIsCases(_table, prevNodes) {\n return (prevNodes.length > 0 &&\n isRole(prevNodes[prevNodes.length - 1], \"openfence\"));\n}\nexports.tableIsCases = tableIsCases;\nfunction tableIsMultiline(table) {\n return table.childNodes.every(function (row) {\n const length = row.childNodes.length;\n return length <= 1;\n });\n}\nexports.tableIsMultiline = tableIsMultiline;\nfunction lineIsLabelled(line) {\n return (isType(line, \"line\") &&\n line.contentNodes.length &&\n isRole(line.contentNodes[0], \"label\"));\n}\nexports.lineIsLabelled = lineIsLabelled;\nfunction isBinomial(table) {\n return table.childNodes.length === 2;\n}\nexports.isBinomial = isBinomial;\nfunction isLimitBase(node) {\n return (isType(node, \"largeop\") ||\n isType(node, \"limboth\") ||\n isType(node, \"limlower\") ||\n isType(node, \"limupper\") ||\n (isType(node, \"function\") &&\n isRole(node, \"limit function\")) ||\n ((isType(node, \"overscore\") ||\n isType(node, \"underscore\")) &&\n isLimitBase(node.childNodes[0])));\n}\nexports.isLimitBase = isLimitBase;\nfunction isSimpleFunctionHead(node) {\n return (node.type === \"identifier\" ||\n node.role === \"latinletter\" ||\n node.role === \"greekletter\" ||\n node.role === \"otherletter\");\n}\nexports.isSimpleFunctionHead = isSimpleFunctionHead;\nfunction singlePunctAtPosition(nodes, puncts, position) {\n return (puncts.length === 1 &&\n (nodes[position].type === \"punctuation\" ||\n nodes[position].embellished === \"punctuation\") &&\n nodes[position] === puncts[0]);\n}\nexports.singlePunctAtPosition = singlePunctAtPosition;\nfunction isSimpleFunction(node) {\n return (isType(node, \"identifier\") &&\n isRole(node, \"simple function\"));\n}\nexports.isSimpleFunction = isSimpleFunction;\nfunction isLeftBrace(node) {\n const leftBrace = ['{', '﹛', '{'];\n return !!node && leftBrace.indexOf(node.textContent) !== -1;\n}\nexports.isLeftBrace = isLeftBrace;\nfunction isRightBrace(node) {\n const rightBrace = ['}', '﹜', '}'];\n return !!node && rightBrace.indexOf(node.textContent) !== -1;\n}\nexports.isRightBrace = isRightBrace;\nfunction isSetNode(node) {\n return (isLeftBrace(node.contentNodes[0]) && isRightBrace(node.contentNodes[1]));\n}\nexports.isSetNode = isSetNode;\nexports.illegalSingleton_ = [\n \"punctuation\",\n \"punctuated\",\n \"relseq\",\n \"multirel\",\n \"table\",\n \"multiline\",\n \"cases\",\n \"inference\"\n];\nexports.scriptedElement_ = [\n \"limupper\",\n \"limlower\",\n \"limboth\",\n \"subscript\",\n \"superscript\",\n \"underscore\",\n \"overscore\",\n \"tensor\"\n];\nfunction isSingletonSetContent(node) {\n const type = node.type;\n if (exports.illegalSingleton_.indexOf(type) !== -1 ||\n (type === \"infixop\" && node.role !== \"implicit\")) {\n return false;\n }\n if (type === \"fenced\") {\n return node.role === \"leftright\"\n ? isSingletonSetContent(node.childNodes[0])\n : true;\n }\n if (exports.scriptedElement_.indexOf(type) !== -1) {\n return isSingletonSetContent(node.childNodes[0]);\n }\n return true;\n}\nexports.isSingletonSetContent = isSingletonSetContent;\nfunction isNumber(node) {\n return (node.type === \"number\" &&\n (node.role === \"integer\" || node.role === \"float\"));\n}\nexports.isNumber = isNumber;\nfunction isUnitCounter(node) {\n return (isNumber(node) ||\n node.role === \"vulgar\" ||\n node.role === \"mixed\");\n}\nexports.isUnitCounter = isUnitCounter;\nfunction isPureUnit(node) {\n const children = node.childNodes;\n return (node.role === \"unit\" &&\n (!children.length || children[0].role === \"unit\"));\n}\nexports.isPureUnit = isPureUnit;\nfunction isImplicit(node) {\n return (node.role === \"implicit\" ||\n (node.role === \"unit\" &&\n !!node.contentNodes.length &&\n node.contentNodes[0].textContent === SemanticAttr.invisibleTimes()));\n}\nexports.isImplicit = isImplicit;\nfunction isImplicitOp(node) {\n return (node.type === \"infixop\" && node.role === \"implicit\");\n}\nexports.isImplicitOp = isImplicitOp;\nfunction isNeutralFence(fence) {\n return (fence.role === \"neutral\" || fence.role === \"metric\");\n}\nexports.isNeutralFence = isNeutralFence;\nfunction compareNeutralFences(fence1, fence2) {\n return (isNeutralFence(fence1) &&\n isNeutralFence(fence2) &&\n (0, semantic_util_1.getEmbellishedInner)(fence1).textContent ===\n (0, semantic_util_1.getEmbellishedInner)(fence2).textContent);\n}\nexports.compareNeutralFences = compareNeutralFences;\nfunction elligibleLeftNeutral(fence) {\n if (!isNeutralFence(fence)) {\n return false;\n }\n if (!fence.embellished) {\n return true;\n }\n if (fence.type === \"superscript\" ||\n fence.type === \"subscript\") {\n return false;\n }\n if (fence.type === \"tensor\" &&\n (fence.childNodes[3].type !== \"empty\" ||\n fence.childNodes[4].type !== \"empty\")) {\n return false;\n }\n return true;\n}\nexports.elligibleLeftNeutral = elligibleLeftNeutral;\nfunction elligibleRightNeutral(fence) {\n if (!isNeutralFence(fence)) {\n return false;\n }\n if (!fence.embellished) {\n return true;\n }\n if (fence.type === \"tensor\" &&\n (fence.childNodes[1].type !== \"empty\" ||\n fence.childNodes[2].type !== \"empty\")) {\n return false;\n }\n return true;\n}\nexports.elligibleRightNeutral = elligibleRightNeutral;\nfunction isMembership(element) {\n return [\n \"element\",\n \"nonelement\",\n \"reelement\",\n \"renonelement\"\n ].includes(element.role);\n}\nexports.isMembership = isMembership;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst DomUtil = require(\"../common/dom_util\");\nconst SemanticAttr = require(\"./semantic_attr\");\nconst SemanticHeuristics = require(\"./semantic_heuristic_factory\");\nconst semantic_node_factory_1 = require(\"./semantic_node_factory\");\nconst SemanticPred = require(\"./semantic_pred\");\nconst SemanticUtil = require(\"./semantic_util\");\nclass SemanticProcessor {\n constructor() {\n this.funcAppls = {};\n this.factory_ = new semantic_node_factory_1.SemanticNodeFactory();\n SemanticHeuristics.updateFactory(this.factory_);\n }\n static getInstance() {\n SemanticProcessor.instance =\n SemanticProcessor.instance || new SemanticProcessor();\n return SemanticProcessor.instance;\n }\n static tableToMultiline(table) {\n if (!SemanticPred.tableIsMultiline(table)) {\n SemanticProcessor.classifyTable(table);\n return;\n }\n table.type = \"multiline\";\n for (let i = 0, row; (row = table.childNodes[i]); i++) {\n SemanticProcessor.rowToLine_(row, \"multiline\");\n }\n if (table.childNodes.length === 1 &&\n !SemanticPred.lineIsLabelled(table.childNodes[0]) &&\n SemanticPred.isFencedElement(table.childNodes[0].childNodes[0])) {\n SemanticProcessor.tableToMatrixOrVector_(SemanticProcessor.rewriteFencedLine_(table));\n }\n SemanticProcessor.binomialForm_(table);\n SemanticProcessor.classifyMultiline(table);\n }\n static number(node) {\n if (node.type === \"unknown\" ||\n node.type === \"identifier\") {\n node.type = \"number\";\n }\n SemanticProcessor.numberRole_(node);\n SemanticProcessor.exprFont_(node);\n }\n static classifyMultiline(multiline) {\n let index = 0;\n const length = multiline.childNodes.length;\n let line;\n while (index < length &&\n (!(line = multiline.childNodes[index]) || !line.childNodes.length)) {\n index++;\n }\n if (index >= length) {\n return;\n }\n const firstRole = line.childNodes[0].role;\n if (firstRole !== \"unknown\" &&\n multiline.childNodes.every(function (x) {\n const cell = x.childNodes[0];\n return (!cell ||\n (cell.role === firstRole &&\n (SemanticPred.isType(cell, \"relation\") ||\n SemanticPred.isType(cell, \"relseq\"))));\n })) {\n multiline.role = firstRole;\n }\n }\n static classifyTable(table) {\n const columns = SemanticProcessor.computeColumns_(table);\n SemanticProcessor.classifyByColumns_(table, columns, \"equality\") ||\n SemanticProcessor.classifyByColumns_(table, columns, \"inequality\", [\"equality\"]) ||\n SemanticProcessor.classifyByColumns_(table, columns, \"arrow\") ||\n SemanticProcessor.detectCaleyTable(table);\n }\n static detectCaleyTable(table) {\n if (!table.mathmlTree) {\n return false;\n }\n const tree = table.mathmlTree;\n const cl = tree.getAttribute('columnlines');\n const rl = tree.getAttribute('rowlines');\n if (!cl || !rl) {\n return false;\n }\n if (SemanticProcessor.cayleySpacing(cl) &&\n SemanticProcessor.cayleySpacing(rl)) {\n table.role = \"cayley\";\n return true;\n }\n return false;\n }\n static cayleySpacing(lines) {\n const list = lines.split(' ');\n return ((list[0] === 'solid' || list[0] === 'dashed') &&\n list.slice(1).every((x) => x === 'none'));\n }\n static proof(node, semantics, parse) {\n const attrs = SemanticProcessor.separateSemantics(semantics);\n return SemanticProcessor.getInstance().proof(node, attrs, parse);\n }\n static findSemantics(node, attr, opt_value) {\n const value = opt_value == null ? null : opt_value;\n const semantics = SemanticProcessor.getSemantics(node);\n if (!semantics) {\n return false;\n }\n if (!semantics[attr]) {\n return false;\n }\n return value == null ? true : semantics[attr] === value;\n }\n static getSemantics(node) {\n const semantics = node.getAttribute('semantics');\n if (!semantics) {\n return null;\n }\n return SemanticProcessor.separateSemantics(semantics);\n }\n static removePrefix(name) {\n const [, ...rest] = name.split('_');\n return rest.join('_');\n }\n static separateSemantics(attr) {\n const result = {};\n attr.split(';').forEach(function (x) {\n const [name, value] = x.split(':');\n result[SemanticProcessor.removePrefix(name)] = value;\n });\n return result;\n }\n static matchSpaces_(nodes, ops) {\n for (let i = 0, op; (op = ops[i]); i++) {\n const node = nodes[i];\n const mt1 = node.mathmlTree;\n const mt2 = nodes[i + 1].mathmlTree;\n if (!mt1 || !mt2) {\n continue;\n }\n const sibling = mt1.nextSibling;\n if (!sibling || sibling === mt2) {\n continue;\n }\n const spacer = SemanticProcessor.getSpacer_(sibling);\n if (spacer) {\n op.mathml.push(spacer);\n op.mathmlTree = spacer;\n op.role = \"space\";\n }\n }\n }\n static getSpacer_(node) {\n if (DomUtil.tagName(node) === 'MSPACE') {\n return node;\n }\n while (SemanticUtil.hasEmptyTag(node) && node.childNodes.length === 1) {\n node = node.childNodes[0];\n if (DomUtil.tagName(node) === 'MSPACE') {\n return node;\n }\n }\n return null;\n }\n static fenceToPunct_(fence) {\n const newRole = SemanticProcessor.FENCE_TO_PUNCT_[fence.role];\n if (!newRole) {\n return;\n }\n while (fence.embellished) {\n fence.embellished = \"punctuation\";\n if (!(SemanticPred.isRole(fence, \"subsup\") ||\n SemanticPred.isRole(fence, \"underover\"))) {\n fence.role = newRole;\n }\n fence = fence.childNodes[0];\n }\n fence.type = \"punctuation\";\n fence.role = newRole;\n }\n static classifyFunction_(funcNode, restNodes) {\n if (funcNode.type === \"appl\" ||\n funcNode.type === \"bigop\" ||\n funcNode.type === \"integral\") {\n return '';\n }\n if (restNodes[0] &&\n restNodes[0].textContent === SemanticAttr.functionApplication()) {\n SemanticProcessor.getInstance().funcAppls[funcNode.id] =\n restNodes.shift();\n let role = \"simple function\";\n SemanticHeuristics.run('simple2prefix', funcNode);\n if (funcNode.role === \"prefix function\" ||\n funcNode.role === \"limit function\") {\n role = funcNode.role;\n }\n SemanticProcessor.propagateFunctionRole_(funcNode, role);\n return 'prefix';\n }\n const kind = SemanticProcessor.CLASSIFY_FUNCTION_[funcNode.role];\n return kind\n ? kind\n : SemanticPred.isSimpleFunctionHead(funcNode)\n ? 'simple'\n : '';\n }\n static propagateFunctionRole_(funcNode, tag) {\n if (funcNode) {\n if (funcNode.type === \"infixop\") {\n return;\n }\n if (!(SemanticPred.isRole(funcNode, \"subsup\") ||\n SemanticPred.isRole(funcNode, \"underover\"))) {\n funcNode.role = tag;\n }\n SemanticProcessor.propagateFunctionRole_(funcNode.childNodes[0], tag);\n }\n }\n static getFunctionOp_(tree, pred) {\n if (pred(tree)) {\n return tree;\n }\n for (let i = 0, child; (child = tree.childNodes[i]); i++) {\n const op = SemanticProcessor.getFunctionOp_(child, pred);\n if (op) {\n return op;\n }\n }\n return null;\n }\n static tableToMatrixOrVector_(node) {\n const matrix = node.childNodes[0];\n SemanticPred.isType(matrix, \"multiline\")\n ? SemanticProcessor.tableToVector_(node)\n : SemanticProcessor.tableToMatrix_(node);\n node.contentNodes.forEach(matrix.appendContentNode.bind(matrix));\n for (let i = 0, row; (row = matrix.childNodes[i]); i++) {\n SemanticProcessor.assignRoleToRow_(row, SemanticProcessor.getComponentRoles_(matrix));\n }\n matrix.parent = null;\n return matrix;\n }\n static tableToVector_(node) {\n const vector = node.childNodes[0];\n vector.type = \"vector\";\n if (vector.childNodes.length === 1) {\n SemanticProcessor.tableToSquare_(node);\n return;\n }\n SemanticProcessor.binomialForm_(vector);\n }\n static binomialForm_(node) {\n if (SemanticPred.isBinomial(node)) {\n node.role = \"binomial\";\n node.childNodes[0].role = \"binomial\";\n node.childNodes[1].role = \"binomial\";\n }\n }\n static tableToMatrix_(node) {\n const matrix = node.childNodes[0];\n matrix.type = \"matrix\";\n if (matrix.childNodes &&\n matrix.childNodes.length > 0 &&\n matrix.childNodes[0].childNodes &&\n matrix.childNodes.length === matrix.childNodes[0].childNodes.length) {\n SemanticProcessor.tableToSquare_(node);\n return;\n }\n if (matrix.childNodes && matrix.childNodes.length === 1) {\n matrix.role = \"rowvector\";\n }\n }\n static tableToSquare_(node) {\n const matrix = node.childNodes[0];\n if (SemanticPred.isNeutralFence(node)) {\n matrix.role = \"determinant\";\n return;\n }\n matrix.role = \"squarematrix\";\n }\n static getComponentRoles_(node) {\n const role = node.role;\n if (role && role !== \"unknown\") {\n return role;\n }\n return node.type.toLowerCase() || \"unknown\";\n }\n static tableToCases_(table, openFence) {\n for (let i = 0, row; (row = table.childNodes[i]); i++) {\n SemanticProcessor.assignRoleToRow_(row, \"cases\");\n }\n table.type = \"cases\";\n table.appendContentNode(openFence);\n if (SemanticPred.tableIsMultiline(table)) {\n SemanticProcessor.binomialForm_(table);\n }\n return table;\n }\n static rewriteFencedLine_(table) {\n const line = table.childNodes[0];\n const fenced = table.childNodes[0].childNodes[0];\n const element = table.childNodes[0].childNodes[0].childNodes[0];\n fenced.parent = table.parent;\n table.parent = fenced;\n element.parent = line;\n fenced.childNodes = [table];\n line.childNodes = [element];\n return fenced;\n }\n static rowToLine_(row, opt_role) {\n const role = opt_role || \"unknown\";\n if (SemanticPred.isType(row, \"row\")) {\n row.type = \"line\";\n row.role = role;\n if (row.childNodes.length === 1 &&\n SemanticPred.isType(row.childNodes[0], \"cell\")) {\n row.childNodes = row.childNodes[0].childNodes;\n row.childNodes.forEach(function (x) {\n x.parent = row;\n });\n }\n }\n }\n static assignRoleToRow_(row, role) {\n if (SemanticPred.isType(row, \"line\")) {\n row.role = role;\n return;\n }\n if (SemanticPred.isType(row, \"row\")) {\n row.role = role;\n row.childNodes.forEach(function (cell) {\n if (SemanticPred.isType(cell, \"cell\")) {\n cell.role = role;\n }\n });\n }\n }\n static nextSeparatorFunction_(separators) {\n let sepList;\n if (separators) {\n if (separators.match(/^\\s+$/)) {\n return null;\n }\n else {\n sepList = separators\n .replace(/\\s/g, '')\n .split('')\n .filter(function (x) {\n return x;\n });\n }\n }\n else {\n sepList = [','];\n }\n return function () {\n if (sepList.length > 1) {\n return sepList.shift();\n }\n return sepList[0];\n };\n }\n static numberRole_(node) {\n if (node.role !== \"unknown\") {\n return;\n }\n const content = [...node.textContent].filter((x) => x.match(/[^\\s]/));\n const meaning = content.map(SemanticAttr.lookupMeaning);\n if (meaning.every(function (x) {\n return ((x.type === \"number\" && x.role === \"integer\") ||\n (x.type === \"punctuation\" && x.role === \"comma\"));\n })) {\n node.role = \"integer\";\n if (content[0] === '0') {\n node.addAnnotation('general', 'basenumber');\n }\n return;\n }\n if (meaning.every(function (x) {\n return ((x.type === \"number\" && x.role === \"integer\") ||\n x.type === \"punctuation\");\n })) {\n node.role = \"float\";\n return;\n }\n node.role = \"othernumber\";\n }\n static exprFont_(node) {\n if (node.font !== \"unknown\") {\n return;\n }\n const content = [...node.textContent];\n const meaning = content.map(SemanticAttr.lookupMeaning);\n const singleFont = meaning.reduce(function (prev, curr) {\n if (!prev ||\n !curr.font ||\n curr.font === \"unknown\" ||\n curr.font === prev) {\n return prev;\n }\n if (prev === \"unknown\") {\n return curr.font;\n }\n return null;\n }, \"unknown\");\n if (singleFont) {\n node.font = singleFont;\n }\n }\n static purgeFences_(partition) {\n const rel = partition.rel;\n const comp = partition.comp;\n const newRel = [];\n const newComp = [];\n while (rel.length > 0) {\n const currentRel = rel.shift();\n let currentComp = comp.shift();\n if (SemanticPred.isElligibleEmbellishedFence(currentRel)) {\n newRel.push(currentRel);\n newComp.push(currentComp);\n continue;\n }\n SemanticProcessor.fenceToPunct_(currentRel);\n currentComp.push(currentRel);\n currentComp = currentComp.concat(comp.shift());\n comp.unshift(currentComp);\n }\n newComp.push(comp.shift());\n return { rel: newRel, comp: newComp };\n }\n static rewriteFencedNode_(fenced) {\n const ofence = fenced.contentNodes[0];\n const cfence = fenced.contentNodes[1];\n let rewritten = SemanticProcessor.rewriteFence_(fenced, ofence);\n fenced.contentNodes[0] = rewritten.fence;\n rewritten = SemanticProcessor.rewriteFence_(rewritten.node, cfence);\n fenced.contentNodes[1] = rewritten.fence;\n fenced.contentNodes[0].parent = fenced;\n fenced.contentNodes[1].parent = fenced;\n rewritten.node.parent = null;\n return rewritten.node;\n }\n static rewriteFence_(node, fence) {\n if (!fence.embellished) {\n return { node: node, fence: fence };\n }\n const newFence = fence.childNodes[0];\n const rewritten = SemanticProcessor.rewriteFence_(node, newFence);\n if (SemanticPred.isType(fence, \"superscript\") ||\n SemanticPred.isType(fence, \"subscript\") ||\n SemanticPred.isType(fence, \"tensor\")) {\n if (!SemanticPred.isRole(fence, \"subsup\")) {\n fence.role = node.role;\n }\n if (newFence !== rewritten.node) {\n fence.replaceChild(newFence, rewritten.node);\n newFence.parent = node;\n }\n SemanticProcessor.propagateFencePointer_(fence, newFence);\n return { node: fence, fence: rewritten.fence };\n }\n fence.replaceChild(newFence, rewritten.fence);\n if (fence.mathmlTree && fence.mathml.indexOf(fence.mathmlTree) === -1) {\n fence.mathml.push(fence.mathmlTree);\n }\n return { node: rewritten.node, fence: fence };\n }\n static propagateFencePointer_(oldNode, newNode) {\n oldNode.fencePointer = newNode.fencePointer || newNode.id.toString();\n oldNode.embellished = null;\n }\n static classifyByColumns_(table, columns, relation, _alternatives) {\n const test1 = (x) => SemanticProcessor.isPureRelation_(x, relation);\n const test2 = (x) => SemanticProcessor.isEndRelation_(x, relation) ||\n SemanticProcessor.isPureRelation_(x, relation);\n const test3 = (x) => SemanticProcessor.isEndRelation_(x, relation, true) ||\n SemanticProcessor.isPureRelation_(x, relation);\n if ((columns.length === 3 &&\n SemanticProcessor.testColumns_(columns, 1, test1)) ||\n (columns.length === 2 &&\n (SemanticProcessor.testColumns_(columns, 1, test2) ||\n SemanticProcessor.testColumns_(columns, 0, test3)))) {\n table.role = relation;\n return true;\n }\n return false;\n }\n static isEndRelation_(node, relation, opt_right) {\n const position = opt_right ? node.childNodes.length - 1 : 0;\n return (SemanticPred.isType(node, \"relseq\") &&\n SemanticPred.isRole(node, relation) &&\n SemanticPred.isType(node.childNodes[position], \"empty\"));\n }\n static isPureRelation_(node, relation) {\n return (SemanticPred.isType(node, \"relation\") &&\n SemanticPred.isRole(node, relation));\n }\n static computeColumns_(table) {\n const columns = [];\n for (let i = 0, row; (row = table.childNodes[i]); i++) {\n for (let j = 0, cell; (cell = row.childNodes[j]); j++) {\n const column = columns[j];\n column ? columns[j].push(cell) : (columns[j] = [cell]);\n }\n }\n return columns;\n }\n static testColumns_(columns, index, pred) {\n const column = columns[index];\n return column\n ? column.some(function (cell) {\n return (cell.childNodes.length && pred(cell.childNodes[0]));\n }) &&\n column.every(function (cell) {\n return (!cell.childNodes.length ||\n pred(cell.childNodes[0]));\n })\n : false;\n }\n setNodeFactory(factory) {\n SemanticProcessor.getInstance().factory_ = factory;\n SemanticHeuristics.updateFactory(SemanticProcessor.getInstance().factory_);\n }\n getNodeFactory() {\n return SemanticProcessor.getInstance().factory_;\n }\n identifierNode(leaf, font, unit) {\n if (unit === 'MathML-Unit') {\n leaf.type = \"identifier\";\n leaf.role = \"unit\";\n }\n else if (!font &&\n leaf.textContent.length === 1 &&\n (leaf.role === \"integer\" ||\n leaf.role === \"latinletter\" ||\n leaf.role === \"greekletter\") &&\n leaf.font === \"normal\") {\n leaf.font = \"italic\";\n return SemanticHeuristics.run('simpleNamedFunction', leaf);\n }\n if (leaf.type === \"unknown\") {\n leaf.type = \"identifier\";\n }\n SemanticProcessor.exprFont_(leaf);\n return SemanticHeuristics.run('simpleNamedFunction', leaf);\n }\n implicitNode(nodes) {\n nodes = SemanticProcessor.getInstance().getMixedNumbers_(nodes);\n nodes = SemanticProcessor.getInstance().combineUnits_(nodes);\n if (nodes.length === 1) {\n return nodes[0];\n }\n const node = SemanticProcessor.getInstance().implicitNode_(nodes);\n return SemanticHeuristics.run('combine_juxtaposition', node);\n }\n text(leaf, type) {\n SemanticProcessor.exprFont_(leaf);\n leaf.type = \"text\";\n if (type === 'MS') {\n leaf.role = \"string\";\n return leaf;\n }\n if (type === 'MSPACE' || leaf.textContent.match(/^\\s*$/)) {\n leaf.role = \"space\";\n return leaf;\n }\n return leaf;\n }\n row(nodes) {\n nodes = nodes.filter(function (x) {\n return !SemanticPred.isType(x, \"empty\");\n });\n if (nodes.length === 0) {\n return SemanticProcessor.getInstance().factory_.makeEmptyNode();\n }\n nodes = SemanticProcessor.getInstance().getFencesInRow_(nodes);\n nodes = SemanticProcessor.getInstance().tablesInRow(nodes);\n nodes = SemanticProcessor.getInstance().getPunctuationInRow_(nodes);\n nodes = SemanticProcessor.getInstance().getTextInRow_(nodes);\n nodes = SemanticProcessor.getInstance().getFunctionsInRow_(nodes);\n return SemanticProcessor.getInstance().relationsInRow_(nodes);\n }\n limitNode(mmlTag, children) {\n if (!children.length) {\n return SemanticProcessor.getInstance().factory_.makeEmptyNode();\n }\n let center = children[0];\n let type = \"unknown\";\n if (!children[1]) {\n return center;\n }\n let result;\n if (SemanticPred.isLimitBase(center)) {\n result = SemanticProcessor.MML_TO_LIMIT_[mmlTag];\n const length = result.length;\n type = result.type;\n children = children.slice(0, result.length + 1);\n if ((length === 1 && SemanticPred.isAccent(children[1])) ||\n (length === 2 &&\n SemanticPred.isAccent(children[1]) &&\n SemanticPred.isAccent(children[2]))) {\n result = SemanticProcessor.MML_TO_BOUNDS_[mmlTag];\n return SemanticProcessor.getInstance().accentNode_(center, children, result.type, result.length, result.accent);\n }\n if (length === 2) {\n if (SemanticPred.isAccent(children[1])) {\n center = SemanticProcessor.getInstance().accentNode_(center, [center, children[1]], {\n MSUBSUP: \"subscript\",\n MUNDEROVER: \"underscore\"\n }[mmlTag], 1, true);\n return !children[2]\n ? center\n : SemanticProcessor.getInstance().makeLimitNode_(center, [center, children[2]], null, \"limupper\");\n }\n if (children[2] && SemanticPred.isAccent(children[2])) {\n center = SemanticProcessor.getInstance().accentNode_(center, [center, children[2]], {\n MSUBSUP: \"superscript\",\n MUNDEROVER: \"overscore\"\n }[mmlTag], 1, true);\n return SemanticProcessor.getInstance().makeLimitNode_(center, [center, children[1]], null, \"limlower\");\n }\n if (!children[length]) {\n type = \"limlower\";\n }\n }\n return SemanticProcessor.getInstance().makeLimitNode_(center, children, null, type);\n }\n result = SemanticProcessor.MML_TO_BOUNDS_[mmlTag];\n return SemanticProcessor.getInstance().accentNode_(center, children, result.type, result.length, result.accent);\n }\n tablesInRow(nodes) {\n let partition = SemanticUtil.partitionNodes(nodes, SemanticPred.tableIsMatrixOrVector);\n let result = [];\n for (let i = 0, matrix; (matrix = partition.rel[i]); i++) {\n result = result.concat(partition.comp.shift());\n result.push(SemanticProcessor.tableToMatrixOrVector_(matrix));\n }\n result = result.concat(partition.comp.shift());\n partition = SemanticUtil.partitionNodes(result, SemanticPred.isTableOrMultiline);\n result = [];\n for (let i = 0, table; (table = partition.rel[i]); i++) {\n const prevNodes = partition.comp.shift();\n if (SemanticPred.tableIsCases(table, prevNodes)) {\n SemanticProcessor.tableToCases_(table, prevNodes.pop());\n }\n result = result.concat(prevNodes);\n result.push(table);\n }\n return result.concat(partition.comp.shift());\n }\n mfenced(open, close, sepValue, children) {\n if (sepValue && children.length > 0) {\n const separators = SemanticProcessor.nextSeparatorFunction_(sepValue);\n const newChildren = [children.shift()];\n children.forEach((child) => {\n newChildren.push(SemanticProcessor.getInstance().factory_.makeContentNode(separators()));\n newChildren.push(child);\n });\n children = newChildren;\n }\n if (open && close) {\n return SemanticProcessor.getInstance().horizontalFencedNode_(SemanticProcessor.getInstance().factory_.makeContentNode(open), SemanticProcessor.getInstance().factory_.makeContentNode(close), children);\n }\n if (open) {\n children.unshift(SemanticProcessor.getInstance().factory_.makeContentNode(open));\n }\n if (close) {\n children.push(SemanticProcessor.getInstance().factory_.makeContentNode(close));\n }\n return SemanticProcessor.getInstance().row(children);\n }\n fractionLikeNode(denom, enume, linethickness, bevelled) {\n let node;\n if (!bevelled && SemanticUtil.isZeroLength(linethickness)) {\n const child0 = SemanticProcessor.getInstance().factory_.makeBranchNode(\"line\", [denom], []);\n const child1 = SemanticProcessor.getInstance().factory_.makeBranchNode(\"line\", [enume], []);\n node = SemanticProcessor.getInstance().factory_.makeBranchNode(\"multiline\", [child0, child1], []);\n SemanticProcessor.binomialForm_(node);\n SemanticProcessor.classifyMultiline(node);\n return node;\n }\n else {\n node = SemanticProcessor.getInstance().fractionNode_(denom, enume);\n if (bevelled) {\n node.addAnnotation('general', 'bevelled');\n }\n return node;\n }\n }\n tensor(base, lsub, lsup, rsub, rsup) {\n const newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"tensor\", [\n base,\n SemanticProcessor.getInstance().scriptNode_(lsub, \"leftsub\"),\n SemanticProcessor.getInstance().scriptNode_(lsup, \"leftsuper\"),\n SemanticProcessor.getInstance().scriptNode_(rsub, \"rightsub\"),\n SemanticProcessor.getInstance().scriptNode_(rsup, \"rightsuper\")\n ], []);\n newNode.role = base.role;\n newNode.embellished = SemanticPred.isEmbellished(base);\n return newNode;\n }\n pseudoTensor(base, sub, sup) {\n const isEmpty = (x) => !SemanticPred.isType(x, \"empty\");\n const nonEmptySub = sub.filter(isEmpty).length;\n const nonEmptySup = sup.filter(isEmpty).length;\n if (!nonEmptySub && !nonEmptySup) {\n return base;\n }\n const mmlTag = nonEmptySub ? (nonEmptySup ? 'MSUBSUP' : 'MSUB') : 'MSUP';\n const mmlchild = [base];\n if (nonEmptySub) {\n mmlchild.push(SemanticProcessor.getInstance().scriptNode_(sub, \"rightsub\", true));\n }\n if (nonEmptySup) {\n mmlchild.push(SemanticProcessor.getInstance().scriptNode_(sup, \"rightsuper\", true));\n }\n return SemanticProcessor.getInstance().limitNode(mmlTag, mmlchild);\n }\n font(font) {\n const mathjaxFont = SemanticProcessor.MATHJAX_FONTS[font];\n return mathjaxFont ? mathjaxFont : font;\n }\n proof(node, semantics, parse) {\n if (!semantics['inference'] && !semantics['axiom']) {\n console.log('Noise');\n }\n if (semantics['axiom']) {\n const cleaned = SemanticProcessor.getInstance().cleanInference(node.childNodes);\n const axiom = cleaned.length\n ? SemanticProcessor.getInstance().factory_.makeBranchNode(\"inference\", parse(cleaned), [])\n : SemanticProcessor.getInstance().factory_.makeEmptyNode();\n axiom.role = \"axiom\";\n axiom.mathmlTree = node;\n return axiom;\n }\n const inference = SemanticProcessor.getInstance().inference(node, semantics, parse);\n if (semantics['proof']) {\n inference.role = \"proof\";\n inference.childNodes[0].role = \"final\";\n }\n return inference;\n }\n inference(node, semantics, parse) {\n if (semantics['inferenceRule']) {\n const formulas = SemanticProcessor.getInstance().getFormulas(node, [], parse);\n const inference = SemanticProcessor.getInstance().factory_.makeBranchNode(\"inference\", [formulas.conclusion, formulas.premises], []);\n return inference;\n }\n const label = semantics['labelledRule'];\n const children = DomUtil.toArray(node.childNodes);\n const content = [];\n if (label === 'left' || label === 'both') {\n content.push(SemanticProcessor.getInstance().getLabel(node, children, parse, \"left\"));\n }\n if (label === 'right' || label === 'both') {\n content.push(SemanticProcessor.getInstance().getLabel(node, children, parse, \"right\"));\n }\n const formulas = SemanticProcessor.getInstance().getFormulas(node, children, parse);\n const inference = SemanticProcessor.getInstance().factory_.makeBranchNode(\"inference\", [formulas.conclusion, formulas.premises], content);\n inference.mathmlTree = node;\n return inference;\n }\n getLabel(_node, children, parse, side) {\n const label = SemanticProcessor.getInstance().findNestedRow(children, 'prooflabel', side);\n const sem = SemanticProcessor.getInstance().factory_.makeBranchNode(\"rulelabel\", parse(DomUtil.toArray(label.childNodes)), []);\n sem.role = side;\n sem.mathmlTree = label;\n return sem;\n }\n getFormulas(node, children, parse) {\n const inf = children.length\n ? SemanticProcessor.getInstance().findNestedRow(children, 'inferenceRule')\n : node;\n const up = SemanticProcessor.getSemantics(inf)['inferenceRule'] === 'up';\n const premRow = up ? inf.childNodes[1] : inf.childNodes[0];\n const concRow = up ? inf.childNodes[0] : inf.childNodes[1];\n const premTable = premRow.childNodes[0].childNodes[0];\n const topRow = DomUtil.toArray(premTable.childNodes[0].childNodes);\n const premNodes = [];\n let i = 1;\n for (const cell of topRow) {\n if (i % 2) {\n premNodes.push(cell.childNodes[0]);\n }\n i++;\n }\n const premises = parse(premNodes);\n const conclusion = parse(DomUtil.toArray(concRow.childNodes[0].childNodes))[0];\n const prem = SemanticProcessor.getInstance().factory_.makeBranchNode(\"premises\", premises, []);\n prem.mathmlTree = premTable;\n const conc = SemanticProcessor.getInstance().factory_.makeBranchNode(\"conclusion\", [conclusion], []);\n conc.mathmlTree = concRow.childNodes[0].childNodes[0];\n return { conclusion: conc, premises: prem };\n }\n findNestedRow(nodes, semantic, opt_value) {\n return SemanticProcessor.getInstance().findNestedRow_(nodes, semantic, 0, opt_value);\n }\n cleanInference(nodes) {\n return DomUtil.toArray(nodes).filter(function (x) {\n return DomUtil.tagName(x) !== 'MSPACE';\n });\n }\n operatorNode(node) {\n if (node.type === \"unknown\") {\n node.type = \"operator\";\n }\n return SemanticHeuristics.run('multioperator', node);\n }\n implicitNode_(nodes) {\n const operators = SemanticProcessor.getInstance().factory_.makeMultipleContentNodes(nodes.length - 1, SemanticAttr.invisibleTimes());\n SemanticProcessor.matchSpaces_(nodes, operators);\n const newNode = SemanticProcessor.getInstance().infixNode_(nodes, operators[0]);\n newNode.role = \"implicit\";\n operators.forEach(function (op) {\n op.parent = newNode;\n });\n newNode.contentNodes = operators;\n return newNode;\n }\n infixNode_(children, opNode) {\n const node = SemanticProcessor.getInstance().factory_.makeBranchNode(\"infixop\", children, [opNode], SemanticUtil.getEmbellishedInner(opNode).textContent);\n node.role = opNode.role;\n return SemanticHeuristics.run('propagateSimpleFunction', node);\n }\n explicitMixed_(nodes) {\n const partition = SemanticUtil.partitionNodes(nodes, function (x) {\n return x.textContent === SemanticAttr.invisiblePlus();\n });\n if (!partition.rel.length) {\n return nodes;\n }\n let result = [];\n for (let i = 0, rel; (rel = partition.rel[i]); i++) {\n const prev = partition.comp[i];\n const next = partition.comp[i + 1];\n const last = prev.length - 1;\n if (prev[last] &&\n next[0] &&\n SemanticPred.isType(prev[last], \"number\") &&\n !SemanticPred.isRole(prev[last], \"mixed\") &&\n SemanticPred.isType(next[0], \"fraction\")) {\n const newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"number\", [prev[last], next[0]], []);\n newNode.role = \"mixed\";\n result = result.concat(prev.slice(0, last));\n result.push(newNode);\n next.shift();\n }\n else {\n result = result.concat(prev);\n result.push(rel);\n }\n }\n return result.concat(partition.comp[partition.comp.length - 1]);\n }\n concatNode_(inner, nodeList, type) {\n if (nodeList.length === 0) {\n return inner;\n }\n const content = nodeList\n .map(function (x) {\n return SemanticUtil.getEmbellishedInner(x).textContent;\n })\n .join(' ');\n const newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(type, [inner], nodeList, content);\n if (nodeList.length > 1) {\n newNode.role = \"multiop\";\n }\n return newNode;\n }\n prefixNode_(node, prefixes) {\n const negatives = SemanticUtil.partitionNodes(prefixes, (x) => SemanticPred.isRole(x, \"subtraction\"));\n let newNode = SemanticProcessor.getInstance().concatNode_(node, negatives.comp.pop(), \"prefixop\");\n if (newNode.contentNodes.length === 1 &&\n newNode.contentNodes[0].role === \"addition\" &&\n newNode.contentNodes[0].textContent === '+') {\n newNode.role = \"positive\";\n }\n while (negatives.rel.length > 0) {\n newNode = SemanticProcessor.getInstance().concatNode_(newNode, [negatives.rel.pop()], \"prefixop\");\n newNode.role = \"negative\";\n newNode = SemanticProcessor.getInstance().concatNode_(newNode, negatives.comp.pop(), \"prefixop\");\n }\n return newNode;\n }\n postfixNode_(node, postfixes) {\n if (!postfixes.length) {\n return node;\n }\n return SemanticProcessor.getInstance().concatNode_(node, postfixes, \"postfixop\");\n }\n combineUnits_(nodes) {\n const partition = SemanticUtil.partitionNodes(nodes, function (x) {\n return !SemanticPred.isRole(x, \"unit\");\n });\n if (nodes.length === partition.rel.length) {\n return partition.rel;\n }\n const result = [];\n let rel;\n let last;\n do {\n const comp = partition.comp.shift();\n rel = partition.rel.shift();\n let unitNode = null;\n last = result.pop();\n if (last) {\n if (!comp.length || !SemanticPred.isUnitCounter(last)) {\n result.push(last);\n }\n else {\n comp.unshift(last);\n }\n }\n if (comp.length === 1) {\n unitNode = comp.pop();\n }\n if (comp.length > 1) {\n unitNode = SemanticProcessor.getInstance().implicitNode_(comp);\n unitNode.role = \"unit\";\n }\n if (unitNode) {\n result.push(unitNode);\n }\n if (rel) {\n result.push(rel);\n }\n } while (rel);\n return result;\n }\n getMixedNumbers_(nodes) {\n const partition = SemanticUtil.partitionNodes(nodes, function (x) {\n return (SemanticPred.isType(x, \"fraction\") &&\n SemanticPred.isRole(x, \"vulgar\"));\n });\n if (!partition.rel.length) {\n return nodes;\n }\n let result = [];\n for (let i = 0, rel; (rel = partition.rel[i]); i++) {\n const comp = partition.comp[i];\n const last = comp.length - 1;\n if (comp[last] &&\n SemanticPred.isType(comp[last], \"number\") &&\n (SemanticPred.isRole(comp[last], \"integer\") ||\n SemanticPred.isRole(comp[last], \"float\"))) {\n const newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"number\", [comp[last], rel], []);\n newNode.role = \"mixed\";\n result = result.concat(comp.slice(0, last));\n result.push(newNode);\n }\n else {\n result = result.concat(comp);\n result.push(rel);\n }\n }\n return result.concat(partition.comp[partition.comp.length - 1]);\n }\n getTextInRow_(nodes) {\n if (nodes.length <= 1) {\n return nodes;\n }\n const partition = SemanticUtil.partitionNodes(nodes, (x) => SemanticPred.isType(x, \"text\"));\n if (partition.rel.length === 0) {\n return nodes;\n }\n const result = [];\n let nextComp = partition.comp[0];\n if (nextComp.length > 0) {\n result.push(SemanticProcessor.getInstance().row(nextComp));\n }\n for (let i = 0, text; (text = partition.rel[i]); i++) {\n result.push(text);\n nextComp = partition.comp[i + 1];\n if (nextComp.length > 0) {\n result.push(SemanticProcessor.getInstance().row(nextComp));\n }\n }\n return [SemanticProcessor.getInstance().dummyNode_(result)];\n }\n relationsInRow_(nodes) {\n const partition = SemanticUtil.partitionNodes(nodes, SemanticPred.isRelation);\n const firstRel = partition.rel[0];\n if (!firstRel) {\n return SemanticProcessor.getInstance().operationsInRow_(nodes);\n }\n if (nodes.length === 1) {\n return nodes[0];\n }\n const children = partition.comp.map(SemanticProcessor.getInstance().operationsInRow_);\n let node;\n if (partition.rel.some(function (x) {\n return !x.equals(firstRel);\n })) {\n node = SemanticProcessor.getInstance().factory_.makeBranchNode(\"multirel\", children, partition.rel);\n if (partition.rel.every(function (x) {\n return x.role === firstRel.role;\n })) {\n node.role = firstRel.role;\n }\n return node;\n }\n node = SemanticProcessor.getInstance().factory_.makeBranchNode(\"relseq\", children, partition.rel, SemanticUtil.getEmbellishedInner(firstRel).textContent);\n node.role = firstRel.role;\n return node;\n }\n operationsInRow_(nodes) {\n if (nodes.length === 0) {\n return SemanticProcessor.getInstance().factory_.makeEmptyNode();\n }\n nodes = SemanticProcessor.getInstance().explicitMixed_(nodes);\n if (nodes.length === 1) {\n return nodes[0];\n }\n const prefix = [];\n while (nodes.length > 0 && SemanticPred.isOperator(nodes[0])) {\n prefix.push(nodes.shift());\n }\n if (nodes.length === 0) {\n return SemanticProcessor.getInstance().prefixNode_(prefix.pop(), prefix);\n }\n if (nodes.length === 1) {\n return SemanticProcessor.getInstance().prefixNode_(nodes[0], prefix);\n }\n nodes = SemanticHeuristics.run('convert_juxtaposition', nodes);\n const split = SemanticUtil.sliceNodes(nodes, SemanticPred.isOperator);\n const node = SemanticProcessor.getInstance().prefixNode_(SemanticProcessor.getInstance().implicitNode(split.head), prefix);\n if (!split.div) {\n return node;\n }\n return SemanticProcessor.getInstance().operationsTree_(split.tail, node, split.div);\n }\n operationsTree_(nodes, root, lastop, opt_prefixes) {\n const prefixes = opt_prefixes || [];\n if (nodes.length === 0) {\n prefixes.unshift(lastop);\n if (root.type === \"infixop\") {\n const node = SemanticProcessor.getInstance().postfixNode_(root.childNodes.pop(), prefixes);\n root.appendChild(node);\n return root;\n }\n return SemanticProcessor.getInstance().postfixNode_(root, prefixes);\n }\n const split = SemanticUtil.sliceNodes(nodes, SemanticPred.isOperator);\n if (split.head.length === 0) {\n prefixes.push(split.div);\n return SemanticProcessor.getInstance().operationsTree_(split.tail, root, lastop, prefixes);\n }\n const node = SemanticProcessor.getInstance().prefixNode_(SemanticProcessor.getInstance().implicitNode(split.head), prefixes);\n const newNode = SemanticProcessor.getInstance().appendOperand_(root, lastop, node);\n if (!split.div) {\n return newNode;\n }\n return SemanticProcessor.getInstance().operationsTree_(split.tail, newNode, split.div, []);\n }\n appendOperand_(root, op, node) {\n if (root.type !== \"infixop\") {\n return SemanticProcessor.getInstance().infixNode_([root, node], op);\n }\n const division = SemanticProcessor.getInstance().appendDivisionOp_(root, op, node);\n if (division) {\n return division;\n }\n if (SemanticProcessor.getInstance().appendExistingOperator_(root, op, node)) {\n return root;\n }\n return op.role === \"multiplication\"\n ? SemanticProcessor.getInstance().appendMultiplicativeOp_(root, op, node)\n : SemanticProcessor.getInstance().appendAdditiveOp_(root, op, node);\n }\n appendDivisionOp_(root, op, node) {\n if (op.role === \"division\") {\n if (SemanticPred.isImplicit(root)) {\n return SemanticProcessor.getInstance().infixNode_([root, node], op);\n }\n return SemanticProcessor.getInstance().appendLastOperand_(root, op, node);\n }\n return root.role === \"division\"\n ? SemanticProcessor.getInstance().infixNode_([root, node], op)\n : null;\n }\n appendLastOperand_(root, op, node) {\n let lastRoot = root;\n let lastChild = root.childNodes[root.childNodes.length - 1];\n while (lastChild &&\n lastChild.type === \"infixop\" &&\n !SemanticPred.isImplicit(lastChild)) {\n lastRoot = lastChild;\n lastChild = lastRoot.childNodes[root.childNodes.length - 1];\n }\n const newNode = SemanticProcessor.getInstance().infixNode_([lastRoot.childNodes.pop(), node], op);\n lastRoot.appendChild(newNode);\n return root;\n }\n appendMultiplicativeOp_(root, op, node) {\n if (SemanticPred.isImplicit(root)) {\n return SemanticProcessor.getInstance().infixNode_([root, node], op);\n }\n let lastRoot = root;\n let lastChild = root.childNodes[root.childNodes.length - 1];\n while (lastChild &&\n lastChild.type === \"infixop\" &&\n !SemanticPred.isImplicit(lastChild)) {\n lastRoot = lastChild;\n lastChild = lastRoot.childNodes[root.childNodes.length - 1];\n }\n const newNode = SemanticProcessor.getInstance().infixNode_([lastRoot.childNodes.pop(), node], op);\n lastRoot.appendChild(newNode);\n return root;\n }\n appendAdditiveOp_(root, op, node) {\n return SemanticProcessor.getInstance().infixNode_([root, node], op);\n }\n appendExistingOperator_(root, op, node) {\n if (!root ||\n root.type !== \"infixop\" ||\n SemanticPred.isImplicit(root)) {\n return false;\n }\n if (root.contentNodes[0].equals(op)) {\n root.appendContentNode(op);\n root.appendChild(node);\n return true;\n }\n return SemanticProcessor.getInstance().appendExistingOperator_(root.childNodes[root.childNodes.length - 1], op, node);\n }\n getFencesInRow_(nodes) {\n let partition = SemanticUtil.partitionNodes(nodes, SemanticPred.isFence);\n partition = SemanticProcessor.purgeFences_(partition);\n const felem = partition.comp.shift();\n return SemanticProcessor.getInstance().fences_(partition.rel, partition.comp, [], [felem]);\n }\n fences_(fences, content, openStack, contentStack) {\n if (fences.length === 0 && openStack.length === 0) {\n return contentStack[0];\n }\n const openPred = (x) => SemanticPred.isRole(x, \"open\");\n if (fences.length === 0) {\n const result = contentStack.shift();\n while (openStack.length > 0) {\n if (openPred(openStack[0])) {\n const firstOpen = openStack.shift();\n SemanticProcessor.fenceToPunct_(firstOpen);\n result.push(firstOpen);\n }\n else {\n const split = SemanticUtil.sliceNodes(openStack, openPred);\n const cutLength = split.head.length - 1;\n const innerNodes = SemanticProcessor.getInstance().neutralFences_(split.head, contentStack.slice(0, cutLength));\n contentStack = contentStack.slice(cutLength);\n result.push(...innerNodes);\n if (split.div) {\n split.tail.unshift(split.div);\n }\n openStack = split.tail;\n }\n result.push(...contentStack.shift());\n }\n return result;\n }\n const lastOpen = openStack[openStack.length - 1];\n const firstRole = fences[0].role;\n if (firstRole === \"open\" ||\n (SemanticPred.isNeutralFence(fences[0]) &&\n !(lastOpen && SemanticPred.compareNeutralFences(fences[0], lastOpen)))) {\n openStack.push(fences.shift());\n const cont = content.shift();\n if (cont) {\n contentStack.push(cont);\n }\n return SemanticProcessor.getInstance().fences_(fences, content, openStack, contentStack);\n }\n if (lastOpen &&\n firstRole === \"close\" &&\n lastOpen.role === \"open\") {\n const fenced = SemanticProcessor.getInstance().horizontalFencedNode_(openStack.pop(), fences.shift(), contentStack.pop());\n contentStack.push(contentStack.pop().concat([fenced], content.shift()));\n return SemanticProcessor.getInstance().fences_(fences, content, openStack, contentStack);\n }\n if (lastOpen &&\n SemanticPred.compareNeutralFences(fences[0], lastOpen)) {\n if (!SemanticPred.elligibleLeftNeutral(lastOpen) ||\n !SemanticPred.elligibleRightNeutral(fences[0])) {\n openStack.push(fences.shift());\n const cont = content.shift();\n if (cont) {\n contentStack.push(cont);\n }\n return SemanticProcessor.getInstance().fences_(fences, content, openStack, contentStack);\n }\n const fenced = SemanticProcessor.getInstance().horizontalFencedNode_(openStack.pop(), fences.shift(), contentStack.pop());\n contentStack.push(contentStack.pop().concat([fenced], content.shift()));\n return SemanticProcessor.getInstance().fences_(fences, content, openStack, contentStack);\n }\n if (lastOpen &&\n firstRole === \"close\" &&\n SemanticPred.isNeutralFence(lastOpen) &&\n openStack.some(openPred)) {\n const split = SemanticUtil.sliceNodes(openStack, openPred, true);\n const rightContent = contentStack.pop();\n const cutLength = contentStack.length - split.tail.length + 1;\n const innerNodes = SemanticProcessor.getInstance().neutralFences_(split.tail, contentStack.slice(cutLength));\n contentStack = contentStack.slice(0, cutLength);\n const fenced = SemanticProcessor.getInstance().horizontalFencedNode_(split.div, fences.shift(), contentStack.pop().concat(innerNodes, rightContent));\n contentStack.push(contentStack.pop().concat([fenced], content.shift()));\n return SemanticProcessor.getInstance().fences_(fences, content, split.head, contentStack);\n }\n const fenced = fences.shift();\n SemanticProcessor.fenceToPunct_(fenced);\n contentStack.push(contentStack.pop().concat([fenced], content.shift()));\n return SemanticProcessor.getInstance().fences_(fences, content, openStack, contentStack);\n }\n neutralFences_(fences, content) {\n if (fences.length === 0) {\n return fences;\n }\n if (fences.length === 1) {\n SemanticProcessor.fenceToPunct_(fences[0]);\n return fences;\n }\n const firstFence = fences.shift();\n if (!SemanticPred.elligibleLeftNeutral(firstFence)) {\n SemanticProcessor.fenceToPunct_(firstFence);\n const restContent = content.shift();\n restContent.unshift(firstFence);\n return restContent.concat(SemanticProcessor.getInstance().neutralFences_(fences, content));\n }\n const split = SemanticUtil.sliceNodes(fences, function (x) {\n return SemanticPred.compareNeutralFences(x, firstFence);\n });\n if (!split.div) {\n SemanticProcessor.fenceToPunct_(firstFence);\n const restContent = content.shift();\n restContent.unshift(firstFence);\n return restContent.concat(SemanticProcessor.getInstance().neutralFences_(fences, content));\n }\n if (!SemanticPred.elligibleRightNeutral(split.div)) {\n SemanticProcessor.fenceToPunct_(split.div);\n fences.unshift(firstFence);\n return SemanticProcessor.getInstance().neutralFences_(fences, content);\n }\n const newContent = SemanticProcessor.getInstance().combineFencedContent_(firstFence, split.div, split.head, content);\n if (split.tail.length > 0) {\n const leftContent = newContent.shift();\n const result = SemanticProcessor.getInstance().neutralFences_(split.tail, newContent);\n return leftContent.concat(result);\n }\n return newContent[0];\n }\n combineFencedContent_(leftFence, rightFence, midFences, content) {\n if (midFences.length === 0) {\n const fenced = SemanticProcessor.getInstance().horizontalFencedNode_(leftFence, rightFence, content.shift());\n if (content.length > 0) {\n content[0].unshift(fenced);\n }\n else {\n content = [[fenced]];\n }\n return content;\n }\n const leftContent = content.shift();\n const cutLength = midFences.length - 1;\n const midContent = content.slice(0, cutLength);\n content = content.slice(cutLength);\n const rightContent = content.shift();\n const innerNodes = SemanticProcessor.getInstance().neutralFences_(midFences, midContent);\n leftContent.push(...innerNodes);\n leftContent.push(...rightContent);\n const fenced = SemanticProcessor.getInstance().horizontalFencedNode_(leftFence, rightFence, leftContent);\n if (content.length > 0) {\n content[0].unshift(fenced);\n }\n else {\n content = [[fenced]];\n }\n return content;\n }\n horizontalFencedNode_(ofence, cfence, content) {\n const childNode = SemanticProcessor.getInstance().row(content);\n let newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"fenced\", [childNode], [ofence, cfence]);\n if (ofence.role === \"open\") {\n SemanticProcessor.getInstance().classifyHorizontalFence_(newNode);\n newNode = SemanticHeuristics.run('propagateComposedFunction', newNode);\n }\n else {\n newNode.role = ofence.role;\n }\n newNode = SemanticHeuristics.run('detect_cycle', newNode);\n return SemanticProcessor.rewriteFencedNode_(newNode);\n }\n classifyHorizontalFence_(node) {\n node.role = \"leftright\";\n const children = node.childNodes;\n if (!SemanticPred.isSetNode(node) || children.length > 1) {\n return;\n }\n if (children.length === 0 || children[0].type === \"empty\") {\n node.role = \"set empty\";\n return;\n }\n const type = children[0].type;\n if (children.length === 1 &&\n SemanticPred.isSingletonSetContent(children[0])) {\n node.role = \"set singleton\";\n return;\n }\n const role = children[0].role;\n if (type !== \"punctuated\" || role !== \"sequence\") {\n return;\n }\n if (children[0].contentNodes[0].role === \"comma\") {\n node.role = \"set collection\";\n return;\n }\n if (children[0].contentNodes.length === 1 &&\n (children[0].contentNodes[0].role === \"vbar\" ||\n children[0].contentNodes[0].role === \"colon\")) {\n node.role = \"set extended\";\n SemanticProcessor.getInstance().setExtension_(node);\n return;\n }\n }\n setExtension_(set) {\n const extender = set.childNodes[0].childNodes[0];\n if (extender &&\n extender.type === \"infixop\" &&\n extender.contentNodes.length === 1 &&\n SemanticPred.isMembership(extender.contentNodes[0])) {\n extender.addAnnotation('set', 'intensional');\n extender.contentNodes[0].addAnnotation('set', 'intensional');\n }\n }\n getPunctuationInRow_(nodes) {\n if (nodes.length <= 1) {\n return nodes;\n }\n const allowedType = (x) => {\n const type = x.type;\n return (type === 'punctuation' ||\n type === 'text' ||\n type === 'operator' ||\n type === 'relation');\n };\n const partition = SemanticUtil.partitionNodes(nodes, function (x) {\n if (!SemanticPred.isPunctuation(x)) {\n return false;\n }\n if (SemanticPred.isPunctuation(x) &&\n !SemanticPred.isRole(x, \"ellipsis\")) {\n return true;\n }\n const index = nodes.indexOf(x);\n if (index === 0) {\n if (nodes[1] && allowedType(nodes[1])) {\n return false;\n }\n return true;\n }\n const prev = nodes[index - 1];\n if (index === nodes.length - 1) {\n if (allowedType(prev)) {\n return false;\n }\n return true;\n }\n const next = nodes[index + 1];\n if (allowedType(prev) && allowedType(next)) {\n return false;\n }\n return true;\n });\n if (partition.rel.length === 0) {\n return nodes;\n }\n const newNodes = [];\n let firstComp = partition.comp.shift();\n if (firstComp.length > 0) {\n newNodes.push(SemanticProcessor.getInstance().row(firstComp));\n }\n let relCounter = 0;\n while (partition.comp.length > 0) {\n newNodes.push(partition.rel[relCounter++]);\n firstComp = partition.comp.shift();\n if (firstComp.length > 0) {\n newNodes.push(SemanticProcessor.getInstance().row(firstComp));\n }\n }\n return [\n SemanticProcessor.getInstance().punctuatedNode_(newNodes, partition.rel)\n ];\n }\n punctuatedNode_(nodes, punctuations) {\n const newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"punctuated\", nodes, punctuations);\n if (punctuations.length === nodes.length) {\n const firstRole = punctuations[0].role;\n if (firstRole !== \"unknown\" &&\n punctuations.every(function (punct) {\n return punct.role === firstRole;\n })) {\n newNode.role = firstRole;\n return newNode;\n }\n }\n if (SemanticPred.singlePunctAtPosition(nodes, punctuations, 0)) {\n newNode.role = \"startpunct\";\n }\n else if (SemanticPred.singlePunctAtPosition(nodes, punctuations, nodes.length - 1)) {\n newNode.role = \"endpunct\";\n }\n else if (punctuations.every((x) => SemanticPred.isRole(x, \"dummy\"))) {\n newNode.role = \"text\";\n }\n else if (punctuations.every((x) => SemanticPred.isRole(x, \"space\"))) {\n newNode.role = \"space\";\n }\n else {\n newNode.role = \"sequence\";\n }\n return newNode;\n }\n dummyNode_(children) {\n const commata = SemanticProcessor.getInstance().factory_.makeMultipleContentNodes(children.length - 1, SemanticAttr.invisibleComma());\n commata.forEach(function (comma) {\n comma.role = \"dummy\";\n });\n return SemanticProcessor.getInstance().punctuatedNode_(children, commata);\n }\n accentRole_(node, type) {\n if (!SemanticPred.isAccent(node)) {\n return false;\n }\n const content = node.textContent;\n const role = SemanticAttr.lookupSecondary('bar', content) ||\n SemanticAttr.lookupSecondary('tilde', content) ||\n node.role;\n node.role =\n type === \"underscore\"\n ? \"underaccent\"\n : \"overaccent\";\n node.addAnnotation('accent', role);\n return true;\n }\n accentNode_(center, children, type, length, accent) {\n children = children.slice(0, length + 1);\n const child1 = children[1];\n const child2 = children[2];\n let innerNode;\n if (!accent && child2) {\n innerNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"subscript\", [center, child1], []);\n innerNode.role = \"subsup\";\n children = [innerNode, child2];\n type = \"superscript\";\n }\n if (accent) {\n const underAccent = SemanticProcessor.getInstance().accentRole_(child1, type);\n if (child2) {\n const overAccent = SemanticProcessor.getInstance().accentRole_(child2, \"overscore\");\n if (overAccent && !underAccent) {\n innerNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"overscore\", [center, child2], []);\n children = [innerNode, child1];\n type = \"underscore\";\n }\n else {\n innerNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"underscore\", [center, child1], []);\n children = [innerNode, child2];\n type = \"overscore\";\n }\n innerNode.role = \"underover\";\n }\n }\n return SemanticProcessor.getInstance().makeLimitNode_(center, children, innerNode, type);\n }\n makeLimitNode_(center, children, innerNode, type) {\n if (type === \"limupper\" &&\n center.type === \"limlower\") {\n center.childNodes.push(children[1]);\n children[1].parent = center;\n center.type = \"limboth\";\n return center;\n }\n if (type === \"limlower\" &&\n center.type === \"limupper\") {\n center.childNodes.splice(1, -1, children[1]);\n children[1].parent = center;\n center.type = \"limboth\";\n return center;\n }\n const newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(type, children, []);\n const embellished = SemanticPred.isEmbellished(center);\n if (innerNode) {\n innerNode.embellished = embellished;\n }\n newNode.embellished = embellished;\n newNode.role = center.role;\n return newNode;\n }\n getFunctionsInRow_(restNodes, opt_result) {\n const result = opt_result || [];\n if (restNodes.length === 0) {\n return result;\n }\n const firstNode = restNodes.shift();\n const heuristic = SemanticProcessor.classifyFunction_(firstNode, restNodes);\n if (!heuristic) {\n result.push(firstNode);\n return SemanticProcessor.getInstance().getFunctionsInRow_(restNodes, result);\n }\n const processedRest = SemanticProcessor.getInstance().getFunctionsInRow_(restNodes, []);\n const newRest = SemanticProcessor.getInstance().getFunctionArgs_(firstNode, processedRest, heuristic);\n return result.concat(newRest);\n }\n getFunctionArgs_(func, rest, heuristic) {\n let partition, arg, funcNode;\n switch (heuristic) {\n case 'integral': {\n const components = SemanticProcessor.getInstance().getIntegralArgs_(rest);\n if (!components.intvar && !components.integrand.length) {\n components.rest.unshift(func);\n return components.rest;\n }\n const integrand = SemanticProcessor.getInstance().row(components.integrand);\n funcNode = SemanticProcessor.getInstance().integralNode_(func, integrand, components.intvar);\n components.rest.unshift(funcNode);\n return components.rest;\n }\n case 'prefix': {\n if (rest[0] && rest[0].type === \"fenced\") {\n const arg = rest.shift();\n if (!SemanticPred.isNeutralFence(arg)) {\n arg.role = \"leftright\";\n }\n funcNode = SemanticProcessor.getInstance().functionNode_(func, arg);\n rest.unshift(funcNode);\n return rest;\n }\n partition = SemanticUtil.sliceNodes(rest, SemanticPred.isPrefixFunctionBoundary);\n if (!partition.head.length) {\n if (!partition.div ||\n !SemanticPred.isType(partition.div, \"appl\")) {\n rest.unshift(func);\n return rest;\n }\n arg = partition.div;\n }\n else {\n arg = SemanticProcessor.getInstance().row(partition.head);\n if (partition.div) {\n partition.tail.unshift(partition.div);\n }\n }\n funcNode = SemanticProcessor.getInstance().functionNode_(func, arg);\n partition.tail.unshift(funcNode);\n return partition.tail;\n }\n case 'bigop': {\n partition = SemanticUtil.sliceNodes(rest, SemanticPred.isBigOpBoundary);\n if (!partition.head.length) {\n rest.unshift(func);\n return rest;\n }\n arg = SemanticProcessor.getInstance().row(partition.head);\n funcNode = SemanticProcessor.getInstance().bigOpNode_(func, arg);\n if (partition.div) {\n partition.tail.unshift(partition.div);\n }\n partition.tail.unshift(funcNode);\n return partition.tail;\n }\n case 'simple':\n default: {\n if (rest.length === 0) {\n return [func];\n }\n const firstArg = rest[0];\n if (firstArg.type === \"fenced\" &&\n !SemanticPred.isNeutralFence(firstArg) &&\n SemanticPred.isSimpleFunctionScope(firstArg)) {\n firstArg.role = \"leftright\";\n SemanticProcessor.propagateFunctionRole_(func, \"simple function\");\n funcNode = SemanticProcessor.getInstance().functionNode_(func, rest.shift());\n rest.unshift(funcNode);\n return rest;\n }\n rest.unshift(func);\n return rest;\n }\n }\n }\n getIntegralArgs_(nodes, args = []) {\n if (nodes.length === 0) {\n return { integrand: args, intvar: null, rest: nodes };\n }\n const firstNode = nodes[0];\n if (SemanticPred.isGeneralFunctionBoundary(firstNode)) {\n return { integrand: args, intvar: null, rest: nodes };\n }\n if (SemanticPred.isIntegralDxBoundarySingle(firstNode)) {\n firstNode.role = \"integral\";\n return { integrand: args, intvar: firstNode, rest: nodes.slice(1) };\n }\n if (nodes[1] && SemanticPred.isIntegralDxBoundary(firstNode, nodes[1])) {\n const intvar = SemanticProcessor.getInstance().prefixNode_(nodes[1], [firstNode]);\n intvar.role = \"integral\";\n return { integrand: args, intvar: intvar, rest: nodes.slice(2) };\n }\n args.push(nodes.shift());\n return SemanticProcessor.getInstance().getIntegralArgs_(nodes, args);\n }\n functionNode_(func, arg) {\n const applNode = SemanticProcessor.getInstance().factory_.makeContentNode(SemanticAttr.functionApplication());\n const appl = SemanticProcessor.getInstance().funcAppls[func.id];\n if (appl) {\n applNode.mathmlTree = appl.mathmlTree;\n applNode.mathml = appl.mathml;\n applNode.annotation = appl.annotation;\n applNode.attributes = appl.attributes;\n delete SemanticProcessor.getInstance().funcAppls[func.id];\n }\n applNode.type = \"punctuation\";\n applNode.role = \"application\";\n const funcop = SemanticProcessor.getFunctionOp_(func, function (node) {\n return (SemanticPred.isType(node, \"function\") ||\n (SemanticPred.isType(node, \"identifier\") &&\n SemanticPred.isRole(node, \"simple function\")));\n });\n return SemanticProcessor.getInstance().functionalNode_(\"appl\", [func, arg], funcop, [applNode]);\n }\n bigOpNode_(bigOp, arg) {\n const largeop = SemanticProcessor.getFunctionOp_(bigOp, (x) => SemanticPred.isType(x, \"largeop\"));\n return SemanticProcessor.getInstance().functionalNode_(\"bigop\", [bigOp, arg], largeop, []);\n }\n integralNode_(integral, integrand, intvar) {\n integrand =\n integrand || SemanticProcessor.getInstance().factory_.makeEmptyNode();\n intvar = intvar || SemanticProcessor.getInstance().factory_.makeEmptyNode();\n const largeop = SemanticProcessor.getFunctionOp_(integral, (x) => SemanticPred.isType(x, \"largeop\"));\n return SemanticProcessor.getInstance().functionalNode_(\"integral\", [integral, integrand, intvar], largeop, []);\n }\n functionalNode_(type, children, operator, content) {\n const funcop = children[0];\n let oldParent;\n if (operator) {\n oldParent = operator.parent;\n content.push(operator);\n }\n const newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(type, children, content);\n newNode.role = funcop.role;\n if (oldParent) {\n operator.parent = oldParent;\n }\n return newNode;\n }\n fractionNode_(denom, enume) {\n const newNode = SemanticProcessor.getInstance().factory_.makeBranchNode(\"fraction\", [denom, enume], []);\n newNode.role = newNode.childNodes.every(function (x) {\n return (SemanticPred.isType(x, \"number\") &&\n SemanticPred.isRole(x, \"integer\"));\n })\n ? \"vulgar\"\n : newNode.childNodes.every(SemanticPred.isPureUnit)\n ? \"unit\"\n : \"division\";\n return SemanticHeuristics.run('propagateSimpleFunction', newNode);\n }\n scriptNode_(nodes, role, opt_noSingle) {\n let newNode;\n switch (nodes.length) {\n case 0:\n newNode = SemanticProcessor.getInstance().factory_.makeEmptyNode();\n break;\n case 1:\n newNode = nodes[0];\n if (opt_noSingle) {\n return newNode;\n }\n break;\n default:\n newNode = SemanticProcessor.getInstance().dummyNode_(nodes);\n }\n newNode.role = role;\n return newNode;\n }\n findNestedRow_(nodes, semantic, level, value) {\n if (level > 3) {\n return null;\n }\n for (let i = 0, node; (node = nodes[i]); i++) {\n const tag = DomUtil.tagName(node);\n if (tag !== 'MSPACE') {\n if (tag === 'MROW') {\n return SemanticProcessor.getInstance().findNestedRow_(DomUtil.toArray(node.childNodes), semantic, level + 1, value);\n }\n if (SemanticProcessor.findSemantics(node, semantic, value)) {\n return node;\n }\n }\n }\n return null;\n }\n}\nexports.default = SemanticProcessor;\nSemanticProcessor.FENCE_TO_PUNCT_ = {\n [\"metric\"]: \"metric\",\n [\"neutral\"]: \"vbar\",\n [\"open\"]: \"openfence\",\n [\"close\"]: \"closefence\"\n};\nSemanticProcessor.MML_TO_LIMIT_ = {\n MSUB: { type: \"limlower\", length: 1 },\n MUNDER: { type: \"limlower\", length: 1 },\n MSUP: { type: \"limupper\", length: 1 },\n MOVER: { type: \"limupper\", length: 1 },\n MSUBSUP: { type: \"limboth\", length: 2 },\n MUNDEROVER: { type: \"limboth\", length: 2 }\n};\nSemanticProcessor.MML_TO_BOUNDS_ = {\n MSUB: { type: \"subscript\", length: 1, accent: false },\n MSUP: { type: \"superscript\", length: 1, accent: false },\n MSUBSUP: { type: \"subscript\", length: 2, accent: false },\n MUNDER: { type: \"underscore\", length: 1, accent: true },\n MOVER: { type: \"overscore\", length: 1, accent: true },\n MUNDEROVER: { type: \"underscore\", length: 2, accent: true }\n};\nSemanticProcessor.CLASSIFY_FUNCTION_ = {\n [\"integral\"]: 'integral',\n [\"sum\"]: 'bigop',\n [\"prefix function\"]: 'prefix',\n [\"limit function\"]: 'prefix',\n [\"simple function\"]: 'prefix',\n [\"composed function\"]: 'prefix'\n};\nSemanticProcessor.MATHJAX_FONTS = {\n '-tex-caligraphic': \"caligraphic\",\n '-tex-caligraphic-bold': \"caligraphic-bold\",\n '-tex-calligraphic': \"caligraphic\",\n '-tex-calligraphic-bold': \"caligraphic-bold\",\n '-tex-oldstyle': \"oldstyle\",\n '-tex-oldstyle-bold': \"oldstyle-bold\",\n '-tex-mathit': \"italic\"\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticSkeleton = void 0;\nconst BaseUtil = require(\"../common/base_util\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst enrich_attr_1 = require(\"../enrich_mathml/enrich_attr\");\nclass SemanticSkeleton {\n constructor(skeleton) {\n this.parents = null;\n this.levelsMap = null;\n skeleton = skeleton === 0 ? skeleton : skeleton || [];\n this.array = skeleton;\n }\n static fromTree(tree) {\n return SemanticSkeleton.fromNode(tree.root);\n }\n static fromNode(node) {\n return new SemanticSkeleton(SemanticSkeleton.fromNode_(node));\n }\n static fromString(skel) {\n return new SemanticSkeleton(SemanticSkeleton.fromString_(skel));\n }\n static simpleCollapseStructure(strct) {\n return typeof strct === 'number';\n }\n static contentCollapseStructure(strct) {\n return (!!strct &&\n !SemanticSkeleton.simpleCollapseStructure(strct) &&\n strct[0] === 'c');\n }\n static interleaveIds(first, second) {\n return BaseUtil.interleaveLists(SemanticSkeleton.collapsedLeafs(first), SemanticSkeleton.collapsedLeafs(second));\n }\n static collapsedLeafs(...args) {\n const collapseStructure = (coll) => {\n if (SemanticSkeleton.simpleCollapseStructure(coll)) {\n return [coll];\n }\n coll = coll;\n return SemanticSkeleton.contentCollapseStructure(coll[1])\n ? coll.slice(2)\n : coll.slice(1);\n };\n return args.reduce((x, y) => x.concat(collapseStructure(y)), []);\n }\n static fromStructure(mml, tree) {\n return new SemanticSkeleton(SemanticSkeleton.tree_(mml, tree.root));\n }\n static combineContentChildren(semantic, content, children) {\n switch (semantic.type) {\n case \"relseq\":\n case \"infixop\":\n case \"multirel\":\n return BaseUtil.interleaveLists(children, content);\n case \"prefixop\":\n return content.concat(children);\n case \"postfixop\":\n return children.concat(content);\n case \"fenced\":\n children.unshift(content[0]);\n children.push(content[1]);\n return children;\n case \"appl\":\n return [children[0], content[0], children[1]];\n case \"root\":\n return [children[1], children[0]];\n case \"row\":\n case \"line\":\n if (content.length) {\n children.unshift(content[0]);\n }\n return children;\n default:\n return children;\n }\n }\n static makeSexp_(struct) {\n if (SemanticSkeleton.simpleCollapseStructure(struct)) {\n return struct.toString();\n }\n if (SemanticSkeleton.contentCollapseStructure(struct)) {\n return ('(' +\n 'c ' +\n struct.slice(1).map(SemanticSkeleton.makeSexp_).join(' ') +\n ')');\n }\n return ('(' + struct.map(SemanticSkeleton.makeSexp_).join(' ') + ')');\n }\n static fromString_(skeleton) {\n let str = skeleton.replace(/\\(/g, '[');\n str = str.replace(/\\)/g, ']');\n str = str.replace(/ /g, ',');\n str = str.replace(/c/g, '\"c\"');\n return JSON.parse(str);\n }\n static fromNode_(node) {\n if (!node) {\n return [];\n }\n const content = node.contentNodes;\n let contentStructure;\n if (content.length) {\n contentStructure = content.map(SemanticSkeleton.fromNode_);\n contentStructure.unshift('c');\n }\n const children = node.childNodes;\n if (!children.length) {\n return content.length ? [node.id, contentStructure] : node.id;\n }\n const structure = children.map(SemanticSkeleton.fromNode_);\n if (content.length) {\n structure.unshift(contentStructure);\n }\n structure.unshift(node.id);\n return structure;\n }\n static tree_(mml, node) {\n if (!node) {\n return [];\n }\n if (!node.childNodes.length) {\n return node.id;\n }\n const id = node.id;\n const skeleton = [id];\n const mmlChild = XpathUtil.evalXPath(`.//self::*[@${enrich_attr_1.Attribute.ID}=${id}]`, mml)[0];\n const children = SemanticSkeleton.combineContentChildren(node, node.contentNodes.map(function (x) {\n return x;\n }), node.childNodes.map(function (x) {\n return x;\n }));\n if (mmlChild) {\n SemanticSkeleton.addOwns_(mmlChild, children);\n }\n for (let i = 0, child; (child = children[i]); i++) {\n skeleton.push(SemanticSkeleton.tree_(mml, child));\n }\n return skeleton;\n }\n static addOwns_(node, children) {\n const collapsed = node.getAttribute(enrich_attr_1.Attribute.COLLAPSED);\n const leafs = collapsed\n ? SemanticSkeleton.realLeafs_(SemanticSkeleton.fromString(collapsed).array)\n : children.map((x) => x.id);\n node.setAttribute(enrich_attr_1.Attribute.OWNS, leafs.join(' '));\n }\n static realLeafs_(sexp) {\n if (SemanticSkeleton.simpleCollapseStructure(sexp)) {\n return [sexp];\n }\n if (SemanticSkeleton.contentCollapseStructure(sexp)) {\n return [];\n }\n sexp = sexp;\n let result = [];\n for (let i = 1; i < sexp.length; i++) {\n result = result.concat(SemanticSkeleton.realLeafs_(sexp[i]));\n }\n return result;\n }\n populate() {\n if (this.parents && this.levelsMap) {\n return;\n }\n this.parents = {};\n this.levelsMap = {};\n this.populate_(this.array, this.array, []);\n }\n toString() {\n return SemanticSkeleton.makeSexp_(this.array);\n }\n populate_(element, layer, parents) {\n if (SemanticSkeleton.simpleCollapseStructure(element)) {\n element = element;\n this.levelsMap[element] = layer;\n this.parents[element] =\n element === parents[0] ? parents.slice(1) : parents;\n return;\n }\n const newElement = SemanticSkeleton.contentCollapseStructure(element)\n ? element.slice(1)\n : element;\n const newParents = [newElement[0]].concat(parents);\n for (let i = 0, l = newElement.length; i < l; i++) {\n const current = newElement[i];\n this.populate_(current, element, newParents);\n }\n }\n isRoot(id) {\n const level = this.levelsMap[id];\n return id === level[0];\n }\n directChildren(id) {\n if (!this.isRoot(id)) {\n return [];\n }\n const level = this.levelsMap[id];\n return level.slice(1).map((child) => {\n if (SemanticSkeleton.simpleCollapseStructure(child)) {\n return child;\n }\n if (SemanticSkeleton.contentCollapseStructure(child)) {\n return child[1];\n }\n return child[0];\n });\n }\n subtreeNodes(id) {\n if (!this.isRoot(id)) {\n return [];\n }\n const subtreeNodes_ = (tree, nodes) => {\n if (SemanticSkeleton.simpleCollapseStructure(tree)) {\n nodes.push(tree);\n return;\n }\n tree = tree;\n if (SemanticSkeleton.contentCollapseStructure(tree)) {\n tree = tree.slice(1);\n }\n tree.forEach((x) => subtreeNodes_(x, nodes));\n };\n const level = this.levelsMap[id];\n const subtree = [];\n subtreeNodes_(level.slice(1), subtree);\n return subtree;\n }\n}\nexports.SemanticSkeleton = SemanticSkeleton;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticTree = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst semantic_annotations_1 = require(\"./semantic_annotations\");\nconst semantic_annotator_1 = require(\"./semantic_annotator\");\nconst semantic_mathml_1 = require(\"./semantic_mathml\");\nconst semantic_node_1 = require(\"./semantic_node\");\nconst SemanticPred = require(\"./semantic_pred\");\nrequire(\"./semantic_heuristics\");\nclass SemanticTree {\n constructor(mathml) {\n this.mathml = mathml;\n this.parser = new semantic_mathml_1.SemanticMathml();\n this.root = this.parser.parse(mathml);\n this.collator = this.parser.getFactory().leafMap.collateMeaning();\n const newDefault = this.collator.newDefault();\n if (newDefault) {\n this.parser = new semantic_mathml_1.SemanticMathml();\n this.parser.getFactory().defaultMap = newDefault;\n this.root = this.parser.parse(mathml);\n }\n unitVisitor.visit(this.root, {});\n (0, semantic_annotations_1.annotate)(this.root);\n }\n static empty() {\n const empty = DomUtil.parseInput('');\n const stree = new SemanticTree(empty);\n stree.mathml = empty;\n return stree;\n }\n static fromNode(semantic, opt_mathml) {\n const stree = SemanticTree.empty();\n stree.root = semantic;\n if (opt_mathml) {\n stree.mathml = opt_mathml;\n }\n return stree;\n }\n static fromRoot(semantic, opt_mathml) {\n let root = semantic;\n while (root.parent) {\n root = root.parent;\n }\n const stree = SemanticTree.fromNode(root);\n if (opt_mathml) {\n stree.mathml = opt_mathml;\n }\n return stree;\n }\n static fromXml(xml) {\n const stree = SemanticTree.empty();\n if (xml.childNodes[0]) {\n stree.root = semantic_node_1.SemanticNode.fromXml(xml.childNodes[0]);\n }\n return stree;\n }\n xml(opt_brief) {\n const xml = DomUtil.parseInput('');\n const xmlRoot = this.root.xml(xml.ownerDocument, opt_brief);\n xml.appendChild(xmlRoot);\n return xml;\n }\n toString(opt_brief) {\n return DomUtil.serializeXml(this.xml(opt_brief));\n }\n formatXml(opt_brief) {\n const xml = this.toString(opt_brief);\n return DomUtil.formatXml(xml);\n }\n displayTree() {\n this.root.displayTree();\n }\n replaceNode(oldNode, newNode) {\n const parent = oldNode.parent;\n if (!parent) {\n this.root = newNode;\n return;\n }\n parent.replaceChild(oldNode, newNode);\n }\n toJson() {\n const json = {};\n json['stree'] = this.root.toJson();\n return json;\n }\n}\nexports.SemanticTree = SemanticTree;\nconst unitVisitor = new semantic_annotator_1.SemanticVisitor('general', 'unit', (node, _info) => {\n if (node.type === \"infixop\" &&\n (node.role === \"multiplication\" ||\n node.role === \"implicit\")) {\n const children = node.childNodes;\n if (children.length &&\n (SemanticPred.isPureUnit(children[0]) ||\n SemanticPred.isUnitCounter(children[0])) &&\n node.childNodes.slice(1).every(SemanticPred.isPureUnit)) {\n node.role = \"unit\";\n }\n }\n return false;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.partitionNodes = exports.sliceNodes = exports.getEmbellishedInner = exports.addAttributes = exports.isZeroLength = exports.purgeNodes = exports.isOrphanedGlyph = exports.hasDisplayTag = exports.hasEmptyTag = exports.hasIgnoreTag = exports.hasLeafTag = exports.hasMathTag = exports.directSpeechKeys = exports.DISPLAYTAGS = exports.EMPTYTAGS = exports.IGNORETAGS = exports.LEAFTAGS = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nexports.LEAFTAGS = ['MO', 'MI', 'MN', 'MTEXT', 'MS', 'MSPACE'];\nexports.IGNORETAGS = [\n 'MERROR',\n 'MPHANTOM',\n 'MALIGNGROUP',\n 'MALIGNMARK',\n 'MPRESCRIPTS',\n 'ANNOTATION',\n 'ANNOTATION-XML'\n];\nexports.EMPTYTAGS = [\n 'MATH',\n 'MROW',\n 'MPADDED',\n 'MACTION',\n 'NONE',\n 'MSTYLE',\n 'SEMANTICS'\n];\nexports.DISPLAYTAGS = ['MROOT', 'MSQRT'];\nexports.directSpeechKeys = ['aria-label', 'exact-speech', 'alt'];\nfunction hasMathTag(node) {\n return !!node && DomUtil.tagName(node) === 'MATH';\n}\nexports.hasMathTag = hasMathTag;\nfunction hasLeafTag(node) {\n return !!node && exports.LEAFTAGS.indexOf(DomUtil.tagName(node)) !== -1;\n}\nexports.hasLeafTag = hasLeafTag;\nfunction hasIgnoreTag(node) {\n return !!node && exports.IGNORETAGS.indexOf(DomUtil.tagName(node)) !== -1;\n}\nexports.hasIgnoreTag = hasIgnoreTag;\nfunction hasEmptyTag(node) {\n return !!node && exports.EMPTYTAGS.indexOf(DomUtil.tagName(node)) !== -1;\n}\nexports.hasEmptyTag = hasEmptyTag;\nfunction hasDisplayTag(node) {\n return !!node && exports.DISPLAYTAGS.indexOf(DomUtil.tagName(node)) !== -1;\n}\nexports.hasDisplayTag = hasDisplayTag;\nfunction isOrphanedGlyph(node) {\n return (!!node &&\n DomUtil.tagName(node) === 'MGLYPH' &&\n !hasLeafTag(node.parentNode));\n}\nexports.isOrphanedGlyph = isOrphanedGlyph;\nfunction purgeNodes(nodes) {\n const nodeArray = [];\n for (let i = 0, node; (node = nodes[i]); i++) {\n if (node.nodeType !== DomUtil.NodeType.ELEMENT_NODE) {\n continue;\n }\n const tagName = DomUtil.tagName(node);\n if (exports.IGNORETAGS.indexOf(tagName) !== -1) {\n continue;\n }\n if (exports.EMPTYTAGS.indexOf(tagName) !== -1 && node.childNodes.length === 0) {\n continue;\n }\n nodeArray.push(node);\n }\n return nodeArray;\n}\nexports.purgeNodes = purgeNodes;\nfunction isZeroLength(length) {\n if (!length) {\n return false;\n }\n const negativeNamedSpaces = [\n 'negativeveryverythinmathspace',\n 'negativeverythinmathspace',\n 'negativethinmathspace',\n 'negativemediummathspace',\n 'negativethickmathspace',\n 'negativeverythickmathspace',\n 'negativeveryverythickmathspace'\n ];\n if (negativeNamedSpaces.indexOf(length) !== -1) {\n return true;\n }\n const value = length.match(/[0-9.]+/);\n if (!value) {\n return false;\n }\n return parseFloat(value[0]) === 0;\n}\nexports.isZeroLength = isZeroLength;\nfunction addAttributes(to, from) {\n if (from.hasAttributes()) {\n const attrs = from.attributes;\n for (let i = attrs.length - 1; i >= 0; i--) {\n const key = attrs[i].name;\n if (key.match(/^ext/)) {\n to.attributes[key] = attrs[i].value;\n to.nobreaking = true;\n }\n if (exports.directSpeechKeys.indexOf(key) !== -1) {\n to.attributes['ext-speech'] = attrs[i].value;\n to.nobreaking = true;\n }\n if (key.match(/texclass$/)) {\n to.attributes['texclass'] = attrs[i].value;\n }\n if (key === 'href') {\n to.attributes['href'] = attrs[i].value;\n to.nobreaking = true;\n }\n }\n }\n}\nexports.addAttributes = addAttributes;\nfunction getEmbellishedInner(node) {\n if (node && node.embellished && node.childNodes.length > 0) {\n return getEmbellishedInner(node.childNodes[0]);\n }\n return node;\n}\nexports.getEmbellishedInner = getEmbellishedInner;\nfunction sliceNodes(nodes, pred, opt_reverse) {\n if (opt_reverse) {\n nodes.reverse();\n }\n const head = [];\n for (let i = 0, node; (node = nodes[i]); i++) {\n if (pred(node)) {\n if (opt_reverse) {\n return {\n head: nodes.slice(i + 1).reverse(),\n div: node,\n tail: head.reverse()\n };\n }\n return { head: head, div: node, tail: nodes.slice(i + 1) };\n }\n head.push(node);\n }\n if (opt_reverse) {\n return { head: [], div: null, tail: head.reverse() };\n }\n return { head: head, div: null, tail: [] };\n}\nexports.sliceNodes = sliceNodes;\nfunction partitionNodes(nodes, pred) {\n let restNodes = nodes;\n const rel = [];\n const comp = [];\n let result = null;\n do {\n result = sliceNodes(restNodes, pred);\n comp.push(result.head);\n rel.push(result.div);\n restNodes = result.tail;\n } while (result.div);\n rel.pop();\n return { rel: rel, comp: comp };\n}\nexports.partitionNodes = partitionNodes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractSpeechGenerator = void 0;\nconst engine_setup_1 = require(\"../common/engine_setup\");\nconst EnrichAttr = require(\"../enrich_mathml/enrich_attr\");\nconst rebuild_stree_1 = require(\"../walker/rebuild_stree\");\nconst SpeechGeneratorUtil = require(\"./speech_generator_util\");\nclass AbstractSpeechGenerator {\n constructor() {\n this.modality = EnrichAttr.addPrefix('speech');\n this.rebuilt_ = null;\n this.options_ = {};\n }\n getRebuilt() {\n return this.rebuilt_;\n }\n setRebuilt(rebuilt) {\n this.rebuilt_ = rebuilt;\n }\n setOptions(options) {\n this.options_ = options || {};\n this.modality = EnrichAttr.addPrefix(this.options_.modality || 'speech');\n }\n getOptions() {\n return this.options_;\n }\n start() { }\n end() { }\n generateSpeech(_node, xml) {\n if (!this.rebuilt_) {\n this.rebuilt_ = new rebuild_stree_1.RebuildStree(xml);\n }\n (0, engine_setup_1.setup)(this.options_);\n return SpeechGeneratorUtil.computeMarkup(this.getRebuilt().xml);\n }\n}\nexports.AbstractSpeechGenerator = AbstractSpeechGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AdhocSpeechGenerator = void 0;\nconst abstract_speech_generator_1 = require(\"./abstract_speech_generator\");\nclass AdhocSpeechGenerator extends abstract_speech_generator_1.AbstractSpeechGenerator {\n getSpeech(node, xml) {\n const speech = this.generateSpeech(node, xml);\n node.setAttribute(this.modality, speech);\n return speech;\n }\n}\nexports.AdhocSpeechGenerator = AdhocSpeechGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ColorGenerator = void 0;\nconst enrich_attr_1 = require(\"../enrich_mathml/enrich_attr\");\nconst color_picker_1 = require(\"../highlighter/color_picker\");\nconst rebuild_stree_1 = require(\"../walker/rebuild_stree\");\nconst WalkerUtil = require(\"../walker/walker_util\");\nconst abstract_speech_generator_1 = require(\"./abstract_speech_generator\");\nclass ColorGenerator extends abstract_speech_generator_1.AbstractSpeechGenerator {\n constructor() {\n super(...arguments);\n this.modality = (0, enrich_attr_1.addPrefix)('foreground');\n this.contrast = new color_picker_1.ContrastPicker();\n }\n static visitStree_(tree, leaves, ignore) {\n if (!tree.childNodes.length) {\n if (!ignore[tree.id]) {\n leaves.push(tree.id);\n }\n return;\n }\n if (tree.contentNodes.length) {\n if (tree.type === 'punctuated') {\n tree.contentNodes.forEach((x) => (ignore[x.id] = true));\n }\n if (tree.role !== 'implicit') {\n leaves.push(tree.contentNodes.map((x) => x.id));\n }\n }\n if (tree.childNodes.length) {\n if (tree.role === 'implicit') {\n const factors = [];\n let rest = [];\n for (const child of tree.childNodes) {\n const tt = [];\n ColorGenerator.visitStree_(child, tt, ignore);\n if (tt.length <= 2) {\n factors.push(tt.shift());\n }\n rest = rest.concat(tt);\n }\n leaves.push(factors);\n rest.forEach((x) => leaves.push(x));\n return;\n }\n tree.childNodes.forEach((x) => ColorGenerator.visitStree_(x, leaves, ignore));\n }\n }\n getSpeech(node, _xml) {\n return WalkerUtil.getAttribute(node, this.modality);\n }\n generateSpeech(node, _xml) {\n if (!this.getRebuilt()) {\n this.setRebuilt(new rebuild_stree_1.RebuildStree(node));\n }\n this.colorLeaves_(node);\n return WalkerUtil.getAttribute(node, this.modality);\n }\n colorLeaves_(node) {\n const leaves = [];\n ColorGenerator.visitStree_(this.getRebuilt().streeRoot, leaves, {});\n for (const id of leaves) {\n const color = this.contrast.generate();\n let success = false;\n if (Array.isArray(id)) {\n success = id\n .map((x) => this.colorLeave_(node, x, color))\n .reduce((x, y) => x || y, false);\n }\n else {\n success = this.colorLeave_(node, id.toString(), color);\n }\n if (success) {\n this.contrast.increment();\n }\n }\n }\n colorLeave_(node, id, color) {\n const aux = WalkerUtil.getBySemanticId(node, id);\n if (aux) {\n aux.setAttribute(this.modality, color);\n return true;\n }\n return false;\n }\n}\nexports.ColorGenerator = ColorGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSpeechGenerator = void 0;\nconst WalkerUtil = require(\"../walker/walker_util\");\nconst abstract_speech_generator_1 = require(\"./abstract_speech_generator\");\nclass DirectSpeechGenerator extends abstract_speech_generator_1.AbstractSpeechGenerator {\n getSpeech(node, _xml) {\n return WalkerUtil.getAttribute(node, this.modality);\n }\n}\nexports.DirectSpeechGenerator = DirectSpeechGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DummySpeechGenerator = void 0;\nconst abstract_speech_generator_1 = require(\"./abstract_speech_generator\");\nclass DummySpeechGenerator extends abstract_speech_generator_1.AbstractSpeechGenerator {\n getSpeech(_node, _xml) {\n return '';\n }\n}\nexports.DummySpeechGenerator = DummySpeechGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeSpeechGenerator = void 0;\nconst WalkerUtil = require(\"../walker/walker_util\");\nconst tree_speech_generator_1 = require(\"./tree_speech_generator\");\nclass NodeSpeechGenerator extends tree_speech_generator_1.TreeSpeechGenerator {\n getSpeech(node, _xml) {\n super.getSpeech(node, _xml);\n return WalkerUtil.getAttribute(node, this.modality);\n }\n}\nexports.NodeSpeechGenerator = NodeSpeechGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generatorMapping_ = exports.generator = void 0;\nconst adhoc_speech_generator_1 = require(\"./adhoc_speech_generator\");\nconst color_generator_1 = require(\"./color_generator\");\nconst direct_speech_generator_1 = require(\"./direct_speech_generator\");\nconst dummy_speech_generator_1 = require(\"./dummy_speech_generator\");\nconst node_speech_generator_1 = require(\"./node_speech_generator\");\nconst summary_speech_generator_1 = require(\"./summary_speech_generator\");\nconst tree_speech_generator_1 = require(\"./tree_speech_generator\");\nfunction generator(type) {\n const constructor = exports.generatorMapping_[type] || exports.generatorMapping_.Direct;\n return constructor();\n}\nexports.generator = generator;\nexports.generatorMapping_ = {\n Adhoc: () => new adhoc_speech_generator_1.AdhocSpeechGenerator(),\n Color: () => new color_generator_1.ColorGenerator(),\n Direct: () => new direct_speech_generator_1.DirectSpeechGenerator(),\n Dummy: () => new dummy_speech_generator_1.DummySpeechGenerator(),\n Node: () => new node_speech_generator_1.NodeSpeechGenerator(),\n Summary: () => new summary_speech_generator_1.SummarySpeechGenerator(),\n Tree: () => new tree_speech_generator_1.TreeSpeechGenerator()\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.computeSummary_ = exports.retrieveSummary = exports.connectAllMactions = exports.connectMactions = exports.nodeAtPosition_ = exports.computePrefix_ = exports.retrievePrefix = exports.addPrefix = exports.addModality = exports.addSpeech = exports.recomputeMarkup = exports.computeMarkup = exports.recomputeSpeech = exports.computeSpeech = void 0;\nconst AuralRendering = require(\"../audio/aural_rendering\");\nconst DomUtil = require(\"../common/dom_util\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst enrich_attr_1 = require(\"../enrich_mathml/enrich_attr\");\nconst speech_rule_engine_1 = require(\"../rule_engine/speech_rule_engine\");\nconst semantic_tree_1 = require(\"../semantic_tree/semantic_tree\");\nconst WalkerUtil = require(\"../walker/walker_util\");\nfunction computeSpeech(xml) {\n return speech_rule_engine_1.SpeechRuleEngine.getInstance().evaluateNode(xml);\n}\nexports.computeSpeech = computeSpeech;\nfunction recomputeSpeech(semantic) {\n const tree = semantic_tree_1.SemanticTree.fromNode(semantic);\n return computeSpeech(tree.xml());\n}\nexports.recomputeSpeech = recomputeSpeech;\nfunction computeMarkup(tree) {\n const descrs = computeSpeech(tree);\n return AuralRendering.markup(descrs);\n}\nexports.computeMarkup = computeMarkup;\nfunction recomputeMarkup(semantic) {\n const descrs = recomputeSpeech(semantic);\n return AuralRendering.markup(descrs);\n}\nexports.recomputeMarkup = recomputeMarkup;\nfunction addSpeech(mml, semantic, snode) {\n const sxml = DomUtil.querySelectorAllByAttrValue(snode, 'id', semantic.id.toString())[0];\n const speech = sxml\n ? AuralRendering.markup(computeSpeech(sxml))\n : recomputeMarkup(semantic);\n mml.setAttribute(enrich_attr_1.Attribute.SPEECH, speech);\n}\nexports.addSpeech = addSpeech;\nfunction addModality(mml, semantic, modality) {\n const markup = recomputeMarkup(semantic);\n mml.setAttribute(modality, markup);\n}\nexports.addModality = addModality;\nfunction addPrefix(mml, semantic) {\n const speech = retrievePrefix(semantic);\n if (speech) {\n mml.setAttribute(enrich_attr_1.Attribute.PREFIX, speech);\n }\n}\nexports.addPrefix = addPrefix;\nfunction retrievePrefix(semantic) {\n const descrs = computePrefix_(semantic);\n return AuralRendering.markup(descrs);\n}\nexports.retrievePrefix = retrievePrefix;\nfunction computePrefix_(semantic) {\n const tree = semantic_tree_1.SemanticTree.fromRoot(semantic);\n const nodes = XpathUtil.evalXPath('.//*[@id=\"' + semantic.id + '\"]', tree.xml());\n let node = nodes[0];\n if (nodes.length > 1) {\n node = nodeAtPosition_(semantic, nodes) || node;\n }\n return node\n ? speech_rule_engine_1.SpeechRuleEngine.getInstance().runInSetting({\n modality: 'prefix',\n domain: 'default',\n style: 'default',\n strict: true,\n speech: true\n }, function () {\n return speech_rule_engine_1.SpeechRuleEngine.getInstance().evaluateNode(node);\n })\n : [];\n}\nexports.computePrefix_ = computePrefix_;\nfunction nodeAtPosition_(semantic, nodes) {\n const node = nodes[0];\n if (!semantic.parent) {\n return node;\n }\n const path = [];\n while (semantic) {\n path.push(semantic.id);\n semantic = semantic.parent;\n }\n const pathEquals = function (xml, path) {\n while (path.length &&\n path.shift().toString() === xml.getAttribute('id') &&\n xml.parentNode &&\n xml.parentNode.parentNode) {\n xml = xml.parentNode.parentNode;\n }\n return !path.length;\n };\n for (let i = 0, xml; (xml = nodes[i]); i++) {\n if (pathEquals(xml, path.slice())) {\n return xml;\n }\n }\n return node;\n}\nexports.nodeAtPosition_ = nodeAtPosition_;\nfunction connectMactions(node, mml, stree) {\n const mactions = DomUtil.querySelectorAll(mml, 'maction');\n for (let i = 0, maction; (maction = mactions[i]); i++) {\n const aid = maction.getAttribute('id');\n const span = DomUtil.querySelectorAllByAttrValue(node, 'id', aid)[0];\n if (!span) {\n continue;\n }\n const lchild = maction.childNodes[1];\n const mid = lchild.getAttribute(enrich_attr_1.Attribute.ID);\n let cspan = WalkerUtil.getBySemanticId(node, mid);\n if (cspan && cspan.getAttribute(enrich_attr_1.Attribute.TYPE) !== 'dummy') {\n continue;\n }\n cspan = span.childNodes[0];\n if (cspan.getAttribute('sre-highlighter-added')) {\n continue;\n }\n const pid = lchild.getAttribute(enrich_attr_1.Attribute.PARENT);\n if (pid) {\n cspan.setAttribute(enrich_attr_1.Attribute.PARENT, pid);\n }\n cspan.setAttribute(enrich_attr_1.Attribute.TYPE, 'dummy');\n cspan.setAttribute(enrich_attr_1.Attribute.ID, mid);\n const cst = DomUtil.querySelectorAllByAttrValue(stree, 'id', mid)[0];\n cst.setAttribute('alternative', mid);\n }\n}\nexports.connectMactions = connectMactions;\nfunction connectAllMactions(mml, stree) {\n const mactions = DomUtil.querySelectorAll(mml, 'maction');\n for (let i = 0, maction; (maction = mactions[i]); i++) {\n const lchild = maction.childNodes[1];\n const mid = lchild.getAttribute(enrich_attr_1.Attribute.ID);\n const cst = DomUtil.querySelectorAllByAttrValue(stree, 'id', mid)[0];\n cst.setAttribute('alternative', mid);\n }\n}\nexports.connectAllMactions = connectAllMactions;\nfunction retrieveSummary(node) {\n const descrs = computeSummary_(node);\n return AuralRendering.markup(descrs);\n}\nexports.retrieveSummary = retrieveSummary;\nfunction computeSummary_(node) {\n return node\n ? speech_rule_engine_1.SpeechRuleEngine.getInstance().runInSetting({ modality: 'summary', strict: false, speech: true }, function () {\n return speech_rule_engine_1.SpeechRuleEngine.getInstance().evaluateNode(node);\n })\n : [];\n}\nexports.computeSummary_ = computeSummary_;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SummarySpeechGenerator = void 0;\nconst abstract_speech_generator_1 = require(\"./abstract_speech_generator\");\nconst SpeechGeneratorUtil = require(\"./speech_generator_util\");\nclass SummarySpeechGenerator extends abstract_speech_generator_1.AbstractSpeechGenerator {\n getSpeech(node, xml) {\n SpeechGeneratorUtil.connectAllMactions(xml, this.getRebuilt().xml);\n return this.generateSpeech(node, xml);\n }\n}\nexports.SummarySpeechGenerator = SummarySpeechGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TreeSpeechGenerator = void 0;\nconst enrich_attr_1 = require(\"../enrich_mathml/enrich_attr\");\nconst WalkerUtil = require(\"../walker/walker_util\");\nconst abstract_speech_generator_1 = require(\"./abstract_speech_generator\");\nconst SpeechGeneratorUtil = require(\"./speech_generator_util\");\nclass TreeSpeechGenerator extends abstract_speech_generator_1.AbstractSpeechGenerator {\n getSpeech(node, xml) {\n const speech = this.generateSpeech(node, xml);\n const nodes = this.getRebuilt().nodeDict;\n for (const key in nodes) {\n const snode = nodes[key];\n const innerMml = WalkerUtil.getBySemanticId(xml, key);\n const innerNode = WalkerUtil.getBySemanticId(node, key);\n if (!innerMml || !innerNode) {\n continue;\n }\n if (!this.modality || this.modality === enrich_attr_1.Attribute.SPEECH) {\n SpeechGeneratorUtil.addSpeech(innerNode, snode, this.getRebuilt().xml);\n }\n else {\n SpeechGeneratorUtil.addModality(innerNode, snode, this.modality);\n }\n if (this.modality === enrich_attr_1.Attribute.SPEECH) {\n SpeechGeneratorUtil.addPrefix(innerNode, snode);\n }\n }\n return speech;\n }\n}\nexports.TreeSpeechGenerator = TreeSpeechGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.INTERVALS = exports.makeLetter = exports.numberRules = exports.alphabetRules = exports.getFont = exports.makeInterval = exports.generate = exports.makeDomains_ = exports.Domains_ = exports.Base = exports.Embellish = exports.Font = void 0;\nconst engine_1 = require(\"../common/engine\");\nconst L10n = require(\"../l10n/l10n\");\nconst locale_1 = require(\"../l10n/locale\");\nconst locale_util_1 = require(\"../l10n/locale_util\");\nconst MathCompoundStore = require(\"../rule_engine/math_compound_store\");\nvar Font;\n(function (Font) {\n Font[\"BOLD\"] = \"bold\";\n Font[\"BOLDFRAKTUR\"] = \"bold-fraktur\";\n Font[\"BOLDITALIC\"] = \"bold-italic\";\n Font[\"BOLDSCRIPT\"] = \"bold-script\";\n Font[\"DOUBLESTRUCK\"] = \"double-struck\";\n Font[\"FULLWIDTH\"] = \"fullwidth\";\n Font[\"FRAKTUR\"] = \"fraktur\";\n Font[\"ITALIC\"] = \"italic\";\n Font[\"MONOSPACE\"] = \"monospace\";\n Font[\"NORMAL\"] = \"normal\";\n Font[\"SCRIPT\"] = \"script\";\n Font[\"SANSSERIF\"] = \"sans-serif\";\n Font[\"SANSSERIFITALIC\"] = \"sans-serif-italic\";\n Font[\"SANSSERIFBOLD\"] = \"sans-serif-bold\";\n Font[\"SANSSERIFBOLDITALIC\"] = \"sans-serif-bold-italic\";\n})(Font = exports.Font || (exports.Font = {}));\nvar Embellish;\n(function (Embellish) {\n Embellish[\"SUPER\"] = \"super\";\n Embellish[\"SUB\"] = \"sub\";\n Embellish[\"CIRCLED\"] = \"circled\";\n Embellish[\"PARENTHESIZED\"] = \"parenthesized\";\n Embellish[\"PERIOD\"] = \"period\";\n Embellish[\"NEGATIVECIRCLED\"] = \"negative-circled\";\n Embellish[\"DOUBLECIRCLED\"] = \"double-circled\";\n Embellish[\"CIRCLEDSANSSERIF\"] = \"circled-sans-serif\";\n Embellish[\"NEGATIVECIRCLEDSANSSERIF\"] = \"negative-circled-sans-serif\";\n Embellish[\"COMMA\"] = \"comma\";\n Embellish[\"SQUARED\"] = \"squared\";\n Embellish[\"NEGATIVESQUARED\"] = \"negative-squared\";\n})(Embellish = exports.Embellish || (exports.Embellish = {}));\nvar Base;\n(function (Base) {\n Base[\"LATINCAP\"] = \"latinCap\";\n Base[\"LATINSMALL\"] = \"latinSmall\";\n Base[\"GREEKCAP\"] = \"greekCap\";\n Base[\"GREEKSMALL\"] = \"greekSmall\";\n Base[\"DIGIT\"] = \"digit\";\n})(Base = exports.Base || (exports.Base = {}));\nexports.Domains_ = {\n small: ['default'],\n capital: ['default'],\n digit: ['default']\n};\nfunction makeDomains_() {\n const alph = locale_1.LOCALE.ALPHABETS;\n const combineKeys = (obj1, obj2) => {\n const result = {};\n Object.keys(obj1).forEach((k) => (result[k] = true));\n Object.keys(obj2).forEach((k) => (result[k] = true));\n return Object.keys(result);\n };\n exports.Domains_.small = combineKeys(alph.smallPrefix, alph.letterTrans);\n exports.Domains_.capital = combineKeys(alph.capPrefix, alph.letterTrans);\n exports.Domains_.digit = combineKeys(alph.digitPrefix, alph.digitTrans);\n}\nexports.makeDomains_ = makeDomains_;\nfunction generate(locale) {\n const oldLocale = engine_1.default.getInstance().locale;\n engine_1.default.getInstance().locale = locale;\n L10n.setLocale();\n MathCompoundStore.addSymbolRules({ locale: locale });\n makeDomains_();\n const intervals = exports.INTERVALS;\n for (let i = 0, int; (int = intervals[i]); i++) {\n const keys = makeInterval(int.interval, int.subst);\n const letters = keys.map(function (x) {\n return String.fromCodePoint(parseInt(x, 16));\n });\n if ('offset' in int) {\n numberRules(keys, letters, int.font, int.category, int.offset || 0);\n }\n else {\n const alphabet = locale_1.LOCALE.ALPHABETS[int.base];\n alphabetRules(keys, letters, alphabet, int.font, int.category, !!int.capital);\n }\n }\n engine_1.default.getInstance().locale = oldLocale;\n L10n.setLocale();\n}\nexports.generate = generate;\nfunction num2str(num) {\n const str = num.toString(16).toUpperCase();\n return str.length > 3 ? str : ('000' + str).slice(-4);\n}\nfunction makeInterval([a, b], subst) {\n const start = parseInt(a, 16);\n const end = parseInt(b, 16);\n const result = [];\n for (let i = start; i <= end; i++) {\n let key = num2str(i);\n const sub = subst[key];\n if (sub === false) {\n continue;\n }\n key = subst[key] || key;\n result.push(key);\n }\n return result;\n}\nexports.makeInterval = makeInterval;\nfunction getFont(font) {\n const realFont = font === 'normal' || font === 'fullwidth'\n ? ''\n : locale_1.LOCALE.MESSAGES.font[font] || locale_1.LOCALE.MESSAGES.embellish[font] || '';\n return (0, locale_util_1.localeFontCombiner)(realFont);\n}\nexports.getFont = getFont;\nfunction alphabetRules(keys, unicodes, letters, font, category, cap) {\n const realFont = getFont(font);\n for (let i = 0, key, unicode, letter; (key = keys[i]), (unicode = unicodes[i]), (letter = letters[i]); i++) {\n const prefixes = cap\n ? locale_1.LOCALE.ALPHABETS.capPrefix\n : locale_1.LOCALE.ALPHABETS.smallPrefix;\n const domains = cap ? exports.Domains_.capital : exports.Domains_.small;\n makeLetter(realFont.combiner, key, unicode, letter, realFont.font, prefixes, category, locale_1.LOCALE.ALPHABETS.letterTrans, domains);\n }\n}\nexports.alphabetRules = alphabetRules;\nfunction numberRules(keys, unicodes, font, category, offset) {\n const realFont = getFont(font);\n for (let i = 0, key, unicode; (key = keys[i]), (unicode = unicodes[i]); i++) {\n const prefixes = locale_1.LOCALE.ALPHABETS.digitPrefix;\n const num = i + offset;\n makeLetter(realFont.combiner, key, unicode, num, realFont.font, prefixes, category, locale_1.LOCALE.ALPHABETS.digitTrans, exports.Domains_.digit);\n }\n}\nexports.numberRules = numberRules;\nfunction makeLetter(combiner, key, unicode, letter, font, prefixes, category, transformers, domains) {\n for (let i = 0, domain; (domain = domains[i]); i++) {\n const transformer = domain in transformers ? transformers[domain] : transformers['default'];\n const prefix = domain in prefixes ? prefixes[domain] : prefixes['default'];\n MathCompoundStore.defineRule(key.toString(), domain, 'default', category, unicode, combiner(transformer(letter), font, prefix));\n }\n}\nexports.makeLetter = makeLetter;\nexports.INTERVALS = [\n {\n interval: ['1D400', '1D419'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.BOLD\n },\n {\n interval: ['1D41A', '1D433'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.BOLD\n },\n {\n interval: ['1D56C', '1D585'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.BOLDFRAKTUR\n },\n {\n interval: ['1D586', '1D59F'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.BOLDFRAKTUR\n },\n {\n interval: ['1D468', '1D481'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.BOLDITALIC\n },\n {\n interval: ['1D482', '1D49B'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.BOLDITALIC\n },\n {\n interval: ['1D4D0', '1D4E9'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.BOLDSCRIPT\n },\n {\n interval: ['1D4EA', '1D503'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.BOLDSCRIPT\n },\n {\n interval: ['1D538', '1D551'],\n base: Base.LATINCAP,\n subst: {\n '1D53A': '2102',\n '1D53F': '210D',\n '1D545': '2115',\n '1D547': '2119',\n '1D548': '211A',\n '1D549': '211D',\n '1D551': '2124'\n },\n capital: true,\n category: 'Lu',\n font: Font.DOUBLESTRUCK\n },\n {\n interval: ['1D552', '1D56B'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.DOUBLESTRUCK\n },\n {\n interval: ['1D504', '1D51D'],\n base: Base.LATINCAP,\n subst: {\n '1D506': '212D',\n '1D50B': '210C',\n '1D50C': '2111',\n '1D515': '211C',\n '1D51D': '2128'\n },\n capital: true,\n category: 'Lu',\n font: Font.FRAKTUR\n },\n {\n interval: ['1D51E', '1D537'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.FRAKTUR\n },\n {\n interval: ['FF21', 'FF3A'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.FULLWIDTH\n },\n {\n interval: ['FF41', 'FF5A'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.FULLWIDTH\n },\n {\n interval: ['1D434', '1D44D'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.ITALIC\n },\n {\n interval: ['1D44E', '1D467'],\n base: Base.LATINSMALL,\n subst: { '1D455': '210E' },\n capital: false,\n category: 'Ll',\n font: Font.ITALIC\n },\n {\n interval: ['1D670', '1D689'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.MONOSPACE\n },\n {\n interval: ['1D68A', '1D6A3'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.MONOSPACE\n },\n {\n interval: ['0041', '005A'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.NORMAL\n },\n {\n interval: ['0061', '007A'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.NORMAL\n },\n {\n interval: ['1D49C', '1D4B5'],\n base: Base.LATINCAP,\n subst: {\n '1D49D': '212C',\n '1D4A0': '2130',\n '1D4A1': '2131',\n '1D4A3': '210B',\n '1D4A4': '2110',\n '1D4A7': '2112',\n '1D4A8': '2133',\n '1D4AD': '211B'\n },\n capital: true,\n category: 'Lu',\n font: Font.SCRIPT\n },\n {\n interval: ['1D4B6', '1D4CF'],\n base: Base.LATINSMALL,\n subst: { '1D4BA': '212F', '1D4BC': '210A', '1D4C4': '2134' },\n capital: false,\n category: 'Ll',\n font: Font.SCRIPT\n },\n {\n interval: ['1D5A0', '1D5B9'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.SANSSERIF\n },\n {\n interval: ['1D5BA', '1D5D3'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.SANSSERIF\n },\n {\n interval: ['1D608', '1D621'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.SANSSERIFITALIC\n },\n {\n interval: ['1D622', '1D63B'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.SANSSERIFITALIC\n },\n {\n interval: ['1D5D4', '1D5ED'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.SANSSERIFBOLD\n },\n {\n interval: ['1D5EE', '1D607'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.SANSSERIFBOLD\n },\n {\n interval: ['1D63C', '1D655'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.SANSSERIFBOLDITALIC\n },\n {\n interval: ['1D656', '1D66F'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.SANSSERIFBOLDITALIC\n },\n {\n interval: ['0391', '03A9'],\n base: Base.GREEKCAP,\n subst: { '03A2': '03F4' },\n capital: true,\n category: 'Lu',\n font: Font.NORMAL\n },\n {\n interval: ['03B0', '03D0'],\n base: Base.GREEKSMALL,\n subst: {\n '03B0': '2207',\n '03CA': '2202',\n '03CB': '03F5',\n '03CC': '03D1',\n '03CD': '03F0',\n '03CE': '03D5',\n '03CF': '03F1',\n '03D0': '03D6'\n },\n capital: false,\n category: 'Ll',\n font: Font.NORMAL\n },\n {\n interval: ['1D6A8', '1D6C0'],\n base: Base.GREEKCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.BOLD\n },\n {\n interval: ['1D6C1', '1D6E1'],\n base: Base.GREEKSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.BOLD\n },\n {\n interval: ['1D6E2', '1D6FA'],\n base: Base.GREEKCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.ITALIC\n },\n {\n interval: ['1D6FB', '1D71B'],\n base: Base.GREEKSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.ITALIC\n },\n {\n interval: ['1D71C', '1D734'],\n base: Base.GREEKCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.BOLDITALIC\n },\n {\n interval: ['1D735', '1D755'],\n base: Base.GREEKSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.BOLDITALIC\n },\n {\n interval: ['1D756', '1D76E'],\n base: Base.GREEKCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.SANSSERIFBOLD\n },\n {\n interval: ['1D76F', '1D78F'],\n base: Base.GREEKSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.SANSSERIFBOLD\n },\n {\n interval: ['1D790', '1D7A8'],\n base: Base.GREEKCAP,\n subst: {},\n capital: true,\n category: 'Lu',\n font: Font.SANSSERIFBOLDITALIC\n },\n {\n interval: ['1D7A9', '1D7C9'],\n base: Base.GREEKSMALL,\n subst: {},\n capital: false,\n category: 'Ll',\n font: Font.SANSSERIFBOLDITALIC\n },\n {\n interval: ['0030', '0039'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'Nd',\n font: Font.NORMAL\n },\n {\n interval: ['2070', '2079'],\n base: Base.DIGIT,\n subst: { 2071: '00B9', 2072: '00B2', 2073: '00B3' },\n offset: 0,\n category: 'No',\n font: Embellish.SUPER\n },\n {\n interval: ['2080', '2089'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'No',\n font: Embellish.SUB\n },\n {\n interval: ['245F', '2473'],\n base: Base.DIGIT,\n subst: { '245F': '24EA' },\n offset: 0,\n category: 'No',\n font: Embellish.CIRCLED\n },\n {\n interval: ['3251', '325F'],\n base: Base.DIGIT,\n subst: {},\n offset: 21,\n category: 'No',\n font: Embellish.CIRCLED\n },\n {\n interval: ['32B1', '32BF'],\n base: Base.DIGIT,\n subst: {},\n offset: 36,\n category: 'No',\n font: Embellish.CIRCLED\n },\n {\n interval: ['2474', '2487'],\n base: Base.DIGIT,\n subst: {},\n offset: 1,\n category: 'No',\n font: Embellish.PARENTHESIZED\n },\n {\n interval: ['2487', '249B'],\n base: Base.DIGIT,\n subst: { 2487: '1F100' },\n offset: 0,\n category: 'No',\n font: Embellish.PERIOD\n },\n {\n interval: ['2775', '277F'],\n base: Base.DIGIT,\n subst: { 2775: '24FF' },\n offset: 0,\n category: 'No',\n font: Embellish.NEGATIVECIRCLED\n },\n {\n interval: ['24EB', '24F4'],\n base: Base.DIGIT,\n subst: {},\n offset: 11,\n category: 'No',\n font: Embellish.NEGATIVECIRCLED\n },\n {\n interval: ['24F5', '24FE'],\n base: Base.DIGIT,\n subst: {},\n offset: 1,\n category: 'No',\n font: Embellish.DOUBLECIRCLED\n },\n {\n interval: ['277F', '2789'],\n base: Base.DIGIT,\n subst: { '277F': '1F10B' },\n offset: 0,\n category: 'No',\n font: Embellish.CIRCLEDSANSSERIF\n },\n {\n interval: ['2789', '2793'],\n base: Base.DIGIT,\n subst: { 2789: '1F10C' },\n offset: 0,\n category: 'No',\n font: Embellish.NEGATIVECIRCLEDSANSSERIF\n },\n {\n interval: ['FF10', 'FF19'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'Nd',\n font: Font.FULLWIDTH\n },\n {\n interval: ['1D7CE', '1D7D7'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'Nd',\n font: Font.BOLD\n },\n {\n interval: ['1D7D8', '1D7E1'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'Nd',\n font: Font.DOUBLESTRUCK\n },\n {\n interval: ['1D7E2', '1D7EB'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'Nd',\n font: Font.SANSSERIF\n },\n {\n interval: ['1D7EC', '1D7F5'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'Nd',\n font: Font.SANSSERIFBOLD\n },\n {\n interval: ['1D7F6', '1D7FF'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'Nd',\n font: Font.MONOSPACE\n },\n {\n interval: ['1F101', '1F10A'],\n base: Base.DIGIT,\n subst: {},\n offset: 0,\n category: 'No',\n font: Embellish.COMMA\n },\n {\n interval: ['24B6', '24CF'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'So',\n font: Embellish.CIRCLED\n },\n {\n interval: ['24D0', '24E9'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'So',\n font: Embellish.CIRCLED\n },\n {\n interval: ['1F110', '1F129'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'So',\n font: Embellish.PARENTHESIZED\n },\n {\n interval: ['249C', '24B5'],\n base: Base.LATINSMALL,\n subst: {},\n capital: false,\n category: 'So',\n font: Embellish.PARENTHESIZED\n },\n {\n interval: ['1F130', '1F149'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'So',\n font: Embellish.SQUARED\n },\n {\n interval: ['1F170', '1F189'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'So',\n font: Embellish.NEGATIVESQUARED\n },\n {\n interval: ['1F150', '1F169'],\n base: Base.LATINCAP,\n subst: {},\n capital: true,\n category: 'So',\n font: Embellish.NEGATIVECIRCLED\n }\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = exports.Comparator = exports.ClearspeakPreferences = void 0;\nconst engine_1 = require(\"../common/engine\");\nconst EngineConst = require(\"../common/engine_const\");\nconst dynamic_cstr_1 = require(\"../rule_engine/dynamic_cstr\");\nconst dynamic_cstr_2 = require(\"../rule_engine/dynamic_cstr\");\nconst MathCompoundStore = require(\"../rule_engine/math_compound_store\");\nconst speech_rule_engine_1 = require(\"../rule_engine/speech_rule_engine\");\nclass ClearspeakPreferences extends dynamic_cstr_1.DynamicCstr {\n constructor(cstr, preference) {\n super(cstr);\n this.preference = preference;\n }\n static comparator() {\n return new Comparator(engine_1.default.getInstance().dynamicCstr, dynamic_cstr_2.DynamicProperties.createProp([dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_2.Axis.LOCALE]], [dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_2.Axis.MODALITY]], [dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_2.Axis.DOMAIN]], [dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_2.Axis.STYLE]]));\n }\n static fromPreference(pref) {\n const pairs = pref.split(':');\n const preferences = {};\n const properties = PREFERENCES.getProperties();\n const validKeys = Object.keys(properties);\n for (let i = 0, key; (key = pairs[i]); i++) {\n const pair = key.split('_');\n if (validKeys.indexOf(pair[0]) === -1) {\n continue;\n }\n const value = pair[1];\n if (value &&\n value !== ClearspeakPreferences.AUTO &&\n properties[pair[0]].indexOf(value) !== -1) {\n preferences[pair[0]] = pair[1];\n }\n }\n return preferences;\n }\n static toPreference(pref) {\n const keys = Object.keys(pref);\n const str = [];\n for (let i = 0; i < keys.length; i++) {\n str.push(keys[i] + '_' + pref[keys[i]]);\n }\n return str.length ? str.join(':') : dynamic_cstr_1.DynamicCstr.DEFAULT_VALUE;\n }\n static getLocalePreferences(opt_dynamic) {\n const dynamic = opt_dynamic ||\n MathCompoundStore.enumerate(speech_rule_engine_1.SpeechRuleEngine.getInstance().enumerate());\n return ClearspeakPreferences.getLocalePreferences_(dynamic);\n }\n static smartPreferences(item, locale) {\n const prefs = ClearspeakPreferences.getLocalePreferences();\n const loc = prefs[locale];\n if (!loc) {\n return [];\n }\n const explorer = item['explorers']['speech'];\n const smart = ClearspeakPreferences.relevantPreferences(explorer.walker.getFocus().getSemanticPrimary());\n const previous = EngineConst.DOMAIN_TO_STYLES['clearspeak'];\n const items = [\n {\n type: 'radio',\n content: 'No Preferences',\n id: 'clearspeak-default',\n variable: 'speechRules'\n },\n {\n type: 'radio',\n content: 'Current Preferences',\n id: 'clearspeak-' + previous,\n variable: 'speechRules'\n },\n { type: 'rule' },\n { type: 'label', content: 'Preferences for ' + smart },\n { type: 'rule' }\n ];\n return items.concat(loc[smart].map(function (x) {\n const pair = x.split('_');\n return {\n type: 'radio',\n content: pair[1],\n id: 'clearspeak-' +\n ClearspeakPreferences.addPreference(previous, pair[0], pair[1]),\n variable: 'speechRules'\n };\n }));\n }\n static relevantPreferences(node) {\n const roles = SEMANTIC_MAPPING_[node.type];\n if (!roles) {\n return 'ImpliedTimes';\n }\n return roles[node.role] || roles[''] || 'ImpliedTimes';\n }\n static findPreference(prefs, kind) {\n if (prefs === 'default') {\n return ClearspeakPreferences.AUTO;\n }\n const parsed = ClearspeakPreferences.fromPreference(prefs);\n return parsed[kind] || ClearspeakPreferences.AUTO;\n }\n static addPreference(prefs, kind, value) {\n if (prefs === 'default') {\n return kind + '_' + value;\n }\n const parsed = ClearspeakPreferences.fromPreference(prefs);\n parsed[kind] = value;\n return ClearspeakPreferences.toPreference(parsed);\n }\n static getLocalePreferences_(dynamic) {\n const result = {};\n for (const locale in dynamic) {\n if (!dynamic[locale]['speech'] ||\n !dynamic[locale]['speech']['clearspeak']) {\n continue;\n }\n const locPrefs = Object.keys(dynamic[locale]['speech']['clearspeak']);\n const prefs = (result[locale] = {});\n for (const axis in PREFERENCES.getProperties()) {\n const allSty = PREFERENCES.getProperties()[axis];\n const values = [axis + '_Auto'];\n if (allSty) {\n for (const sty of allSty) {\n if (locPrefs.indexOf(axis + '_' + sty) !== -1) {\n values.push(axis + '_' + sty);\n }\n }\n }\n prefs[axis] = values;\n }\n }\n return result;\n }\n equal(cstr) {\n const top = super.equal(cstr);\n if (!top) {\n return false;\n }\n const keys = Object.keys(this.preference);\n const preference = cstr.preference;\n if (keys.length !== Object.keys(preference).length) {\n return false;\n }\n for (let i = 0, key; (key = keys[i]); i++) {\n if (this.preference[key] !== preference[key]) {\n return false;\n }\n }\n return true;\n }\n}\nexports.ClearspeakPreferences = ClearspeakPreferences;\nClearspeakPreferences.AUTO = 'Auto';\nconst PREFERENCES = new dynamic_cstr_2.DynamicProperties({\n AbsoluteValue: ['Auto', 'AbsEnd', 'Cardinality', 'Determinant'],\n Bar: ['Auto', 'Conjugate'],\n Caps: ['Auto', 'SayCaps'],\n CombinationPermutation: ['Auto', 'ChoosePermute'],\n Currency: ['Auto', 'Position', 'Prefix'],\n Ellipses: ['Auto', 'AndSoOn'],\n Enclosed: ['Auto', 'EndEnclose'],\n Exponent: [\n 'Auto',\n 'AfterPower',\n 'Ordinal',\n 'OrdinalPower',\n 'Exponent'\n ],\n Fraction: [\n 'Auto',\n 'EndFrac',\n 'FracOver',\n 'General',\n 'GeneralEndFrac',\n 'Ordinal',\n 'Over',\n 'OverEndFrac',\n 'Per'\n ],\n Functions: [\n 'Auto',\n 'None',\n 'Reciprocal'\n ],\n ImpliedTimes: ['Auto', 'MoreImpliedTimes', 'None'],\n Log: ['Auto', 'LnAsNaturalLog'],\n Matrix: [\n 'Auto',\n 'Combinatoric',\n 'EndMatrix',\n 'EndVector',\n 'SilentColNum',\n 'SpeakColNum',\n 'Vector'\n ],\n MultiLineLabel: [\n 'Auto',\n 'Case',\n 'Constraint',\n 'Equation',\n 'Line',\n 'None',\n 'Row',\n 'Step'\n ],\n MultiLineOverview: ['Auto', 'None'],\n MultiLinePausesBetweenColumns: ['Auto', 'Long', 'Short'],\n MultsymbolDot: ['Auto', 'Dot'],\n MultsymbolX: ['Auto', 'By', 'Cross'],\n Paren: [\n 'Auto',\n 'CoordPoint',\n 'Interval',\n 'Silent',\n 'Speak',\n 'SpeakNestingLevel'\n ],\n Prime: ['Auto', 'Angle', 'Length'],\n Roots: ['Auto', 'PosNegSqRoot', 'PosNegSqRootEnd', 'RootEnd'],\n SetMemberSymbol: ['Auto', 'Belongs', 'Element', 'Member', 'In'],\n Sets: ['Auto', 'SilentBracket', 'woAll'],\n TriangleSymbol: ['Auto', 'Delta'],\n Trig: [\n 'Auto',\n 'ArcTrig',\n 'TrigInverse',\n 'Reciprocal'\n ],\n VerticalLine: ['Auto', 'Divides', 'Given', 'SuchThat']\n});\nclass Comparator extends dynamic_cstr_2.DefaultComparator {\n constructor(cstr, props) {\n super(cstr, props);\n this.preference =\n cstr instanceof ClearspeakPreferences ? cstr.preference : {};\n }\n match(cstr) {\n if (!(cstr instanceof ClearspeakPreferences)) {\n return super.match(cstr);\n }\n if (cstr.getComponents()[dynamic_cstr_2.Axis.STYLE] === 'default') {\n return true;\n }\n const keys = Object.keys(cstr.preference);\n for (let i = 0, key; (key = keys[i]); i++) {\n if (this.preference[key] !== cstr.preference[key]) {\n return false;\n }\n }\n return true;\n }\n compare(cstr1, cstr2) {\n const top = super.compare(cstr1, cstr2);\n if (top !== 0) {\n return top;\n }\n const pref1 = cstr1 instanceof ClearspeakPreferences;\n const pref2 = cstr2 instanceof ClearspeakPreferences;\n if (!pref1 && pref2) {\n return 1;\n }\n if (pref1 && !pref2) {\n return -1;\n }\n if (!pref1 && !pref2) {\n return 0;\n }\n const length1 = Object.keys(cstr1.preference).length;\n const length2 = Object.keys(cstr2.preference).length;\n return length1 > length2 ? -1 : length1 < length2 ? 1 : 0;\n }\n}\nexports.Comparator = Comparator;\nclass Parser extends dynamic_cstr_2.DynamicCstrParser {\n constructor() {\n super([dynamic_cstr_2.Axis.LOCALE, dynamic_cstr_2.Axis.MODALITY, dynamic_cstr_2.Axis.DOMAIN, dynamic_cstr_2.Axis.STYLE]);\n }\n parse(str) {\n const initial = super.parse(str);\n let style = initial.getValue(dynamic_cstr_2.Axis.STYLE);\n const locale = initial.getValue(dynamic_cstr_2.Axis.LOCALE);\n const modality = initial.getValue(dynamic_cstr_2.Axis.MODALITY);\n let pref = {};\n if (style !== dynamic_cstr_1.DynamicCstr.DEFAULT_VALUE) {\n pref = this.fromPreference(style);\n style = this.toPreference(pref);\n }\n return new ClearspeakPreferences({\n locale: locale,\n modality: modality,\n domain: 'clearspeak',\n style: style\n }, pref);\n }\n fromPreference(pref) {\n return ClearspeakPreferences.fromPreference(pref);\n }\n toPreference(pref) {\n return ClearspeakPreferences.toPreference(pref);\n }\n}\nexports.Parser = Parser;\nconst REVERSE_MAPPING = [\n [\n 'AbsoluteValue',\n \"fenced\",\n \"neutral\",\n \"metric\"\n ],\n ['Bar', \"overscore\", \"overaccent\"],\n ['Caps', \"identifier\", \"latinletter\"],\n ['CombinationPermutation', \"appl\", \"unknown\"],\n ['Ellipses', \"punctuation\", \"ellipsis\"],\n ['Exponent', \"superscript\", ''],\n ['Fraction', \"fraction\", ''],\n ['Functions', \"appl\", \"simple function\"],\n ['ImpliedTimes', \"operator\", \"implicit\"],\n ['Log', \"appl\", \"prefix function\"],\n ['Matrix', \"matrix\", ''],\n ['Matrix', \"vector\", ''],\n ['MultiLineLabel', \"multiline\", \"label\"],\n ['MultiLineOverview', \"multiline\", \"table\"],\n ['MultiLinePausesBetweenColumns', \"multiline\", \"table\"],\n ['MultiLineLabel', \"table\", \"label\"],\n ['MultiLineOverview', \"table\", \"table\"],\n ['MultiLinePausesBetweenColumns', \"table\", \"table\"],\n ['MultiLineLabel', \"cases\", \"label\"],\n ['MultiLineOverview', \"cases\", \"table\"],\n ['MultiLinePausesBetweenColumns', \"cases\", \"table\"],\n ['MultsymbolDot', \"operator\", \"multiplication\"],\n ['MultsymbolX', \"operator\", \"multiplication\"],\n ['Paren', \"fenced\", \"leftright\"],\n ['Prime', \"superscript\", \"prime\"],\n ['Roots', \"root\", ''],\n ['Roots', \"sqrt\", ''],\n ['SetMemberSymbol', \"relation\", \"element\"],\n ['Sets', \"fenced\", \"set extended\"],\n ['TriangleSymbol', \"identifier\", \"greekletter\"],\n ['Trig', \"appl\", \"prefix function\"],\n ['VerticalLine', \"punctuated\", \"vbar\"]\n];\nconst SEMANTIC_MAPPING_ = (function () {\n const result = {};\n for (let i = 0, triple; (triple = REVERSE_MAPPING[i]); i++) {\n const pref = triple[0];\n let role = result[triple[1]];\n if (!role) {\n role = {};\n result[triple[1]] = role;\n }\n role[triple[2]] = pref;\n }\n return result;\n})();\nengine_1.default.getInstance().comparators['clearspeak'] =\n ClearspeakPreferences.comparator;\nengine_1.default.getInstance().parsers['clearspeak'] = new Parser();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClearspeakRules = void 0;\nconst dynamic_cstr_1 = require(\"../rule_engine/dynamic_cstr\");\nconst StoreUtil = require(\"../rule_engine/store_util\");\nconst ClearspeakUtil = require(\"./clearspeak_util\");\nconst MathspeakUtil = require(\"./mathspeak_util\");\nconst NumbersUtil = require(\"./numbers_util\");\nconst SpeechRules = require(\"./speech_rules\");\nfunction ClearspeakRules() {\n SpeechRules.addStore(dynamic_cstr_1.DynamicCstr.BASE_LOCALE + '.speech.clearspeak', '', {\n CTFpauseSeparator: StoreUtil.pauseSeparator,\n CTFnodeCounter: ClearspeakUtil.nodeCounter,\n CTFcontentIterator: StoreUtil.contentIterator,\n CSFvulgarFraction: NumbersUtil.vulgarFraction,\n CQFvulgarFractionSmall: ClearspeakUtil.isSmallVulgarFraction,\n CQFcellsSimple: ClearspeakUtil.allCellsSimple,\n CSFordinalExponent: ClearspeakUtil.ordinalExponent,\n CSFwordOrdinal: ClearspeakUtil.wordOrdinal,\n CQFmatchingFences: ClearspeakUtil.matchingFences,\n CSFnestingDepth: ClearspeakUtil.nestingDepth,\n CQFfencedArguments: ClearspeakUtil.fencedArguments,\n CQFsimpleArguments: ClearspeakUtil.simpleArguments,\n CQFspaceoutNumber: MathspeakUtil.spaceoutNumber\n });\n}\nexports.ClearspeakRules = ClearspeakRules;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordOrdinal = exports.layoutFactor_ = exports.fencedFactor_ = exports.simpleFactor_ = exports.simpleArguments = exports.fencedArguments = exports.insertNesting = exports.matchingFences = exports.nestingDepth = exports.NESTING_DEPTH = exports.ordinalExponent = exports.allTextLastContent_ = exports.isUnitExpression = exports.isSmallVulgarFraction = exports.allCellsSimple = exports.allIndices_ = exports.isInteger_ = exports.simpleCell_ = exports.simpleNode = exports.hasPreference = exports.isSimpleFraction_ = exports.isSimpleNumber_ = exports.isNumber_ = exports.isLetter_ = exports.isSimple_ = exports.isSimpleLetters_ = exports.isSimpleDegree_ = exports.isSimpleNegative_ = exports.isSimpleFunction_ = exports.isSimpleExpression = exports.nodeCounter = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst engine_1 = require(\"../common/engine\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst locale_1 = require(\"../l10n/locale\");\nconst transformers_1 = require(\"../l10n/transformers\");\nconst grammar_1 = require(\"../rule_engine/grammar\");\nconst StoreUtil = require(\"../rule_engine/store_util\");\nconst semantic_annotations_1 = require(\"../semantic_tree/semantic_annotations\");\nconst semantic_annotator_1 = require(\"../semantic_tree/semantic_annotator\");\nconst semantic_attr_1 = require(\"../semantic_tree/semantic_attr\");\nfunction nodeCounter(nodes, context) {\n const split = context.split('-');\n const func = StoreUtil.nodeCounter(nodes, split[0] || '');\n const sep = split[1] || '';\n const init = split[2] || '';\n let first = true;\n return function () {\n const result = func();\n if (first) {\n first = false;\n return init + result + sep;\n }\n else {\n return result + sep;\n }\n };\n}\nexports.nodeCounter = nodeCounter;\nfunction isSimpleExpression(node) {\n return (isSimpleNumber_(node) ||\n isSimpleLetters_(node) ||\n isSimpleDegree_(node) ||\n isSimpleNegative_(node) ||\n isSimpleFunction_(node));\n}\nexports.isSimpleExpression = isSimpleExpression;\nfunction isSimpleFunction_(node) {\n return (node.type === \"appl\" &&\n (node.childNodes[0].role === \"prefix function\" ||\n node.childNodes[0].role === \"simple function\") &&\n (isSimple_(node.childNodes[1]) ||\n (node.childNodes[1].type === \"fenced\" &&\n isSimple_(node.childNodes[1].childNodes[0]))));\n}\nexports.isSimpleFunction_ = isSimpleFunction_;\nfunction isSimpleNegative_(node) {\n return (node.type === \"prefixop\" &&\n node.role === \"negative\" &&\n isSimple_(node.childNodes[0]) &&\n node.childNodes[0].type !== \"prefixop\" &&\n node.childNodes[0].type !== \"appl\" &&\n node.childNodes[0].type !== \"punctuated\");\n}\nexports.isSimpleNegative_ = isSimpleNegative_;\nfunction isSimpleDegree_(node) {\n return (node.type === \"punctuated\" &&\n node.role === \"endpunct\" &&\n node.childNodes.length === 2 &&\n node.childNodes[1].role === \"degree\" &&\n (isLetter_(node.childNodes[0]) ||\n isNumber_(node.childNodes[0]) ||\n (node.childNodes[0].type === \"prefixop\" &&\n node.childNodes[0].role === \"negative\" &&\n (isLetter_(node.childNodes[0].childNodes[0]) ||\n isNumber_(node.childNodes[0].childNodes[0])))));\n}\nexports.isSimpleDegree_ = isSimpleDegree_;\nfunction isSimpleLetters_(node) {\n return (isLetter_(node) ||\n (node.type === \"infixop\" &&\n node.role === \"implicit\" &&\n ((node.childNodes.length === 2 &&\n (isLetter_(node.childNodes[0]) ||\n isSimpleNumber_(node.childNodes[0])) &&\n isLetter_(node.childNodes[1])) ||\n (node.childNodes.length === 3 &&\n isSimpleNumber_(node.childNodes[0]) &&\n isLetter_(node.childNodes[1]) &&\n isLetter_(node.childNodes[2])))));\n}\nexports.isSimpleLetters_ = isSimpleLetters_;\nfunction isSimple_(node) {\n return node.hasAnnotation('clearspeak', 'simple');\n}\nexports.isSimple_ = isSimple_;\nfunction isLetter_(node) {\n return (node.type === \"identifier\" &&\n (node.role === \"latinletter\" ||\n node.role === \"greekletter\" ||\n node.role === \"otherletter\" ||\n node.role === \"simple function\"));\n}\nexports.isLetter_ = isLetter_;\nfunction isNumber_(node) {\n return (node.type === \"number\" &&\n (node.role === \"integer\" || node.role === \"float\"));\n}\nexports.isNumber_ = isNumber_;\nfunction isSimpleNumber_(node) {\n return isNumber_(node) || isSimpleFraction_(node);\n}\nexports.isSimpleNumber_ = isSimpleNumber_;\nfunction isSimpleFraction_(node) {\n if (hasPreference('Fraction_Over') || hasPreference('Fraction_FracOver')) {\n return false;\n }\n if (node.type !== \"fraction\" ||\n node.role !== \"vulgar\") {\n return false;\n }\n if (hasPreference('Fraction_Ordinal')) {\n return true;\n }\n const enumerator = parseInt(node.childNodes[0].textContent, 10);\n const denominator = parseInt(node.childNodes[1].textContent, 10);\n return (enumerator > 0 && enumerator < 20 && denominator > 0 && denominator < 11);\n}\nexports.isSimpleFraction_ = isSimpleFraction_;\nfunction hasPreference(pref) {\n return engine_1.default.getInstance().style === pref;\n}\nexports.hasPreference = hasPreference;\n(0, semantic_annotations_1.register)(new semantic_annotator_1.SemanticAnnotator('clearspeak', 'simple', function (node) {\n return isSimpleExpression(node) ? 'simple' : '';\n}));\nfunction simpleNode(node) {\n if (!node.hasAttribute('annotation')) {\n return false;\n }\n const annotation = node.getAttribute('annotation');\n return !!/clearspeak:simple$|clearspeak:simple;/.exec(annotation);\n}\nexports.simpleNode = simpleNode;\nfunction simpleCell_(node) {\n if (simpleNode(node)) {\n return true;\n }\n if (node.tagName !== \"subscript\") {\n return false;\n }\n const children = node.childNodes[0].childNodes;\n const index = children[1];\n return (children[0].tagName === \"identifier\" &&\n (isInteger_(index) ||\n (index.tagName === \"infixop\" &&\n index.hasAttribute('role') &&\n index.getAttribute('role') === \"implicit\" &&\n allIndices_(index))));\n}\nexports.simpleCell_ = simpleCell_;\nfunction isInteger_(node) {\n return (node.tagName === \"number\" &&\n node.hasAttribute('role') &&\n node.getAttribute('role') === \"integer\");\n}\nexports.isInteger_ = isInteger_;\nfunction allIndices_(node) {\n const nodes = XpathUtil.evalXPath('children/*', node);\n return nodes.every((x) => isInteger_(x) || x.tagName === \"identifier\");\n}\nexports.allIndices_ = allIndices_;\nfunction allCellsSimple(node) {\n const xpath = node.tagName === \"matrix\"\n ? 'children/row/children/cell/children/*'\n : 'children/line/children/*';\n const nodes = XpathUtil.evalXPath(xpath, node);\n const result = nodes.every(simpleCell_);\n return result ? [node] : [];\n}\nexports.allCellsSimple = allCellsSimple;\nfunction isSmallVulgarFraction(node) {\n return (0, transformers_1.vulgarFractionSmall)(node, 20, 11) ? [node] : [];\n}\nexports.isSmallVulgarFraction = isSmallVulgarFraction;\nfunction isUnitExpression(node) {\n return (node.type === \"text\" ||\n (node.type === \"punctuated\" &&\n node.role === \"text\" &&\n isNumber_(node.childNodes[0]) &&\n allTextLastContent_(node.childNodes.slice(1))) ||\n (node.type === \"identifier\" &&\n node.role === \"unit\") ||\n (node.type === \"infixop\" &&\n (node.role === \"implicit\" || node.role === \"unit\")));\n}\nexports.isUnitExpression = isUnitExpression;\nfunction allTextLastContent_(nodes) {\n for (let i = 0; i < nodes.length - 1; i++) {\n if (!(nodes[i].type === \"text\" && nodes[i].textContent === '')) {\n return false;\n }\n }\n return nodes[nodes.length - 1].type === \"text\";\n}\nexports.allTextLastContent_ = allTextLastContent_;\n(0, semantic_annotations_1.register)(new semantic_annotator_1.SemanticAnnotator('clearspeak', 'unit', function (node) {\n return isUnitExpression(node) ? 'unit' : '';\n}));\nfunction ordinalExponent(node) {\n const num = parseInt(node.textContent, 10);\n if (isNaN(num)) {\n return node.textContent;\n }\n return num > 10\n ? locale_1.LOCALE.NUMBERS.numericOrdinal(num)\n : locale_1.LOCALE.NUMBERS.wordOrdinal(num);\n}\nexports.ordinalExponent = ordinalExponent;\nexports.NESTING_DEPTH = null;\nfunction nestingDepth(node) {\n let count = 0;\n const fence = node.textContent;\n const index = node.getAttribute('role') === 'open' ? 0 : 1;\n let parent = node.parentNode;\n while (parent) {\n if (parent.tagName === \"fenced\" &&\n parent.childNodes[0].childNodes[index].textContent === fence) {\n count++;\n }\n parent = parent.parentNode;\n }\n exports.NESTING_DEPTH = count > 1 ? locale_1.LOCALE.NUMBERS.wordOrdinal(count) : '';\n return exports.NESTING_DEPTH;\n}\nexports.nestingDepth = nestingDepth;\nfunction matchingFences(node) {\n const sibling = node.previousSibling;\n let left, right;\n if (sibling) {\n left = sibling;\n right = node;\n }\n else {\n left = node;\n right = node.nextSibling;\n }\n if (!right) {\n return [];\n }\n return (0, semantic_attr_1.isMatchingFence)(left.textContent, right.textContent) ? [node] : [];\n}\nexports.matchingFences = matchingFences;\nfunction insertNesting(text, correction) {\n if (!correction || !text) {\n return text;\n }\n const start = text.match(/^(open|close) /);\n if (!start) {\n return correction + ' ' + text;\n }\n return start[0] + correction + ' ' + text.substring(start[0].length);\n}\nexports.insertNesting = insertNesting;\ngrammar_1.Grammar.getInstance().setCorrection('insertNesting', insertNesting);\nfunction fencedArguments(node) {\n const content = DomUtil.toArray(node.parentNode.childNodes);\n const children = XpathUtil.evalXPath('../../children/*', node);\n const index = content.indexOf(node);\n return fencedFactor_(children[index]) || fencedFactor_(children[index + 1])\n ? [node]\n : [];\n}\nexports.fencedArguments = fencedArguments;\nfunction simpleArguments(node) {\n const content = DomUtil.toArray(node.parentNode.childNodes);\n const children = XpathUtil.evalXPath('../../children/*', node);\n const index = content.indexOf(node);\n return simpleFactor_(children[index]) &&\n children[index + 1] &&\n (simpleFactor_(children[index + 1]) ||\n children[index + 1].tagName === \"root\" ||\n children[index + 1].tagName === \"sqrt\" ||\n (children[index + 1].tagName === \"superscript\" &&\n children[index + 1].childNodes[0].childNodes[0] &&\n (children[index + 1].childNodes[0].childNodes[0]\n .tagName === \"number\" ||\n children[index + 1].childNodes[0].childNodes[0]\n .tagName === \"identifier\") &&\n (children[index + 1].childNodes[0].childNodes[1].textContent === '2' ||\n children[index + 1].childNodes[0].childNodes[1].textContent === '3')))\n ? [node]\n : [];\n}\nexports.simpleArguments = simpleArguments;\nfunction simpleFactor_(node) {\n return (!!node &&\n (node.tagName === \"number\" ||\n node.tagName === \"identifier\" ||\n node.tagName === \"function\" ||\n node.tagName === \"appl\" ||\n node.tagName === \"fraction\"));\n}\nexports.simpleFactor_ = simpleFactor_;\nfunction fencedFactor_(node) {\n return (node &&\n (node.tagName === \"fenced\" ||\n (node.hasAttribute('role') &&\n node.getAttribute('role') === \"leftright\") ||\n layoutFactor_(node)));\n}\nexports.fencedFactor_ = fencedFactor_;\nfunction layoutFactor_(node) {\n return (!!node &&\n (node.tagName === \"matrix\" ||\n node.tagName === \"vector\"));\n}\nexports.layoutFactor_ = layoutFactor_;\nfunction wordOrdinal(node) {\n return locale_1.LOCALE.NUMBERS.wordOrdinal(parseInt(node.textContent, 10));\n}\nexports.wordOrdinal = wordOrdinal;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadAjax = exports.loadFileSync = exports.loadFile = exports.parseMaps = exports.retrieveFiles = exports.standardLoader = exports.loadLocale = exports.store = void 0;\nconst BrowserUtil = require(\"../common/browser_util\");\nconst engine_1 = require(\"../common/engine\");\nconst EngineConst = require(\"../common/engine_const\");\nconst FileUtil = require(\"../common/file_util\");\nconst system_external_1 = require(\"../common/system_external\");\nconst dynamic_cstr_1 = require(\"../rule_engine/dynamic_cstr\");\nconst MathCompoundStore = require(\"../rule_engine/math_compound_store\");\nconst speech_rule_engine_1 = require(\"../rule_engine/speech_rule_engine\");\nconst l10n_1 = require(\"../l10n/l10n\");\nconst AlphabetGenerator = require(\"./alphabet_generator\");\nexports.store = MathCompoundStore;\nconst addSymbols = {\n functions: MathCompoundStore.addFunctionRules,\n symbols: MathCompoundStore.addSymbolRules,\n units: MathCompoundStore.addUnitRules,\n si: MathCompoundStore.setSiPrefixes\n};\nlet _init = false;\nfunction loadLocale(locale = engine_1.default.getInstance().locale) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!_init) {\n _loadLocale(dynamic_cstr_1.DynamicCstr.BASE_LOCALE);\n _init = true;\n }\n return engine_1.EnginePromise.promises[dynamic_cstr_1.DynamicCstr.BASE_LOCALE].then(() => __awaiter(this, void 0, void 0, function* () {\n const defLoc = engine_1.default.getInstance().defaultLocale;\n if (defLoc) {\n _loadLocale(defLoc);\n return engine_1.EnginePromise.promises[defLoc].then(() => __awaiter(this, void 0, void 0, function* () {\n _loadLocale(locale);\n return engine_1.EnginePromise.promises[locale];\n }));\n }\n _loadLocale(locale);\n return engine_1.EnginePromise.promises[locale];\n }));\n });\n}\nexports.loadLocale = loadLocale;\nfunction _loadLocale(locale = engine_1.default.getInstance().locale) {\n if (!engine_1.EnginePromise.loaded[locale]) {\n engine_1.EnginePromise.loaded[locale] = [false, false];\n retrieveMaps(locale);\n }\n}\nfunction loadMethod() {\n if (engine_1.default.getInstance().customLoader) {\n return engine_1.default.getInstance().customLoader;\n }\n return standardLoader();\n}\nfunction standardLoader() {\n switch (engine_1.default.getInstance().mode) {\n case EngineConst.Mode.ASYNC:\n return loadFile;\n case EngineConst.Mode.HTTP:\n return loadAjax;\n case EngineConst.Mode.SYNC:\n default:\n return loadFileSync;\n }\n}\nexports.standardLoader = standardLoader;\nfunction retrieveFiles(locale) {\n const loader = loadMethod();\n const promise = new Promise((res) => {\n const inner = loader(locale);\n inner.then((str) => {\n parseMaps(str);\n engine_1.EnginePromise.loaded[locale] = [true, true];\n res(locale);\n }, (_err) => {\n engine_1.EnginePromise.loaded[locale] = [true, false];\n console.error(`Unable to load locale: ${locale}`);\n engine_1.default.getInstance().locale = engine_1.default.getInstance().defaultLocale;\n res(locale);\n });\n });\n engine_1.EnginePromise.promises[locale] = promise;\n}\nexports.retrieveFiles = retrieveFiles;\nfunction parseMaps(json) {\n const js = JSON.parse(json);\n addMaps(js);\n}\nexports.parseMaps = parseMaps;\nfunction addMaps(json, opt_locale) {\n let generate = true;\n for (let i = 0, key; (key = Object.keys(json)[i]); i++) {\n const info = key.split('/');\n if (opt_locale && opt_locale !== info[0]) {\n continue;\n }\n if (info[1] === 'rules') {\n speech_rule_engine_1.SpeechRuleEngine.getInstance().addStore(json[key]);\n }\n else if (info[1] === 'messages') {\n (0, l10n_1.completeLocale)(json[key]);\n }\n else {\n if (generate) {\n AlphabetGenerator.generate(info[0]);\n generate = false;\n }\n json[key].forEach(addSymbols[info[1]]);\n }\n }\n}\nfunction retrieveMaps(locale) {\n if (engine_1.default.getInstance().isIE &&\n engine_1.default.getInstance().mode === EngineConst.Mode.HTTP) {\n getJsonIE_(locale);\n return;\n }\n retrieveFiles(locale);\n}\nfunction getJsonIE_(locale, opt_count) {\n let count = opt_count || 1;\n if (!BrowserUtil.mapsForIE) {\n if (count <= 5) {\n setTimeout((() => getJsonIE_(locale, count++)).bind(this), 300);\n }\n return;\n }\n addMaps(BrowserUtil.mapsForIE, locale);\n}\nfunction loadFile(locale) {\n const file = FileUtil.localePath(locale);\n return new Promise((res, rej) => {\n system_external_1.default.fs.readFile(file, 'utf8', (err, json) => {\n if (err) {\n return rej(err);\n }\n res(json);\n });\n });\n}\nexports.loadFile = loadFile;\nfunction loadFileSync(locale) {\n const file = FileUtil.localePath(locale);\n return new Promise((res, rej) => {\n let str = '{}';\n try {\n str = system_external_1.default.fs.readFileSync(file, 'utf8');\n }\n catch (err) {\n return rej(err);\n }\n res(str);\n });\n}\nexports.loadFileSync = loadFileSync;\nfunction loadAjax(locale) {\n const file = FileUtil.localePath(locale);\n const httpRequest = new XMLHttpRequest();\n return new Promise((res, rej) => {\n httpRequest.onreadystatechange = function () {\n if (httpRequest.readyState === 4) {\n const status = httpRequest.status;\n if (status === 0 || (status >= 200 && status < 400)) {\n res(httpRequest.responseText);\n }\n else {\n rej(status);\n }\n }\n };\n httpRequest.open('GET', file, true);\n httpRequest.send();\n });\n}\nexports.loadAjax = loadAjax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.leftSubscriptBrief = exports.leftSuperscriptBrief = exports.leftSubscriptVerbose = exports.leftSuperscriptVerbose = exports.baselineBrief = exports.baselineVerbose = void 0;\nconst MathspeakUtil = require(\"./mathspeak_util\");\nfunction baselineVerbose(node) {\n const baseline = MathspeakUtil.baselineVerbose(node);\n return baseline.replace(/-$/, '');\n}\nexports.baselineVerbose = baselineVerbose;\nfunction baselineBrief(node) {\n const baseline = MathspeakUtil.baselineBrief(node);\n return baseline.replace(/-$/, '');\n}\nexports.baselineBrief = baselineBrief;\nfunction leftSuperscriptVerbose(node) {\n const leftIndex = MathspeakUtil.superscriptVerbose(node);\n return leftIndex.replace(/^exposant/, 'exposant gauche');\n}\nexports.leftSuperscriptVerbose = leftSuperscriptVerbose;\nfunction leftSubscriptVerbose(node) {\n const leftIndex = MathspeakUtil.subscriptVerbose(node);\n return leftIndex.replace(/^indice/, 'indice gauche');\n}\nexports.leftSubscriptVerbose = leftSubscriptVerbose;\nfunction leftSuperscriptBrief(node) {\n const leftIndex = MathspeakUtil.superscriptBrief(node);\n return leftIndex.replace(/^sup/, 'sup gauche');\n}\nexports.leftSuperscriptBrief = leftSuperscriptBrief;\nfunction leftSubscriptBrief(node) {\n const leftIndex = MathspeakUtil.subscriptBrief(node);\n return leftIndex.replace(/^sub/, 'sub gauche');\n}\nexports.leftSubscriptBrief = leftSubscriptBrief;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MathspeakRules = void 0;\nconst dynamic_cstr_1 = require(\"../rule_engine/dynamic_cstr\");\nconst StoreUtil = require(\"../rule_engine/store_util\");\nconst MathspeakFrenchUtil = require(\"./mathspeak_french_util\");\nconst MathspeakUtil = require(\"./mathspeak_util\");\nconst NumbersUtil = require(\"./numbers_util\");\nconst SpeechRules = require(\"./speech_rules\");\nconst UnitUtil = require(\"./unit_util\");\nfunction MathspeakRules() {\n SpeechRules.addStore(dynamic_cstr_1.DynamicCstr.BASE_LOCALE + '.speech.mathspeak', '', {\n CQFspaceoutNumber: MathspeakUtil.spaceoutNumber,\n CQFspaceoutIdentifier: MathspeakUtil.spaceoutIdentifier,\n CSFspaceoutText: MathspeakUtil.spaceoutText,\n CSFopenFracVerbose: MathspeakUtil.openingFractionVerbose,\n CSFcloseFracVerbose: MathspeakUtil.closingFractionVerbose,\n CSFoverFracVerbose: MathspeakUtil.overFractionVerbose,\n CSFopenFracBrief: MathspeakUtil.openingFractionBrief,\n CSFcloseFracBrief: MathspeakUtil.closingFractionBrief,\n CSFopenFracSbrief: MathspeakUtil.openingFractionSbrief,\n CSFcloseFracSbrief: MathspeakUtil.closingFractionSbrief,\n CSFoverFracSbrief: MathspeakUtil.overFractionSbrief,\n CSFvulgarFraction: NumbersUtil.vulgarFraction,\n CQFvulgarFractionSmall: MathspeakUtil.isSmallVulgarFraction,\n CSFopenRadicalVerbose: MathspeakUtil.openingRadicalVerbose,\n CSFcloseRadicalVerbose: MathspeakUtil.closingRadicalVerbose,\n CSFindexRadicalVerbose: MathspeakUtil.indexRadicalVerbose,\n CSFopenRadicalBrief: MathspeakUtil.openingRadicalBrief,\n CSFcloseRadicalBrief: MathspeakUtil.closingRadicalBrief,\n CSFindexRadicalBrief: MathspeakUtil.indexRadicalBrief,\n CSFopenRadicalSbrief: MathspeakUtil.openingRadicalSbrief,\n CSFindexRadicalSbrief: MathspeakUtil.indexRadicalSbrief,\n CQFisSmallRoot: MathspeakUtil.smallRoot,\n CSFsuperscriptVerbose: MathspeakUtil.superscriptVerbose,\n CSFsuperscriptBrief: MathspeakUtil.superscriptBrief,\n CSFsubscriptVerbose: MathspeakUtil.subscriptVerbose,\n CSFsubscriptBrief: MathspeakUtil.subscriptBrief,\n CSFbaselineVerbose: MathspeakUtil.baselineVerbose,\n CSFbaselineBrief: MathspeakUtil.baselineBrief,\n CSFleftsuperscriptVerbose: MathspeakUtil.superscriptVerbose,\n CSFleftsubscriptVerbose: MathspeakUtil.subscriptVerbose,\n CSFrightsuperscriptVerbose: MathspeakUtil.superscriptVerbose,\n CSFrightsubscriptVerbose: MathspeakUtil.subscriptVerbose,\n CSFleftsuperscriptBrief: MathspeakUtil.superscriptBrief,\n CSFleftsubscriptBrief: MathspeakUtil.subscriptBrief,\n CSFrightsuperscriptBrief: MathspeakUtil.superscriptBrief,\n CSFrightsubscriptBrief: MathspeakUtil.subscriptBrief,\n CSFunderscript: MathspeakUtil.nestedUnderscript,\n CSFoverscript: MathspeakUtil.nestedOverscript,\n CSFendscripts: MathspeakUtil.endscripts,\n CTFordinalCounter: NumbersUtil.ordinalCounter,\n CTFwordCounter: NumbersUtil.wordCounter,\n CTFcontentIterator: StoreUtil.contentIterator,\n CQFdetIsSimple: MathspeakUtil.determinantIsSimple,\n CSFRemoveParens: MathspeakUtil.removeParens,\n CQFresetNesting: MathspeakUtil.resetNestingDepth,\n CGFbaselineConstraint: MathspeakUtil.generateBaselineConstraint,\n CGFtensorRules: MathspeakUtil.generateTensorRules\n });\n SpeechRules.addStore('es.speech.mathspeak', dynamic_cstr_1.DynamicCstr.BASE_LOCALE + '.speech.mathspeak', {\n CTFunitMultipliers: UnitUtil.unitMultipliers,\n CQFoneLeft: UnitUtil.oneLeft\n });\n SpeechRules.addStore('fr.speech.mathspeak', dynamic_cstr_1.DynamicCstr.BASE_LOCALE + '.speech.mathspeak', {\n CSFbaselineVerbose: MathspeakFrenchUtil.baselineVerbose,\n CSFbaselineBrief: MathspeakFrenchUtil.baselineBrief,\n CSFleftsuperscriptVerbose: MathspeakFrenchUtil.leftSuperscriptVerbose,\n CSFleftsubscriptVerbose: MathspeakFrenchUtil.leftSubscriptVerbose,\n CSFleftsuperscriptBrief: MathspeakFrenchUtil.leftSuperscriptBrief,\n CSFleftsubscriptBrief: MathspeakFrenchUtil.leftSubscriptBrief\n });\n}\nexports.MathspeakRules = MathspeakRules;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.smallRoot = exports.generateTensorRules = exports.removeParens = exports.generateBaselineConstraint = exports.determinantIsSimple = exports.nestedOverscript = exports.endscripts = exports.overscoreNestingDepth = exports.nestedUnderscript = exports.underscoreNestingDepth = exports.indexRadicalSbrief = exports.openingRadicalSbrief = exports.indexRadicalBrief = exports.closingRadicalBrief = exports.openingRadicalBrief = exports.indexRadicalVerbose = exports.closingRadicalVerbose = exports.openingRadicalVerbose = exports.getRootIndex = exports.nestedRadical = exports.radicalNestingDepth = exports.baselineBrief = exports.baselineVerbose = exports.superscriptBrief = exports.superscriptVerbose = exports.subscriptBrief = exports.subscriptVerbose = exports.nestedSubSuper = exports.isSmallVulgarFraction = exports.overFractionSbrief = exports.closingFractionSbrief = exports.openingFractionSbrief = exports.closingFractionBrief = exports.openingFractionBrief = exports.overFractionVerbose = exports.closingFractionVerbose = exports.openingFractionVerbose = exports.nestedFraction = exports.fractionNestingDepth = exports.computeNestingDepth_ = exports.containsAttr = exports.getNestingDepth = exports.resetNestingDepth = exports.nestingBarriers = exports.spaceoutIdentifier = exports.spaceoutNumber = exports.spaceoutNodes = exports.spaceoutText = void 0;\nconst BaseUtil = require(\"../common/base_util\");\nconst DomUtil = require(\"../common/dom_util\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst locale_1 = require(\"../l10n/locale\");\nconst semantic_processor_1 = require(\"../semantic_tree/semantic_processor\");\nlet nestingDepth = {};\nfunction spaceoutText(node) {\n return Array.from(node.textContent).join(' ');\n}\nexports.spaceoutText = spaceoutText;\nfunction spaceoutNodes(node, correction) {\n const content = Array.from(node.textContent);\n const result = [];\n const processor = semantic_processor_1.default.getInstance();\n const doc = node.ownerDocument;\n for (let i = 0, chr; (chr = content[i]); i++) {\n const leaf = processor\n .getNodeFactory()\n .makeLeafNode(chr, \"unknown\");\n const sn = processor.identifierNode(leaf, \"unknown\", '');\n correction(sn);\n result.push(sn.xml(doc));\n }\n return result;\n}\nexports.spaceoutNodes = spaceoutNodes;\nfunction spaceoutNumber(node) {\n return spaceoutNodes(node, function (sn) {\n if (!sn.textContent.match(/\\W/)) {\n sn.type = \"number\";\n }\n });\n}\nexports.spaceoutNumber = spaceoutNumber;\nfunction spaceoutIdentifier(node) {\n return spaceoutNodes(node, function (sn) {\n sn.font = \"unknown\";\n sn.type = \"identifier\";\n });\n}\nexports.spaceoutIdentifier = spaceoutIdentifier;\nexports.nestingBarriers = [\n \"cases\",\n \"cell\",\n \"integral\",\n \"line\",\n \"matrix\",\n \"multiline\",\n \"overscore\",\n \"root\",\n \"row\",\n \"sqrt\",\n \"subscript\",\n \"superscript\",\n \"table\",\n \"underscore\",\n \"vector\"\n];\nfunction resetNestingDepth(node) {\n nestingDepth = {};\n return [node];\n}\nexports.resetNestingDepth = resetNestingDepth;\nfunction getNestingDepth(type, node, tags, opt_barrierTags, opt_barrierAttrs, opt_func) {\n opt_barrierTags = opt_barrierTags || exports.nestingBarriers;\n opt_barrierAttrs = opt_barrierAttrs || {};\n opt_func =\n opt_func ||\n function (_node) {\n return false;\n };\n const xmlText = DomUtil.serializeXml(node);\n if (!nestingDepth[type]) {\n nestingDepth[type] = {};\n }\n if (nestingDepth[type][xmlText]) {\n return nestingDepth[type][xmlText];\n }\n if (opt_func(node) || tags.indexOf(node.tagName) < 0) {\n return 0;\n }\n const depth = computeNestingDepth_(node, tags, BaseUtil.setdifference(opt_barrierTags, tags), opt_barrierAttrs, opt_func, 0);\n nestingDepth[type][xmlText] = depth;\n return depth;\n}\nexports.getNestingDepth = getNestingDepth;\nfunction containsAttr(node, attrs) {\n if (!node.attributes) {\n return false;\n }\n const attributes = DomUtil.toArray(node.attributes);\n for (let i = 0, attr; (attr = attributes[i]); i++) {\n if (attrs[attr.nodeName] === attr.nodeValue) {\n return true;\n }\n }\n return false;\n}\nexports.containsAttr = containsAttr;\nfunction computeNestingDepth_(node, tags, barriers, attrs, func, depth) {\n if (func(node) ||\n barriers.indexOf(node.tagName) > -1 ||\n containsAttr(node, attrs)) {\n return depth;\n }\n if (tags.indexOf(node.tagName) > -1) {\n depth++;\n }\n if (!node.childNodes || node.childNodes.length === 0) {\n return depth;\n }\n const children = DomUtil.toArray(node.childNodes);\n return Math.max.apply(null, children.map(function (subNode) {\n return computeNestingDepth_(subNode, tags, barriers, attrs, func, depth);\n }));\n}\nexports.computeNestingDepth_ = computeNestingDepth_;\nfunction fractionNestingDepth(node) {\n return getNestingDepth('fraction', node, ['fraction'], exports.nestingBarriers, {}, locale_1.LOCALE.FUNCTIONS.fracNestDepth);\n}\nexports.fractionNestingDepth = fractionNestingDepth;\nfunction nestedFraction(node, expr, opt_end) {\n const depth = fractionNestingDepth(node);\n const annotation = Array(depth).fill(expr);\n if (opt_end) {\n annotation.push(opt_end);\n }\n return annotation.join(locale_1.LOCALE.MESSAGES.regexp.JOINER_FRAC);\n}\nexports.nestedFraction = nestedFraction;\nfunction openingFractionVerbose(node) {\n return nestedFraction(node, locale_1.LOCALE.MESSAGES.MS.START, locale_1.LOCALE.MESSAGES.MS.FRAC_V);\n}\nexports.openingFractionVerbose = openingFractionVerbose;\nfunction closingFractionVerbose(node) {\n return nestedFraction(node, locale_1.LOCALE.MESSAGES.MS.END, locale_1.LOCALE.MESSAGES.MS.FRAC_V);\n}\nexports.closingFractionVerbose = closingFractionVerbose;\nfunction overFractionVerbose(node) {\n return nestedFraction(node, locale_1.LOCALE.MESSAGES.MS.FRAC_OVER);\n}\nexports.overFractionVerbose = overFractionVerbose;\nfunction openingFractionBrief(node) {\n return nestedFraction(node, locale_1.LOCALE.MESSAGES.MS.START, locale_1.LOCALE.MESSAGES.MS.FRAC_B);\n}\nexports.openingFractionBrief = openingFractionBrief;\nfunction closingFractionBrief(node) {\n return nestedFraction(node, locale_1.LOCALE.MESSAGES.MS.END, locale_1.LOCALE.MESSAGES.MS.FRAC_B);\n}\nexports.closingFractionBrief = closingFractionBrief;\nfunction openingFractionSbrief(node) {\n const depth = fractionNestingDepth(node);\n if (depth === 1) {\n return locale_1.LOCALE.MESSAGES.MS.FRAC_S;\n }\n return locale_1.LOCALE.FUNCTIONS.combineNestedFraction(locale_1.LOCALE.MESSAGES.MS.NEST_FRAC, locale_1.LOCALE.FUNCTIONS.radicalNestDepth(depth - 1), locale_1.LOCALE.MESSAGES.MS.FRAC_S);\n}\nexports.openingFractionSbrief = openingFractionSbrief;\nfunction closingFractionSbrief(node) {\n const depth = fractionNestingDepth(node);\n if (depth === 1) {\n return locale_1.LOCALE.MESSAGES.MS.ENDFRAC;\n }\n return locale_1.LOCALE.FUNCTIONS.combineNestedFraction(locale_1.LOCALE.MESSAGES.MS.NEST_FRAC, locale_1.LOCALE.FUNCTIONS.radicalNestDepth(depth - 1), locale_1.LOCALE.MESSAGES.MS.ENDFRAC);\n}\nexports.closingFractionSbrief = closingFractionSbrief;\nfunction overFractionSbrief(node) {\n const depth = fractionNestingDepth(node);\n if (depth === 1) {\n return locale_1.LOCALE.MESSAGES.MS.FRAC_OVER;\n }\n return locale_1.LOCALE.FUNCTIONS.combineNestedFraction(locale_1.LOCALE.MESSAGES.MS.NEST_FRAC, locale_1.LOCALE.FUNCTIONS.radicalNestDepth(depth - 1), locale_1.LOCALE.MESSAGES.MS.FRAC_OVER);\n}\nexports.overFractionSbrief = overFractionSbrief;\nfunction isSmallVulgarFraction(node) {\n return locale_1.LOCALE.FUNCTIONS.fracNestDepth(node) ? [node] : [];\n}\nexports.isSmallVulgarFraction = isSmallVulgarFraction;\nfunction nestedSubSuper(node, init, replace) {\n while (node.parentNode) {\n const children = node.parentNode;\n const parent = children.parentNode;\n if (!parent) {\n break;\n }\n const nodeRole = node.getAttribute && node.getAttribute('role');\n if ((parent.tagName === \"subscript\" &&\n node === children.childNodes[1]) ||\n (parent.tagName === \"tensor\" &&\n nodeRole &&\n (nodeRole === \"leftsub\" ||\n nodeRole === \"rightsub\"))) {\n init = replace.sub + locale_1.LOCALE.MESSAGES.regexp.JOINER_SUBSUPER + init;\n }\n if ((parent.tagName === \"superscript\" &&\n node === children.childNodes[1]) ||\n (parent.tagName === \"tensor\" &&\n nodeRole &&\n (nodeRole === \"leftsuper\" ||\n nodeRole === \"rightsuper\"))) {\n init = replace.sup + locale_1.LOCALE.MESSAGES.regexp.JOINER_SUBSUPER + init;\n }\n node = parent;\n }\n return init.trim();\n}\nexports.nestedSubSuper = nestedSubSuper;\nfunction subscriptVerbose(node) {\n return nestedSubSuper(node, locale_1.LOCALE.MESSAGES.MS.SUBSCRIPT, {\n sup: locale_1.LOCALE.MESSAGES.MS.SUPER,\n sub: locale_1.LOCALE.MESSAGES.MS.SUB\n });\n}\nexports.subscriptVerbose = subscriptVerbose;\nfunction subscriptBrief(node) {\n return nestedSubSuper(node, locale_1.LOCALE.MESSAGES.MS.SUB, {\n sup: locale_1.LOCALE.MESSAGES.MS.SUP,\n sub: locale_1.LOCALE.MESSAGES.MS.SUB\n });\n}\nexports.subscriptBrief = subscriptBrief;\nfunction superscriptVerbose(node) {\n return nestedSubSuper(node, locale_1.LOCALE.MESSAGES.MS.SUPERSCRIPT, {\n sup: locale_1.LOCALE.MESSAGES.MS.SUPER,\n sub: locale_1.LOCALE.MESSAGES.MS.SUB\n });\n}\nexports.superscriptVerbose = superscriptVerbose;\nfunction superscriptBrief(node) {\n return nestedSubSuper(node, locale_1.LOCALE.MESSAGES.MS.SUP, {\n sup: locale_1.LOCALE.MESSAGES.MS.SUP,\n sub: locale_1.LOCALE.MESSAGES.MS.SUB\n });\n}\nexports.superscriptBrief = superscriptBrief;\nfunction baselineVerbose(node) {\n const baseline = nestedSubSuper(node, '', {\n sup: locale_1.LOCALE.MESSAGES.MS.SUPER,\n sub: locale_1.LOCALE.MESSAGES.MS.SUB\n });\n if (!baseline) {\n return locale_1.LOCALE.MESSAGES.MS.BASELINE;\n }\n return baseline\n .replace(new RegExp(locale_1.LOCALE.MESSAGES.MS.SUB + '$'), locale_1.LOCALE.MESSAGES.MS.SUBSCRIPT)\n .replace(new RegExp(locale_1.LOCALE.MESSAGES.MS.SUPER + '$'), locale_1.LOCALE.MESSAGES.MS.SUPERSCRIPT);\n}\nexports.baselineVerbose = baselineVerbose;\nfunction baselineBrief(node) {\n const baseline = nestedSubSuper(node, '', {\n sup: locale_1.LOCALE.MESSAGES.MS.SUP,\n sub: locale_1.LOCALE.MESSAGES.MS.SUB\n });\n return baseline || locale_1.LOCALE.MESSAGES.MS.BASE;\n}\nexports.baselineBrief = baselineBrief;\nfunction radicalNestingDepth(node) {\n return getNestingDepth('radical', node, ['sqrt', 'root'], exports.nestingBarriers, {});\n}\nexports.radicalNestingDepth = radicalNestingDepth;\nfunction nestedRadical(node, prefix, postfix) {\n const depth = radicalNestingDepth(node);\n const index = getRootIndex(node);\n postfix = index ? locale_1.LOCALE.FUNCTIONS.combineRootIndex(postfix, index) : postfix;\n if (depth === 1) {\n return postfix;\n }\n return locale_1.LOCALE.FUNCTIONS.combineNestedRadical(prefix, locale_1.LOCALE.FUNCTIONS.radicalNestDepth(depth - 1), postfix);\n}\nexports.nestedRadical = nestedRadical;\nfunction getRootIndex(node) {\n const content = node.tagName === 'sqrt'\n ? '2'\n :\n XpathUtil.evalXPath('children/*[1]', node)[0].textContent.trim();\n return locale_1.LOCALE.MESSAGES.MSroots[content] || '';\n}\nexports.getRootIndex = getRootIndex;\nfunction openingRadicalVerbose(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.NESTED, locale_1.LOCALE.MESSAGES.MS.STARTROOT);\n}\nexports.openingRadicalVerbose = openingRadicalVerbose;\nfunction closingRadicalVerbose(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.NESTED, locale_1.LOCALE.MESSAGES.MS.ENDROOT);\n}\nexports.closingRadicalVerbose = closingRadicalVerbose;\nfunction indexRadicalVerbose(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.NESTED, locale_1.LOCALE.MESSAGES.MS.ROOTINDEX);\n}\nexports.indexRadicalVerbose = indexRadicalVerbose;\nfunction openingRadicalBrief(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.NEST_ROOT, locale_1.LOCALE.MESSAGES.MS.STARTROOT);\n}\nexports.openingRadicalBrief = openingRadicalBrief;\nfunction closingRadicalBrief(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.NEST_ROOT, locale_1.LOCALE.MESSAGES.MS.ENDROOT);\n}\nexports.closingRadicalBrief = closingRadicalBrief;\nfunction indexRadicalBrief(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.NEST_ROOT, locale_1.LOCALE.MESSAGES.MS.ROOTINDEX);\n}\nexports.indexRadicalBrief = indexRadicalBrief;\nfunction openingRadicalSbrief(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.NEST_ROOT, locale_1.LOCALE.MESSAGES.MS.ROOT);\n}\nexports.openingRadicalSbrief = openingRadicalSbrief;\nfunction indexRadicalSbrief(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.NEST_ROOT, locale_1.LOCALE.MESSAGES.MS.INDEX);\n}\nexports.indexRadicalSbrief = indexRadicalSbrief;\nfunction underscoreNestingDepth(node) {\n return getNestingDepth('underscore', node, ['underscore'], exports.nestingBarriers, {}, function (node) {\n return (node.tagName &&\n node.tagName === \"underscore\" &&\n node.childNodes[0].childNodes[1].getAttribute('role') ===\n \"underaccent\");\n });\n}\nexports.underscoreNestingDepth = underscoreNestingDepth;\nfunction nestedUnderscript(node) {\n const depth = underscoreNestingDepth(node);\n return (Array(depth).join(locale_1.LOCALE.MESSAGES.MS.UNDER) + locale_1.LOCALE.MESSAGES.MS.UNDERSCRIPT);\n}\nexports.nestedUnderscript = nestedUnderscript;\nfunction overscoreNestingDepth(node) {\n return getNestingDepth('overscore', node, ['overscore'], exports.nestingBarriers, {}, function (node) {\n return (node.tagName &&\n node.tagName === \"overscore\" &&\n node.childNodes[0].childNodes[1].getAttribute('role') ===\n \"overaccent\");\n });\n}\nexports.overscoreNestingDepth = overscoreNestingDepth;\nfunction endscripts(_node) {\n return locale_1.LOCALE.MESSAGES.MS.ENDSCRIPTS;\n}\nexports.endscripts = endscripts;\nfunction nestedOverscript(node) {\n const depth = overscoreNestingDepth(node);\n return (Array(depth).join(locale_1.LOCALE.MESSAGES.MS.OVER) + locale_1.LOCALE.MESSAGES.MS.OVERSCRIPT);\n}\nexports.nestedOverscript = nestedOverscript;\nfunction determinantIsSimple(node) {\n if (node.tagName !== \"matrix\" ||\n node.getAttribute('role') !== \"determinant\") {\n return [];\n }\n const cells = XpathUtil.evalXPath('children/row/children/cell/children/*', node);\n for (let i = 0, cell; (cell = cells[i]); i++) {\n if (cell.tagName === \"number\") {\n continue;\n }\n if (cell.tagName === \"identifier\") {\n const role = cell.getAttribute('role');\n if (role === \"latinletter\" ||\n role === \"greekletter\" ||\n role === \"otherletter\") {\n continue;\n }\n }\n return [];\n }\n return [node];\n}\nexports.determinantIsSimple = determinantIsSimple;\nfunction generateBaselineConstraint() {\n const ignoreElems = ['subscript', 'superscript', 'tensor'];\n const mainElems = ['relseq', 'multrel'];\n const breakElems = ['fraction', 'punctuation', 'fenced', 'sqrt', 'root'];\n const ancestrify = (elemList) => elemList.map((elem) => 'ancestor::' + elem);\n const notify = (elem) => 'not(' + elem + ')';\n const prefix = 'ancestor::*/following-sibling::*';\n const middle = notify(ancestrify(ignoreElems).join(' or '));\n const mainList = ancestrify(mainElems);\n const breakList = ancestrify(breakElems);\n let breakCstrs = [];\n for (let i = 0, brk; (brk = breakList[i]); i++) {\n breakCstrs = breakCstrs.concat(mainList.map(function (elem) {\n return brk + '/' + elem;\n }));\n }\n const postfix = notify(breakCstrs.join(' | '));\n return [[prefix, middle, postfix].join(' and ')];\n}\nexports.generateBaselineConstraint = generateBaselineConstraint;\nfunction removeParens(node) {\n if (!node.childNodes.length ||\n !node.childNodes[0].childNodes.length ||\n !node.childNodes[0].childNodes[0].childNodes.length) {\n return '';\n }\n const content = node.childNodes[0].childNodes[0].childNodes[0].textContent;\n return content.match(/^\\(.+\\)$/) ? content.slice(1, -1) : content;\n}\nexports.removeParens = removeParens;\nconst componentString = new Map([\n [3, 'CSFleftsuperscript'],\n [4, 'CSFleftsubscript'],\n [2, 'CSFbaseline'],\n [1, 'CSFrightsubscript'],\n [0, 'CSFrightsuperscript']\n]);\nconst childNumber = new Map([\n [4, 2],\n [3, 3],\n [2, 1],\n [1, 4],\n [0, 5]\n]);\nfunction generateTensorRuleStrings_(constellation) {\n const constraints = [];\n let verbString = '';\n let briefString = '';\n let constel = parseInt(constellation, 2);\n for (let i = 0; i < 5; i++) {\n const childString = 'children/*[' + childNumber.get(i) + ']';\n if (constel & 1) {\n const compString = componentString.get(i % 5);\n verbString =\n '[t] ' + compString + 'Verbose; [n] ' + childString + ';' + verbString;\n briefString =\n '[t] ' + compString + 'Brief; [n] ' + childString + ';' + briefString;\n }\n else {\n constraints.unshift('name(' + childString + ')=\"empty\"');\n }\n constel >>= 1;\n }\n return [constraints, verbString, briefString];\n}\nfunction generateTensorRules(store, brief = true) {\n const constellations = [\n '11111',\n '11110',\n '11101',\n '11100',\n '10111',\n '10110',\n '10101',\n '10100',\n '01111',\n '01110',\n '01101',\n '01100'\n ];\n for (let i = 0, constel; (constel = constellations[i]); i++) {\n let name = 'tensor' + constel;\n let [components, verbStr, briefStr] = generateTensorRuleStrings_(constel);\n store.defineRule(name, 'default', verbStr, 'self::tensor', ...components);\n if (brief) {\n store.defineRule(name, 'brief', briefStr, 'self::tensor', ...components);\n store.defineRule(name, 'sbrief', briefStr, 'self::tensor', ...components);\n }\n const baselineStr = componentString.get(2);\n verbStr += '; [t]' + baselineStr + 'Verbose';\n briefStr += '; [t]' + baselineStr + 'Brief';\n name = name + '-baseline';\n const cstr = '((.//*[not(*)])[last()]/@id)!=(((.//ancestor::fraction|' +\n 'ancestor::root|ancestor::sqrt|ancestor::cell|ancestor::line|' +\n 'ancestor::stree)[1]//*[not(*)])[last()]/@id)';\n store.defineRule(name, 'default', verbStr, 'self::tensor', cstr, ...components);\n if (brief) {\n store.defineRule(name, 'brief', briefStr, 'self::tensor', cstr, ...components);\n store.defineRule(name, 'sbrief', briefStr, 'self::tensor', cstr, ...components);\n }\n }\n}\nexports.generateTensorRules = generateTensorRules;\nfunction smallRoot(node) {\n let max = Object.keys(locale_1.LOCALE.MESSAGES.MSroots).length;\n if (!max) {\n return [];\n }\n else {\n max++;\n }\n if (!node.childNodes ||\n node.childNodes.length === 0 ||\n !node.childNodes[0].childNodes) {\n return [];\n }\n const index = node.childNodes[0].childNodes[0].textContent;\n if (!/^\\d+$/.test(index)) {\n return [];\n }\n const num = parseInt(index, 10);\n return num > 1 && num <= max ? [node] : [];\n}\nexports.smallRoot = smallRoot;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.implicitIterator = exports.relationIterator = exports.propagateNumber = exports.checkParent_ = exports.NUMBER_INHIBITORS_ = exports.NUMBER_PROPAGATORS_ = exports.enlargeFence = exports.indexRadical = exports.closingRadical = exports.openingRadical = exports.radicalNestingDepth = exports.nestedRadical = exports.hyperFractionBoundary = exports.overBevelledFraction = exports.overFraction = exports.closingFraction = exports.openingFraction = void 0;\nconst auditory_description_1 = require(\"../audio/auditory_description\");\nconst DomUtil = require(\"../common/dom_util\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst grammar_1 = require(\"../rule_engine/grammar\");\nconst engine_1 = require(\"../common/engine\");\nconst semantic_annotations_1 = require(\"../semantic_tree/semantic_annotations\");\nconst semantic_annotator_1 = require(\"../semantic_tree/semantic_annotator\");\nconst locale_1 = require(\"../l10n/locale\");\nconst MathspeakUtil = require(\"./mathspeak_util\");\nfunction openingFraction(node) {\n const depth = MathspeakUtil.fractionNestingDepth(node);\n return (new Array(depth).join(locale_1.LOCALE.MESSAGES.MS.FRACTION_REPEAT) +\n locale_1.LOCALE.MESSAGES.MS.FRACTION_START);\n}\nexports.openingFraction = openingFraction;\nfunction closingFraction(node) {\n const depth = MathspeakUtil.fractionNestingDepth(node);\n return (new Array(depth).join(locale_1.LOCALE.MESSAGES.MS.FRACTION_REPEAT) +\n locale_1.LOCALE.MESSAGES.MS.FRACTION_END);\n}\nexports.closingFraction = closingFraction;\nfunction overFraction(node) {\n const depth = MathspeakUtil.fractionNestingDepth(node);\n return (new Array(depth).join(locale_1.LOCALE.MESSAGES.MS.FRACTION_REPEAT) +\n locale_1.LOCALE.MESSAGES.MS.FRACTION_OVER);\n}\nexports.overFraction = overFraction;\nfunction overBevelledFraction(node) {\n const depth = MathspeakUtil.fractionNestingDepth(node);\n return (new Array(depth).join(locale_1.LOCALE.MESSAGES.MS.FRACTION_REPEAT) +\n '⠸' +\n locale_1.LOCALE.MESSAGES.MS.FRACTION_OVER);\n}\nexports.overBevelledFraction = overBevelledFraction;\nfunction hyperFractionBoundary(node) {\n return locale_1.LOCALE.MESSAGES.regexp.HYPER ===\n MathspeakUtil.fractionNestingDepth(node).toString() ? [node] : [];\n}\nexports.hyperFractionBoundary = hyperFractionBoundary;\nfunction nestedRadical(node, postfix) {\n const depth = radicalNestingDepth(node);\n if (depth === 1) {\n return postfix;\n }\n return new Array(depth).join(locale_1.LOCALE.MESSAGES.MS.NESTED) + postfix;\n}\nexports.nestedRadical = nestedRadical;\nfunction radicalNestingDepth(node, opt_depth) {\n const depth = opt_depth || 0;\n if (!node.parentNode) {\n return depth;\n }\n return radicalNestingDepth(node.parentNode, node.tagName === 'root' || node.tagName === 'sqrt' ? depth + 1 : depth);\n}\nexports.radicalNestingDepth = radicalNestingDepth;\nfunction openingRadical(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.STARTROOT);\n}\nexports.openingRadical = openingRadical;\nfunction closingRadical(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.ENDROOT);\n}\nexports.closingRadical = closingRadical;\nfunction indexRadical(node) {\n return nestedRadical(node, locale_1.LOCALE.MESSAGES.MS.ROOTINDEX);\n}\nexports.indexRadical = indexRadical;\nfunction enlargeFence(text) {\n const start = '⠠';\n if (text.length === 1) {\n return start + text;\n }\n const neut = '⠳';\n const split = text.split('');\n if (split.every(function (x) {\n return x === neut;\n })) {\n return start + split.join(start);\n }\n return text.slice(0, -1) + start + text.slice(-1);\n}\nexports.enlargeFence = enlargeFence;\ngrammar_1.Grammar.getInstance().setCorrection('enlargeFence', enlargeFence);\nexports.NUMBER_PROPAGATORS_ = [\n \"multirel\",\n \"relseq\",\n \"appl\",\n \"row\",\n \"line\"\n];\nexports.NUMBER_INHIBITORS_ = [\n \"subscript\",\n \"superscript\",\n \"overscore\",\n \"underscore\"\n];\nfunction checkParent_(node, info) {\n const parent = node.parent;\n if (!parent) {\n return false;\n }\n const type = parent.type;\n if (exports.NUMBER_PROPAGATORS_.indexOf(type) !== -1 ||\n (type === \"prefixop\" &&\n parent.role === \"negative\" &&\n !info.script) ||\n (type === \"prefixop\" &&\n parent.role === \"geometry\")) {\n return true;\n }\n if (type === \"punctuated\") {\n if (!info.enclosed || parent.role === \"text\") {\n return true;\n }\n }\n return false;\n}\nexports.checkParent_ = checkParent_;\nfunction propagateNumber(node, info) {\n if (!node.childNodes.length) {\n if (checkParent_(node, info)) {\n info.number = true;\n info.script = false;\n info.enclosed = false;\n }\n return [\n info['number'] ? 'number' : '',\n { number: false, enclosed: info.enclosed, script: info.script }\n ];\n }\n if (exports.NUMBER_INHIBITORS_.indexOf(node.type) !== -1) {\n info.script = true;\n }\n if (node.type === \"fenced\") {\n info.number = false;\n info.enclosed = true;\n return ['', info];\n }\n if (checkParent_(node, info)) {\n info.number = true;\n info.enclosed = false;\n }\n return ['', info];\n}\nexports.propagateNumber = propagateNumber;\n(0, semantic_annotations_1.register)(new semantic_annotator_1.SemanticVisitor('nemeth', 'number', propagateNumber, { number: true }));\nfunction relationIterator(nodes, context) {\n const childNodes = nodes.slice(0);\n let first = true;\n let contentNodes;\n if (nodes.length > 0) {\n contentNodes = XpathUtil.evalXPath('../../content/*', nodes[0]);\n }\n else {\n contentNodes = [];\n }\n return function () {\n const content = contentNodes.shift();\n const leftChild = childNodes.shift();\n const rightChild = childNodes[0];\n const contextDescr = context\n ? [auditory_description_1.AuditoryDescription.create({ text: context }, { translate: true })]\n : [];\n if (!content) {\n return contextDescr;\n }\n const base = leftChild\n ? MathspeakUtil.nestedSubSuper(leftChild, '', {\n sup: locale_1.LOCALE.MESSAGES.MS.SUPER,\n sub: locale_1.LOCALE.MESSAGES.MS.SUB\n })\n : '';\n const left = (leftChild && DomUtil.tagName(leftChild) !== 'EMPTY') ||\n (first &&\n content.parentNode.parentNode &&\n content.parentNode.parentNode.previousSibling)\n ? [auditory_description_1.AuditoryDescription.create({ text: locale_1.LOCALE.MESSAGES.regexp.SPACE + base }, {})]\n : [];\n const right = (rightChild && DomUtil.tagName(rightChild) !== 'EMPTY') ||\n (!contentNodes.length &&\n content.parentNode.parentNode &&\n content.parentNode.parentNode.nextSibling)\n ? [auditory_description_1.AuditoryDescription.create({ text: locale_1.LOCALE.MESSAGES.regexp.SPACE }, {})]\n : [];\n const descrs = engine_1.default.evaluateNode(content);\n first = false;\n return contextDescr.concat(left, descrs, right);\n };\n}\nexports.relationIterator = relationIterator;\nfunction implicitIterator(nodes, context) {\n const childNodes = nodes.slice(0);\n let contentNodes;\n if (nodes.length > 0) {\n contentNodes = XpathUtil.evalXPath('../../content/*', nodes[0]);\n }\n else {\n contentNodes = [];\n }\n return function () {\n const leftChild = childNodes.shift();\n const rightChild = childNodes[0];\n const content = contentNodes.shift();\n const contextDescr = context\n ? [auditory_description_1.AuditoryDescription.create({ text: context }, { translate: true })]\n : [];\n if (!content) {\n return contextDescr;\n }\n const left = leftChild && DomUtil.tagName(leftChild) === 'NUMBER';\n const right = rightChild && DomUtil.tagName(rightChild) === 'NUMBER';\n return contextDescr.concat(left && right && content.getAttribute('role') === \"space\"\n ? [auditory_description_1.AuditoryDescription.create({ text: locale_1.LOCALE.MESSAGES.regexp.SPACE }, {})]\n : []);\n };\n}\nexports.implicitIterator = implicitIterator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ordinalPosition = exports.vulgarFraction = exports.wordCounter = exports.ordinalCounter = void 0;\nconst span_1 = require(\"../audio/span\");\nconst DomUtil = require(\"../common/dom_util\");\nconst locale_1 = require(\"../l10n/locale\");\nconst transformers_1 = require(\"../l10n/transformers\");\nfunction ordinalCounter(_node, context) {\n let counter = 0;\n return function () {\n return locale_1.LOCALE.NUMBERS.numericOrdinal(++counter) + ' ' + context;\n };\n}\nexports.ordinalCounter = ordinalCounter;\nfunction wordCounter(_node, context) {\n let counter = 0;\n return function () {\n return locale_1.LOCALE.NUMBERS.numberToOrdinal(++counter, false) + ' ' + context;\n };\n}\nexports.wordCounter = wordCounter;\nfunction vulgarFraction(node) {\n const conversion = (0, transformers_1.convertVulgarFraction)(node, locale_1.LOCALE.MESSAGES.MS.FRAC_OVER);\n if (conversion.convertible &&\n conversion.enumerator &&\n conversion.denominator) {\n return [\n new span_1.Span(locale_1.LOCALE.NUMBERS.numberToWords(conversion.enumerator), {\n extid: node.childNodes[0].childNodes[0].getAttribute('extid'),\n separator: ''\n }),\n new span_1.Span(locale_1.LOCALE.NUMBERS.vulgarSep, { separator: '' }),\n new span_1.Span(locale_1.LOCALE.NUMBERS.numberToOrdinal(conversion.denominator, conversion.enumerator !== 1), {\n extid: node.childNodes[0].childNodes[1].getAttribute('extid')\n })\n ];\n }\n return [\n new span_1.Span(conversion.content || '', { extid: node.getAttribute('extid') })\n ];\n}\nexports.vulgarFraction = vulgarFraction;\nfunction ordinalPosition(node) {\n const children = DomUtil.toArray(node.parentNode.childNodes);\n return locale_1.LOCALE.NUMBERS.numericOrdinal(children.indexOf(node) + 1).toString();\n}\nexports.ordinalPosition = ordinalPosition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrailleRules = exports.OtherRules = exports.PrefixRules = void 0;\nconst dynamic_cstr_1 = require(\"../rule_engine/dynamic_cstr\");\nconst StoreUtil = require(\"../rule_engine/store_util\");\nconst MathspeakUtil = require(\"./mathspeak_util\");\nconst NemethUtil = require(\"./nemeth_util\");\nconst NumbersUtil = require(\"./numbers_util\");\nconst SpeechRules = require(\"./speech_rules\");\nfunction PrefixRules() {\n SpeechRules.addStore('en.prefix.default', '', {\n CSFordinalPosition: NumbersUtil.ordinalPosition\n });\n}\nexports.PrefixRules = PrefixRules;\nfunction OtherRules() {\n SpeechRules.addStore('en.speech.chromevox', '', {\n CTFnodeCounter: StoreUtil.nodeCounter,\n CTFcontentIterator: StoreUtil.contentIterator\n });\n SpeechRules.addStore('en.speech.emacspeak', 'en.speech.chromevox', {\n CQFvulgarFractionSmall: MathspeakUtil.isSmallVulgarFraction,\n CSFvulgarFraction: NumbersUtil.vulgarFraction\n });\n}\nexports.OtherRules = OtherRules;\nfunction BrailleRules() {\n SpeechRules.addStore('nemeth.braille.default', dynamic_cstr_1.DynamicCstr.BASE_LOCALE + '.speech.mathspeak', {\n CSFopenFraction: NemethUtil.openingFraction,\n CSFcloseFraction: NemethUtil.closingFraction,\n CSFoverFraction: NemethUtil.overFraction,\n CSFoverBevFraction: NemethUtil.overBevelledFraction,\n CQFhyperFraction: NemethUtil.hyperFractionBoundary,\n CSFopenRadical: NemethUtil.openingRadical,\n CSFcloseRadical: NemethUtil.closingRadical,\n CSFindexRadical: NemethUtil.indexRadical,\n CSFsubscript: MathspeakUtil.subscriptVerbose,\n CSFsuperscript: MathspeakUtil.superscriptVerbose,\n CSFbaseline: MathspeakUtil.baselineVerbose,\n CGFtensorRules: (st) => MathspeakUtil.generateTensorRules(st, false),\n CTFrelationIterator: NemethUtil.relationIterator,\n CTFimplicitIterator: NemethUtil.implicitIterator\n });\n}\nexports.BrailleRules = BrailleRules;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.init = exports.INIT_ = void 0;\nconst clearspeak_rules_1 = require(\"./clearspeak_rules\");\nconst mathspeak_rules_1 = require(\"./mathspeak_rules\");\nconst other_rules_1 = require(\"./other_rules\");\nexports.INIT_ = false;\nfunction init() {\n if (exports.INIT_) {\n return;\n }\n (0, mathspeak_rules_1.MathspeakRules)();\n (0, clearspeak_rules_1.ClearspeakRules)();\n (0, other_rules_1.PrefixRules)();\n (0, other_rules_1.OtherRules)();\n (0, other_rules_1.BrailleRules)();\n exports.INIT_ = true;\n}\nexports.init = init;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getStore = exports.addStore = exports.funcStore = void 0;\nconst dynamic_cstr_1 = require(\"../rule_engine/dynamic_cstr\");\nexports.funcStore = new Map();\nfunction addStore(constr, inherit, store) {\n const values = {};\n if (inherit) {\n const inherits = exports.funcStore.get(inherit) || {};\n Object.assign(values, inherits);\n }\n exports.funcStore.set(constr, Object.assign(values, store));\n}\nexports.addStore = addStore;\nfunction getStore(locale, modality, domain) {\n return (exports.funcStore.get([locale, modality, domain].join('.')) ||\n exports.funcStore.get([dynamic_cstr_1.DynamicCstr.DEFAULT_VALUES[dynamic_cstr_1.Axis.LOCALE], modality, domain].join('.')) ||\n exports.funcStore.get([dynamic_cstr_1.DynamicCstr.BASE_LOCALE, modality, domain].join('.')) ||\n {});\n}\nexports.getStore = getStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.oneLeft = exports.leftMostUnit = exports.rightMostUnit = exports.unitMultipliers = void 0;\nconst auditory_description_1 = require(\"../audio/auditory_description\");\nconst XpathUtil = require(\"../common/xpath_util\");\nconst locale_1 = require(\"../l10n/locale\");\nfunction unitMultipliers(nodes, _context) {\n const children = nodes;\n let counter = 0;\n return function () {\n const descr = auditory_description_1.AuditoryDescription.create({\n text: rightMostUnit(children[counter]) &&\n leftMostUnit(children[counter + 1])\n ? locale_1.LOCALE.MESSAGES.unitTimes\n : ''\n }, {});\n counter++;\n return [descr];\n };\n}\nexports.unitMultipliers = unitMultipliers;\nconst SCRIPT_ELEMENTS = [\n \"superscript\",\n \"subscript\",\n \"overscore\",\n \"underscore\"\n];\nfunction rightMostUnit(node) {\n while (node) {\n if (node.getAttribute('role') === 'unit') {\n return true;\n }\n const tag = node.tagName;\n const children = XpathUtil.evalXPath('children/*', node);\n node = (SCRIPT_ELEMENTS.indexOf(tag) !== -1\n ? children[0]\n : children[children.length - 1]);\n }\n return false;\n}\nexports.rightMostUnit = rightMostUnit;\nfunction leftMostUnit(node) {\n while (node) {\n if (node.getAttribute('role') === 'unit') {\n return true;\n }\n const children = XpathUtil.evalXPath('children/*', node);\n node = children[0];\n }\n return false;\n}\nexports.leftMostUnit = leftMostUnit;\nfunction oneLeft(node) {\n while (node) {\n if (node.tagName === 'number' && node.textContent === '1') {\n return [node];\n }\n if (node.tagName !== 'infixop' ||\n (node.getAttribute('role') !== 'multiplication' &&\n node.getAttribute('role') !== 'implicit')) {\n return [];\n }\n node = XpathUtil.evalXPath('children/*', node)[0];\n }\n return [];\n}\nexports.oneLeft = oneLeft;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractWalker = void 0;\nconst auditory_description_1 = require(\"../audio/auditory_description\");\nconst AuralRendering = require(\"../audio/aural_rendering\");\nconst DomUtil = require(\"../common/dom_util\");\nconst EngineConst = require(\"../common/engine_const\");\nconst engine_setup_1 = require(\"../common/engine_setup\");\nconst event_util_1 = require(\"../common/event_util\");\nconst enrich_attr_1 = require(\"../enrich_mathml/enrich_attr\");\nconst locale_1 = require(\"../l10n/locale\");\nconst grammar_1 = require(\"../rule_engine/grammar\");\nconst semantic_skeleton_1 = require(\"../semantic_tree/semantic_skeleton\");\nconst SpeechGeneratorFactory = require(\"../speech_generator/speech_generator_factory\");\nconst SpeechGeneratorUtil = require(\"../speech_generator/speech_generator_util\");\nconst clearspeak_preferences_1 = require(\"../speech_rules/clearspeak_preferences\");\nconst focus_1 = require(\"./focus\");\nconst rebuild_stree_1 = require(\"./rebuild_stree\");\nconst walker_1 = require(\"./walker\");\nconst WalkerUtil = require(\"./walker_util\");\nconst XpathUtil = require(\"../common/xpath_util\");\nclass AbstractWalker {\n constructor(node, generator, highlighter, xml) {\n this.node = node;\n this.generator = generator;\n this.highlighter = highlighter;\n this.modifier = false;\n this.keyMapping = new Map([\n [event_util_1.KeyCode.UP, this.up.bind(this)],\n [event_util_1.KeyCode.DOWN, this.down.bind(this)],\n [event_util_1.KeyCode.RIGHT, this.right.bind(this)],\n [event_util_1.KeyCode.LEFT, this.left.bind(this)],\n [event_util_1.KeyCode.TAB, this.repeat.bind(this)],\n [event_util_1.KeyCode.DASH, this.expand.bind(this)],\n [event_util_1.KeyCode.SPACE, this.depth.bind(this)],\n [event_util_1.KeyCode.HOME, this.home.bind(this)],\n [event_util_1.KeyCode.X, this.summary.bind(this)],\n [event_util_1.KeyCode.Z, this.detail.bind(this)],\n [event_util_1.KeyCode.V, this.virtualize.bind(this)],\n [event_util_1.KeyCode.P, this.previous.bind(this)],\n [event_util_1.KeyCode.U, this.undo.bind(this)],\n [event_util_1.KeyCode.LESS, this.previousRules.bind(this)],\n [event_util_1.KeyCode.GREATER, this.nextRules.bind(this)]\n ]);\n this.cursors = [];\n this.xml_ = null;\n this.rebuilt_ = null;\n this.focus_ = null;\n this.active_ = false;\n if (this.node.id) {\n this.id = this.node.id;\n }\n else if (this.node.hasAttribute(AbstractWalker.SRE_ID_ATTR)) {\n this.id = this.node.getAttribute(AbstractWalker.SRE_ID_ATTR);\n }\n else {\n this.node.setAttribute(AbstractWalker.SRE_ID_ATTR, AbstractWalker.ID_COUNTER.toString());\n this.id = AbstractWalker.ID_COUNTER++;\n }\n this.rootNode = WalkerUtil.getSemanticRoot(node);\n this.rootId = this.rootNode.getAttribute(enrich_attr_1.Attribute.ID);\n this.xmlString_ = xml;\n this.moved = walker_1.WalkerMoves.ENTER;\n }\n getXml() {\n if (!this.xml_) {\n this.xml_ = DomUtil.parseInput(this.xmlString_);\n }\n return this.xml_;\n }\n getRebuilt() {\n if (!this.rebuilt_) {\n this.rebuildStree();\n }\n return this.rebuilt_;\n }\n isActive() {\n return this.active_;\n }\n activate() {\n if (this.isActive()) {\n return;\n }\n this.generator.start();\n this.toggleActive_();\n }\n deactivate() {\n if (!this.isActive()) {\n return;\n }\n walker_1.WalkerState.setState(this.id, this.primaryId());\n this.generator.end();\n this.toggleActive_();\n }\n getFocus(update = false) {\n if (!this.focus_) {\n this.focus_ = this.singletonFocus(this.rootId);\n }\n if (update) {\n this.updateFocus();\n }\n return this.focus_;\n }\n setFocus(focus) {\n this.focus_ = focus;\n }\n getDepth() {\n return this.levels.depth() - 1;\n }\n isSpeech() {\n return this.generator.modality === enrich_attr_1.Attribute.SPEECH;\n }\n focusDomNodes() {\n return this.getFocus().getDomNodes();\n }\n focusSemanticNodes() {\n return this.getFocus().getSemanticNodes();\n }\n speech() {\n const nodes = this.focusDomNodes();\n if (!nodes.length) {\n return '';\n }\n const special = this.specialMove();\n if (special !== null) {\n return special;\n }\n switch (this.moved) {\n case walker_1.WalkerMoves.DEPTH:\n return this.depth_();\n case walker_1.WalkerMoves.SUMMARY:\n return this.summary_();\n case walker_1.WalkerMoves.DETAIL:\n return this.detail_();\n default: {\n const speech = [];\n const snodes = this.focusSemanticNodes();\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = nodes[i];\n const snode = snodes[i];\n speech.push(node\n ? this.generator.getSpeech(node, this.getXml())\n : SpeechGeneratorUtil.recomputeMarkup(snode));\n }\n return this.mergePrefix_(speech);\n }\n }\n }\n move(key) {\n const direction = this.keyMapping.get(key);\n if (!direction) {\n return null;\n }\n const focus = direction();\n if (!focus || focus === this.getFocus()) {\n return false;\n }\n this.setFocus(focus);\n if (this.moved === walker_1.WalkerMoves.HOME) {\n this.levels = this.initLevels();\n }\n return true;\n }\n up() {\n this.moved = walker_1.WalkerMoves.UP;\n return this.getFocus();\n }\n down() {\n this.moved = walker_1.WalkerMoves.DOWN;\n return this.getFocus();\n }\n left() {\n this.moved = walker_1.WalkerMoves.LEFT;\n return this.getFocus();\n }\n right() {\n this.moved = walker_1.WalkerMoves.RIGHT;\n return this.getFocus();\n }\n repeat() {\n this.moved = walker_1.WalkerMoves.REPEAT;\n return this.getFocus().clone();\n }\n depth() {\n this.moved = this.isSpeech() ? walker_1.WalkerMoves.DEPTH : walker_1.WalkerMoves.REPEAT;\n return this.getFocus().clone();\n }\n home() {\n this.moved = walker_1.WalkerMoves.HOME;\n const focus = this.singletonFocus(this.rootId);\n return focus;\n }\n getBySemanticId(id) {\n return WalkerUtil.getBySemanticId(this.node, id);\n }\n primaryId() {\n return this.getFocus().getSemanticPrimary().id.toString();\n }\n expand() {\n const primary = this.getFocus().getDomPrimary();\n const expandable = this.actionable_(primary);\n if (!expandable) {\n return this.getFocus();\n }\n this.moved = walker_1.WalkerMoves.EXPAND;\n expandable.dispatchEvent(new Event('click'));\n return this.getFocus().clone();\n }\n expandable(node) {\n const parent = !!this.actionable_(node);\n return parent && node.childNodes.length === 0;\n }\n collapsible(node) {\n const parent = !!this.actionable_(node);\n return parent && node.childNodes.length > 0;\n }\n restoreState() {\n if (!this.highlighter) {\n return;\n }\n const state = walker_1.WalkerState.getState(this.id);\n if (!state) {\n return;\n }\n let node = this.getRebuilt().nodeDict[state];\n const path = [];\n while (node) {\n path.push(node.id);\n node = node.parent;\n }\n path.pop();\n while (path.length > 0) {\n this.down();\n const id = path.pop();\n const focus = this.findFocusOnLevel(id);\n if (!focus) {\n break;\n }\n this.setFocus(focus);\n }\n this.moved = walker_1.WalkerMoves.ENTER;\n }\n updateFocus() {\n this.setFocus(focus_1.Focus.factory(this.getFocus().getSemanticPrimary().id.toString(), this.getFocus()\n .getSemanticNodes()\n .map((x) => x.id.toString()), this.getRebuilt(), this.node));\n }\n rebuildStree() {\n this.rebuilt_ = new rebuild_stree_1.RebuildStree(this.getXml());\n this.rootId = this.rebuilt_.stree.root.id.toString();\n this.generator.setRebuilt(this.rebuilt_);\n this.skeleton = semantic_skeleton_1.SemanticSkeleton.fromTree(this.rebuilt_.stree);\n this.skeleton.populate();\n this.focus_ = this.singletonFocus(this.rootId);\n this.levels = this.initLevels();\n SpeechGeneratorUtil.connectMactions(this.node, this.getXml(), this.rebuilt_.xml);\n }\n previousLevel() {\n const dnode = this.getFocus().getDomPrimary();\n return dnode\n ? WalkerUtil.getAttribute(dnode, enrich_attr_1.Attribute.PARENT)\n : this.getFocus().getSemanticPrimary().parent.id.toString();\n }\n nextLevel() {\n const dnode = this.getFocus().getDomPrimary();\n let children;\n let content;\n if (dnode) {\n children = WalkerUtil.splitAttribute(WalkerUtil.getAttribute(dnode, enrich_attr_1.Attribute.CHILDREN));\n content = WalkerUtil.splitAttribute(WalkerUtil.getAttribute(dnode, enrich_attr_1.Attribute.CONTENT));\n const type = WalkerUtil.getAttribute(dnode, enrich_attr_1.Attribute.TYPE);\n const role = WalkerUtil.getAttribute(dnode, enrich_attr_1.Attribute.ROLE);\n return this.combineContentChildren(type, role, content, children);\n }\n const toIds = (x) => x.id.toString();\n const snode = this.getRebuilt().nodeDict[this.primaryId()];\n children = snode.childNodes.map(toIds);\n content = snode.contentNodes.map(toIds);\n if (children.length === 0) {\n return [];\n }\n return this.combineContentChildren(snode.type, snode.role, content, children);\n }\n singletonFocus(id) {\n this.getRebuilt();\n const ids = this.retrieveVisuals(id);\n return this.focusFromId(id, ids);\n }\n retrieveVisuals(id) {\n if (!this.skeleton) {\n return [id];\n }\n const num = parseInt(id, 10);\n const semStree = this.skeleton.subtreeNodes(num);\n if (!semStree.length) {\n return [id];\n }\n semStree.unshift(num);\n const mmlStree = {};\n const result = [];\n XpathUtil.updateEvaluator(this.getXml());\n for (const child of semStree) {\n if (mmlStree[child]) {\n continue;\n }\n result.push(child.toString());\n mmlStree[child] = true;\n this.subtreeIds(child, mmlStree);\n }\n return result;\n }\n subtreeIds(id, nodes) {\n const xmlRoot = XpathUtil.evalXPath(`//*[@data-semantic-id=\"${id}\"]`, this.getXml());\n const xpath = XpathUtil.evalXPath('*//@data-semantic-id', xmlRoot[0]);\n xpath.forEach((x) => (nodes[parseInt(x.textContent, 10)] = true));\n }\n focusFromId(id, ids) {\n return focus_1.Focus.factory(id, ids, this.getRebuilt(), this.node);\n }\n summary() {\n this.moved = this.isSpeech() ? walker_1.WalkerMoves.SUMMARY : walker_1.WalkerMoves.REPEAT;\n return this.getFocus().clone();\n }\n detail() {\n this.moved = this.isSpeech() ? walker_1.WalkerMoves.DETAIL : walker_1.WalkerMoves.REPEAT;\n return this.getFocus().clone();\n }\n specialMove() {\n return null;\n }\n virtualize(opt_undo) {\n this.cursors.push({\n focus: this.getFocus(),\n levels: this.levels,\n undo: opt_undo || !this.cursors.length\n });\n this.levels = this.levels.clone();\n return this.getFocus().clone();\n }\n previous() {\n const previous = this.cursors.pop();\n if (!previous) {\n return this.getFocus();\n }\n this.levels = previous.levels;\n return previous.focus;\n }\n undo() {\n let previous;\n do {\n previous = this.cursors.pop();\n } while (previous && !previous.undo);\n if (!previous) {\n return this.getFocus();\n }\n this.levels = previous.levels;\n return previous.focus;\n }\n update(options) {\n this.generator.setOptions(options);\n (0, engine_setup_1.setup)(options).then(() => SpeechGeneratorFactory.generator('Tree').getSpeech(this.node, this.getXml()));\n }\n nextRules() {\n const options = this.generator.getOptions();\n if (options.modality !== 'speech') {\n return this.getFocus();\n }\n EngineConst.DOMAIN_TO_STYLES[options.domain] = options.style;\n options.domain =\n options.domain === 'mathspeak' ? 'clearspeak' : 'mathspeak';\n options.style = EngineConst.DOMAIN_TO_STYLES[options.domain];\n this.update(options);\n this.moved = walker_1.WalkerMoves.REPEAT;\n return this.getFocus().clone();\n }\n nextStyle(domain, style) {\n if (domain === 'mathspeak') {\n const styles = ['default', 'brief', 'sbrief'];\n const index = styles.indexOf(style);\n if (index === -1) {\n return style;\n }\n return index >= styles.length - 1 ? styles[0] : styles[index + 1];\n }\n if (domain === 'clearspeak') {\n const prefs = clearspeak_preferences_1.ClearspeakPreferences.getLocalePreferences();\n const loc = prefs['en'];\n if (!loc) {\n return 'default';\n }\n const smart = clearspeak_preferences_1.ClearspeakPreferences.relevantPreferences(this.getFocus().getSemanticPrimary());\n const current = clearspeak_preferences_1.ClearspeakPreferences.findPreference(style, smart);\n const options = loc[smart].map(function (x) {\n return x.split('_')[1];\n });\n const index = options.indexOf(current);\n if (index === -1) {\n return style;\n }\n const next = index >= options.length - 1 ? options[0] : options[index + 1];\n const result = clearspeak_preferences_1.ClearspeakPreferences.addPreference(style, smart, next);\n return result;\n }\n return style;\n }\n previousRules() {\n const options = this.generator.getOptions();\n if (options.modality !== 'speech') {\n return this.getFocus();\n }\n options.style = this.nextStyle(options.domain, options.style);\n this.update(options);\n this.moved = walker_1.WalkerMoves.REPEAT;\n return this.getFocus().clone();\n }\n refocus() {\n let focus = this.getFocus();\n let last;\n while (!focus.getNodes().length) {\n last = this.levels.peek();\n const up = this.up();\n if (!up) {\n break;\n }\n this.setFocus(up);\n focus = this.getFocus(true);\n }\n this.levels.push(last);\n this.setFocus(focus);\n }\n toggleActive_() {\n this.active_ = !this.active_;\n }\n mergePrefix_(speech, pre = []) {\n const prefix = this.isSpeech() ? this.prefix_() : '';\n if (prefix) {\n speech.unshift(prefix);\n }\n const postfix = this.isSpeech() ? this.postfix_() : '';\n if (postfix) {\n speech.push(postfix);\n }\n return AuralRendering.finalize(AuralRendering.merge(pre.concat(speech)));\n }\n prefix_() {\n const nodes = this.getFocus().getDomNodes();\n const snodes = this.getFocus().getSemanticNodes();\n return nodes[0]\n ? WalkerUtil.getAttribute(nodes[0], enrich_attr_1.Attribute.PREFIX)\n : SpeechGeneratorUtil.retrievePrefix(snodes[0]);\n }\n postfix_() {\n const nodes = this.getFocus().getDomNodes();\n return nodes[0]\n ? WalkerUtil.getAttribute(nodes[0], enrich_attr_1.Attribute.POSTFIX)\n : '';\n }\n depth_() {\n const oldDepth = grammar_1.Grammar.getInstance().getParameter('depth');\n grammar_1.Grammar.getInstance().setParameter('depth', true);\n const primary = this.getFocus().getDomPrimary();\n const expand = this.expandable(primary)\n ? locale_1.LOCALE.MESSAGES.navigate.EXPANDABLE\n : this.collapsible(primary)\n ? locale_1.LOCALE.MESSAGES.navigate.COLLAPSIBLE\n : '';\n const level = locale_1.LOCALE.MESSAGES.navigate.LEVEL + ' ' + this.getDepth();\n const snodes = this.getFocus().getSemanticNodes();\n const prefix = SpeechGeneratorUtil.retrievePrefix(snodes[0]);\n const audio = [\n new auditory_description_1.AuditoryDescription({ text: level, personality: {} }),\n new auditory_description_1.AuditoryDescription({ text: prefix, personality: {} }),\n new auditory_description_1.AuditoryDescription({ text: expand, personality: {} })\n ];\n grammar_1.Grammar.getInstance().setParameter('depth', oldDepth);\n return AuralRendering.finalize(AuralRendering.markup(audio));\n }\n actionable_(node) {\n const parent = node === null || node === void 0 ? void 0 : node.parentNode;\n return parent && this.highlighter.isMactionNode(parent) ? parent : null;\n }\n summary_() {\n const sprimary = this.getFocus().getSemanticPrimary();\n const sid = sprimary.id.toString();\n const snode = this.getRebuilt().xml.getAttribute('id') === sid\n ? this.getRebuilt().xml\n : DomUtil.querySelectorAllByAttrValue(this.getRebuilt().xml, 'id', sid)[0];\n const summary = SpeechGeneratorUtil.retrieveSummary(snode);\n const speech = this.mergePrefix_([summary]);\n return speech;\n }\n detail_() {\n const sprimary = this.getFocus().getSemanticPrimary();\n const sid = sprimary.id.toString();\n const snode = this.getRebuilt().xml.getAttribute('id') === sid\n ? this.getRebuilt().xml\n : DomUtil.querySelectorAllByAttrValue(this.getRebuilt().xml, 'id', sid)[0];\n const oldAlt = snode.getAttribute('alternative');\n snode.removeAttribute('alternative');\n const detail = SpeechGeneratorUtil.computeMarkup(snode);\n const speech = this.mergePrefix_([detail]);\n snode.setAttribute('alternative', oldAlt);\n return speech;\n }\n}\nexports.AbstractWalker = AbstractWalker;\nAbstractWalker.ID_COUNTER = 0;\nAbstractWalker.SRE_ID_ATTR = 'sre-explorer-id';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DummyWalker = void 0;\nconst abstract_walker_1 = require(\"./abstract_walker\");\nclass DummyWalker extends abstract_walker_1.AbstractWalker {\n up() {\n return null;\n }\n down() {\n return null;\n }\n left() {\n return null;\n }\n right() {\n return null;\n }\n repeat() {\n return null;\n }\n depth() {\n return null;\n }\n home() {\n return null;\n }\n getDepth() {\n return 0;\n }\n initLevels() {\n return null;\n }\n combineContentChildren(_type, _role, _content, _children) {\n return [];\n }\n findFocusOnLevel(_id) {\n return null;\n }\n}\nexports.DummyWalker = DummyWalker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Focus = void 0;\nconst WalkerUtil = require(\"./walker_util\");\nclass Focus {\n constructor(nodes, primary) {\n this.nodes = nodes;\n this.primary = primary;\n this.domNodes = [];\n this.domPrimary_ = null;\n this.allNodes = [];\n }\n static factory(primaryId, nodeIds, rebuilt, dom) {\n const idFunc = (id) => WalkerUtil.getBySemanticId(dom, id);\n const dict = rebuilt.nodeDict;\n const node = idFunc(primaryId);\n const nodes = nodeIds.map(idFunc);\n const snodes = nodeIds.map(function (primaryId) {\n return dict[primaryId];\n });\n const focus = new Focus(snodes, dict[primaryId]);\n focus.domNodes = nodes;\n focus.domPrimary_ = node;\n focus.allNodes = Focus.generateAllVisibleNodes_(nodeIds, nodes, dict, dom);\n return focus;\n }\n static generateAllVisibleNodes_(ids, nodes, dict, domNode) {\n const idFunc = (id) => WalkerUtil.getBySemanticId(domNode, id);\n let result = [];\n for (let i = 0, l = ids.length; i < l; i++) {\n if (nodes[i]) {\n result.push(nodes[i]);\n continue;\n }\n const virtual = dict[ids[i]];\n if (!virtual) {\n continue;\n }\n const childIds = virtual.childNodes.map(function (x) {\n return x.id.toString();\n });\n const children = childIds.map(idFunc);\n result = result.concat(Focus.generateAllVisibleNodes_(childIds, children, dict, domNode));\n }\n return result;\n }\n getSemanticPrimary() {\n return this.primary;\n }\n getSemanticNodes() {\n return this.nodes;\n }\n getNodes() {\n return this.allNodes;\n }\n getDomNodes() {\n return this.domNodes;\n }\n getDomPrimary() {\n return this.domPrimary_;\n }\n toString() {\n return 'Primary:' + this.domPrimary_ + ' Nodes:' + this.domNodes;\n }\n clone() {\n const focus = new Focus(this.nodes, this.primary);\n focus.domNodes = this.domNodes;\n focus.domPrimary_ = this.domPrimary_;\n focus.allNodes = this.allNodes;\n return focus;\n }\n}\nexports.Focus = Focus;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Levels = void 0;\nclass Levels {\n constructor() {\n this.level_ = [];\n }\n push(level) {\n this.level_.push(level);\n }\n pop() {\n return this.level_.pop();\n }\n peek() {\n return this.level_[this.level_.length - 1] || null;\n }\n indexOf(element) {\n const last = this.peek();\n return !last ? null : last.indexOf(element);\n }\n find(pred) {\n const last = this.peek();\n if (!last) {\n return null;\n }\n for (let i = 0, l = last.length; i < l; i++) {\n if (pred(last[i])) {\n return last[i];\n }\n }\n return null;\n }\n get(index) {\n const last = this.peek();\n return !last || index < 0 || index >= last.length ? null : last[index];\n }\n depth() {\n return this.level_.length;\n }\n clone() {\n const levels = new Levels();\n levels.level_ = this.level_.slice(0);\n return levels;\n }\n toString() {\n let str = '';\n for (let i = 0, level; (level = this.level_[i]); i++) {\n str +=\n '\\n' +\n level.map(function (x) {\n return x.toString();\n });\n }\n return str;\n }\n}\nexports.Levels = Levels;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RebuildStree = void 0;\nconst enrich_attr_1 = require(\"../enrich_mathml/enrich_attr\");\nconst semantic_attr_1 = require(\"../semantic_tree/semantic_attr\");\nconst semantic_node_factory_1 = require(\"../semantic_tree/semantic_node_factory\");\nconst semantic_processor_1 = require(\"../semantic_tree/semantic_processor\");\nconst semantic_skeleton_1 = require(\"../semantic_tree/semantic_skeleton\");\nconst semantic_tree_1 = require(\"../semantic_tree/semantic_tree\");\nconst WalkerUtil = require(\"./walker_util\");\nclass RebuildStree {\n constructor(mathml) {\n this.mathml = mathml;\n this.factory = new semantic_node_factory_1.SemanticNodeFactory();\n this.nodeDict = {};\n this.mmlRoot = WalkerUtil.getSemanticRoot(mathml);\n this.streeRoot = this.assembleTree(this.mmlRoot);\n this.stree = semantic_tree_1.SemanticTree.fromNode(this.streeRoot, this.mathml);\n this.xml = this.stree.xml();\n semantic_processor_1.default.getInstance().setNodeFactory(this.factory);\n }\n static textContent(snode, node, ignore) {\n if (!ignore && node.textContent) {\n snode.textContent = node.textContent;\n return;\n }\n const operator = WalkerUtil.splitAttribute(WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.OPERATOR));\n if (operator.length > 1) {\n snode.textContent = operator[1];\n }\n }\n static isPunctuated(collapsed) {\n return (!semantic_skeleton_1.SemanticSkeleton.simpleCollapseStructure(collapsed) &&\n collapsed[1] &&\n semantic_skeleton_1.SemanticSkeleton.contentCollapseStructure(collapsed[1]));\n }\n getTree() {\n return this.stree;\n }\n assembleTree(node) {\n const snode = this.makeNode(node);\n const children = WalkerUtil.splitAttribute(WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.CHILDREN));\n const content = WalkerUtil.splitAttribute(WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.CONTENT));\n if (content.length === 0 && children.length === 0) {\n RebuildStree.textContent(snode, node);\n return snode;\n }\n if (content.length > 0) {\n const fcontent = WalkerUtil.getBySemanticId(this.mathml, content[0]);\n if (fcontent) {\n RebuildStree.textContent(snode, fcontent, true);\n }\n }\n snode.contentNodes = content.map((id) => this.setParent(id, snode));\n snode.childNodes = children.map((id) => this.setParent(id, snode));\n const collapsed = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.COLLAPSED);\n return collapsed ? this.postProcess(snode, collapsed) : snode;\n }\n makeNode(node) {\n const type = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.TYPE);\n const role = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.ROLE);\n const font = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.FONT);\n const annotation = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.ANNOTATION) || '';\n const attributes = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.ATTRIBUTES) || '';\n const id = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.ID);\n const embellished = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.EMBELLISHED);\n const fencepointer = WalkerUtil.getAttribute(node, enrich_attr_1.Attribute.FENCEPOINTER);\n const snode = this.createNode(parseInt(id, 10));\n snode.type = type;\n snode.role = role;\n snode.font = font ? font : \"unknown\";\n snode.parseAnnotation(annotation);\n snode.parseAttributes(attributes);\n if (fencepointer) {\n snode.fencePointer = fencepointer;\n }\n if (embellished) {\n snode.embellished = embellished;\n }\n return snode;\n }\n makePunctuation(id) {\n const node = this.createNode(id);\n node.updateContent((0, semantic_attr_1.invisibleComma)());\n node.role = \"dummy\";\n return node;\n }\n makePunctuated(snode, collapsed, role) {\n const punctuated = this.createNode(collapsed[0]);\n punctuated.type = \"punctuated\";\n punctuated.embellished = snode.embellished;\n punctuated.fencePointer = snode.fencePointer;\n punctuated.role = role;\n const cont = collapsed.splice(1, 1)[0].slice(1);\n punctuated.contentNodes = cont.map(this.makePunctuation.bind(this));\n this.collapsedChildren_(collapsed);\n }\n makeEmpty(snode, collapsed, role) {\n const empty = this.createNode(collapsed);\n empty.type = \"empty\";\n empty.embellished = snode.embellished;\n empty.fencePointer = snode.fencePointer;\n empty.role = role;\n }\n makeIndex(snode, collapsed, role) {\n if (RebuildStree.isPunctuated(collapsed)) {\n this.makePunctuated(snode, collapsed, role);\n collapsed = collapsed[0];\n return;\n }\n if (semantic_skeleton_1.SemanticSkeleton.simpleCollapseStructure(collapsed) &&\n !this.nodeDict[collapsed.toString()]) {\n this.makeEmpty(snode, collapsed, role);\n }\n }\n postProcess(snode, collapsed) {\n const array = semantic_skeleton_1.SemanticSkeleton.fromString(collapsed).array;\n if (snode.type === \"subsup\") {\n const subscript = this.createNode(array[1][0]);\n subscript.type = \"subscript\";\n subscript.role = \"subsup\";\n snode.type = \"superscript\";\n subscript.embellished = snode.embellished;\n subscript.fencePointer = snode.fencePointer;\n this.makeIndex(snode, array[1][2], \"rightsub\");\n this.makeIndex(snode, array[2], \"rightsuper\");\n this.collapsedChildren_(array);\n return snode;\n }\n if (snode.type === \"subscript\") {\n this.makeIndex(snode, array[2], \"rightsub\");\n this.collapsedChildren_(array);\n return snode;\n }\n if (snode.type === \"superscript\") {\n this.makeIndex(snode, array[2], \"rightsuper\");\n this.collapsedChildren_(array);\n return snode;\n }\n if (snode.type === \"tensor\") {\n this.makeIndex(snode, array[2], \"leftsub\");\n this.makeIndex(snode, array[3], \"leftsuper\");\n this.makeIndex(snode, array[4], \"rightsub\");\n this.makeIndex(snode, array[5], \"rightsuper\");\n this.collapsedChildren_(array);\n return snode;\n }\n if (snode.type === \"punctuated\") {\n if (RebuildStree.isPunctuated(array)) {\n const cont = array.splice(1, 1)[0].slice(1);\n snode.contentNodes = cont.map(this.makePunctuation.bind(this));\n }\n return snode;\n }\n if (snode.type === \"underover\") {\n const score = this.createNode(array[1][0]);\n if (snode.childNodes[1].role === \"overaccent\") {\n score.type = \"overscore\";\n snode.type = \"underscore\";\n }\n else {\n score.type = \"underscore\";\n snode.type = \"overscore\";\n }\n score.role = \"underover\";\n score.embellished = snode.embellished;\n score.fencePointer = snode.fencePointer;\n this.collapsedChildren_(array);\n return snode;\n }\n return snode;\n }\n createNode(id) {\n const node = this.factory.makeNode(id);\n this.nodeDict[id.toString()] = node;\n return node;\n }\n collapsedChildren_(collapsed) {\n const recurseCollapsed = (coll) => {\n const parent = this.nodeDict[coll[0]];\n parent.childNodes = [];\n for (let j = 1, l = coll.length; j < l; j++) {\n const id = coll[j];\n parent.childNodes.push(semantic_skeleton_1.SemanticSkeleton.simpleCollapseStructure(id)\n ? this.nodeDict[id]\n : recurseCollapsed(id));\n }\n return parent;\n };\n recurseCollapsed(collapsed);\n }\n setParent(id, snode) {\n const mml = WalkerUtil.getBySemanticId(this.mathml, id);\n const sn = this.assembleTree(mml);\n sn.parent = snode;\n return sn;\n }\n}\nexports.RebuildStree = RebuildStree;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SemanticWalker = void 0;\nconst abstract_walker_1 = require(\"./abstract_walker\");\nconst levels_1 = require(\"./levels\");\nclass SemanticWalker extends abstract_walker_1.AbstractWalker {\n constructor(node, generator, highlighter, xml) {\n super(node, generator, highlighter, xml);\n this.node = node;\n this.generator = generator;\n this.highlighter = highlighter;\n this.levels = null;\n this.restoreState();\n }\n initLevels() {\n const levels = new levels_1.Levels();\n levels.push([this.getFocus()]);\n return levels;\n }\n up() {\n super.up();\n const parent = this.previousLevel();\n if (!parent) {\n return null;\n }\n this.levels.pop();\n const found = this.levels.find(function (focus) {\n return focus.getSemanticNodes().some(function (node) {\n return node.id.toString() === parent;\n });\n });\n return found;\n }\n down() {\n super.down();\n const children = this.nextLevel();\n if (children.length === 0) {\n return null;\n }\n this.levels.push(children);\n return children[0];\n }\n combineContentChildren(type, role, content, children) {\n switch (type) {\n case \"relseq\":\n case \"infixop\":\n case \"multirel\":\n return this.makePairList(children, content);\n case \"prefixop\":\n return [this.focusFromId(children[0], content.concat(children))];\n case \"postfixop\":\n return [this.focusFromId(children[0], children.concat(content))];\n case \"matrix\":\n case \"vector\":\n case \"fenced\":\n return [\n this.focusFromId(children[0], [content[0], children[0], content[1]])\n ];\n case \"cases\":\n return [this.focusFromId(children[0], [content[0], children[0]])];\n case \"punctuated\":\n if (role === \"text\") {\n return children.map(this.singletonFocus.bind(this));\n }\n if (children.length === content.length) {\n return content.map(this.singletonFocus.bind(this));\n }\n return this.combinePunctuations(children, content, [], []);\n case \"appl\":\n return [\n this.focusFromId(children[0], [children[0], content[0]]),\n this.singletonFocus(children[1])\n ];\n case \"root\":\n return [\n this.singletonFocus(children[1]),\n this.singletonFocus(children[0])\n ];\n default:\n return children.map(this.singletonFocus.bind(this));\n }\n }\n combinePunctuations(children, content, prepunct, acc) {\n if (children.length === 0) {\n return acc;\n }\n const child = children.shift();\n const cont = content.shift();\n if (child === cont) {\n prepunct.push(cont);\n return this.combinePunctuations(children, content, prepunct, acc);\n }\n else {\n content.unshift(cont);\n prepunct.push(child);\n if (children.length === content.length) {\n acc.push(this.focusFromId(child, prepunct.concat(content)));\n return acc;\n }\n else {\n acc.push(this.focusFromId(child, prepunct));\n return this.combinePunctuations(children, content, [], acc);\n }\n }\n }\n makePairList(children, content) {\n if (children.length === 0) {\n return [];\n }\n if (children.length === 1) {\n return [this.singletonFocus(children[0])];\n }\n const result = [this.singletonFocus(children.shift())];\n for (let i = 0, l = children.length; i < l; i++) {\n result.push(this.focusFromId(children[i], [content[i], children[i]]));\n }\n return result;\n }\n left() {\n super.left();\n const index = this.levels.indexOf(this.getFocus());\n if (index === null) {\n return null;\n }\n const ids = this.levels.get(index - 1);\n return ids ? ids : null;\n }\n right() {\n super.right();\n const index = this.levels.indexOf(this.getFocus());\n if (index === null) {\n return null;\n }\n const ids = this.levels.get(index + 1);\n return ids ? ids : null;\n }\n findFocusOnLevel(id) {\n const focus = this.levels.find((x) => {\n const pid = x.getSemanticPrimary().id;\n return pid === id;\n });\n return focus;\n }\n}\nexports.SemanticWalker = SemanticWalker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SyntaxWalker = void 0;\nconst base_util_1 = require(\"../common/base_util\");\nconst abstract_walker_1 = require(\"./abstract_walker\");\nconst levels_1 = require(\"./levels\");\nclass SyntaxWalker extends abstract_walker_1.AbstractWalker {\n constructor(node, generator, highlighter, xml) {\n super(node, generator, highlighter, xml);\n this.node = node;\n this.generator = generator;\n this.highlighter = highlighter;\n this.levels = null;\n this.restoreState();\n }\n initLevels() {\n const levels = new levels_1.Levels();\n levels.push([this.primaryId()]);\n return levels;\n }\n up() {\n super.up();\n const parent = this.previousLevel();\n if (!parent) {\n return null;\n }\n this.levels.pop();\n return this.singletonFocus(parent);\n }\n down() {\n super.down();\n const children = this.nextLevel();\n if (children.length === 0) {\n return null;\n }\n const focus = this.singletonFocus(children[0]);\n if (focus) {\n this.levels.push(children);\n }\n return focus;\n }\n combineContentChildren(type, role, content, children) {\n switch (type) {\n case \"relseq\":\n case \"infixop\":\n case \"multirel\":\n return (0, base_util_1.interleaveLists)(children, content);\n case \"prefixop\":\n return content.concat(children);\n case \"postfixop\":\n return children.concat(content);\n case \"matrix\":\n case \"vector\":\n case \"fenced\":\n children.unshift(content[0]);\n children.push(content[1]);\n return children;\n case \"cases\":\n children.unshift(content[0]);\n return children;\n case \"punctuated\":\n if (role === \"text\") {\n return (0, base_util_1.interleaveLists)(children, content);\n }\n return children;\n case \"appl\":\n return [children[0], content[0], children[1]];\n case \"root\":\n return [children[1], children[0]];\n default:\n return children;\n }\n }\n left() {\n super.left();\n const index = this.levels.indexOf(this.primaryId());\n if (index === null) {\n return null;\n }\n const id = this.levels.get(index - 1);\n return id ? this.singletonFocus(id) : null;\n }\n right() {\n super.right();\n const index = this.levels.indexOf(this.primaryId());\n if (index === null) {\n return null;\n }\n const id = this.levels.get(index + 1);\n return id ? this.singletonFocus(id) : null;\n }\n findFocusOnLevel(id) {\n return this.singletonFocus(id.toString());\n }\n focusDomNodes() {\n return [this.getFocus().getDomPrimary()];\n }\n focusSemanticNodes() {\n return [this.getFocus().getSemanticPrimary()];\n }\n}\nexports.SyntaxWalker = SyntaxWalker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TableWalker = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst event_util_1 = require(\"../common/event_util\");\nconst syntax_walker_1 = require(\"./syntax_walker\");\nconst walker_1 = require(\"./walker\");\nclass TableWalker extends syntax_walker_1.SyntaxWalker {\n constructor(node, generator, highlighter, xml) {\n super(node, generator, highlighter, xml);\n this.node = node;\n this.generator = generator;\n this.highlighter = highlighter;\n this.firstJump = null;\n this.key_ = null;\n this.row_ = 0;\n this.currentTable_ = null;\n this.keyMapping.set(event_util_1.KeyCode.ZERO, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.ONE, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.TWO, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.THREE, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.FOUR, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.FIVE, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.SIX, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.SEVEN, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.EIGHT, this.jumpCell.bind(this));\n this.keyMapping.set(event_util_1.KeyCode.NINE, this.jumpCell.bind(this));\n }\n move(key) {\n this.key_ = key;\n const result = super.move(key);\n this.modifier = false;\n return result;\n }\n up() {\n this.moved = walker_1.WalkerMoves.UP;\n return this.eligibleCell_() ? this.verticalMove_(false) : super.up();\n }\n down() {\n this.moved = walker_1.WalkerMoves.DOWN;\n return this.eligibleCell_() ? this.verticalMove_(true) : super.down();\n }\n jumpCell() {\n if (!this.isInTable_() || this.key_ === null) {\n return this.getFocus();\n }\n if (this.moved === walker_1.WalkerMoves.ROW) {\n this.moved = walker_1.WalkerMoves.CELL;\n const column = this.key_ - event_util_1.KeyCode.ZERO;\n if (!this.isLegalJump_(this.row_, column)) {\n return this.getFocus();\n }\n return this.jumpCell_(this.row_, column);\n }\n const row = this.key_ - event_util_1.KeyCode.ZERO;\n if (row > this.currentTable_.childNodes.length) {\n return this.getFocus();\n }\n this.row_ = row;\n this.moved = walker_1.WalkerMoves.ROW;\n return this.getFocus().clone();\n }\n undo() {\n const focus = super.undo();\n if (focus === this.firstJump) {\n this.firstJump = null;\n }\n return focus;\n }\n eligibleCell_() {\n const primary = this.getFocus().getSemanticPrimary();\n return (this.modifier &&\n primary.type === \"cell\" &&\n TableWalker.ELIGIBLE_CELL_ROLES.indexOf(primary.role) !== -1);\n }\n verticalMove_(direction) {\n const parent = this.previousLevel();\n if (!parent) {\n return null;\n }\n const origFocus = this.getFocus();\n const origIndex = this.levels.indexOf(this.primaryId());\n const origLevel = this.levels.pop();\n const parentIndex = this.levels.indexOf(parent);\n const row = this.levels.get(direction ? parentIndex + 1 : parentIndex - 1);\n if (!row) {\n this.levels.push(origLevel);\n return null;\n }\n this.setFocus(this.singletonFocus(row));\n const children = this.nextLevel();\n const newNode = children[origIndex];\n if (!newNode) {\n this.setFocus(origFocus);\n this.levels.push(origLevel);\n return null;\n }\n this.levels.push(children);\n return this.singletonFocus(children[origIndex]);\n }\n jumpCell_(row, column) {\n if (!this.firstJump) {\n this.firstJump = this.getFocus();\n this.virtualize(true);\n }\n else {\n this.virtualize(false);\n }\n const id = this.currentTable_.id.toString();\n let level;\n do {\n level = this.levels.pop();\n } while (level.indexOf(id) === -1);\n this.levels.push(level);\n this.setFocus(this.singletonFocus(id));\n this.levels.push(this.nextLevel());\n const semRow = this.currentTable_.childNodes[row - 1];\n this.setFocus(this.singletonFocus(semRow.id.toString()));\n this.levels.push(this.nextLevel());\n return this.singletonFocus(semRow.childNodes[column - 1].id.toString());\n }\n isLegalJump_(row, column) {\n const xmlTable = DomUtil.querySelectorAllByAttrValue(this.getRebuilt().xml, 'id', this.currentTable_.id.toString())[0];\n if (!xmlTable || xmlTable.hasAttribute('alternative')) {\n return false;\n }\n const rowNode = this.currentTable_.childNodes[row - 1];\n if (!rowNode) {\n return false;\n }\n const xmlRow = DomUtil.querySelectorAllByAttrValue(xmlTable, 'id', rowNode.id.toString())[0];\n if (!xmlRow || xmlRow.hasAttribute('alternative')) {\n return false;\n }\n return !!(rowNode && rowNode.childNodes[column - 1]);\n }\n isInTable_() {\n let snode = this.getFocus().getSemanticPrimary();\n while (snode) {\n if (TableWalker.ELIGIBLE_TABLE_TYPES.indexOf(snode.type) !== -1) {\n this.currentTable_ = snode;\n return true;\n }\n snode = snode.parent;\n }\n return false;\n }\n}\nexports.TableWalker = TableWalker;\nTableWalker.ELIGIBLE_CELL_ROLES = [\n \"determinant\",\n \"rowvector\",\n \"binomial\",\n \"squarematrix\",\n \"multiline\",\n \"matrix\",\n \"vector\",\n \"cases\",\n \"table\"\n];\nTableWalker.ELIGIBLE_TABLE_TYPES = [\n \"multiline\",\n \"matrix\",\n \"vector\",\n \"cases\",\n \"table\"\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalkerState = exports.WalkerMoves = void 0;\nvar WalkerMoves;\n(function (WalkerMoves) {\n WalkerMoves[\"UP\"] = \"up\";\n WalkerMoves[\"DOWN\"] = \"down\";\n WalkerMoves[\"LEFT\"] = \"left\";\n WalkerMoves[\"RIGHT\"] = \"right\";\n WalkerMoves[\"REPEAT\"] = \"repeat\";\n WalkerMoves[\"DEPTH\"] = \"depth\";\n WalkerMoves[\"ENTER\"] = \"enter\";\n WalkerMoves[\"EXPAND\"] = \"expand\";\n WalkerMoves[\"HOME\"] = \"home\";\n WalkerMoves[\"SUMMARY\"] = \"summary\";\n WalkerMoves[\"DETAIL\"] = \"detail\";\n WalkerMoves[\"ROW\"] = \"row\";\n WalkerMoves[\"CELL\"] = \"cell\";\n})(WalkerMoves = exports.WalkerMoves || (exports.WalkerMoves = {}));\nclass WalkerState {\n static resetState(id) {\n delete WalkerState.STATE[id];\n }\n static setState(id, value) {\n WalkerState.STATE[id] = value;\n }\n static getState(id) {\n return WalkerState.STATE[id];\n }\n}\nexports.WalkerState = WalkerState;\nWalkerState.STATE = {};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.walkerMapping_ = exports.walker = void 0;\nconst dummy_walker_1 = require(\"./dummy_walker\");\nconst semantic_walker_1 = require(\"./semantic_walker\");\nconst syntax_walker_1 = require(\"./syntax_walker\");\nconst table_walker_1 = require(\"./table_walker\");\nfunction walker(type, node, generator, highlighter, xml) {\n const constructor = exports.walkerMapping_[type.toLowerCase()] || exports.walkerMapping_['dummy'];\n return constructor(node, generator, highlighter, xml);\n}\nexports.walker = walker;\nexports.walkerMapping_ = {\n dummy: (p1, p2, p3, p4) => new dummy_walker_1.DummyWalker(p1, p2, p3, p4),\n semantic: (p1, p2, p3, p4) => new semantic_walker_1.SemanticWalker(p1, p2, p3, p4),\n syntax: (p1, p2, p3, p4) => new syntax_walker_1.SyntaxWalker(p1, p2, p3, p4),\n table: (p1, p2, p3, p4) => new table_walker_1.TableWalker(p1, p2, p3, p4)\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBySemanticId = exports.getSemanticRoot = exports.getAttribute = exports.splitAttribute = void 0;\nconst DomUtil = require(\"../common/dom_util\");\nconst enrich_attr_1 = require(\"../enrich_mathml/enrich_attr\");\nfunction splitAttribute(attr) {\n return !attr ? [] : attr.split(/,/);\n}\nexports.splitAttribute = splitAttribute;\nfunction getAttribute(node, attr) {\n return node.getAttribute(attr);\n}\nexports.getAttribute = getAttribute;\nfunction getSemanticRoot(node) {\n if (node.hasAttribute(enrich_attr_1.Attribute.TYPE) &&\n !node.hasAttribute(enrich_attr_1.Attribute.PARENT)) {\n return node;\n }\n const semanticNodes = DomUtil.querySelectorAllByAttr(node, enrich_attr_1.Attribute.TYPE);\n for (let i = 0, semanticNode; (semanticNode = semanticNodes[i]); i++) {\n if (!semanticNode.hasAttribute(enrich_attr_1.Attribute.PARENT)) {\n return semanticNode;\n }\n }\n return node;\n}\nexports.getSemanticRoot = getSemanticRoot;\nfunction getBySemanticId(root, id) {\n if (root.getAttribute(enrich_attr_1.Attribute.ID) === id) {\n return root;\n }\n return DomUtil.querySelectorAllByAttrValue(root, enrich_attr_1.Attribute.ID, id)[0];\n}\nexports.getBySemanticId = getBySemanticId;\n"],"names":["window","MathJax","loader","paths","mathjax","dist","JSON","parse","document","documentElement","dataset","staticSite","Indico","Urls","Base","getMathJaxSource","startup","typeset","elements","options","enableMenu","menuOptions","settings","zoom","ctrl","alt","cmd","shift","zscale","texHints","skipHtmlTags","ignoreHtmlClass","processHtmlClass","safeOptions","allow","URLs","classes","cssIDs","styles","safeProtocols","http","https","mailto","file","javascript","data","tex","packages","inlineMath","displayMath","processEscapes","processEnvironments","processRefs","tagSide","tagIndent","multlineWidth","tags","useLabelIds","require","Loader","preLoad","DELIMITERS","PageDownMathJax","blocks","start","end","last","braces","math","$preview","SPLIT","processMath","i","j","block","slice","join","replace","length","push","removeMath","text","m","split","charAt","match","substr","replaceMath","n","async","elem","undefined","noMathjax","promise","then","typesetPromise","catch","err","console","log","message","createPreview","editorObject","converterObject","getConverter","preview","cb","get","updateMJ","new_height","outerHeight","$wrapper","closest","is_empty","is","toggleClass","css","scrollTop","hooks","chain","mathJax","createEditor","$container","$","find","fieldId","converter","Markdown","getSanitizingConverter","rbg","whole","inner","editor","Editor","helpButton","handler","strings","imagedialog","run","pd","bind","fn","this","each","pagedown","pd_context","_pagedown","checkVersion","VERSION","combineWithMathJax","_","adaptors","HTMLAdaptor","browserAdaptor","components","global","core","DOMAdaptor","FindMath","Handler","HandlerList","InputJax","MathDocument","MathItem","MathList","MmlTree","Attributes","MML","MathMLVisitor","MmlFactory","MmlNode","MmlNodes","TeXAtom","maction","maligngroup","malignmark","mathchoice","menclose","merror","mfenced","mfrac","mglyph","mi","mmultiscripts","mn","mo","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msubsup","mtable","mtd","mtext","mtr","munderover","semantics","MmlVisitor","OperatorDictionary","SerializedMmlVisitor","OutputJax","Tree","Factory","Node","NodeFactory","Visitor","Wrapper","WrapperFactory","handlers","html_ts","html","HTMLDocument","HTMLDomStrings","HTMLHandler","HTMLMathItem","HTMLMathList","util","AsyncLoad","BBox","BitField","Entities","FunctionList","LinkedList","Options","PrioritizedList","Retries","StyleList","Styles","lengths","numeric","string","registerConstructor","useHandler","useAdaptor","asyncLoad","name","load","input","tex_ts","Configuration","FilterUtil","FindTeX","MapHandler","NodeUtil","ParseMethods","ParseOptions","ParseUtil","Stack","StackItem","StackItemFactory","Symbol","SymbolMap","Tags","TexConstants","TexError","TexParser","base","BaseConfiguration","BaseItems","BaseMethods","packageList","TeX","useInput","config","insert","registerTeX","ams","AmsConfiguration","AmsItems","AmsMethods","HtmlConfiguration","HtmlMethods","output","chtml_ts","chtml","FontData","Notation","Usage","Wrappers_ts","Wrappers","TextNode","scriptbase","common","combineDefaults","checkReady","CHTML","useOutput","fonts","bold","fraktur","italic","largeop","monospace","normal","smallop","delimiters","script","fontURL","Package","resolvePath","selectOptionsFromKeys","TeXFont","OPTIONS","font","package","dependencies","allPackages","Array","from","Object","keys","filter","provides","mml","sre","CONFIG","ready","error","failed","ui","menu","MJContextMenu","Menu","MenuHandler","SelectableInfo","extendHandler","safe","SafeHandler","SafeMethods","defineProperty","exports","value","MathMaps","Map","__createBinding","create","o","k","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","__setModuleDefault","v","__importStar","mod","result","prototype","hasOwnProperty","call","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","apply","__generator","body","f","y","t","g","label","sent","trys","ops","verb","iterator","op","TypeError","pop","__importDefault","sreReady","Sre","Api","WalkerFactory","SpeechGeneratorFactory","EngineConst","engine_js_1","clearspeak_preferences_js_1","HighlighterFactory","variables_js_1","mathmaps_js_1","locales","Variables","LOCALES","engineReady","setupEngine","engineSetup","toEnriched","toSpeech","clearspeakPreferences","ClearspeakPreferences","getHighlighter","highlighter","getSpeechGenerator","getWalker","walker","clearspeakStyle","DOMAIN_TO_STYLES","preloadLocales","locale","json","_a","default","res","_rej","stringify","localeLoader","getInstance","delay","extendStatics","__extends","d","b","setPrototypeOf","__proto__","p","String","__","constructor","__values","s","_super","_this","parser","DOMParser","format","parseFromString","kind","ns","createElementNS","createElement","createTextNode","head","doc","root","doctype","concat","node","nodes","getElementsByTagNameNS","getElementsByTagName","getElements","_document","e_1","containers","nodes_1","nodes_1_1","querySelectorAll","isArray","NodeList","HTMLCollection","e_1_1","return","contains","container","parent","parentNode","append","child","appendChild","nchild","ochild","insertBefore","remove","removeChild","nnode","onode","replaceChild","clone","cloneNode","splitText","nextSibling","previous","previousSibling","firstChild","lastChild","childNodes","childNode","nodeType","nodeName","toLowerCase","nodeValue","textContent","innerHTML","outerHTML","serializeXML","XMLSerializer","serializeToString","setAttribute","setAttributeNS","getAttribute","removeAttribute","hasAttribute","allAttributes","attributes","map","x","addClass","classList","add","className","trim","removeClass","c","hasClass","indexOf","setStyle","style","getStyle","allStyles","cssText","insertRules","rules","e_2","_b","reverse","_c","rule","sheet","insertRule","warn","e_2_1","fontSize","getComputedStyle","parseFloat","fontFamily","nodeSize","em","local","getBBox","width","height","offsetWidth","offsetHeight","nodeBBox","getBoundingClientRect","left","right","top","bottom","AbstractDOMAdaptor","HTMLAdaptor_js_1","combineConfig","isObject","version_js_1","dst","src","id","version","PathFilters","PackageError","global_js_1","package_js_1","package_js_2","FunctionList_js_1","source","normalize","addExtension","prefix","versions","names","_i","arguments","promises","names_1","names_1_1","name_1","extension","all","e_3","_loop_1","name_2","checkNoLoad","versionWarnings","isLoaded","has","names_2","names_2_1","e_3_1","loadAll","e_4","names_3","names_3_1","name_3","loaded","e_4_1","defaultReady","getRoot","__dirname","currentScript","getElementById","_type","set","pathFilters","__read","r","ar","__spreadArray","to","pack","l","loader_js_1","Error","noLoad","isLoading","hasFailed","dependents","dependencyCount","provided","makePromise","makeDependencies","original","execute","values","canLoad","dependencies_1","dependencies_1_1","dependent","addDependent","_name","url","loadCustom","loadScript","checkLoad","charset","onload","_event","onerror","_d","requirementSatisfied","_e","_f","e_5","e_5_1","e_6","e_6_1","__assign","assign","Startup","PrioritizedList_js_1","Options_js_1","visitor","extensions","toMML","visitTree","getComponents","getInputJax","getOutputJax","adaptor","getAdaptor","unregister","getHandler","register","getDocument","makeMethods","makeTypesetMethods","oname","input_1","input_1_1","jax","iname","makeMmlMethods","makeResetMethod","makeOutputMethods","reset","render","handleRetriesFor","typesetClear","clearMathItemsWithin","clear","convert","styleSheet","getMetricsFor","display","STATE","CONVERT","args","inputClass","constructors","outputClass","handlerClass","extensions_1","extensions_1_1","item","promiseResolve","promiseReject","pagePromise","_reject","readyState","listener","defaultView","addEventListener","force","inputSpecified","extend","priority","pageReady","defaultPageReady","invalidOption","optionError","def","children","setAttributes","children_1","children_1_1","key","_m","toUpperCase","properties","_g","_h","_j","allClasses","AbstractFindMath","CLASS","userOptions","defaultOptions","AbstractHandler","DefaultMathDocument","AbstractMathDocument","documentClass","NAME","handlesDocument","AbstractInputJax","mmlFactory","preFilters","postFilters","setAdaptor","setMmlFactory","initialize","_args","findMath","_node","_options","executeFilters","filters","resetAllOptions","resetOptions","RenderList","InputJax_js_1","OutputJax_js_1","MathList_js_1","MathItem_js_1","MmlFactory_js_1","BitField_js_1","actions","list","action","renderDoc","renderMath","methodActions","method1","method2","UNPROCESSED","items","renderConvert","LAST","findID","processed","inputJax","outputJax","DefaultInputJax","compile","_math","DefaultOutputJax","escaped","AbstractOutputJax","DefaultMathList","AbstractMathList","DefaultMathItem","AbstractMathItem","renderActions","ProcessBits","KIND","addRenderAction","removeRenderAction","rerender","RERENDER","state","ex","containerWidth","lineWidth","scale","family","reduce","ijax","mitem","setMetrics","mtextInheritFont","outputData","mtextFamily","merrorInheritFont","merrorFamily","typesetRoot","e_7","isSet","recompile","compileMath","inputData","recompile_1","recompile_1_1","e_7_1","retry","restart","compileError","title","setText","e_8","e_8_1","typesetError","class","color","margin","getMetrics","updateDocument","e_9","reversed","e_9_1","removeFromDocument","_restore","restore","e_10","e_10_1","INSERTED","TYPESET","COMPILED","forEach","merge","getMathItemsWithin","e_11","e_12","ITEMS","containers_1","containers_1_1","e_12_1","e_11_1","expandable","FINDMATH","metrics","METRICS","update","BitFieldClass","newState","protoItem","open","close","delim","_state","isEscaped","cwidth","lwidth","isBefore","a","INHERIT","defaults","inherited","setList","getExplicit","getList","setInherited","getInherited","getDefault","hasDefault","getExplicitNames","getInheritedNames","getDefaultNames","getGlobalNames","getAllAttributes","getAllInherited","getAllDefaults","getAllGlobals","MmlNode_js_1","math_js_1","mi_js_1","mn_js_1","mo_js_1","mtext_js_1","mspace_js_1","ms_js_1","mrow_js_1","mfrac_js_1","msqrt_js_1","mroot_js_1","mstyle_js_1","merror_js_1","mpadded_js_1","mphantom_js_1","mfenced_js_1","menclose_js_1","maction_js_1","msubsup_js_1","munderover_js_1","mmultiscripts_js_1","mtable_js_1","mtr_js_1","mtd_js_1","maligngroup_js_1","malignmark_js_1","mglyph_js_1","semantics_js_1","TeXAtom_js_1","mathchoice_js_1","MmlMath","MmlMi","MmlMn","MmlMo","MmlMtext","MmlMspace","MmlMs","MmlMrow","MmlInferredMrow","MmlMfrac","MmlMsqrt","MmlMroot","MmlMstyle","MmlMerror","MmlMpadded","MmlMphantom","MmlMfenced","MmlMenclose","MmlMaction","MmlMsub","MmlMsup","MmlMsubsup","MmlMunder","MmlMover","MmlMunderover","MmlMmultiscripts","MmlMprescripts","MmlNone","MmlMtable","MmlMlabeledtr","MmlMtr","MmlMtd","MmlMaligngroup","MmlMalignmark","MmlMglyph","MmlSemantics","MmlAnnotation","MmlAnnotationXML","MathChoice","XMLNode","visitNode","visitTextNode","getText","visitXMLNode","getXML","visitInferredMrowNode","visitDefault","addAttributes","toString","NodeFactory_js_1","MML_js_1","defaultNodes","AbstractNodeFactory","AbstractMmlEmptyNode","AbstractMmlBaseNode","AbstractMmlLayoutNode","AbstractMmlTokenNode","AbstractMmlNode","indentAttributes","TEXCLASSNAMES","TEXCLASS","Attributes_js_1","Node_js_1","ORD","OP","BIN","REL","OPEN","CLOSE","PUNCT","INNER","VCENTER","NONE","TEXSPACELENGTH","TEXSPACE","factory","prevClass","prevLevel","texclass","arity","setChildren","getNodeClass","copy","keepIds","isInferred","texClass","Infinity","notParent","Parent","getPropertyNames","setProperty","getProperty","newChild","oldChild","coreMO","coreIndex","childPosition","setTeXclass","prev","getPrevClass","updateTeXclass","texSpacing","space","Math","abs","hasSpacingAttributes","isEmbellished","setInheritedAttributes","level","prime","alwaysInherit","noInherit","setChildInheritedAttributes","addInheritedAttributes","current","updated","inheritAttributesFrom","scriptlevel","mathsize","verifyTree","verifyAttributes","mError","verifyChildren","bad","name_4","short","isKind","mathbackground","mathcolor","dir","depth","lspace","voffset","align","groupalign","scriptminsize","scriptsizemultiplier","verifyDefaults","checkArity","checkAttributes","fullErrors","fixMmultiscripts","fixMtables","AbstractNode","walkTree","func","mathvariant","isSpacelike","e_13","e_13_1","_attributes","_display","_level","_prime","_message","_short","AbstractEmptyNode","xml","setXML","getSerializedXML","adjustTeXclass","selection","max","min","selected","nextToggleSelection","actiontype","edge","displaystyle","maxwidth","overflow","altimg","alttext","cdgroup","sqrt","infixlinebreakstyle","lineleading","linebreakmultchar","indentshift","indentalign","indenttarget","indentalignfirst","indentshiftfirst","indentalignlast","indentshiftlast","notation","separators","addFakeNodes","fakeNode","fence","form","linethickness","numalign","denomalign","bevelled","fontfamily","index","valign","singleCharacter","operatorName","prescripts","splice","primestyle","fix","OperatorDictionary_js_1","string_js_1","_texClass","rspace","handleExplicitForm","getForms","form1","form2","form3","OPTABLE_1","OPTABLE","coreParent","embellished","coreText","isToken","accent","over","under","parent_1","checkOperatorTable","checkPseudoScripts","checkPrimes","checkMathAccent","range","getRange","spacing","MMLSPACING","nonSpaceLength","firstNonSpace","lastNonSpace","forms","form_1","PSEUDOSCRIPTS","pseudoScripts","isPseudo","PRIMES","primes","REMAP","remapPrimes","unicodeString","unicodeChars","MATHACCENT","mathaccents","separator","stretchy","symmetric","maxsize","minsize","movablelimits","linebreak","linebreakstyle","RegExp","_core","lquote","rquote","parseInt","cramped","sub","subscriptshift","superscriptshift","useHeight","indentAttributes_1","indentAttributes_1_1","columnalign","rowalign","ralign","isMtd","alignmentscope","columnwidth","rowspacing","columnspacing","rowlines","columnlines","frame","framespacing","equalrows","equalcolumns","side","minlabelspacing","rowspan","columnspan","calign","unshift","ACCENTS","getScriptlevel","setInheritedAccent","accentunder","definitionUrl","encoding","cd","isChars","AbstractVisitor","RANGES","MO","OPDEF","ORD11","ORD21","ORD02","ORD55","OPFIXED","INTEGRAL","INTEGRAL2","BIN3","BIN4","BIN01","BIN5","TALLBIN","BINOP","REL1","REL4","RELSTRETCH","RELACCENT","WIDEREL","ACCENT","WIDEACCENT","codePointAt","RANGES_1","RANGES_1_1","postfix","infix","toEntity","DATAMJX","MmlVisitor_js_1","_space","quoteHTML","visitTeXAtomNode","childNodeMml","getAttributes","visitAnnotationNode","nl","endspace","attr","defaultAttributes","getDataAttributes","variants","variant","setDataAttribute","scriptalign","setclass","xmlns","pageElements","AbstractFactory","defaultKind","nodeMap","setNodeClass","nodeClass","THIS","deleteNodeClass","delete","nodeIsKind","getKinds","getAllProperties","removeProperty","childIndex","findNodes","_children","_newChild","nodeHandlers","method","methodName","tree","setNodeHandler","removeNodeHandler","AbstractWrapper","wrap","AbstractWrapperFactory","RegisterHTMLHandler","mathjax_js_1","HTMLHandler_js_1","MathDocument_js_1","HTMLMathItem_js_1","HTMLMathList_js_1","HTMLDomStrings_js_1","separateOptions","dom","domStrings","findPosition","N","mathItem","_k","processStrings","_l","_o","_p","addPageElements","addStyleSheet","documentPageElements","documentStyleSheet","findSheet","addStyles","getStyles","DomStrings","init","getPatterns","snodes","stack","skip","makeArray","ignore","process","pushString","extendString","handleText","handleTag","handleContainer","cname","tname","exec","handleOther","_ignore","stop","include","includeHtmlTags","br","wbr","Handler_js_1","HTMLDocument_js_1","Document","HTMLElement","DocumentFragment","_html","updateStyleSheet","FindTeX_js_1","FilterUtil_js_1","NodeUtil_js_1","TexParser_js_1","TexError_js_1","ParseOptions_js_1","Tags_js_1","Configuration_js_1","rest","findTeX","configuration","configure","parseOptions","_parseOptions","TagsFactory","cleanSubSup","moveLimits","cleanStretchy","cleanAttributes","combineRelations","ParserConfiguration","addTags","setDefault","nodeFactory","tag","globalEnv","latex","startEquation","isInner","formatError","finishEquation","mathNode","digits","maxBuffer","ConfigurationHandler","MapHandler_js_1","fallback","preprocessors","postprocessors","initMethod","configMethod","character","delimiter","macro","environment","makeProcessor","_create","DEFAULTPRIORITY","conf","pre","post","maps","parsers","configurations","SubHandlers","pkg","addPackage","addFilters","getPackage","setCreators","itemFactory","arg","symbol","getForm","getTexClass","texAtom","removeProperties","attribs","keep","Set","isType","m2","variantForm","_compareExplicit","appendChildren","getChildren","_copyExplicit","removeFromList","attrs","node1","node2","attr1","attr2","exp1","exp2","exp1_1","exp1_1_1","_cleanSubSup","low","up","parent_2","newNode","copyAttributes","_moveLimits","underover","subsup","FindMath_js_1","starts","parts","subparts","env","delims","addPattern","sort","sortLength","hasPatterns","quotePattern","endPattern","endp","findEnd","pattern","lastIndex","findMathInString","math_1","SubHandler","getMap","_configuration","_fallback","lookup","applicable","retrieve","fallbacks","subHandler","createNode","createToken","createText","createError","setProperties","textNode","addNode","setChild","position","createEntity","code","fromCodePoint","attribute","property","getChildAt","copyChildren","oldNode","getCoreMO","isNode","forms_1","forms_1_1","TexConstants_js_1","ParseUtil_js_1","variable","getFontDef","multiLetterIdentifiers","TexConstant","Variant","NORMAL","noAutoOP","autoOP","Push","digit","controlSequence","GetCS","mathchar0mi","mchar","ITALIC","char","mathchar0mo","mathchar7","StackItemFactory_js_1","packageData","nodeLists","pushParser","popParser","resetTag","inlists","lists","list_1","list_1_1","inTree","Entities_js_1","emPerInch","UNIT_CASES","num","unit","dimenEnd","dimenRest","matchDimen","dim","Em","muReplace","toFixed","mathPalette","D","T","internalText","entities","nbsp","addArgs","s1","s2","removeBraces","count","readValue","startCount","stopCount","dimen2em","cols","W","fenced","big","nf","openNode","closeNode","fixedFence","fixInitialMO","internalMath","atom","len","underOver","pos","checkMovableLimits","movesupsub","trimSpaces","TEXT","setArrayAlign","array","arraydef","substituteArgs","str","newstring","checkMaxMacros","isMacro","macroCount","checkEqnEnv","eqnenv","copyNode","lists_1","lists_1_1","MmlFilterAttribute","_parser","keyvalOptions","attrib","allowed","val","readKeyval","_factory","_env","args_1","args_1_1","Top","checkItem","top_1","Pop","copyEnv","isOpen","Prev","noPop","First","BaseItem","MmlStack","_nodes","Size","Peek","Clear","toMml","inferred","forceRow","_properties","fail","getName","isClose","getErrors","isFinal","success","clearEnv","errors","middle","StackItem_js_1","Factory_js_1","DummyItem","DefaultStackItems","Macro","_symbol","_char","_func","EnvironmentMap","CommandMap","MacroMap","DelimiterMap","CharacterMap","AbstractParseMap","RegExpMap","AbstractSymbolMap","parseResult","Symbol_js_1","parserFor","mapped","_regExp","test","object","functionMap","saveCommand","currentCS","envParser","AllTags","NoTags","AbstractTags","TagInfo","Label","taggable","defaultTags","tagId","tagFormat","noTag","labelId","counter","allCounter","ids","allIds","labels","allLabels","redo","refUpdate","currentTag","history","enTag","cell","row","noFormat","formatTag","notag","formatUrl","encodeURIComponent","formatId","formatNumber","autoTag","clearTag","getTag","makeTag","ct","offset","finalize","makeId","tagsMapping","ignoreDuplicateLabels","constr","BOLD","BOLDITALIC","DOUBLESTRUCK","FRAKTUR","BOLDFRAKTUR","SCRIPT","BOLDSCRIPT","SANSSERIF","BOLDSANSSERIF","SANSSERIFITALIC","SANSSERIFBOLDITALIC","MONOSPACE","INITIAL","TAILED","LOOPED","STRETCHED","CALLIGRAPHIC","BOLDCALLIGRAPHIC","OLDSTYLE","BOLDOLDSTYLE","MATHITALIC","Form","PREFIX","INFIX","POSTFIX","LineBreak","AUTO","NEWLINE","NOBREAK","GOODBREAK","BADBREAK","LineBreakStyle","BEFORE","AFTER","DUPLICATE","INFIXLINBREAKSTYLE","IndentAlign","LEFT","CENTER","RIGHT","ID","INDENTALIGN","IndentShift","INDENTSHIFT","LineThickness","THIN","MEDIUM","THICK","LONGDIV","ACTUARIAL","PHASORANGLE","RADICAL","BOX","ROUNDEDBOX","CIRCLE","TOP","BOTTOM","UPDIAGONALSTRIKE","DOWNDIAGONALSTRIKE","VERTICALSTRIKE","HORIZONTALSTRIKE","NORTHEASTARROW","MADRUWB","UPDIAGONALARROW","Align","BASELINE","AXIS","Lines","SOLID","DASHED","Side","LEFTOVERLAP","RIGHTOVERLAP","Width","FIT","Actiontype","TOGGLE","STATUSLINE","TOOLTIP","INPUT","Overflow","LINBREAK","SCROLL","ELIDE","TRUNCATE","SCALE","Unit","EM","EX","PX","IN","CM","MM","PT","PC","processString","Stack_js_1","_string","ENV","Parse","getCodePoint","PushAll","convertDelimiter","nextIsSpace","GetNext","CS","GetArgument","noneOK","parens","GetBrackets","GetDelimiter","braceOK","GetDimen","dimen","length_1","GetUpTo","token","ParseArg","ParseUpTo","GetDelimiterArg","GetStar","star","AmsTags","AmsItems_js_1","AmsMethods_js_1","SymbolMap_js_1","MultlineItem","FlalignItem","NEW_OPS","_config","multlineIndent","BaseItems_js_1","EndEntry","table","shove","EndRow","EndTable","mlabel","ArrayItem","numbered","padded","center","maxrow","EqnArrayItem","sm","ParseMethods_js_1","lengths_js_1","iiiint","operatorLetter","mathring","nobreakspace","negmedspace","MATHSPACE","negativemediummathspace","negthickspace","negativethickmathspace","idotsint","dddot","ddddot","sideset","boxed","eqref","substack","injlim","projlim","varliminf","varlimsup","varinjlim","varprojlim","DeclareMathOperator","operatorname","genfrac","frac","tfrac","dfrac","binom","tbinom","dbinom","cfrac","shoveleft","shoveright","xrightarrow","xleftarrow","thickmathspace","multline","gather","alignat","alignedat","aligned","gathered","xalignat","xxalignat","flalign","subarray","smallmatrix","matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","cases","digamma","varkappa","varGamma","varDelta","varTheta","varLambda","varXi","varPi","varSigma","varUpsilon","varPhi","varPsi","varOmega","beth","gimel","daleth","backprime","hslash","varnothing","blacktriangle","triangledown","blacktriangledown","square","Box","blacksquare","lozenge","Diamond","blacklozenge","circledS","bigstar","sphericalangle","measuredangle","nexists","complement","mho","eth","Finv","diagup","Game","diagdown","Bbbk","yen","circledR","checkmark","maltese","dotplus","ltimes","smallsetminus","rtimes","Cap","doublecap","leftthreetimes","Cup","doublecup","rightthreetimes","barwedge","curlywedge","veebar","curlyvee","doublebarwedge","boxminus","circleddash","boxtimes","circledast","boxdot","circledcirc","boxplus","centerdot","divideontimes","intercal","leqq","geqq","leqslant","geqslant","eqslantless","eqslantgtr","lesssim","gtrsim","lessapprox","gtrapprox","approxeq","lessdot","gtrdot","lll","llless","ggg","gggtr","lessgtr","gtrless","lesseqgtr","gtreqless","lesseqqgtr","gtreqqless","doteqdot","Doteq","eqcirc","risingdotseq","circeq","fallingdotseq","triangleq","backsim","thicksim","backsimeq","thickapprox","subseteqq","supseteqq","Subset","Supset","sqsubset","sqsupset","preccurlyeq","succcurlyeq","curlyeqprec","curlyeqsucc","precsim","succsim","precapprox","succapprox","vartriangleleft","lhd","vartriangleright","rhd","trianglelefteq","unlhd","trianglerighteq","unrhd","vDash","Vdash","Vvdash","smallsmile","shortmid","smallfrown","shortparallel","bumpeq","between","Bumpeq","pitchfork","varpropto","backepsilon","blacktriangleleft","blacktriangleright","therefore","because","eqsim","vartriangle","Join","nless","ngtr","nleq","ngeq","nleqslant","ngeqslant","nleqq","ngeqq","lneq","gneq","lneqq","gneqq","lvertneqq","gvertneqq","lnsim","gnsim","lnapprox","gnapprox","nprec","nsucc","npreceq","nsucceq","precneqq","succneqq","precnsim","succnsim","precnapprox","succnapprox","nsim","ncong","nshortmid","nshortparallel","nmid","nparallel","nvdash","nvDash","nVdash","nVDash","ntriangleleft","ntriangleright","ntrianglelefteq","ntrianglerighteq","nsubseteq","nsupseteq","nsubseteqq","nsupseteqq","subsetneq","supsetneq","varsubsetneq","varsupsetneq","subsetneqq","supsetneqq","varsubsetneqq","varsupsetneqq","leftleftarrows","rightrightarrows","leftrightarrows","rightleftarrows","Lleftarrow","Rrightarrow","twoheadleftarrow","twoheadrightarrow","leftarrowtail","rightarrowtail","looparrowleft","looparrowright","leftrightharpoons","rightleftharpoons","curvearrowleft","curvearrowright","circlearrowleft","circlearrowright","Lsh","Rsh","upuparrows","downdownarrows","upharpoonleft","upharpoonright","downharpoonleft","restriction","multimap","downharpoonright","leftrightsquigarrow","rightsquigarrow","leadsto","dashrightarrow","dashleftarrow","nleftarrow","nrightarrow","nLeftarrow","nRightarrow","nleftrightarrow","nLeftrightarrow","implies","impliedby","BaseMethods_js_1","splitSideSet","checkSideSetBase","AmsEqnArray","begin","EqnArray","AlignAt","spaceStr","Multline","XalignAt","FlalignArray","zeroWidthLabel","HandleDeclareOp","cs","HandleOperatorName","operatorLetters","SideSet","preScripts","preRest","postScripts","postRest","MultiIntegral","integral","xArrow","chr","bot","first","dstrut","arrow","bstrut","HandleShove","CFrac","lr","den","lrMap","numNode","denNode","Genfrac","thick","styleDigit","styleAlpha","HandleTag","HandleNoTag","HandleRef","Accent","Tilde","Spacer","NamedOp","Equation","BaseTags","Other","bitem","remap","type","StartItem","StopItem","OpenItem","CloseItem","PrimeItem","SubsupItem","OverItem","LeftItem","Middle","RightItem","BeginItem","EndItem","StyleItem","PositionItem","CellItem","MmlItem","FnItem","NotItem","NonscriptItem","DotsItem","EquationItem","maxMacros","baseURL","location","top0","top1","sup","ApplyFunction","mtextNode","paddedNode","dots","tclass","hfill","dashed","newItem","createMml","checkLines","lines","rows","addRowSpacing","dimem","extendArray","repeat","columns","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigma","tau","upsilon","phi","chi","psi","omega","varepsilon","vartheta","varpi","varrho","varsigma","varphi","S","aleph","hbar","imath","jmath","ell","wp","Re","Im","partial","infty","emptyset","nabla","angle","triangle","backslash","forall","exists","neg","lnot","flat","natural","sharp","clubsuit","diamondsuit","heartsuit","spadesuit","surd","coprod","bigvee","bigwedge","biguplus","bigcap","bigcup","intop","iint","iiint","prod","sum","bigotimes","bigoplus","bigodot","oint","bigsqcup","smallint","triangleleft","triangleright","bigtriangleup","bigtriangledown","wedge","land","vee","lor","cap","cup","ddagger","dagger","sqcap","sqcup","uplus","amalg","diamond","bullet","wr","div","divsymbol","odot","oslash","otimes","ominus","oplus","mp","pm","circ","bigcirc","setminus","cdot","ast","times","propto","sqsubseteq","sqsupseteq","parallel","mid","dashv","vdash","leq","le","geq","ge","lt","gt","succ","prec","approx","succeq","preceq","supset","subset","supseteq","subseteq","ni","notin","owns","gg","ll","sim","simeq","perp","equiv","asymp","smile","frown","ne","neq","cong","doteq","bowtie","models","notChar","Leftrightarrow","Leftarrow","Rightarrow","leftrightarrow","leftarrow","gets","rightarrow","mapsto","leftharpoonup","leftharpoondown","rightharpoonup","rightharpoondown","nearrow","searrow","nwarrow","swarrow","hookrightarrow","hookleftarrow","longleftarrow","Longleftarrow","longrightarrow","Longrightarrow","Longleftrightarrow","longleftrightarrow","longmapsto","ldots","cdots","vdots","ddots","dotsc","dotsb","dotsm","dotsi","dotso","ldotp","cdotp","colon","Gamma","Delta","Theta","Lambda","Xi","Pi","Sigma","Upsilon","Phi","Psi","Omega","And","textstyle","scriptstyle","scriptscriptstyle","rm","mit","oldstyle","cal","it","bf","bbFont","scr","frak","sf","tt","mathrm","mathup","mathnormal","mathbf","mathbfup","mathit","mathbfit","mathbb","Bbb","mathfrak","mathbffrak","mathscr","mathbfscr","mathsf","mathsfup","mathbfsf","mathbfsfup","mathsfit","mathbfsfit","mathtt","mathcal","mathbfcal","symrm","symup","symnormal","symbf","symbfup","symit","symbfit","symbb","symfrak","symbffrak","symscr","symbfscr","symsf","symsfup","symbfsf","symbfsfup","symsfit","symbfsfit","symtt","symcal","symbfcal","textrm","textup","textnormal","textit","textbf","textsf","texttt","tiny","Tiny","scriptsize","small","normalsize","large","Large","LARGE","huge","Huge","arcsin","arccos","arctan","cos","cosh","cot","coth","csc","deg","det","exp","gcd","hom","inf","ker","lg","lim","liminf","limsup","ln","Pr","sec","sin","sinh","tan","tanh","limits","nolimits","overline","underline","overbrace","underbrace","overparen","underparen","overrightarrow","underrightarrow","overleftarrow","underleftarrow","overleftrightarrow","underleftrightarrow","overset","underset","overunderset","stackrel","stackbin","overwithdelims","atop","atopwithdelims","above","abovewithdelims","brace","brack","choose","uproot","leftroot","llap","rlap","raise","lower","moveleft","moveright","thinmathspace","mediummathspace","negativethinmathspace","enspace","quad","qquad","thinspace","negthinspace","hskip","hspace","kern","mskip","mkern","Rule","Space","nonscript","Big","bigg","Bigg","bigl","Bigl","biggl","Biggl","bigr","Bigr","biggr","Biggr","bigm","Bigm","biggm","Biggm","mathord","mathop","mathopen","mathclose","mathbin","mathrel","mathpunct","mathinner","vcenter","buildrel","hbox","mbox","fbox","framebox","strut","mathstrut","phantom","vphantom","hphantom","smash","acute","grave","ddot","tilde","bar","breve","check","hat","vec","dot","widetilde","widehat","eqalign","displaylines","cr","newline","hline","hdashline","eqalignno","leqalignno","hfil","hfilll","bmod","pmod","pod","iff","skew","pmb","LaTeX","not","ref","nonumber","mmlToken","equation","eqnarray","sitem","MmlTokenAllow","fontsize","fontweight","fontstyle","background","href","parseRoot","inRoot","newParser","Open","Close","Superscript","Subscript","Prime","rsquo","Comment","Hash","MathFont","SetFont","SetStyle","texStyle","SetSize","size","LeftRight","NamedFn","Limits","Last","Over","Frac","Sqrt","Root","MoveRoot","mathaccent","entity","muoNode","UnderOver","Overset","Underset","Overunderset","mclass","parsed","MmlToken","Strut","Phantom","h","box","Smash","bt","Lap","RaiseLower","move","MoveLeftRight","nh","tmp","Hskip","Nonscript","w","MakeBig","sizeStr","BuildRel","HBox","FBox","internal","FrameBox","Not","Dots","ldotsEntity","cdotsEntity","Matrix","vspacing","Entry","isEntry","Cr","isCR","CrLaTeX","nobrackets","HLine","HFill","BeginEnd","raggedHeight","AlignedArray","HandleLabel","argcount","optional","SS","HtmlMethods_js_1","cssId","GetArgumentMML","oldClass","oldStyle","HandlerList_js_1","Retries_js_1","retryAfter","StyleList_js_1","WrapperFactory_js_1","Usage_js_1","tex_js_1","LENGTHS","CHTMLWrapperFactory","chtmlStyles","adaptiveCSS","wrapperUsage","setDocument","CssStyles","addWrapperStyles","updateFontStyles","getStyleRules","STYLESHEETID","updateStyles","wrapper","addClassStyles","autoStyle","toCHTML","clearCache","cssStyles","unknownText","fixed","padding","cssFontStyles","getCssFont","round","measureTextNode","CommonOutputJax","matchFontHeight","commonStyles","visibility","__exportStar","AddCSS","CHTMLFontData","FontData_js_1","charUsage","delimUsage","charOptions","adapt","createVariant","inherit","link","defaultVariantClasses","letter","defaultVariantLetters","defineChars","chars","defaultStyles","addFontURLs","defaultFonts","addDelimiterStyles","addCharStyles","vletter","smp","charSelector","content","charContent","stretch","addDelimiterVStyles","addDelimiterHStyles","HDW","beg","ext","Hb","addDelimiterVPart","He","Hm","em0","part","getDelimiterData","dw","addDelimiterHPart","ic","getChar","fromCharCode","JAX","Arrow","DiagonalArrow","DiagonalStrike","Border2","Border","RenderElement","_child","shape","adjustBorder","getOffset","thickness","THICKNESS","transform","CommonBorder","side1","side2","CommonBorder2","border","CommonDiagonalStrike","getArgMod","strike","CommonDiagonalArrow","CommonArrow","used","needsUpdate","CHTMLWrapper","SPACE","FONTSIZE","Wrapper_js_1","BBox_js_1","standardCHTMLnode","markUsed","createCHTMLnode","handleStyles","handleVariant","handleScale","handleColor","handleSpace","handleAttributes","handlePWidth","getVariant","setScale","bbox","rscale","percent","L","R","skipAttributes","pwidth","fullWidth","setIndent","drawBBox","opacity","CommonWrapper","Wrappers_js_1","CHTMLWrappers","CommonWrapperFactory","TextNode_js_1","CHTMLmath","CHTMLmrow","CHTMLinferredMrow","CHTMLmi","CHTMLmo","CHTMLmn","CHTMLms","CHTMLmtext","CHTMLmspace","CHTMLmpadded","CHTMLmenclose","CHTMLmfrac","CHTMLmsqrt","CHTMLmroot","CHTMLmsub","CHTMLmsup","CHTMLmsubsup","CHTMLmunder","CHTMLmover","CHTMLmunderover","CHTMLmmultiscripts","CHTMLmfenced","CHTMLmtable","CHTMLmtr","CHTMLmlabeledtr","CHTMLmtd","CHTMLmaction","CHTMLmglyph","CHTMLsemantics","CHTMLannotation","CHTMLannotationXML","CHTMLxml","CHTMLTeXAtom","CHTMLTextNode","TeXAtom_js_2","dh","params","axis_height","CommonTeXAtomMixin","remappedText","chars_1","chars_1_1","getVariantChar","unknown","CommonTextNodeMixin","maction_js_2","maction_js_3","setEventHandler","cursor","_data","event","stopPropagation","tip","adaptor_1","tool_1","dy","dx","stopTimers","timeout","setTimeout","postDelay","hoverTimer","clearDelay","clearTimer","TooltipData","adaptor_2","text_1","status","CommonMactionMixin","math_js_2","handleDisplay","handleInline","getAlignShift","getOuterBBox","setChildPWidths","recompute","CommonMathMixin","menclose_js_2","Angle","atan2","ANGLE","ARROWDX","ARROWY","renderChild","notations","renderer","pbox","getPadding","sideNames","sideIndex","double","adjustArrow","moveArrow","arrowhead","ARROWX","line","rthead","rbhead","lthead","lbhead","adjustHead","adjustLine","adjustThickness","PADDING","fullBBox","fullBorder","arc","TRBL","sqrtTRBL","createMsqrt","CommonMencloseMixin","mfenced_js_2","CommonMfencedMixin","mfrac_js_2","isDisplay","makeBevelled","length2em","makeAtop","makeFraction","fattr","nattr","dattr","dsattr","nsattr","tEm","getTUV","u","getUVQ","q","bevel","getBevelData","nbox","dbox","CommonMfracMixin","mglyph_js_2","charWrapper","verticalAlign","img","CommonMglyphMixin","mi_js_2","CommonMiMixin","mmultiscripts_js_2","scriptData","preAlign","postAlign","combinePrePost","psub","psup","numPrescripts","scripts","addScripts","firstPrescript","numScripts","isPre","U","rowdef","tabledef","supRow","sepRow","subRow","CommonMmultiscriptsMixin","mn_js_2","CommonMnMixin","mo_js_2","getStretchedVariant","stretchHTML","getCenterOffset","getAccentOffset","DirectionVH","CommonMoMixin","mpadded_js_2","getDimens","dd","rbox","CommonMpaddedMixin","mroot_js_2","addRoot","ROOT","sbox","H","getRootDimens","CommonMrootMixin","mrow_js_2","mrow_js_3","hasNegative","CommonMrowMixin","CommonInferredMrowMixin","ms_js_2","CommonMsMixin","mspace_js_2","CommonMspaceMixin","msqrt_js_2","SURD","BASE","getPQ","rule_thickness","SQRT","paddingTop","_ROOT","_root","_sbox","_H","CommonMsqrtMixin","scriptbase_js_1","msubsup_js_2","msubsup_js_3","msubsup_js_4","CommonMsubMixin","CHTMLscriptbase","CommonMsupMixin","baseChild","supChild","subChild","getAdjustedIc","baseRemoveIc","baseIc","CommonMsubsupMixin","mtable_js_2","itable","isTop","padRows","handleColumnSpacing","handleColumnLines","handleColumnWidths","handleRowSpacing","handleRowLines","handleRowHeights","handleFrame","handleWidth","handleLabels","handleAlign","handleJustify","shiftColor","numCols","getEmHalfSpacing","fSpace","cSpace","tableRows","tableCells","styleNode","getColumnAttributes","cWidths","rSpace","tspace","bspace","numRows","getRowAttributes","handleEqualRows","getRowHalfSpacing","getTableData","NH","ND","HD","getEqualRowHeight","setRowHeight","rLines","setRowBaseline","setCellBaseline","fLine","isPercent","hasLabels","getAlignmentRow","getVerticalPosition","addLabelPadding","updateRowHeights","addLabelSpacing","getPadAlignShift","equal","CommonMtableMixin","mtd_js_2","CommonMtdMixin","mtext_js_2","CommonMtextMixin","mtr_js_2","mtr_js_3","CommonMtrMixin","CommonMlabeledtrMixin","munderover_js_2","munderover_js_3","munderover_js_4","hasMovableLimits","scriptChild","basebox","underbox","getUnderKV","isLineBelow","getDelta","setDeltaW","getDeltaW","adjustUnderDepth","CommonMunderMixin","overbox","adjustBaseHeight","getOverKU","isLineAbove","adjustOverDepth","CommonMoverMixin","overChild","underChild","ok","uk","CommonMunderoverMixin","minH","x_height","CommonScriptbaseMixin","semantics_js_2","CommonSemanticsMixin","computeBBox","_recompute","measureXMLnode","getScale","bold_italic_js_1","bold_js_1","double_struck_js_1","fraktur_bold_js_1","fraktur_js_1","italic_js_1","largeop_js_1","monospace_js_1","normal_js_1","sans_serif_bold_italic_js_1","sans_serif_bold_js_1","sans_serif_italic_js_1","sans_serif_js_1","script_bold_js_1","script_js_1","smallop_js_1","tex_calligraphic_bold_js_1","tex_calligraphic_js_1","tex_mathit_js_1","tex_oldstyle_bold_js_1","tex_oldstyle_js_1","tex_size3_js_1","tex_size4_js_1","tex_variant_js_1","delimiters_js_1","defaultCssFamilyPrefix","defaultDelimiters","defaultChars","boldItalic","doubleStruck","frakturBold","scriptBold","sansSerif","sansSerifBold","sansSerifItalic","sansSerifBoldItalic","texSize3","texSize4","texCalligraphic","texCalligraphicBold","texMathit","texOldstyle","texOldstyleBold","texVariant","CommonTeXFontMixin","NOSTRETCH","V","cssFontMap","remapChars","skewIcFactor","defaultParams","sizeVariants","defaultSizeVariants","stretchVariants","defaultStretchVariants","defaultCssFonts","unknownFamily","cssFamilyPrefix","createVariants","defaultVariants","defineDelimiters","defineRemap","defaultAccentMap","defaultMoMap","defaultMnMap","_styles","linked","remapSmpChars","VariantSmp","SmpRemap","SmpGreek","SmpRemapGreekU","SmpRemapGreekL","SmpRanges","lo","hi","smpChar","variants_1","variants_1_1","getDelimiter","getSizeVariant","getStretchVariant","stretchv","getFamily","getRemappedChar","num1","num2","num3","denom1","denom2","sup1","sup2","sup3","sub1","sub2","sup_drop","sub_drop","delim1","delim2","big_op_spacing1","big_op_spacing2","big_op_spacing3","big_op_spacing4","big_op_spacing5","surd_height","scriptspace","nulldelimiterspace","delimiterfactor","delimitershortfall","min_rule_thickness","separation_factor","extra_ic","arrowBBox","diagonalArrowDef","arrowDef","arrowBBoxW","arrowBBoxHD","arrowHead","fullPadding","fill","PI","down","updown","leftright","updiagonal","northeast","southeast","northwest","southwest","northeastsouthwest","northwestsoutheast","i1","i2","arrowAW","arrowData","ax","ay","adx","isVertical","Styles_js_1","defaultFactory","defaultFont","jaxOptions","fontOptions","wrapperFactory","unknownCache","toDOM","pxPerEm","getMetricMaps","getTestElement","measureMetrics","domMaps","_q","testInline","testDisplay","exFactor","minScale","addFontStyles","measureText","measureTextNodeWithCache","cached","getFontData","mtextFont","merrorFont","mathmlSpacing","displayAlign","displayIndent","SMALLSIZE","MathMLSpace","removedStyles","bboxComputed","zero","getSpace","wrapped","save","obox","StyleAdjust","empty","clean","fixesPWidth","changed","cbox","invalidateBBox","copySkewIC","sk","styleString","removeStyles","fontWeight","weight","fontStyle","explicitVariant","BOLDVARIANTS","ITALICVARIANTS","pscale","pow","isTopEmbellished","hasSpacing","getMathMLSpacing","getTeXSpacing","isScript","canStretch","direction","getAlignX","getAlignY","getWrapWidth","getChildAlign","px","M","BIGDIMEN","map_1","mmlText","mmlNode","createMo","class_1","clearTimeout","getParameters","offsets","updateFrom","getNotations","removeRedundantNotations","initializeNotations","getBBoxExtenders","Notations","B","combine","maximizeEntries","BTRBL","name_5","X","Y","_w","_double","_offset","_dist","createMrow","addMrowChildren","addMo","stretchChildren","pad","getBevelledBBox","getAtopBBox","getFractionBBox","lbox","_direction","ScriptNames","NextScript","subList","supList","psubList","psupList","getScriptData","getScriptBBoxLists","combineBBoxLists","padLists","list1","list2","bbox1","bbox2","getScaledWHD","w1","h1","d1","w2","h2","d2","subbox","supbox","UVQ","getU","getV","isAccent","protoBBox","WH","exact","getWH","getSize","df","ds","sizes","schar","getStretchBBox","checkExtendedHeight","WHD","C","getBaseline","hasWHD","ch","fullExt","extSize","endSize","ceil","combineRootBBox","BBOX","rootHeight","nodeCount","noStretch","stretchy_1","stretchy_1_1","class_2","quotes","surdH","surdbox","_bbox","useIC","class_3","getBaseWidth","baseCore","drop","baseCharZero","baseScale","numeric_js_1","pwidthCells","pWidth","numCells","findContainer","getPercentageWidth","convertLengths","getAttributeArray","cLines","getColumnWidths","stretchRows","stretchColumns","containerI","hd","stretchColumn","getChild","LW","updateHDW","recordPWidthCell","labeled","extendHD","CW","getComputedWidths","getBBoxHD","getBBoxLR","setColumnPWidths","_clear","labelInWidth","getColumnWidthsFixed","baseline","axis","lpad","rpad","getWidth","getEqualColumns","swidths","getColumnWidthsAuto","getColumnWidthsPercent","hasFit","indices","fit","auto","fw","fspace","fspaceEm","spaceEm","addEm","getColumnHalfSpacing","INHERITFONTS","getChildBBoxes","children_2","children_2_1","bw","uw","ow","z","baseIsChar","baseHasAccentOver","baseHasAccentUnder","isMathAccent","getBaseCore","setBaseAccentsFor","getBaseScale","getBaseIc","isCharBase","checkLineAccents","getSemanticBase","getBaseFence","isLineAccent","boxes","widths","noskew","VSIZES","HDW3","HDW2","HDW1","DELIM2F","DELIMAF","DELIM2C6","DELIM2DC","DELIM2013","DELIM2190","DELIM2192","DELIM2194","DELIM21A4","DELIM21A6","DELIM21D0","DELIM21D2","DELIM21D4","DELIM2212","DELIM2223","DELIM23DC","DELIM23DD","DELIM23DE","DELIM23DF","DELIM27E8","DELIM27E9","DELIM2906","DELIM2907","context_menu_js_1","item_submenu_js_1","annotation","annotationTypes","disable","enable","getAnnotationMenu","dynamicSubmenus","unpost","Submenu","submenu","annotations","getAnnotations","getSemanticNode","createAnnotationMenu","showAnnotation","copyAnnotation","annotationMatch","DynamicSubmenus","ContextMenu","MJContextMenu_js_1","SelectableInfo_js_1","info_js_1","parse_js_1","item_rule_js_1","css_util_js_1","sre_js_1","isMac","navigator","platform","defaultSettings","SVG","rerenderStart","about","Info","help","mathmlCode","formatSource","originalText","annotationText","zoomBox","element","initSettings","mergeUserSettings","initMenu","applySettings","loading","_loadingPromise","_loadingOK","_loadingFailed","a11y","explorer","Parser","fromJson","pool","setRenderer","explore","setExplorer","a11yVar","domain","collapse","setCollapsible","tab","setTabOrder","setAssistiveMml","command","copyMathML","copyOriginal","radioGroup","checkbox","hidden","hiddne","scaleAllMath","resetDefaults","disabled","attachMenu","checkLoadableItems","enableExplorerItems","addInfoStyles","addMenuStyles","collapsible","complexity","loadA11y","assistiveMml","localStorage","getItem","MENU_STORAGE","setA11y","saveUserSettings","setItem","removeItem","explorer_ts","setA11yOptions","getA11y","option","inTabOrder","enableAssistiveMml","setOutputJax","loadComponent","store","inTaborder","enableExplorer","enableComplexity","prompt","scale_1","setValue","alert","executeCallbacks_","checkComponent","loadingPromises","callback","component","noEnrich","ENRICHED","transferMathList","isZoomEvent","altKey","ctrlKey","metaKey","shiftKey","copyToClipboard","select","execCommand","addMenu","getter","setter","entries","entries_1","entries_1_1","entry","other","radios","radio","autocollapse","StarMath","Maple","ContentMathML","OpenMath","MenuMathDocumentMixin","MenuMathItemMixin","Menu_js_1","BaseMathItem","CONTEXT_MENU","checkLoading","BaseDocument","MenuClass","allocate","loadingPromise","enableEnrichment","enrichSpeech","enrichError","_doc","SerializedMmlVisitor_js_1","visitMathNode","addRow","html_classes_js_1","addEvents","selectAll","getSelection","selectAllChildren","querySelector","removeAllRanges","generateHtml","button","HtmlClasses","SafeMathDocumentMixin","safe_js_1","SafeClass","mathml","filterAttribute","mmlAttribute","filterClassList","mmlClassList","sanitize","Safe","filterURL","protocol","filterClass","classPattern","filterID","idPattern","filterStyles","div1","div2","safeStyles","styleParts","filterStyle","filterStyleValue","styleLengths","filterStyleLength","lengthMax","filterFontSize","filterSizeMultiplier","scriptsizemultiplierRange","filterScriptLevel","scriptlevelRange","filterData","dataPattern","SafeMethods_js_1","filterAttributes","filterMethods","sanitizeNode","backgroundColor","textShadow","outline","borderTop","borderRight","borderBottom","borderLeft","paddingRight","paddingBottom","paddingLeft","marginTop","marginRight","marginBottom","marginLeft","outlineTop","outlineRight","outlineBottom","outlineLeft","rescale","bits","MAXBIT","getBit","bit","Bits","translate","AsyncLoad_js_1","loadMissingEntities","Backslash","Because","Breve","CenterDot","CircleDot","CircleMinus","CirclePlus","CircleTimes","Congruent","ContourIntegral","Coproduct","Cross","CupCap","Dagger","Del","DifferentialD","DotEqual","DoubleDot","DoubleRightTee","DoubleVerticalBar","DownArrow","DownLeftVector","DownRightVector","DownTee","Downarrow","Element","EqualTilde","Equilibrium","Exists","ExponentialE","FilledVerySmallSquare","ForAll","Gg","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterLess","GreaterSlantEqual","GreaterTilde","Hacek","Hat","HumpDownHump","HumpEqual","ImaginaryI","Integral","Intersection","InvisibleComma","InvisibleTimes","Larr","LeftAngleBracket","LeftArrow","LeftArrowRightArrow","LeftCeiling","LeftDownVector","LeftFloor","LeftRightArrow","LeftTee","LeftTriangle","LeftTriangleEqual","LeftUpVector","LeftVector","LessEqualGreater","LessFullEqual","LessGreater","LessSlantEqual","LessTilde","Ll","LongLeftArrow","LongLeftRightArrow","LongRightArrow","MinusPlus","NestedGreaterGreater","NestedLessLess","NotDoubleVerticalBar","NotElement","NotEqual","NotExists","NotGreater","NotGreaterEqual","NotLeftTriangle","NotLeftTriangleEqual","NotLess","NotLessEqual","NotPrecedes","NotPrecedesSlantEqual","NotRightTriangle","NotRightTriangleEqual","NotSubsetEqual","NotSucceeds","NotSucceedsSlantEqual","NotSupersetEqual","NotTilde","NotVerticalBar","OverBar","OverBrace","PartialD","PlusMinus","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","Product","Proportional","Rarr","ReverseEquilibrium","RightAngleBracket","RightArrow","RightArrowLeftArrow","RightCeiling","RightDownVector","RightFloor","RightTee","RightTeeArrow","RightTriangle","RightTriangleEqual","RightUpVector","RightVector","SmallCircle","Square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","Star","SubsetEqual","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","SuchThat","Sum","Superset","SupersetEqual","Therefore","TildeEqual","TildeFullEqual","TildeTilde","UnderBar","UnderBrace","Union","UnionPlus","UpArrow","UpDownArrow","UpTee","Uparrow","Updownarrow","Vee","VerticalBar","VerticalTilde","Wedge","amp","and","ang","angmsd","angsph","ape","boxdl","boxdr","boxul","boxur","bsol","bull","clubs","comp","ctdot","cuepr","cuesc","cularr","curarr","ddarr","dotsquare","dtdot","ecir","efDot","egs","els","epsi","epsiv","erDot","fork","gEl","gap","gnE","gnap","gne","gtdot","harrw","hellip","infin","intcal","kappav","lEg","lap","larrlp","larrtl","lbrace","lbrack","lmoust","lnE","lnap","lne","lowast","loz","ltri","macr","malt","natur","nearr","nharr","nlarr","nrarr","nwarr","or","osol","period","phiv","piv","prap","quot","rarrtl","rbrace","rbrack","rhov","ring","rmoust","rtri","scap","scnE","scnap","scnsim","sdot","searr","sect","sigmav","simne","spades","subE","subnE","subne","supE","supnE","supne","swarr","thetav","upsi","vellip","weierp","zigrarr","lsquo","$1","additions","asyncExecute","ListItem","END","items_1","items_1_1","item_1","cur","l1","l2","lcur","mcur","selectOptions","Expandable","REMOVE","APPEND","OBJECT","obj","_key","getOwnPropertySymbols","props","prop","defineProperties","sval","dval","keys_1","keys_1_1","defs","objects","results","objects_1","objects_1_1","missing","perr","isCallback","Callback","After","getStyleString","selectors","selectors_1","selectors_1_1","selector","selectors_2","selectors_2_1","getStyleDefString","properties_1","properties_1_1","WSC","splitSpaces","splitTRBL","connect","childName","combineTRBL","splitSame","combineSame","BORDER","splitWSC","combineWSC","FONT","splitFont","parts_1","parts_1_1","saveFontParts","combineFont","parentName","normalizeName","combineChildren","PATTERN","comment","emRounded","RELUNITS","UNITS","cm","mm","pt","pc","veryverythinmathspace","verythinmathspace","verythickmathspace","veryverythickmathspace","negativeveryverythinmathspace","negativeverythinmathspace","negativeverythickmathspace","negativeveryverythickmathspace","thin","medium","infinity","A","AbstractEntry","menu_element_js_1","_menu","role","hide","generateMenu","show","isHidden","MenuElement","AbstractItem","abstract_entry_js_1","menu_util_js_1","_content","callbacks","_id","press","executeAction","registerCallback","unregisterCallback","mousedown","mouseover","focus","mouseout","deactivate","activate","focused","unfocus","escape","MenuUtil","AbstractMenu","abstract_postable_js_1","abstract_item_js_1","_items","_baseMenu","variablePool","_focused","old","itemHtml","unpostSubmenus","submenus","submenus_1","submenus_1_1","AbstractPostable","AbstractNavigatable","key_navigatable_js_1","mouse_navigatable_js_1","bubble","bubbleKey","keydown","keyCode","KEY","ESCAPE","UP","DOWN","RETURN","preventDefault","cancelBubble","mouseup","click","MOUSE","OVER","OUT","CLICK","SELECTSTART","DBLCLICK","posted","isPosted","AbstractVariableItem","span","generateSpan","updateAria","updateSpan","CloseButton","abstract_menu_js_1","menu_store_js_1","variable_pool_js_1","moving","_store","MenuStore","widgets","VariablePool","ctxtMenu","varParser","itemList","_frame","innerDiv","unpostWidgets","insertTaborder","active","move_","numberOrEvent","isY","removeTaborder","Event","target","MouseEvent","pageX","pageY","clientX","scrollLeft","clientY","offsetX","pageXOffset","offsetY","pageYOffset","rect","anchor","registerWidget","widget","unregisterWidget","toJson","makeClass_","INFO_STYLES","MENU_STYLES","CLOSE_ICON_STYLES","INFO_ADDED","MENU_ADDED","CLOSE_ICON_ADDED","addCloseIconStyles_","opt_document","addStyles_","HtmlAttrs","prefix_","prefixClass_","prefixAttr_","ATTACHED","CONTEXTMENU","MENU","MENUARROW","MENUACTIVE","MENUCHECK","MENUCLOSE","MENUCOMBOBOX","MENUDISABLED","MENUFRAME","MENUITEM","MENULABEL","MENURADIOCHECK","MENUINPUTBOX","MENURULE","MENUSLIDER","MOUSEPOST","RTL","INFO","INFOCLOSE","INFOCONTENT","INFOSIGNATURE","INFOTITLE","SLIDERVALUE","SLIDERBAR","SELECTION","SELECTIONBOX","SELECTIONMENU","SELECTIONDIVIDER","SELECTIONITEM","COUNTER","KEYDOWNFUNC","CONTEXTMENUFUNC","OLDTAB","TOUCHFUNC","close_button_js_1","signature","contentDiv","generateContent","generateClose","generateTitle","generateSignature","innerHeight","clientHeight","scrollHeight","floor","Checkbox","abstract_variable_item_js_1","getValue","Combo","inputEvent","getActiveElement","inputKey","initValue","Command","Radio","_element","Slider","valueId","valueSpan","labelSpan","_submenu","blur","_active","attachedClass","taborder","attrMap","elementOrList","elements_1","elements_1_1","insertElement","elements_2","elements_2_1","removeElement","flag","insertTaborder_","removeTaborder_","addTabindex","removeTabindex","removeEvents","getElementsByClassName","addEvent","attrName","removeEvent","menuFunc","removeEventListener","stopImmediatePropagation","baseMenu","_error","msg","MOVE","SELECTEND","__rest","propertyIsEnumerable","__spread","item_command_js_1","variable_js_1","item_checkbox_js_1","item_combo_js_1","item_label_js_1","item_radio_js_1","item_slider_js_1","sub_menu_js_1","selection_box_js_1","parser_factory_js_1","_initList","SubMenu","Variable","SelectionMenu","SelectionBox","ParserFactory","its","ctxt","its_1","its_1_1","sb","tit","rul","grid","_selections","_balanced","selections","order","sels","addSelection","rowDiv","rects","sel","column","outerDivs","maxWidth","balancedColumn","chunks","getChunkSize","this_1","combineColumn","balanceColumn","chunkSize","divs","col1","col2","findSelection","id_1","parentElement","isNext","orderMethod","localeCompare","_x","_y","xl","yl","_anchor","setBaseMenu","mw","offsetLeft","offsetTop","AbstractAudioRenderer","engine_1","separator_","setSeparator","sep","getSeparator","modality","spans","speech","pauseValue","getRate","AcssRenderer","EventUtil","AudioUtil","markup_renderer_1","MarkupRenderer","markup","descrs","setScaleFunction","personalityMarkup","currentPers","pause","isString","descr","isMarkupElement","mergeMarkup","isPauseElement","mergePause","prosody","prosody_","Move","prosodyElement","applyScaleFunction","personalityProps","RATE","PITCH","VOLUME","PAUSE","pros","isSpanElement","sortClose","base_util_1","span_1","mergePause_","oldPause","newPause","opt_merge","oldPers","newPers","PersonalityRanges_","LastOpen_","appendElement_","lstr","fstr","copyValues_","appendMarkup_","pers","oldJoin","JOIN","pauseProp","lastSpan","Span","personalityDiff_","personalityPropList","currentValue","oldValue","loNew","setdifference","descriptionSpan","personality","final","per","finaliseMarkup_","lastPers","nextElement","pauseElement","simplifyMarkup_","AuditoryDescription","grammar_1","context","userValue","layout","flags","Grammar","isEmpty","descriptionString","equals","that","isXml","registerRenderer","acss_renderer_1","layout_renderer_1","punctuation_renderer_1","sable_renderer_1","ssml_renderer_1","ssml_step_renderer_1","string_renderer_1","xml_renderer_1","xmlInstance","SsmlRenderer","renderers","Markup","StringRenderer","PUNCTUATION","PunctuationRenderer","LAYOUT","LayoutRenderer","ACSS","SABLE","SableRenderer","VOICEXML","SSML","SSML_STEP","SsmlStepRenderer","strs","XmlRenderer","debugger_1","DomUtil","twodExpr","parseInput","Debugger","formatXml","recurseTree","setTwoDim","_pause","closeTag","processContent","TABLE","mat","assembleRows","cells","maxHeight","getMaxParameters","combineCells","combineRows","CASES","CAYLEY","cayley","lfence","rfence","MATRIX","CELL","FENCE","ROW","FRACTION","numerator","applyHandler","denominator","nwidth","strWidth","dwidth","centerCell","NUMERATOR","handleFractionPart","DENOMINATOR","tagName","combineContent","str1","str2","height1","strHeight","height2","diff","padCell","lines1","lines2","NodeType","TEXT_NODE","padHeight","padWidth","ELEMENT_NODE","handleRow","newMat","newCells","verticalArrange","getFence","rstr","prt","fchild","abstract_audio_renderer_1","super","ignoreElements","scaleFunction","decimals","ignoreElement","PAUSE_PUNCTUATION","valueStr","_tag","MARKS","CHARACTER_ATTR","audio_util_1","currentOpen","SREError","union","interleaveLists","removeEmpty","loadMapsForIE_","installWGXpath_","loadWGXpath_","mapsForIE","detectEdge","detectIE","system_external_1","xpath_util_1","opt_isEdge","WGXpath","opt_count","wgxpath","install","xpath","evaluate","XPathResult","createNSResolver","mathmapsIePath","chrome","loadTimes","isActive_","outputFunction_","info","fileHandle","stream_","instance","opt_file","startDebugFile_","output_","generateOutput","exit","filename","fs","handle","createWriteStream","write","on","outputList","serializeXml","querySelectorAllByAttrValue","querySelectorAllByAttr","replaceNode","XML_ENTITIES","trimInput_","toArray","XpathUtil","nodeList","nodeArray","matchingStartEnd","tag1","tag2","dp","xmldom","clean_input","mode","Mode","HTTP","currentDocument","formatted","reg","indent","evalXPath","EnginePromise","Dcstr","variables_1","Engine","customLoader","comparator","SYNC","comparators","DynamicCstr","DEFAULT_VALUES","Axis","STYLE","_defaultLocale","LOCALE","defaultLocale","subiso","MODALITY","Speech","structure","ruleSets","strict","isIE","isEdge","rate","pprint","prune","evaluator","defaultEvaluator","defaultParser","DynamicCstrParser","DEFAULT_ORDER","dynamicCstr","defaultCstr","loc","ensureLocale","_cstr","evaluateNode","nodeEvaluator","isNaN","setDynamicCstr","opt_dynamic","feature","dynamic","DynamicProperties","createProp","DOMAIN","updateProperties","getProperties","DefaultComparator","configurate","configBlocks","SREfeature","feat","configFeature","setCustomLoader","BINARY_FEATURES","STRING_FEATURES","getall","mathspeak","clearspeak","setup","L10n","MathMap","BrowserUtil","FileUtil","engine","setMulti","debug","jsonPath","makePath","custom","setupBrowsers","setLocale","loadLocale","EventType","KeyCode","localePath","path","KeyProcessor","Processor","event_util_1","methods","processor","postprocess","postprocessor","print","stringify_","LocalState","speechGenerator","getKey_","keypress","AuralRendering","Enrich","locale_1","Semantic","SpeechGeneratorUtil","WalkerUtil","processor_1","PROCESSORS","get_","expr","xmlTree","_expr","setting","computeMarkup","SHALLOW","nodesXml","nodesClone","orig","computeSpeech","getTree","stree","addRec","semanticMathmlSync","enr","getSemanticRoot","getSpeech","DEEP","setOptions","eml","_walker","numb","NUMBERS","numberToWords","wordOrdinal","numericOrdinal","en","walk","processFile","vulgar","ordinal","number","toDescription","toSemantic","engine_setup_1","ProcessorFactory","math_map_1","opt_output","ASYNC","readFile","writeFile","_err","processFileAsync","readFileSync","inputFileSync_","writeFileSync","processFileSync","engineFeatures","features","standardLoader","opt_value","documentSupported","SystemExternal","extRequire","library","nodeRequire","eval","windowSupported","DOMImplementation","createDocument","commander","SRE_JSON_PATH","mathjaxVersion","updateEvaluator","evaluateString","evaluateBoolean","getLeafNodes","resolveNameSpace","xpathSupported","nameSpaces","xhtml","svg","Resolver","lookupNamespaceURI","evaluateXpath","expression","rootNode","ORDERED_NODE_ITERATOR_TYPE","xpathNode","iterateNext","BOOLEAN_TYPE","booleanValue","STRING_TYPE","stringValue","ownerDocument","AbstractEnrichCase","semantic","CaseBinomial","abstract_enrich_case_1","enrich_mathml_1","enrich_attr_1","mathmlTree","getMathml","Attribute","TYPE","ADDED","CaseDoubleScript","EnrichMathml","mmlTag","baseSem","supSem","subSem","supMml","baseMml","subMml","CHILDREN","makeIdList","getInnerNode","PARENT","addCollapsedAttribute","CaseEmbellished","semantic_node_1","case_double_script_1","case_multiscripts_1","case_tensor_1","fencedMml","fencedMmlNodes","ofence","ofenceMml","ofenceMap","cfence","cfenceMml","cfenceMap","parentCleanup","fencePointer","makeEmptyNode_","SemanticNode","fencedMap_","getFenced_","getFencesMml_","getFencedMml_","rewrite_","fencedElement","currentNode","contentNodes","sibling","ofenceIds","cfenceIds","ascendNewNode","introduceNewLayer_","specialCase","specialCase_","mmlChildren","dummy","saveChild","cleanupParents_","caller","CaseMultiscripts","CaseTensor","fullOfence","fullFence","fullCfence","currentFence","CaseLimit","walkTree_","introduceNewLayer","CaseLine","CaseMultiindex","multiscriptIndex","collapsePunctuated","createNone_","completeMultiscript","rightIndices","leftIndices","childCounter","completeIndices","query","semantic_skeleton_1","case_multiindex_1","rsup","rsub","collapsed","SemanticSkeleton","interleaveIds","childIds","collapsedLeafs","CaseProof","CaseTable","cloneContentNode","rewriteMfenced","newChildren","lsub","lsup","CaseText","every","CONTENT","prepareMmlString","testTranslation","semanticMathml","semanticMathmlNode","enrich","setPostfix","addPrefix","removeAttributePrefix","EnrichAttributes","Prefix","ALTERNATIVE","COLLAPSED","EMBELLISHED","FENCEPOINTER","ANNOTATION","ATTRIBUTES","OPERATOR","OWNS","ROLE","SPEECH","STRUCTURE","external","attributesXml","getCase","case_binomial_1","case_embellished_1","case_limit_1","case_line_1","case_proof_1","case_table_1","case_text_1","printNodeList__","setOperatorAttribute_","createInvisibleOperator_","parentNode_","isIgnorable_","unitChild_","descendNode_","validLca_","pathToRoot_","attachedElement_","prunePath_","mathmlLca_","lcaType","functionApplication_","isDescendant_","insertNewChild_","mergeChildren_","collectChildNodes_","collateChildNodes_","childrenSubset_","moveSemanticAttributes_","introduceLayerAboveLca","SETTINGS","SemanticAttr","SemanticHeuristics","SemanticUtil","EnrichAttr","enrich_case_1","newContent","childrenList","combineContentChildren","attached","lca","VALID","hasEmptyTag","PRUNED","oldChildren","innerNode","hasMathTag","auxNode","leftIndex","rightIndex","notFirst","collect","rear","semChildren","schild","combine_juxtaposition","oldCounter","appl","functionApplication","leftMost","INVALID","rightMost","leftPath","newLeftPath","rightPath","lIndex","opt_test","remainder","hasIgnoreTag","hasDisplayTag","isOrphanedGlyph","implicit","operator","moNode","remain","nextInner","formattedOutput","wiki","oldMml","fromStructure","skeleton","opt_children","contentIds","mmlChild","AbstractHighlighter","mactionName","currentHighlights","highlight","highlightNode","setHighlighted","highlightAll","mactions","getMactionNodes","unhighlight","isHighlighted","unhighlightNode","unsetHighlighted","unhighlightAll","setColor","colorString","rgba","events","isMactionNode","ATTR","colorizeAll","colorize","uncolorizeAll","uncolorize","fore","ChtmlHighlighter","css_highlighter_1","CssHighlighter","ContrastPicker","ColorPicker","namedColors","red","green","blue","yellow","cyan","magenta","white","black","getChannelColor","deflt","col","channel","normalizeCol","normalizeColor","foreground","DEFAULT_FOREGROUND_","DEFAULT_BACKGROUND_","toHex","hex","rgb","alphaback","alphafore","hue","sat","light","incr","generate","hsl2rgb","increment","abstract_highlighter_1","highlighterMapping_","chtml_highlighter_1","color_picker_1","html_highlighter_1","mml_css_highlighter_1","mml_highlighter_1","svg_highlighter_1","svg_v3_highlighter_1","back","rendererInfo","colorPicker","browser","SvgHighlighter","SvgV3Highlighter","NativeMML","MmlHighlighter","HtmlHighlighter","MmlCssHighlighter","CommonHTML","vpad","hpad","baseVal","picker","StaticTrieNode","AbstractTrieNode","trie_node_1","constraint","children_","TrieNodeKind","getConstraint","getKind","applyTest","addChild","findChildren","rule_","STATIC","getRule","setRule","Trie","trie_node_factory_1","getNode","collectRules_","QUERY","BOOLEAN","printWithDepth_","order_","addRule","getValues","addNode_","DYNAMIC","precondition","booleans","constraints","lookupRules","dynamicSet","newNodes","hasSubtrie","cstrs","subtrie","cstr","collectRules","enumerate","opt_info","enumerate_","byConstraint","nextNode","BooleanTrieNode","QueryTrieNode","constraintTest_","DynamicTrieNode","RootTrieNode","MathCompoundStore","abstract_trie_node_1","abstract_trie_node_2","inter","namespace","localName","namespaceURI","getParameter","equality","category","lookupCategory","applyQuery","applyConstraint","completeLocale","getLocale","locale_ca_1","locale_da_1","locale_de_1","locale_en_1","locale_es_1","locale_fr_1","locale_hi_1","locale_it_1","locale_nb_1","locale_nemeth_1","locale_nn_1","locale_sv_1","ca","da","de","es","fr","nb","nn","sv","nemeth","msgs","SUBISO","setSubiso","getOwnPropertyNames","CORRECTIONS","setCorrection","messages","createLocale","messages_1","FUNCTIONS","MESSAGES","ALPHABETS","COMBINERS","localeFontCombiner","extractString","localEnclose","localRole","localFont","combinePostfixIndex","nestingToString","transformers_1","combiner","MS","ONCE","TWICE","ROOTINDEX","INDEX","enclose","Combiners","locale_util_1","numbers_ca_1","sansserifCombiner","fracNestDepth","combineRootIndex","combineNestedRadical","fontRegexp","plural","si","prefixCombiner","numbers_da_1","tr","radicalNestDepth","capPrefix","postfixCombiner","digitTrans","numbers_de_1","germanPrefixCombiner","germanPostfixCombiner","correctOne","localFontNumber","lowercase","article","decl","der","die","das","masculine","numbers_en_1","numbers_es_1","numbers_fr_1","combineNestedFraction","romanceCombiner","numbers_hi_1","numbers_it_1","italianPostfixCombiner","numbers_nn_1","numbers_nemeth_1","simpleEnglish","languagePrefix","english","_number","germanCombiner","_cap","embellishCombiner","doubleEmbellishCombiner","parensCombiner","identityTransformer","numbers_sv_1","MSroots","embellish","navigate","regexp","unitTimes","ones","tens","special","numberToOrdinal","pluralCase","vulgarSep","numSep","latinSmall","latinCap","greekSmall","greekCap","smallPrefix","digitPrefix","letterTrans","_font","vulgarFractionSmall","_count","_index","identityCombiner","siCombiner","hundredsToWords_","hundred","hundreds","ten","tensToWords_","thousands","gender","_plural","onesOrdinals","onePrefix_","mill","smallOrdinals","tensOrdinals","hund","numStr","huns","hundredsOrdinals","SMALL_ORDINAL","hundredsWords","ordinalsFeminine","ordinalsMasculine","simpleSmallOrdinalsFeminine","simpleSmallOrdinalsMasculine","simpleNumbers","smallDenominators","hundredsToWordsRo_","ord","replaceOrdinal","letOne","endOrdinal","thd","hundredsToWordsGe_","word","numberToWordsGe","numberToWordsRo","convertVulgarFraction","convertible","denStr","enumStr","Number","enumerator","enumer","denom","conversion","Condition","BaseRuleStore","auditory_description_1","dynamic_cstr_1","speech_rule_1","speech_rule_context_1","SpeechRuleContext","parseOrder","initialized","inherits","customTranscriptions","preconditions","speechRules_","rank","parseMethods","defineRule","Generator","generateRules","Action","defineAction","Precondition","definePrecondition","Ignore","ignoreRules","compareStaticConstraints_","cstr1","cstr2","comparePreconditions_","rule1","rule2","prec1","prec2","postc","parseAction","fullPrec","parsePrecondition","parseCstr","SpeechRule","deleteRule","findRule","pred","findAllRules","evaluateDefault","evaluateWhitespace","_str","evaluateCustom","trans","adjust","evaluateCharacter","removeDuplicates","oldRule","getSpeechRules","setSpeechRules","getPreconditions","queryCstr","parsePrecondition_","restCstr","fromString","ruleSet","functions","inheritRules","parseRules","customGenerators","getFullPreconditions","conditions","newDynamic","condition","_conditions","allCstr","addCondition","addConstraint","newConds","dyn","addBaseCondition","cond","addFullCondition","condStr","BrailleStore","semantic_annotations_1","math_store_1","MathStore","descs","annotator","annotators","cstrList","axes","getOrder","getAxes","allProperties","propLists","cstrStrings","components_","createCstr","validOrder","keys1","comp2","TOPIC","BASE_LOCALE","DEFAULT_VALUE","reference","getReference","setReference","compare","value1","value2","index1","index2","numbersToAlpha","ATTRIBUTE","LocaleUtil","currentFlags","parameters_","corrections_","preprocessors_","stateStack_","grammar","parseState","stateStr","corrections","corr","translateString_","translateUnit_","prepareUnit_","baseCstr","cleanUnit_","setParameter","parameter","correction","setPreprocessor","preprocessor","getCorrection","getState","pairs","pushState","assignment","popState","preprocess","runProcessors_","correct","opt_flags","funcs","correctFont_","lookupString","lookupRule","addSiUnitRules","addUnitRules","addFunctionRules","addSymbolRules","defineRules","setSiPrefixes","l10n_1","math_simple_store_1","siPrefixes","prefixes","subStores_","cat","mappings","getSubStore_","setupStore_","defineRulesFromMappings","changeLocale_","newJson","addUnitRules_","MathSimpleStore","opt_cat","defineRuleFromStrings","parseUnicode","keyValue","testDynamicConstraints_","mapping","getRules","oldCstr","r1","r2","BaseUtil","base_rule_store_1","defineAlias","defineSpecializedRule","defineSpecialized","defineRulesAlias","OutputError","findKeep","addAlias_","oldDynamic","opt_action","newCstr","newRule","_old","matchNumber_","substring","locNum","NUMBER","enNum","isEn","DIGIT_GROUP","DECIMAL_MARK","Component","ActionType","actionFromString","NODE","MULTI","PERSONALITY","grammarFromString","quotedString","splitString","bracket","attributesFromString","speechType","actionToString","attributesToString","grammarToString","getGrammar","comps","newComps","user","presetPriority","calculatePriority","constraintValue","priorities","constrs","queryPriorities","attributePriorities","strList","sepPos","search","nextQuot","srf","customQueries","CustomQueries","customStrings","CustomStrings","contextFunctions","ContextFunctions","CustomGenerators","applyCustomQuery","funcName","applySelector","constructString","functs","storeFactory","SpeechRuleEngine","SpeechRules","SpeechRuleStores","braille_store_1","trie_1","trie","evaluators_","debugSpeechRule","queryResult","debugNamedSpeechRule","allRules","timeIn","Date","getTime","evaluateNode_","timeOut","runInSetting","addStore","addEvaluator","processGrammar","fun","getEvaluator","updateConstraint_","evaluateTree_","addPersonality_","multi","saveEngine","selects","evaluateNodeList_","extid","addLayout","sepFunc","sepStr","ctxtFunc","ctxtStr","cont","cFunc","ctxtClosure","sFunc","sepClosure","_multi","numeral","realValue","addRelativePersonality_","addExternalAttributes_","hasAttributes","descrPersonality","valueSet","makeSet_","preference","preferences","matchingRules","pickMostConstraint_","_dynamic","stores","getStore","FunctionsStore","checkCustomFunctionSyntax_","contentIterator","pauseSeparator","nodeCounter","localLength","localCounter","localContext","contextDescr","getTreeFromString","semantic_tree_1","SemanticTree","annotate","visitors","semantic_annotator_1","SemanticAnnotator","visit","SemanticVisitor","addAnnotation","lookupSecondary","isEmbellishedType","isMatchingFence","invisibleComma","invisiblePlus","invisibleTimes","lookupMeaning","lookupRole","lookupType","allLettersRegExp","invisibleComma_","commas","dashes","tildes","openClosePairs","topBottomPairs","leftFences","rightFences","topFences","bottomFences","neutralFences","metricFences","capitalLatin","smallLatin","capitalLatinFullWidth","smallLatinFullWidth","capitalLatinBold","smallLatinBold","capitalLatinItalic","smallLatinItalic","capitalLatinBoldItalic","smallLatinBoldItalic","capitalLatinScript","smallLatinScript","capitalLatinBoldScript","smallLatinBoldScript","capitalLatinFraktur","smallLatinFraktur","capitalLatinDoubleStruck","smallLatinDoubleStruck","capitalLatinBoldFraktur","smallLatinBoldFraktur","capitalLatinSansSerif","smallLatinSansSerif","capitalLatinSansSerifBold","smallLatinSansSerifBold","capitalLatinSansSerifItalic","smallLatinSansSerifItalic","capitalLatinSansSerifBoldItalic","smallLatinSansSerifBoldItalic","capitalLatinMonospace","smallLatinMonospace","latinDoubleStruckItalic","capitalGreek","smallGreek","capitalGreekBold","smallGreekBold","capitalGreekItalic","smallGreekItalic","capitalGreekBoldItalic","smallGreekBoldItalic","capitalGreekSansSerifBold","smallGreekSansSerifBold","capitalGreekSansSerifBoldItalic","smallGreekSansSerifBoldItalic","greekDoubleStruck","greekSpecial","greekSpecialBold","greekSpecialItalic","greekSpecialSansSerifBold","hebrewLetters","allLetters","invisiblePlus_","multiplications","invisibleTimes_","numbers","otherNumbers","prefixFunctions","symbolSetToSemantic_","meaning_","st","meaning1","meaning2","secondary_","secKey","addSecondary_","SemanticMeaningCollator","SemanticNodeCollator","SemanticDefault","semantic_ordering_1","meaning","retrieveNode","SemanticCollator","collator","copyCollator","minimize","minimalCollator","isMultiValued","outer","collateMeaning","newDefault","oldDefault","SemanticMultiHeuristic","SemanticTreeHeuristic","SemanticAbstractHeuristic","predicate","blacklist","updateFactory","heuristics","convert_juxtaposition","multioperator","heuristic","opt_alternative","semantic_heuristic_1","SemanticPred","semantic_processor_1","convertPrePost","rel","prevExists","nextExists","recurseJuxtaposition","acc","isImplicitOp","newOp","makeBranchNode","isOperator","addMathmlNodes","nobreaking","isSimpleFunction","singleRole","curr","partition","partitionNodes","rels","juxtapositionPrePost","SemanticMathml","semantic_parser_1","SemanticAbstractParser","parseMap_","SEMANTICS","semantics_","MATH","rows_","MROW","MPADDED","MSTYLE","MFRAC","fraction_","MSUB","limits_","MSUP","MSUBSUP","MOVER","MUNDER","MUNDEROVER","MROOT","root_","MSQRT","sqrt_","MTABLE","table_","MLABELEDTR","tableLabeledRow_","MTR","tableRow_","MTD","tableCell_","text_","MTEXT","MSPACE","space_","MI","identifier_","MN","number_","operator_","MFENCED","fenced_","MENCLOSE","enclosed_","MMULTISCRIPTS","multiscripts_","empty_","MACTION","action_","getFactory","defaultMap","getAttribute_","setNodeFactory","dummy_","makeEmptyNode","proof","parseList","purgeNodes","upper","fractionLikeNode","limitNode","semNodes","tableToMultiline","measure","in","makeUnprocessed","leaf_","updateContent","identifierNode","operatorNode","sepValue","tablesInRow","scriptcount","tensor","pseudoTensor","makeLeafNode","semantic_attr_1","fromXml","parseAnnotation","processChildren","opt_name","brief","xmlNodeList","xmlNodes","tagNode","xmlAttributes","annotationXml","mean","mmlNodes","removeMathml","addMathml","removeMathmlNodes","appendContentNode","removeContentNode","displayTree","displayTree_","addAnnotation_","getAnnotation","hasAnnotation","addExternalAttributes","parseAttributes","mmlList","depthString","mathmlTreeString","SemanticNodeFactory","semantic_default_1","semantic_default_2","leafMap","idCounter_","makeNode","createNode_","makeContentNode","makeMultipleContentNodes","opt_content","SemanticComparator","meanings","semantic_node_factory_1","factory_","setFactory","getType","isMembership","elligibleRightNeutral","elligibleLeftNeutral","compareNeutralFences","isNeutralFence","isImplicit","isPureUnit","isUnitCounter","isNumber","isSingletonSetContent","scriptedElement_","illegalSingleton_","isSetNode","isRightBrace","isLeftBrace","singlePunctAtPosition","isSimpleFunctionHead","isLimitBase","isBinomial","lineIsLabelled","tableIsMultiline","tableIsCases","isFencedElement","tableIsMatrixOrVector","isTableOrMultiline","isElligibleEmbellishedFence","isFence","isPunctuation","isRelation","isGeneralFunctionBoundary","isIntegralDxBoundarySingle","isIntegralDxBoundary","isBigOpBoundary","isPrefixFunctionBoundary","isSimpleFunctionScope","isRole","embellishedType","semantic_util_1","recurseBaseNode","bothSide","inftyReg","some","firstNode","secondNode","firstChar","_table","prevNodes","puncts","fence1","fence2","getEmbellishedInner","includes","SemanticProcessor","funcAppls","rowToLine_","tableToMatrixOrVector_","rewriteFencedLine_","binomialForm_","classifyMultiline","classifyTable","numberRole_","exprFont_","multiline","firstRole","computeColumns_","classifyByColumns_","detectCaleyTable","cl","rl","cayleySpacing","separateSemantics","findSemantics","getSemantics","removePrefix","matchSpaces_","mt1","mt2","spacer","getSpacer_","fenceToPunct_","newRole","FENCE_TO_PUNCT_","classifyFunction_","funcNode","restNodes","propagateFunctionRole_","CLASSIFY_FUNCTION_","getFunctionOp_","tableToVector_","tableToMatrix_","assignRoleToRow_","getComponentRoles_","vector","tableToSquare_","tableToCases_","openFence","opt_role","nextSeparatorFunction_","sepList","singleFont","purgeFences_","newRel","newComp","currentRel","currentComp","rewriteFencedNode_","rewritten","rewriteFence_","newFence","propagateFencePointer_","relation","_alternatives","testColumns_","isPureRelation_","isEndRelation_","opt_right","getNodeFactory","leaf","implicitNode","getMixedNumbers_","combineUnits_","implicitNode_","getFencesInRow_","getPunctuationInRow_","getTextInRow_","getFunctionsInRow_","relationsInRow_","MML_TO_LIMIT_","MML_TO_BOUNDS_","accentNode_","makeLimitNode_","horizontalFencedNode_","enume","isZeroLength","child0","child1","fractionNode_","scriptNode_","nonEmptySub","nonEmptySup","mmlchild","mathjaxFont","MATHJAX_FONTS","cleaned","cleanInference","axiom","inference","formulas","getFormulas","conclusion","premises","getLabel","findNestedRow","sem","premRow","concRow","premTable","topRow","premNodes","prem","conc","findNestedRow_","operators","infixNode_","opNode","explicitMixed_","concatNode_","prefixNode_","negatives","postfixNode_","postfixes","unitNode","nextComp","dummyNode_","firstRel","operationsInRow_","sliceNodes","operationsTree_","tail","lastop","opt_prefixes","appendOperand_","division","appendDivisionOp_","appendExistingOperator_","appendMultiplicativeOp_","appendAdditiveOp_","appendLastOperand_","lastRoot","felem","fences_","fences","openStack","contentStack","openPred","firstOpen","cutLength","innerNodes","neutralFences_","lastOpen","rightContent","firstFence","restContent","combineFencedContent_","leftContent","leftFence","rightFence","midFences","midContent","classifyHorizontalFence_","setExtension_","extender","allowedType","firstComp","relCounter","punctuatedNode_","punctuations","punct","commata","comma","accentRole_","child2","underAccent","opt_result","processedRest","newRest","getFunctionArgs_","getIntegralArgs_","intvar","integrand","integralNode_","functionNode_","bigOpNode_","firstArg","applNode","funcop","functionalNode_","bigOp","oldParent","opt_noSingle","parents","levelsMap","fromTree","fromNode","fromNode_","skel","fromString_","simpleCollapseStructure","strct","contentCollapseStructure","second","coll","tree_","makeSexp_","struct","contentStructure","addOwns_","leafs","realLeafs_","sexp","populate","populate_","layer","newElement","newParents","isRoot","directChildren","subtreeNodes","subtreeNodes_","subtree","semantic_mathml_1","unitVisitor","opt_mathml","fromRoot","opt_brief","xmlRoot","_info","hasLeafTag","directSpeechKeys","DISPLAYTAGS","EMPTYTAGS","IGNORETAGS","LEAFTAGS","opt_reverse","AbstractSpeechGenerator","rebuild_stree_1","rebuilt_","options_","getRebuilt","setRebuilt","rebuilt","getOptions","generateSpeech","RebuildStree","AdhocSpeechGenerator","abstract_speech_generator_1","ColorGenerator","contrast","visitStree_","leaves","factors","_xml","colorLeaves_","streeRoot","colorLeave_","aux","getBySemanticId","DirectSpeechGenerator","DummySpeechGenerator","NodeSpeechGenerator","tree_speech_generator_1","TreeSpeechGenerator","generatorMapping_","adhoc_speech_generator_1","color_generator_1","direct_speech_generator_1","dummy_speech_generator_1","node_speech_generator_1","summary_speech_generator_1","Direct","Adhoc","Color","Dummy","Summary","SummarySpeechGenerator","computeSummary_","retrieveSummary","connectAllMactions","connectMactions","nodeAtPosition_","computePrefix_","retrievePrefix","addModality","addSpeech","recomputeMarkup","recomputeSpeech","speech_rule_engine_1","pathEquals","snode","sxml","aid","lchild","cspan","pid","nodeDict","innerMml","INTERVALS","makeLetter","numberRules","alphabetRules","getFont","makeInterval","makeDomains_","Domains_","Embellish","Font","alph","combineKeys","obj1","obj2","capital","num2str","subst","realFont","unicodes","letters","unicode","domains","transformers","transformer","oldLocale","intervals","int","interval","LATINCAP","LATINSMALL","FULLWIDTH","SANSSERIFBOLD","GREEKCAP","GREEKSMALL","DIGIT","SUPER","SUB","CIRCLED","PARENTHESIZED","PERIOD","NEGATIVECIRCLED","DOUBLECIRCLED","CIRCLEDSANSSERIF","NEGATIVECIRCLEDSANSSERIF","COMMA","SQUARED","NEGATIVESQUARED","Comparator","dynamic_cstr_2","fromPreference","pref","PREFERENCES","validKeys","pair","toPreference","getLocalePreferences","getLocalePreferences_","smartPreferences","smart","relevantPreferences","getFocus","getSemanticPrimary","addPreference","roles","SEMANTIC_MAPPING_","findPreference","prefs","locPrefs","allSty","sty","AbsoluteValue","Bar","Caps","CombinationPermutation","Currency","Ellipses","Enclosed","Exponent","Fraction","Functions","ImpliedTimes","Log","MultiLineLabel","MultiLineOverview","MultiLinePausesBetweenColumns","MultsymbolDot","MultsymbolX","Paren","Roots","SetMemberSymbol","Sets","TriangleSymbol","Trig","VerticalLine","pref1","pref2","length1","length2","initial","REVERSE_MAPPING","triple","ClearspeakRules","StoreUtil","ClearspeakUtil","MathspeakUtil","NumbersUtil","CTFpauseSeparator","CTFnodeCounter","CTFcontentIterator","CSFvulgarFraction","vulgarFraction","CQFvulgarFractionSmall","isSmallVulgarFraction","CQFcellsSimple","allCellsSimple","CSFordinalExponent","ordinalExponent","CSFwordOrdinal","CQFmatchingFences","matchingFences","CSFnestingDepth","nestingDepth","CQFfencedArguments","fencedArguments","CQFsimpleArguments","simpleArguments","CQFspaceoutNumber","spaceoutNumber","layoutFactor_","fencedFactor_","simpleFactor_","insertNesting","NESTING_DEPTH","allTextLastContent_","isUnitExpression","allIndices_","isInteger_","simpleCell_","simpleNode","hasPreference","isSimpleFraction_","isSimpleNumber_","isNumber_","isLetter_","isSimple_","isSimpleLetters_","isSimpleDegree_","isSimpleNegative_","isSimpleFunction_","isSimpleExpression","loadAjax","loadFileSync","loadFile","parseMaps","retrieveFiles","AlphabetGenerator","addSymbols","symbols","units","_init","_loadLocale","getJsonIE_","retrieveMaps","addMaps","opt_locale","rej","httpRequest","XMLHttpRequest","onreadystatechange","responseText","send","defLoc","leftSubscriptBrief","leftSuperscriptBrief","leftSubscriptVerbose","leftSuperscriptVerbose","baselineBrief","baselineVerbose","superscriptVerbose","subscriptVerbose","superscriptBrief","subscriptBrief","MathspeakRules","MathspeakFrenchUtil","UnitUtil","CQFspaceoutIdentifier","spaceoutIdentifier","CSFspaceoutText","spaceoutText","CSFopenFracVerbose","openingFractionVerbose","CSFcloseFracVerbose","closingFractionVerbose","CSFoverFracVerbose","overFractionVerbose","CSFopenFracBrief","openingFractionBrief","CSFcloseFracBrief","closingFractionBrief","CSFopenFracSbrief","openingFractionSbrief","CSFcloseFracSbrief","closingFractionSbrief","CSFoverFracSbrief","overFractionSbrief","CSFopenRadicalVerbose","openingRadicalVerbose","CSFcloseRadicalVerbose","closingRadicalVerbose","CSFindexRadicalVerbose","indexRadicalVerbose","CSFopenRadicalBrief","openingRadicalBrief","CSFcloseRadicalBrief","closingRadicalBrief","CSFindexRadicalBrief","indexRadicalBrief","CSFopenRadicalSbrief","openingRadicalSbrief","CSFindexRadicalSbrief","indexRadicalSbrief","CQFisSmallRoot","smallRoot","CSFsuperscriptVerbose","CSFsuperscriptBrief","CSFsubscriptVerbose","CSFsubscriptBrief","CSFbaselineVerbose","CSFbaselineBrief","CSFleftsuperscriptVerbose","CSFleftsubscriptVerbose","CSFrightsuperscriptVerbose","CSFrightsubscriptVerbose","CSFleftsuperscriptBrief","CSFleftsubscriptBrief","CSFrightsuperscriptBrief","CSFrightsubscriptBrief","CSFunderscript","nestedUnderscript","CSFoverscript","nestedOverscript","CSFendscripts","endscripts","CTFordinalCounter","ordinalCounter","CTFwordCounter","wordCounter","CQFdetIsSimple","determinantIsSimple","CSFRemoveParens","removeParens","CQFresetNesting","resetNestingDepth","CGFbaselineConstraint","generateBaselineConstraint","CGFtensorRules","generateTensorRules","CTFunitMultipliers","unitMultipliers","CQFoneLeft","oneLeft","overscoreNestingDepth","underscoreNestingDepth","getRootIndex","nestedRadical","radicalNestingDepth","nestedSubSuper","nestedFraction","fractionNestingDepth","computeNestingDepth_","containsAttr","getNestingDepth","nestingBarriers","spaceoutNodes","sn","opt_barrierTags","opt_barrierAttrs","opt_func","xmlText","barriers","subNode","opt_end","JOINER_FRAC","nodeRole","JOINER_SUBSUPER","START","FRAC_V","FRAC_OVER","FRAC_B","FRAC_S","NEST_FRAC","ENDFRAC","SUBSCRIPT","SUP","SUPERSCRIPT","NESTED","STARTROOT","ENDROOT","NEST_ROOT","UNDER","UNDERSCRIPT","ENDSCRIPTS","OVERSCRIPT","ancestrify","elemList","notify","mainList","breakList","breakCstrs","brk","componentString","childNumber","generateTensorRuleStrings_","constellation","verbString","briefString","constel","childString","compString","constellations","verbStr","briefStr","baselineStr","implicitIterator","relationIterator","propagateNumber","checkParent_","NUMBER_INHIBITORS_","NUMBER_PROPAGATORS_","enlargeFence","indexRadical","closingRadical","openingRadical","hyperFractionBoundary","overBevelledFraction","overFraction","closingFraction","openingFraction","opt_depth","enclosed","FRACTION_REPEAT","FRACTION_START","FRACTION_END","FRACTION_OVER","HYPER","leftChild","rightChild","ordinalPosition","BrailleRules","OtherRules","PrefixRules","NemethUtil","CSFordinalPosition","CSFopenFraction","CSFcloseFraction","CSFoverFraction","CSFoverBevFraction","CQFhyperFraction","CSFopenRadical","CSFcloseRadical","CSFindexRadical","CSFsubscript","CSFsuperscript","CSFbaseline","CTFrelationIterator","CTFimplicitIterator","INIT_","clearspeak_rules_1","mathspeak_rules_1","other_rules_1","funcStore","leftMostUnit","rightMostUnit","_context","SCRIPT_ELEMENTS","AbstractWalker","clearspeak_preferences_1","focus_1","walker_1","modifier","keyMapping","TAB","DASH","expand","HOME","home","summary","Z","detail","virtualize","undo","LESS","previousRules","GREATER","nextRules","cursors","xml_","focus_","active_","SRE_ID_ATTR","ID_COUNTER","rootId","xmlString_","moved","WalkerMoves","ENTER","getXml","rebuildStree","isActive","toggleActive_","WalkerState","setState","primaryId","singletonFocus","updateFocus","setFocus","getDepth","levels","isSpeech","focusDomNodes","getDomNodes","focusSemanticNodes","getSemanticNodes","specialMove","DEPTH","depth_","SUMMARY","summary_","DETAIL","detail_","mergePrefix_","initLevels","REPEAT","primary","getDomPrimary","actionable_","EXPAND","dispatchEvent","restoreState","findFocusOnLevel","Focus","previousLevel","dnode","nextLevel","splitAttribute","toIds","retrieveVisuals","focusFromId","semStree","mmlStree","subtreeIds","opt_undo","nextStyle","refocus","getNodes","peek","postfix_","oldDepth","EXPANDABLE","COLLAPSIBLE","LEVEL","audio","sid","oldAlt","DummyWalker","abstract_walker_1","_role","domNodes","domPrimary_","allNodes","nodeIds","idFunc","dict","generateAllVisibleNodes_","domNode","virtual","Levels","level_","mmlRoot","assembleTree","isPunctuated","fcontent","setParent","postProcess","fencepointer","makePunctuation","makePunctuated","punctuated","collapsedChildren_","makeEmpty","makeIndex","subscript","score","recurseCollapsed","SemanticWalker","levels_1","makePairList","combinePunctuations","prepunct","SyntaxWalker","TableWalker","syntax_walker_1","firstJump","key_","row_","currentTable_","ZERO","jumpCell","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","eligibleCell_","verticalMove_","isInTable_","isLegalJump_","jumpCell_","ELIGIBLE_CELL_ROLES","origFocus","origIndex","origLevel","parentIndex","semRow","xmlTable","rowNode","xmlRow","ELIGIBLE_TABLE_TYPES","resetState","walkerMapping_","dummy_walker_1","semantic_walker_1","table_walker_1","p1","p2","p3","p4","syntax","semanticNodes","semanticNode"],"sourceRoot":""}