{"version":3,"file":"static/js/npm.fontkit.1cebdcf7.js","mappings":"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MAAQ,QACR,MAAQ,QACR,KAAQ,MACR,KAAQ,KACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,MAAQ,QACR,KAAQ,QACR,KAAQ,MACR,KAAQ,QACR,KAAQ,MACR,KAAQ,QACR,KAAQ,KACR,MAAQ,QACR,MAAQ,QACR,KAAQ,KACR,KAAQ,MACR,MAAQ,QACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,UACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,MACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,UACR,KAAQ,QACR,KAAQ,QACR,KAAQ,MACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,MACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,SACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,MACR,KAAQ,MACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,UACR,KAAQ,KACR,KAAQ,UACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,MACR,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GAEJ,CACI,GACA,gBACA,SACA,GAEJ,CACI,GACA,UACA,SACA,GAEJ,CACI,GACA,QAnJR,MACI,aAAOnI,CAAOmB,EAAQvD,EAAQyK,GAC1B,IAAIuB,EAAYvB,EAASwB,MAGzB,KAAMxB,EAASzR,OAASgT,GAAUvB,EAASwB,KAC/C,GA+II,MAEJ,CACI,GACA,QACA,IAAQP,GAA0C,IAAQ1D,GAA2C,CACjGxM,KAAM,UAEV,QAOJ0Q,GAA2C,CAC3C,UACA,QACA,SACA,WACA,aACA,SACA,UACA,YACA,aACA,YACA,aACA,WACA,OACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,YACA,OACA,QACA,UACA,WACA,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,cACA,YACA,eACA,cACA,aACA,YACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,aACA,OACA,WACA,WACA,MACA,SACA,UACA,WACA,cACA,eACA,gBACA,gBACA,iBACA,KACA,KACA,SACA,SACA,YACA,iBACA,YACA,SACA,iBACA,eACA,gBACA,iBACA,WACA,cACA,eACA,QACA,QACA,aACA,QACA,SACA,QACA,YACA,WACA,OACA,UACA,eACA,SACA,QACA,SACA,KACA,cACA,SACA,SACA,KACA,eACA,KACA,WACA,SACA,SACA,KACA,aACA,cACA,aACA,KACA,YACA,MACA,UACA,YACA,QACA,aACA,SACA,YACA,SACA,QACA,gBACA,cACA,aACA,QACA,MACA,WACA,gBACA,YACA,SACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,YACA,SACA,SACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,YACA,SACA,cACA,oBACA,iBACA,iBACA,iBACA,aACA,oBACA,qBACA,iBACA,iBACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,gBACA,sBACA,iBACA,gBACA,YACA,YACA,eACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,KACA,MACA,MACA,oBACA,qBACA,kBACA,iBACA,aACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,gBACA,YACA,SACA,aACA,kBACA,eACA,cACA,cACA,cACA,gBACA,aACA,aACA,iBACA,cACA,aACA,iBACA,cACA,YACA,eACA,oBACA,YACA,eACA,cACA,eACA,WACA,YACA,eACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,iBACA,iBACA,gBACA,cACA,cACA,mBACA,cACA,iBACA,aACA,UACA,gBACA,cACA,cACA,mBACA,iBACA,cACA,cACA,mBACA,iBACA,WACA,cACA,cACA,cACA,mBACA,cACA,iBACA,UACA,cACA,cACA,cACA,mBACA,iBACA,cACA,aACA,iBACA,UACA,UACA,UACA,UACA,QACA,OACA,OACA,QACA,SACA,UACA,QACA,YAIJ,IAAIC,GAA4C,CAC5C,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,QACA,SACA,WACA,aACA,SACA,UACA,YACA,aACA,YACA,aACA,WACA,OACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,YACA,OACA,QACA,UACA,WACA,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,cACA,YACA,eACA,cACA,aACA,YACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,aACA,OACA,WACA,WACA,MACA,SACA,UACA,WACA,cACA,eACA,gBACA,gBACA,iBACA,KACA,KACA,GACA,SACA,SACA,YACA,iBACA,GACA,YACA,SACA,iBACA,eACA,gBACA,iBACA,WACA,cACA,GACA,eACA,GACA,QACA,QACA,aACA,QACA,SACA,QACA,YACA,WACA,GACA,OACA,UACA,GACA,eACA,SACA,QACA,SACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,KACA,GACA,cACA,GACA,GACA,GACA,GACA,SACA,SACA,KACA,eACA,GACA,GACA,GACA,GACA,GACA,KACA,GACA,GACA,GACA,WACA,GACA,GACA,SACA,SACA,KACA,cAqQAC,GAA4C,CAC5C,UACA,QACA,SACA,WACA,aACA,SACA,UACA,YACA,aACA,YACA,aACA,WACA,OACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,YACA,OACA,QACA,UACA,WACA,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,cACA,YACA,eACA,cACA,aACA,YACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,aACA,OACA,WACA,WACA,MACA,SACA,UACA,WACA,cACA,eACA,gBACA,gBACA,iBACA,KACA,KACA,SACA,SACA,YACA,iBACA,YACA,SACA,iBACA,eACA,gBACA,iBACA,WACA,cACA,eACA,QACA,QACA,aACA,QACA,SACA,QACA,YACA,WACA,OACA,UACA,eACA,SACA,QACA,SACA,KACA,cACA,SACA,SACA,KACA,eACA,KACA,WACA,SACA,SACA,KACA,aACA,cACA,aACA,KACA,YACA,MACA,UACA,YACA,QACA,aACA,SACA,YACA,SACA,QACA,gBACA,cACA,aACA,QACA,MACA,WACA,gBACA,YACA,SACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,YACA,SACA,SACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,YACA,UAyQAC,GAAqC,IAAI,KAAc,CACvDvP,SAAU,IAAI,KAAgB,MAC9BwP,gBAAiB,KACjBC,aAAc,KACdC,eAAgB,IAAI,KAAa,KAAe,kBAEhDC,GAAsC,IAAI,KAAc,CACxD3J,IAAK,IAAI,KAAc,GACvB4J,QAAS,IAAI,KAAe,KAAeL,GAAoC,CAC3E7Q,KAAM,aAGVmR,GAA+B,IAAI,KAAc,CACjDC,eAAgB,IAAI,KAAe,KAAeP,IAClDrJ,MAAO,KACP6J,eAAgB,IAAI,KAAaJ,GAAqC,WAEtEK,GAAqC,IAAI,KAAc,CACvDhK,IAAK,IAAI,KAAc,GACvBiK,OAAQ,IAAI,KAAe,KAAeJ,GAA8B,CACpEnR,KAAM,aAGVwR,GAA4C,IAAI,KAAaF,GAAoC,MAIjGG,GAAsC,IAAI,KAAc,CACxDvP,QAAS,KACT6E,OAAQ,OAER2K,GAA2C,IAAI,KAAc,CAC7DC,cAAe,IAAI,KAAe,KAAeF,IACjDG,YAAa,KACbC,kBAAmB,IAAI,KAAa,KAAe,iBAEnDC,GAAsC,IAAI,KAAc,CACxDxK,IAAK,IAAI,KAAc,GACvByK,QAAS,IAAI,KAAe,KAAeL,GAA0C,CACjF1R,KAAM,aAGVgS,GAA4C,IAAI,KAAaF,GAAqC,MAClGG,GAAoC,IAAI,KAAc,CACtDC,mBAAoB,KACpBzP,MAAO,IAAI,KAAgB,KAAc,CACrC,cACA,mBACA,kBACA,cACA,0BAGR,SAAS0P,GAA0CC,GAC/C,IAAIC,EAAS,IAAI,KAAc,CAC3BC,WAAY,KACZ7P,MAAOwP,GACPM,cAAe,KACfC,UAAW,IAAI,KAAa,IAAI,KAAe,KAAeJ,GAAW,iBACzEK,iBAAkB,IAAI,KAAgB,MAAgBlS,GAAIA,EAAEkC,MAAMA,MAAMiQ,wBAE5E,OAAO,IAAI,KAAiB,IAAI,KAAe,KAAeL,GAAS,KAC3E,CAIA,IAAIM,GAAoC,IAAI,KAAc,CACtDxF,MAAO,KACPC,IAAK,KACLwF,mBAAoB,OAEpBC,GAA2C,IAAI,KAAuB,KAAe,CACrF,EAAG,CACCC,WAAY,KACZC,OAAQ,IAAI,KAAa,KAAe,eAE5C,EAAG,CACCC,WAAY,KACZC,aAAc,IAAI,KAAaN,GAAmC,iBAMtEO,GAAyC,IAAI,KAAc,CAC3D/F,MAAO,KACPC,IAAK,KACL+F,MAAO,OAEPC,GAA4C,IAAI,KAAuB,KAAe,CACtF,EAAG,CACCC,WAAY,KACZP,WAAY,KACZQ,gBAAiB,IAAI,KAAa,KAAe,eAErD,EAAG,CACCC,gBAAiB,KACjBC,iBAAkB,IAAI,KAAaN,GAAwC,sBAG/EO,GAA4C,IAAI,KAAc,CAC9DhX,EAAG,KACH0R,EAAG,KACHuF,YAAa,OAKbC,GAAqC,IAAI,KAAc,CACvDC,cAAe,KACfC,gBAAiB,OAEjBC,GAA6B,IAAI,KAAc,CAC/ChB,WAAY,KACZlB,YAAa,KACbmC,MAAO,IAAI,KAAa,MAAgBxT,GAAIA,EAAEuS,WAAa,IAC3DkB,cAAe,IAAI,KAAaL,GAAoC,iBAEpEM,GAAgC,IAAI,KAAa,IAAI,KAAe,KAAeH,IAA6B,MAChHI,GAAkC,IAAI,KAAc,CACpDpB,WAAY,KACZlB,YAAa,KACbuC,QAAS,IAAI,KAAa,MAAgB5T,GAAIA,EAAEuS,WAAa,IAC7DkB,cAAe,IAAI,KAAaL,GAAoC,iBAEpES,GAAiC,IAAI,KAAa,IAAI,KAAe,KAAeF,IAAkC,MACtHG,GAA4C,IAAI,KAAuB,KAAe,CACtF,EAAG,CACCC,SAAU,IAAI,KAAe,KAAezB,IAC5C0B,aAAc,KACdC,SAAU,IAAI,KAAa,IAAI,KAAe,KAAeP,IAAgC,iBAEjG,EAAG,CACCK,SAAU,IAAI,KAAe,KAAezB,IAC5C4B,SAAU,IAAI,KAAe,KAAerB,IAC5CsB,YAAa,KACbC,SAAU,IAAI,KAAa,IAAI,KAAe,KAAeP,IAAiC,gBAElG,EAAG,CACCtB,WAAY,KACZlB,YAAa,KACbgD,UAAW,IAAI,KAAa,IAAI,KAAe,KAAe/B,IAA2C,cACzGmB,cAAe,IAAI,KAAaL,GAAoC,kBAMxEkB,GAAkC,IAAI,KAAc,CACpDC,oBAAqB,KACrBC,UAAW,IAAI,KAAa,KAAe,uBAC3CC,gBAAiB,KACjBjB,MAAO,IAAI,KAAa,MAAgBxT,GAAIA,EAAEyU,gBAAkB,IAChEC,oBAAqB,KACrBC,UAAW,IAAI,KAAa,KAAe,uBAC3CtD,YAAa,KACboC,cAAe,IAAI,KAAaL,GAAoC,iBAEpEwB,GAAqC,IAAI,KAAa,IAAI,KAAe,KAAeN,IAAkC,MAC1HO,GAA4C,IAAI,KAAuB,KAAe,CACtF,EAAG,CACCd,SAAU,IAAI,KAAe,KAAezB,IAC5CwC,WAAY,KACZC,cAAe,IAAI,KAAa,IAAI,KAAe,KAAeH,IAAqC,eAE3G,EAAG,CACCb,SAAU,IAAI,KAAe,KAAezB,IAC5C0C,kBAAmB,IAAI,KAAe,KAAenC,IACrDoC,cAAe,IAAI,KAAe,KAAepC,IACjDqC,kBAAmB,IAAI,KAAe,KAAerC,IACrDiC,WAAY,KACZK,cAAe,IAAI,KAAa,IAAI,KAAe,KAAeP,IAAqC,eAE3G,EAAG,CACCL,oBAAqB,KACrBa,kBAAmB,IAAI,KAAa,IAAI,KAAe,KAAe9C,IAA2C,uBACjHmC,gBAAiB,KACjBY,cAAe,IAAI,KAAa,IAAI,KAAe,KAAe/C,IAA2C,mBAC7GoC,oBAAqB,KACrBY,kBAAmB,IAAI,KAAa,IAAI,KAAe,KAAehD,IAA2C,uBACjHjB,YAAa,KACboC,cAAe,IAAI,KAAaL,GAAoC,kBAQlDmC,GAAgC,IAAI,KAAa,GAAI,KAAM,IACjFC,GAA8C,IAAI,KAAc,CAChEC,WAAYF,GACZG,UAAWH,GACXI,SAAUJ,KAEVK,GAA4C,IAAI,KAAc,CAC9DC,UAAW,KACXC,YAAa,KACbC,iBAAkB,IAAI,KAAa,IAAI,KAAaP,GAA6C,aAAc,iBAE/GQ,GAAiC,IAAI,KAAc,CACnDC,YAAa,IAAI,KAAa,MAAejW,GAAIA,EAAEiE,OAAOiS,kBAC1DC,aAAc,IAAI,KAAa,MAAcnW,GAAIA,EAAEiE,OAAOmS,iBAAmBpW,EAAEiE,OAAOiS,kBACtFG,OAASrW,GAAIA,EAAEiW,YAAYK,OAAOtW,EAAEmW,gBAEpCI,GAA0C,IAAI,KAAc,CAC5DC,UAAW,KACXN,gBAAiB,KACjBE,iBAAkB,KAClBK,cAAe,IAAI,KAAa,KAAe,oBAC/CC,UAAW,IAAI,KAAaV,GAAgC,eAE5DW,GAA4C,IAAI,KAAc,CAC9D/Z,OAAQ,KACRga,oBAAqB,IAAI,KAAe,KAAehB,IACvDiB,mBAAoB,KACpBC,kBAAmB,IAAI,KAAa,IAAI,KAAe,KAAeP,IAA0C,wBAIvFQ,GAAuC,IAAI,KAAuB,KAAe,CAC1G,EAAG,CACCC,UAAW,KACXA,UAAW,KACXC,oBAAqB1B,GACrB2B,oBAAqB3B,MAGzB4B,GAAqC,IAAI,KAAc,CACvDC,eAAgB,KAChBC,eAAgB,IAAI,KAAa,IAAI,KAAe,KAAeN,IAAuC,oBAE1GO,GAAuD,IAAI,KAAc,CACzEC,aAAc,KACdC,sBAAuB,IAAI,KAAe,KAAmBrG,GAA2C,CACpG1R,KAAM,aAGVgY,GAAiD,IAAI,KAAc,CACnE9V,QAAS,KACT+V,kBAAmB,KACnBC,cAAe,IAAI,KAAaL,GAAsD,uBAEtFM,GAA+C,IAAI,KAAc,CACjEC,aAAc,IAAI,KAAe,KAAeV,GAAoC,CAChF1X,KAAM,WAEVqY,yBAA0B,IAAI,KAAe,KAAeL,GAAgD,CACxGhY,KAAM,aAGVsY,GAA4C,IAAI,KAAc,CAC9DC,aAAc,KACdC,aAAc,KACdC,4BAA6B,KAC7BC,wBAAyB,IAAI,KAAaP,GAA8C,iCAM5F,MAAMQ,GACF,MAAA/R,CAAOmB,EAAQvD,EAAQyK,GACnB,OAAI7Q,KAAKwa,cAAc3J,EAAS,IAAY7Q,KAAKwa,cAAc3J,EAAS,IACjE7Q,KAAK4B,KAAK4G,OAAOmB,EAAQvD,EAAQyK,EAC5C,CACA,IAAAzG,CAAKtK,EAAOgJ,GACR,OAAO9I,KAAK4B,KAAKwI,KAAKtK,EAAOgJ,EACjC,CACA,MAAAsG,CAAOzF,EAAQ7J,EAAOgJ,GAClB,IAAI2R,EAAQza,KAAKwa,cAActQ,QAAQpK,GACvC,OAAe,IAAX2a,EAAqBA,EAClBza,KAAK4B,KAAKwN,OAAOzF,EAAQ7J,EAAOgJ,EAC3C,CACA,WAAA0G,CAAYgL,EAAe5Y,GACvB5B,KAAKwa,cAAgBA,EACrBxa,KAAK4B,KAAOA,CAChB,EAEJ,MAAM8Y,WAAiD,KACnD,MAAAlS,CAAOmB,GACH,OAAqC,IAA9B,KAAanB,OAAOmB,EAC/B,CACA,WAAA6F,GACIuC,MAAM,QACV,EAEJ,IAAI4I,GAA+B,IAAI,KAAc,CACjDC,MAAO,KACPC,MAAO,OAEPC,GAA+B,IAAI,KAAc,CACjDF,MAAO,KACPC,MAAO,OAYPE,GAAoC,IAAIR,GAAmC,CACvEhI,GAniCwC,CAC5C,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,QACA,cACA,oBACA,GACA,iBACA,iBACA,iBACA,aACA,oBACA,qBACA,iBACA,iBACA,QACA,SACA,SACA,WACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,QACA,YACA,gBACA,sBACA,iBACA,gBACA,GACA,YACA,YACA,eACA,YACA,YACA,GACA,GACA,YACA,GACA,GACA,YACA,YACA,YACA,YACA,GACA,GACA,YACA,YACA,YACA,GACA,KACA,KACA,KACA,MACA,MACA,oBACA,GACA,qBACA,kBACA,iBACA,aACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,gBACA,YACA,SACA,aACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,kBACA,eACA,cACA,GACA,GACA,cACA,cACA,gBACA,aACA,aACA,GACA,iBACA,GACA,GACA,cACA,GACA,GACA,aACA,iBACA,GACA,GACA,cACA,YACA,eACA,GACA,GACA,GACA,aACA,UACA,gBACA,oBACA,YACA,eACA,cACA,eACA,WACA,YACA,GACA,GACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,iBACA,iBACA,gBACA,cACA,cACA,mBACA,cACA,iBACA,aACA,UACA,gBACA,cACA,cACA,mBACA,iBACA,cACA,cACA,mBACA,iBACA,WACA,cACA,cACA,cACA,mBACA,cACA,iBACA,UACA,cACA,cACA,cACA,mBACA,iBACA,cACA,aACA,mBAsyBD,IAAQT,GAbmC,IAAI,KAAuB,IAAI4I,GAA4C,CACrH,EAAG,CACCM,OAAQ,KACRC,MAAO,IAAI,KAAa,KAAc,WAE1C,EAAG,CACCC,QAAS,KACTC,OAAQ,IAAI,KAAaR,GAA8B,cAM+B,CAC1F/W,MAAM,KAIV,MAAMwX,WAAyC,KAC3C,MAAA5S,CAAOmB,EAAQvD,GACX,IAAIhH,GAAS,EAAI,MAAsBY,KAAKZ,OAAQuK,EAAQvD,GACxDgD,EAAQ,EACRjB,EAAM,GACV,KAAMiB,EAAQhK,GAAO,CACjB,IAAIic,EAAQrb,KAAK4B,KAAK4G,OAAOmB,EAAQvD,GACrCiV,EAAMpM,OAAS7F,EACfA,GAASiS,EAAMR,MAAQ,EACvB1S,EAAInJ,KAAKqc,EACb,CACA,OAAOlT,CACX,EAEJ,IAWImT,GAAmC,IAAIf,GAAmC,CACtE/H,GA1lBwC,CAC5C,UACA,QACA,cACA,oBACA,iBACA,iBACA,iBACA,aACA,oBACA,qBACA,iBACA,iBACA,QACA,SACA,SACA,WACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,QACA,YACA,gBACA,sBACA,iBACA,gBACA,YACA,YACA,eACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,KACA,KACA,KACA,MACA,MACA,oBACA,qBACA,kBACA,iBACA,aACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,gBACA,YACA,SACA,aACA,kBACA,eACA,cACA,cACA,cACA,gBACA,aACA,aACA,iBACA,cACA,aACA,iBACA,cACA,YACA,eACA,aACA,UACA,gBACA,oBACA,YACA,eACA,cACA,eACA,WACA,YACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,iBACA,iBACA,gBACA,cACA,cACA,mBACA,cACA,iBACA,aACA,UACA,gBACA,cACA,cACA,mBACA,iBACA,cACA,cACA,mBACA,iBACA,WACA,cACA,cACA,cACA,mBACA,cACA,iBACA,UACA,cACA,cACA,cACA,mBACA,iBACA,cACA,aACA,kBAE4C,CAC5C,UACA,QACA,iBACA,iBACA,oBACA,qBACA,iBACA,iBACA,QACA,SACA,SACA,WACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,QACA,YACA,gBACA,sBACA,iBACA,YACA,YACA,eACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,KACA,KACA,KACA,MACA,MACA,oBACA,qBACA,iBACA,gBACA,YACA,SACA,eACA,aACA,iBACA,aACA,UACA,gBACA,YACA,eACA,cACA,eACA,WACA,YACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,iBACA,iBACA,kBA8VD,IAAQV,GAfkC,IAAI,KAAuB,KAAc,CAClF,EAAG,CACC6C,OAAQ,IAAI,KAAa,MAAgBxS,GAAIA,EAAEiE,OAAOmV,YAAYnc,OAAS,KAE/E,EAAG,CACC+b,OAAQ,IAAIC,GAAiCT,IAA+BxY,GAAIA,EAAEiE,OAAOmV,YAAYnc,OAAS,KAElH,EAAG,CACC+b,OAAQ,IAAIC,GAAiCN,IAA+B3Y,GAAIA,EAAEiE,OAAOmV,YAAYnc,OAAS,OAOzB,CACzFwE,MAAM,KAEN4X,GAAiC,IAAI,KAAc,CACnDZ,MAAO,KACPa,GAAI,OAEJC,GAAiC,IAAI,KAAc,CACnDd,MAAO,KACPa,GAAI,OAEJE,GAAiC,IAAI,KAAuB,KAAc,CAC1E,EAAG,CACCC,IAAK,IAAI,KAAa,MAAezZ,GAAIA,EAAEiE,OAAOmV,YAAYnc,UAElE,EAAG,CACC8b,QAAS,KACTC,OAAQ,IAAI,KAAaK,GAAgC,WACzDK,SAAU,MAEd,EAAG,CACCX,QAAS,KACTC,OAAQ,IAAI,KAAaO,GAAgC,WACzDG,SAAU,QAGdC,GAA4B,IAAQhK,GAA8CK,IACtF,MAAM4J,GACF,MAAAvT,CAAOmB,EAAQvD,EAAQyK,GAEnB,OADAzK,EAAOhH,OAASyR,EAAS,GAClBiL,GAA0BtT,OAAOmB,EAAQvD,EAAQ,CACpDyK,EAAS,IAEjB,CACA,IAAAzG,CAAKgH,EAAMtI,GACP,MAAO,CACCqJ,GAA0C/H,KAAKgH,EAAMtI,GAAK,GAC9DgT,GAA0B1R,KAAKgH,EAAMtI,GAAK,GAElD,CACA,MAAAsG,CAAOzF,EAAQyH,EAAMtI,GACjB,MAAO,CACCqJ,GAA0C/H,KAAKgH,EAAMtI,GAAK,GAC9DgT,GAA0B1M,OAAOzF,EAAQyH,EAAMtI,GAAK,GAE5D,EAEJ,IAAIkT,GAAiC,IAAQrL,GAA0C,CAEnF,CACI,GACA,UACA,IAAIoL,GACJ,MAEJ,CACI,CACI,GACA,IAEJ,WACA,MACA,MAEJ,CACI,CACI,GACA,GAEJ,aACA,QACA,CACI,KACA,EACA,EACA,KACA,EACA,IAGR,CACI,CACI,GACA,GAEJ,YACA,SACA,KAGJE,GAAmC,IAAQtL,GAA0C,CAErF,CACI,CACI,GACA,IAEJ,MACA,CACI,MACA,MACA,UAEJ,MAEJ,CACI,EACA,UACA,MACA,MAEJ,CACI,EACA,SACA,MACA,MAEJ,CACI,CACI,GACA,GAEJ,YACA,MACA,MAEJ,CACI,EACA,WACA,MACA,MAEJ,CACI,EACA,aACA,MACA,MAEJ,CACI,EACA,SACA,MACA,MAEJ,CACI,CACI,GACA,GAEJ,eACA,WACA,GAEJ,CACI,CACI,GACA,GAEJ,cACA,SACA,GAEJ,CACI,CACI,GACA,GAEJ,oBACA,UACC,KAEL,CACI,CACI,GACA,GAEJ,qBACA,SACA,IAEJ,CACI,CACI,GACA,GAEJ,YACA,SACA,GAEJ,CACI,CACI,GACA,GAEJ,iBACA,SACA,GAEJ,CACI,CACI,GACA,GAEJ,aACA,QACA,CACI,KACA,EACA,EACA,KACA,EACA,IAGR,CACI,GACA,WACA,SACA,MAEJ,CACI,EACA,WACA,QACA,CACI,EACA,EACA,EACA,IAGR,CACI,CACI,GACA,GAEJ,cACA,SACA,GAEJ,CACI,GACA,OACA,QACA,MAEJ,CACI,GACA,UACA2K,GACI9I,IAER,CACI,GACA,WACAuI,GACIxI,IAER,CACI,GACA,cACA,IAAQT,GAA0C,IAAQ1D,IAC1D,MAEJ,CACI,GACA,UACA,IAAI2N,GACJ,MAEJ,CACI,CACI,GACA,IAEJ,gBACA,SACA,MAEJ,CACI,CACI,GACA,IAEJ,aACA,MACA,MAEJ,CACI,CACI,GACA,IAEJ,eACA,MACA,MAEJ,CACI,CACI,GACA,IAEJ,gBACA,QACA,MAGJ,CACI,CACI,GACA,IAEJ,iBACA,SACA,GAEJ,CACI,CACI,GACA,IAEJ,kBACA,SACA,GAEJ,CACI,CACI,GACA,IAEJ,cACA,SACA,GAEJ,CACI,CACI,GACA,IAEJ,WACA,SACA,MAEJ,CACI,CACI,GACA,IAEJ,UACA,SACA,MAEJ,CACI,CACI,GACA,IAEJ,WACA,IAAQjK,GAA0C6J,IAClD,MAEJ,CACI,CACI,GACA,IAEJ,UACA,IAAQ7J,GAA0C,IAAQ1D,GAA0C4N,KACpG,MAEJ,CACI,CACI,GACA,IAEJ,WACA,MACA,QAGJE,GAAuC,IAAI,KAAc,CACzD9c,OAAQ,KACR+c,mBAAwBrD,KAExBsD,GAAoC,IAAQzL,GAA0C,CACtF,CACI,CACI,GACA,GAEJ,aACA,QACA,CACI,KACA,EACA,EACA,KACA,EACA,IAGR,CACI,GACA,cACA,IAAQmB,GAA0C,IAAQ1D,IAC1D,MAEJ,CACI,CACI,GACA,IAEJ,WACA,IAAQ0D,GAA0C6J,IAClD,MAEJ,CACI,CACI,GACA,IAEJ,UACA,IAAQ7J,GAA0C,IAAQ1D,GAA0C4N,KACpG,MAEJ,CACI,GACA,SACA,IAAQlK,GAA0CoK,IAClD,MAEJ,CACI,GACA,WACA,SACA,OAmBR,IAAIG,GAhB+B,IAAI,KAAuB,KAAgB,CAC1E,EAAG,CACC/N,QAAS,KACTI,QAAS,KACT4N,UAAW,IAAQlO,GAA0C,IAAI,KAAc,WAC/EmO,aAAc,IAAQnO,GAA0C6N,IAChEO,YAAa,IAAQpO,GAA0C,IAAI,KAAc,WACjFqO,gBAAiB,IAAQrO,IAE7B,EAAG,CACCE,QAAS,KACTlP,OAAQ,KACRsd,QAASN,GACTK,gBAAiB,IAAQrO,MAQjC,MAAMuO,GACF,aAAOnU,CAAOmB,GACV,OAAO,IAAIgT,GAA8BhT,EAC7C,CACA,MAAAnB,GACgBxI,KAAK2J,OAAOiF,IAAxB,IACIgO,EAAUP,GAA0C7T,OAAOxI,KAAK2J,QACpE,IAAI,IAAI/J,KAAOgd,EAAI,CACf,IAAI3S,EAAM2S,EAAIhd,GACdI,KAAKJ,GAAOqK,CAChB,CACA,GAAIjK,KAAK8D,QAAU,EAAG,CAClB,GAAiC,IAA7B9D,KAAKuc,aAAand,OAAc,MAAM,IAAII,MAAM,wCACpDQ,KAAK0c,QAAU1c,KAAKuc,aAAa,EACrC,CAEA,OADAvc,KAAK6c,UAAgC,MAApB7c,KAAK0c,QAAQI,IACvB9c,IACX,CACA,MAAA4I,CAAOmU,GACH,OAAI/c,KAAK8D,SAAW,EAAU,KAC1BiZ,EAAUzK,GAA0ClT,OAAmBkT,GAA0CyK,GAC9G/c,KAAKwc,YAAYO,EAAUzK,GAA0ClT,OAChF,CACA,kBAAIF,GACA,OAAIc,KAAK8D,QAAU,EAAU9D,KAAKsc,UAAU,GACrC,IACX,CACA,YAAIU,GACA,OAAOhd,KAAK4I,OAAO5I,KAAK0c,QAAQO,SACpC,CACA,cAAIC,GACA,OAAOld,KAAK4I,OAAO5I,KAAK0c,QAAQS,WACpC,CACA,aAAAC,CAAcC,GAEV,OADArd,KAAK2J,OAAOiF,IAAM5O,KAAK0c,QAAQnB,YAAY8B,GAAOpO,OAC3CjP,KAAK2J,OAAO2T,WAAWtd,KAAK0c,QAAQnB,YAAY8B,GAAOje,OAClE,CACA,YAAAme,CAAaC,GAET,GAAIxd,KAAK8D,SAAW,EAAG,OAAO,KAE9B,GAAI9D,KAAK6c,UAAW,OAAO,KAC3B,IAAMY,QAASA,GAAYzd,KAAK0c,QAChC,GAAI3S,MAAMC,QAAQyT,GAAU,OAAOA,EAAQD,GAC3C,GAAY,IAARA,EAAW,MAAO,UAEtB,OADAA,GAAO,EACAC,EAAQ3Z,SACX,KAAK,EACD,OAAO9D,KAAK4I,OAAO6U,EAAQ9I,OAAO6I,IACtC,KAAK,EACL,KAAK,EACD,IAAI,IAAIre,EAAI,EAAGA,EAAIse,EAAQtC,OAAO/b,OAAQD,IAAI,CAC1C,IAAIkc,EAAQoC,EAAQtC,OAAOhc,GAC3B,GAAIkc,EAAMpM,QAAUuO,GAAOA,GAAOnC,EAAMpM,OAASoM,EAAMR,MAAO,OAAO7a,KAAK4I,OAAOyS,EAAMT,OAAS4C,EAAMnC,EAAMpM,QAChH,EAGR,OAAO,IACX,CACA,UAAAyO,CAAWF,GACP,IAAKxd,KAAK0c,QAAQiB,SAAU,OAAO,KACnC,OAAO3d,KAAK0c,QAAQiB,SAAS7Z,SACzB,KAAK,EACD,OAAO9D,KAAK0c,QAAQiB,SAAS/B,IAAI4B,GACrC,KAAK,EACL,KAAK,EACD,IAAMrC,OAAQA,GAAWnb,KAAK0c,QAAQiB,SAClCC,EAAM,EACNC,EAAO1C,EAAO/b,OAAS,EAC3B,KAAMwe,GAAOC,GAAK,CACd,IAAIC,EAAMF,EAAMC,GAAQ,EACxB,GAAIL,EAAMrC,EAAO2C,GAAKlD,MAAOiD,EAAOC,EAAM,MACrC,MAAIA,EAAMD,GAAQL,GAAOrC,EAAO2C,EAAM,GAAGlD,OACzC,OAAOO,EAAO2C,GAAKrC,GAD6BmC,EAAME,EAAM,CACvC,CAC9B,CACJ,QACI,MAAM,IAAIte,MAAM,6BAA6BQ,KAAK0c,QAAQiB,SAAS7Z,WAE/E,CACA,mBAAAia,CAAoBP,GAChB,GAAIxd,KAAK0c,QAAQiB,SAAU,CACvB,IAAIlC,EAAKzb,KAAK0d,WAAWF,GACzB,OAAIxd,KAAK0c,QAAQsB,QAAQvC,GAAYzb,KAAK0c,QAAQsB,QAAQvC,GAAIwC,QACvD,IACX,CACA,OAAIje,KAAK8D,QAAU,EAAU9D,KAAK0c,QAAQuB,QACnCje,KAAK0c,QAAQsB,QAAQ,GAAGC,OACnC,CACA,WAAAzO,CAAY7F,GACR3J,KAAK2J,OAASA,EACd3J,KAAKwI,QACT,EAEJ,IAAI0V,GAA2CvB,GAI/C,IAAIwB,GAAuC,IAAI,KAAc,CACzDC,WAAY,KACZC,YAAa,OAEjB,IAAIC,GAA2C,IAAI,KAAc,CAC7DnE,aAAc,KACdC,aAAc,KACdmE,mBAAoB,KACpBC,sBAAuB,KACvBrY,QAAS,IAAI,KAAagY,GAAsC,2BAMpE,IAAIM,GAA4C,IAAI,KAAc,CAC9DC,OAAQ,KACRC,MAAO,KACPC,aAAc,KACdC,aAAc,KACdC,YAAa,KACbC,aAAc,KACdC,aAAc,KACdC,YAAa,OAEbC,GAA4C,IAAI,KAAc,CAC9DR,OAAQ,KACRC,MAAO,KACPQ,SAAU,KACVC,SAAU,KACVpZ,QAAS,OAETqZ,GAAsC,IAAI,KAAc,CACxDhC,MAAO,KACPiC,QAAS,KACTC,QAAS,OAEb,MAAMC,IAEN,MAAMC,IAEwC,IAAI,KAAuB,UAAW,CAChF,EAAG,CACCtZ,QAAS+Y,GACTQ,KAAMF,IAEV,EAAG,CACCrZ,QAAS+Y,GACTQ,KAAMD,IAIV,EAAG,CACCC,KAAMD,IAEV,EAAG,CACCtZ,QAASsY,GACTiB,KAAMF,IAEV,EAAG,CACCrZ,QAASsY,GACTiB,KAAMD,IAEV,EAAG,CACCtZ,QAAS+Y,GACTS,IAAK,IAAI,KAAgB,MACzBC,cAAe,KACfC,WAAY,IAAI,KAAaR,GAAqC,kBAEtE,EAAG,CACClZ,QAASsY,GACTkB,IAAK,IAAI,KAAgB,MACzBC,cAAe,KACfC,WAAY,IAAI,KAAaR,GAAqC,kBAEtE,GAAI,CACAlZ,QAAS+Y,GACTY,QAAS,KACTJ,KAAM,IAAI,KAAc,YAE5B,GAAI,CACAvZ,QAASsY,GACTqB,QAAS,KACTJ,KAAM,IAAI,KAAc,YAE5B,GAAI,CACAI,QAAS,KACTJ,KAAM,IAAI,KAAc,cA9ChC,IAmDIK,GAAwC,IAAI,KAAc,CAC1DC,SAAU,KACVC,UAAW,KACXC,SAAU,KACVC,oBAAqB,KACrBC,sBAAuB,KACvBxa,YAAa,KACbya,YAAa,KACbC,aAAc,KACdC,YAAa,KACbC,WAAY,KACZb,IAAK,IAAI,KAAgB,KAAa,KAEtCc,GAAuC,IAAI,KAAc,CACzDC,UAAW,KACXzR,OAAQ,OAER0R,GAAsC,IAAI,KAAuB,KAAe,CAChFrW,OAAQ,CACJsW,YAAa,KACbC,gBAAiB,MAErB,EAAG,CACCC,YAAa,IAAI,KAAa,MAAgB3e,GAAIA,EAAEiE,OAAO2a,eAAiB5e,EAAEiE,OAAO4a,gBAAkB,KAE3G,EAAG,CACCC,UAAW,KACXC,WAAgBzC,IAEpB,EAAG,CACCqC,YAAa,IAAI,KAAa,MAAgB3e,GAAIA,EAAEiE,OAAO2a,eAAiB5e,EAAEiE,OAAO4a,gBAAkB,KAE3G,EAAG,CACCxa,UAAW,KACX2a,WAAY,IAAI,KAAaV,IAAuCte,GAAIA,EAAEqE,UAAY,KAE1F,EAAG,CACCya,UAAW,KACXC,WAAgBzC,GAChBjY,UAAW,KACX4a,eAAgB,IAAI,KAAa,KAAe,gBAGpDC,GAA2C,IAAI,KAAc,CAC7DL,gBAAiB,KACjBD,eAAgB,KAChBO,SAAU,IAAI,KAAe,KAAeX,MAE5CY,GAAwC,IAAI,KAAc,CAC1DC,mBAAoB,IAAI,KAAe,KAAe,IAAI,KAAaH,GAA0C,GAAI,CACjHzf,KAAM,WAEV6f,gBAAiB,KACjBC,uBAAwB,KACxBC,SAAU,KACVC,KAAM7B,GACN8B,KAAM9B,GACN+B,gBAAiB,KACjBC,cAAe,KACfC,MAAO,KACPC,MAAO,KACPC,SAAU,KACV7d,MAAO,IAAI,KAAgB,KAAc,CACrC,aACA,eAGR,IAAI8d,GAA2C,IAAI,KAAc,CAC7Dre,QAAS,KACTse,SAAU,KACV9S,MAAO,IAAI,KAAaiS,GAAuC,cAKnE,IAAIc,GAAmC,IAAI,KAAc,CACrDC,KAAM,KACNC,WAAY,KACZC,aAAc,IAAI,KAAa,IAAI,KAAe,KAAe,SAAUrgB,GAAIA,EAAEiE,OAAOA,OAAOG,KAAKC,UAAY,MAEpH,IAGAic,GAA2C,IAAI,KAAc,CACzD3e,QAAS,KACTO,MAAO,IAAI,KAAgB,KAAe,CACtC,mBAEJqe,aAAc,KACdC,YAAa,IAAI,KAAa,IAAI,KAAe,KAAeN,IAAmC,kBAKvG,IAAIO,GAAoC,IAAI,KAAc,CACtDpF,IAAK,KACLqF,aAAc,OAKdC,GAAwC,IAAI,KAAc,CAC1DtF,IAAK,KAELuF,gBAAiB,KAEjBC,UAAW,OAEf,IAAIC,GAA2C,IAAI,KAAc,CAC7Dnf,QAAS,KACTof,oBAAqB,KACrBC,gBAAiB,IAAI,KAAe,KAAe,IAAI,KAAaL,GAAuC,wBAC3GM,aAAc,IAAI,KAAe,KAAe,IAAI,KAAaR,GAAmC,mBAAoB,CACpHhf,MAAM,IAEVyf,gBAAiB,OAKrB,IAAIC,GAAoC,IAAI,KAAc,CACtDC,KAAM,KACNC,MAAO,KACPC,IAAK,KACLC,MAAO,OAEX,IAAIC,GAA2C,IAAI,KAAuB,KAAe,CACrFrZ,OAAQ,CACJsZ,kBAAmB,KACnBC,YAAa,KACbC,gBAAiB,KACjBC,aAAc,IAAI,KAAe,KAAe,IAAI,KAAaT,GAAmC,oBACpGU,mBAAoB,IAAI,KAAa,KAAe,gBAExD,EAAG,CAAC,EACJ,EAAG,CACCC,uBAAwB,IAAI,KAAe,KAAe,IAAI,KAAa,KAAe,gBAC1FC,wBAAyB,IAAI,KAAe,KAAe,IAAI,KAAa,KAAe,gBAC3FC,6BAA8B,IAAI,KAAe,KAAe,IAAI,KAAa,KAAe,yBAQxG,IAAIC,GAAkC,IAAI,KAAuB,KAAe,CAC5E,EAAG,CACCC,WAAY,MAEhB,EAAG,CACCA,WAAY,KACZC,eAAgB,KAChBC,eAAgB,MAEpB,EAAG,CACCF,WAAY,KACZG,YAAa,IAAI,KAAe,KAAmBnP,OAGvDoP,GAAmC,IAAI,KAAc,CACrDC,aAAc,KACdC,eAAgB,KAChBC,WAAY,IAAI,KAAa,IAAI,KAAe,KAAeR,IAAkC,oBAEjGS,GAAyC,IAAI,KAAc,CAC3D3b,IAAK,IAAI,KAAc,GACvB4b,SAAU,IAAI,KAAe,KAAeV,GAAiC,CACzExiB,KAAM,WAEVmjB,SAAU,IAAI,KAAe,KAAeX,GAAiC,CACzExiB,KAAM,aAGVojB,GAA+B,IAAI,KAAc,CACjDF,SAAU,IAAI,KAAe,KAAeV,IAC5CW,SAAU,IAAI,KAAe,KAAeX,IAC5Ca,gBAAiB,KACjBC,kBAAmB,IAAI,KAAaL,GAAwC,qBAE5EM,GAA0C,IAAI,KAAc,CAC5Djc,IAAK,IAAI,KAAc,GACvBkc,OAAQ,IAAI,KAAe,KAAeJ,GAA8B,CACpEpjB,KAAM,aAGVyjB,GAAmC,IAAI,KAAc,CACrDC,WAAY,IAAI,KAAe,KAAeb,IAC9Cc,cAAe,IAAI,KAAe,KAAeP,IACjDQ,iBAAkB,KAClBC,mBAAoB,IAAI,KAAaN,GAAyC,sBAE9EO,GAAyC,IAAI,KAAc,CAC3Dxc,IAAK,IAAI,KAAc,GACvBiK,OAAQ,IAAI,KAAe,KAAekS,GAAkC,CACxEzjB,KAAM,aAGV+jB,GAAuC,IAAI,KAAaD,GAAwC,MAEhGE,GAAoC,IAAI,KAAa,IAAI,KAAc,GAAI,MAC3EC,GAA6B,IAAI,KAAc,CAC/CC,YAAa,IAAI,KAAe,KAAeF,IAC/CG,eAAgB,IAAI,KAAe,KAAeJ,MAEtD,IAAIK,GAA2C,IAAI,KAAuB,KAAe,CACrF1b,OAAQ,CACJ2b,UAAW,IAAI,KAAe,KAAeJ,IAC7CK,SAAU,IAAI,KAAe,KAAeL,KAEhD,MAAY,CAAC,EACb,MAAY,CACR1J,mBAAoB,IAAI,KAAe,KAAmBrD,OAQlE,IAAIqN,GAAoC,IAAI,KAAa,KAAe,MACpEC,GAAmC,IAAI,KAAc,CACrDlQ,SAAU,IAAI,KAAe,KAAmBzB,IAChDC,WAAY,KACZ2R,aAAc,IAAI,KAAa,IAAI,KAAe,KAAeF,IAAoC,gBAErGG,GAAmC,IAAI,KAAuB,KAAe,CAC7E,EAAG,CACCjC,WAAY,MAEhB,EAAG,CACCkC,gBAAiB,MAErB,EAAG,CACClC,WAAY,KACZG,YAAa,IAAI,KAAe,KAAmBnP,OAGvDmR,GAAiC,IAAI,KAAa,IAAI,KAAe,KAAeF,IAAmC,MACvHG,GAAqC,IAAI,KAAc,CACvDvQ,SAAU,IAAI,KAAe,KAAmBzB,IAChDiS,cAAe,KACfC,UAAW,IAAI,KAAa,IAAI,KAAe,KAAeH,IAAiC,mBAE/FI,GAAyC,IAAI,KAAc,CAC3DC,mBAAoB,KACpBC,aAAc,KACd5Q,SAAU,IAAI,KAAa,IAAI,KAAe,KAAmBzB,IAA4C,kBAEjH,IAAIsS,GAA2C,IAAI,KAAuB,KAAe,CACrFzc,OAAQ,CACJ0c,cAAe,IAAI,KAAe,KAAmBhS,IACrDiS,WAAY,IAAI,KAAe,KAAeb,IAC9Cc,aAAc,IAAI,KAAe,KAAeT,IAChDU,mBAAoB,IAAI,KAAe,KAAmBnS,KAE9D,MAAY,CAAC,EACb,MAAY,CACRoS,iBAAkB,IAAI,KAAe,KAAeR,KAExD,MAAY,CACRQ,iBAAkB,IAAI,KAAe,KAAeR,IACpDzK,mBAAoB,IAAI,KAAe,KAAmBrD,OAQlE,IAAIuO,GAAoC,IAAI,KAAgB,KAAe,CACvE,aACA,aACA,WACA,WACA,aACA,aACA,aACA,eAEAC,GAA8B,CAC9BC,WAAY,KACZC,WAAY,KACZC,SAAU,KACVC,SAAU,KACVC,WAAY,IAAI,KAAe,KAAmBtS,GAA4C,CAC1FzT,KAAM,SACNiH,WAAaC,GAAMA,EAAI8e,MAE3BC,WAAY,IAAI,KAAe,KAAmBxS,GAA4C,CAC1FzT,KAAM,SACNiH,WAAaC,GAAMA,EAAI8e,MAE3BE,WAAY,IAAI,KAAe,KAAmBzS,GAA4C,CAC1FzT,KAAM,SACNiH,WAAaC,GAAMA,EAAI8e,MAE3BG,WAAY,IAAI,KAAe,KAAmB1S,GAA4C,CAC1FzT,KAAM,SACNiH,WAAaC,GAAMA,EAAI8e,OAG/B,MAAMI,GACF,WAAAC,CAAY7hB,GACR,IAAI8hB,EAAS9hB,EACb,MAAO8hB,EAAOloB,KAAKJ,MAAQsoB,EAAO9hB,QAAO8hB,EAASA,EAAO9hB,OACzD,IAAK8hB,EAAOloB,KAAKJ,KAAM,OACvB,IAAIsR,EAAS,CACbA,IAAa,IAAIgX,EAAOjX,cACpBlS,EAASmpB,EAAOloB,KAAKJ,KACzB,IAAI,IAAIA,KAAOb,EAAWA,EAAOa,KAAMsR,EAAOtR,GAAO0nB,GAA4B1nB,IACjF,OAAO,IAAI,KAAcsR,EAC7B,CACA,IAAA9G,CAAKH,EAAKnB,GACN,OAAO9I,KAAKioB,YAAYnf,GAAKsB,KAAKH,EAAKnB,EAC3C,CACA,MAAAN,CAAOmB,EAAQvD,GACX,IAAI+B,EAAMnI,KAAKioB,YAAY7hB,GAAQoC,OAAOmB,EAAQvD,GAElD,cADO+B,EAAIyf,IACJzf,CACX,CACA,WAAAqH,CAAY5P,EAAM,eACdI,KAAKJ,IAAMA,CACf,EAEJ,IAAIuoB,GAAwC,IAAI,KAAc,CAC1DC,YAAa,KACbC,OAAQ,IAAIL,GAAkC,gBAC9CM,OAAQ,IAAIN,GAAkC,kBAE9CO,GAAgC,IAAI,KAAaJ,GAAuC,MACxFK,GAAqC,IAAI,KAAc,CACvDH,OAAQ,IAAIL,GAAkC,gBAC9CM,OAAQ,IAAIN,GAAkC,kBAE9CS,GAA+B,IAAI,KAAuB,KAAe,CACzE,EAAG,CACCC,YAAa,KACbC,YAAa,MAEjB,EAAG,CACCD,YAAa,KACbC,YAAa,KACbC,YAAa,MAEjB,EAAG,CACCF,YAAa,KACbC,YAAa,KACbE,aAAc,IAAI,KAAe,KAAmBxT,IACpDyT,aAAc,IAAI,KAAe,KAAmBzT,OAGxD0T,GAAwC,IAAI,KAAc,CAC1DC,YAAa,IAAI,KAAe,KAAeP,GAA8B,CACzE7mB,KAAM,WAEVqnB,WAAY,IAAI,KAAe,KAAeR,GAA8B,CACxE7mB,KAAM,aAGVsnB,GAAmC,IAAI,KAAc,CACrDnU,MAAO,KACPoU,WAAY,IAAI,KAAe,KAAeV,GAA8B,CACxE7mB,KAAM,aAGVwnB,GAAkC,IAAI,KAAaF,GAAkC,MACrFG,GAAmC,IAAI,KAAa,IAAI,KAAe,KAAeZ,KAAgCtmB,GAAIA,EAAEiE,OAAOkjB,aACnIC,GAAkC,IAAI,KAAaF,GAAkC,MACrFG,GAAwC,IAAI,KAAa,IAAI,KAAe,KAAef,KAAgCtmB,GAAIA,EAAEiE,OAAOA,OAAOkjB,aAC/IG,GAAuC,IAAI,KAAaD,GAAuC,MAC/FE,GAAsC,IAAI,KAAa,IAAI,KAAe,KAAeD,IAAuC,MAChIE,GAA4C,IAAI,KAAuB,aAAc,CACrF,EAAG,IAAI,KAAuB,KAAe,CACzC,EAAG,CACCzT,SAAU,IAAI,KAAe,KAAmBzB,IAChDmV,YAAavC,GACbvnB,MAAO,IAAIkoB,IAEf,EAAG,CACC9R,SAAU,IAAI,KAAe,KAAmBzB,IAChDmV,YAAavC,GACbwC,WAAY,KACZC,OAAQ,IAAI,KAAiB,IAAI9B,GAAqC,iBAG9E,EAAG,IAAI,KAAuB,KAAe,CACzC,EAAG,CACC9R,SAAU,IAAI,KAAe,KAAmBzB,IAChDsV,aAAc1C,GACd2C,aAAc3C,GACd4C,aAAc,KACdC,SAAU,IAAI,KAAiB,IAAI,KAAe,KAAe3B,IAAgC,iBAErG,EAAG,CACCrS,SAAU,IAAI,KAAe,KAAmBzB,IAChDsV,aAAc1C,GACd2C,aAAc3C,GACd8C,UAAW,IAAI,KAAe,KAAmBnV,IACjDoV,UAAW,IAAI,KAAe,KAAmBpV,IACjDqV,YAAa,KACbC,YAAa,KACbC,aAAc,IAAI,KAAiB,IAAI,KAAiB/B,GAAoC,eAAgB,kBAGpH,EAAG,CACCzpB,OAAQ,KACRmX,SAAU,IAAI,KAAe,KAAmBzB,IAChD+V,eAAgB,KAChBC,iBAAkB,IAAI,KAAa1B,GAAuC,mBAE9E,EAAG,CACChqB,OAAQ,KACR2rB,aAAc,IAAI,KAAe,KAAmBjW,IACpDkW,aAAc,IAAI,KAAe,KAAmBlW,IACpD6U,WAAY,KACZsB,UAAW,IAAI,KAAe,KAAexB,IAC7CyB,UAAW,IAAI,KAAe,KAAetB,KAEjD,EAAG,CACCxqB,OAAQ,KACR2rB,aAAc,IAAI,KAAe,KAAmBjW,IACpDqW,iBAAkB,IAAI,KAAe,KAAmBrW,IACxD6U,WAAY,KACZsB,UAAW,IAAI,KAAe,KAAexB,IAC7C2B,cAAe,IAAI,KAAe,KAAerB,KAErD,EAAG,CACC3qB,OAAQ,KACRisB,cAAe,IAAI,KAAe,KAAmBvW,IACrDwW,cAAe,IAAI,KAAe,KAAmBxW,IACrD6U,WAAY,KACZ4B,WAAY,IAAI,KAAe,KAAe9B,IAC9C+B,WAAY,IAAI,KAAe,KAAe5B,KAElD,EAAOtT,GACP,EAAOe,GACP,EAAG,CACCoU,UAAW,KACXlX,WAAY,KACZmX,UAAW,IAAI,KAAe,KAAe,SAIrD1B,GAA0Cjd,SAAS,GAAG2e,UAAUzpB,KAAO+nB,GACvE,IAAI2B,GAA2C,IAAI,KAAuB,KAAe,CACrFhhB,OAAQ,CACJihB,WAAY,IAAI,KAAe,KAAmBnY,IAClDoY,YAAa,IAAI,KAAe,KAAmB5X,IACnD6X,WAAY,IAAI,KAAe,KAAe,IAAQ1X,GAA2C4V,MAErG,MAAY,CAAC,EACb,MAAY,CACR+B,kBAAmB,IAAI,KAAe,KAAmBxR,OAQjE,IAAIyR,GAAiC,IAAI,KAAa,KAAe,MACjEC,GAAqCD,GACrCE,GAAiC,IAAI,KAAc,CACnDxO,MAAO,KACPyO,UAAW,KACXjM,WAAY,IAAI,KAAa,MAAgB1d,GAAIA,EAAE2pB,UAAY,MAE/DC,GAAoC,IAAI,KAAa,IAAI,KAAe,KAAeF,IAAiC,MACxHG,GAAmC,IAAI,KAAuB,aAAc,CAC5E,EAAG,IAAI,KAAuB,KAAe,CACzC,EAAG,CACC9V,SAAU,IAAI,KAAe,KAAmBzB,IAChDwX,aAAc,MAElB,EAAG,CACC/V,SAAU,IAAI,KAAe,KAAmBzB,IAChDC,WAAY,KACZwX,WAAY,IAAI,KAAiB,KAAe,iBAGxD,EAAG,CACCC,YAAa,KACbjW,SAAU,IAAI,KAAe,KAAmBzB,IAChDrL,MAAO,KACPgjB,UAAW,IAAI,KAAiB,IAAI,KAAe,KAAeT,IAAiC,UAEvG,EAAG,CACCQ,YAAa,KACbjW,SAAU,IAAI,KAAe,KAAmBzB,IAChDrL,MAAO,KACPijB,aAAc,IAAI,KAAiB,IAAI,KAAe,KAAeT,IAAqC,UAE9G,EAAG,CACCO,YAAa,KACbjW,SAAU,IAAI,KAAe,KAAmBzB,IAChDrL,MAAO,KACPkjB,aAAc,IAAI,KAAiB,IAAI,KAAe,KAAeP,IAAoC,UAE7G,EAAO9V,GACP,EAAOe,GACP,EAAG,CACCmV,YAAa,KACbjY,WAAY,KACZmX,UAAW,IAAI,KAAe,KAAe,OAEjD,EAAG,CACCc,YAAa,KACbjW,SAAU,IAAI,KAAe,KAAmBzB,IAChD8C,kBAAmB,IAAI,KAAa,IAAI,KAAe,KAAmB9C,IAA4C,uBACtHoC,oBAAqB,KACrBY,kBAAmB,IAAI,KAAa,IAAI,KAAe,KAAmBhD,IAA4C,uBACtHC,WAAY,KACZ6X,YAAa,IAAI,KAAa,KAAe,iBAIrDP,GAAiCtf,SAAS,GAAG2e,UAAUzpB,KAAOoqB,GAC9D,IAAIQ,GAA2C,IAAI,KAAuB,KAAe,CACrFliB,OAAQ,CACJihB,WAAY,IAAI,KAAe,KAAmBnY,IAClDoY,YAAa,IAAI,KAAe,KAAmB5X,IACnD6X,WAAY,IAAI,KAAe,KAAe,IAAQ1X,GAA2CiY,MAErG,MAAY,CAAC,EACb,MAAY,CACRN,kBAAmB,IAAI,KAAe,KAAmBxR,OAQjE,IAAIuS,GAAwC,IAAI,KAAa,KAAe,MACxEC,GAAqC,IAAI,KAAc,CACvDC,oBAAqB,IAAI,KAAe,KAAeF,IACvDG,qBAAsB,IAAI,KAAe,KAAeH,IACxDI,oBAAqB,IAAI,KAAe,KAAeJ,IACvDK,qBAAsB,IAAI,KAAe,KAAeL,IACxDM,iBAAkB,IAAI,KAAe,KAAe,IAAQhZ,GAA+C4V,KAC3GqD,oBAAqB,IAAI,KAAe,KAAeP,IACvDQ,qBAAsB,IAAI,KAAe,KAAeR,IACxDS,oBAAqB,IAAI,KAAe,KAAeT,IACvDU,qBAAsB,IAAI,KAAe,KAAeV,IACxDW,iBAAkB,IAAI,KAAe,KAAe,IAAQrZ,GAA+C4V,OAE3G0D,GAAoC,IAAI,KAAa,IAAI,KAAe,KAAeX,IAAqC,MAC5HY,GAA0C,IAAI,KAAc,CAC5DpkB,IAAK,IAAI,KAAc,GACvBqkB,YAAa,IAAI,KAAe,KAAeF,MAE/CG,GAAmC,IAAI,KAAc,CACrDC,eAAgB,IAAI,KAAe,KAAe,IAAI,KAAa,KAAe,OAClFza,eAAgB,IAAI,KAAe,KAAeqa,IAClDK,aAAc,KACdza,eAAgB,IAAI,KAAaqa,GAAyC,kBAE1EK,GAAyC,IAAI,KAAc,CAC3DzkB,IAAK,IAAI,KAAc,GACvBiK,OAAQ,IAAI,KAAe,KAAeqa,GAAkC,CACxE5rB,KAAM,aAGd,IAAIgsB,GAA2C,IAAI,KAAc,CAC7D9pB,QAAS,KACT+pB,YAAa,KACbtC,WAAY,IAAI,KAAaoC,GAAwC,iBA2BzE,IAAIG,GAAqC,IAAI,KAAc,CACvDC,MAAO,IArBX,MACI,MAAAvlB,CAAOmB,EAAQvD,GACX,OAAOpG,KAAKoK,KAAK,EAAGhE,IAChB,KAAK,EACD,OAAOuD,EAAOgF,YAClB,KAAK,EACD,OAAOhF,EAAO6E,eAClB,KAAK,EACD,OAAO7E,EAAOqkB,eAClB,KAAK,EACD,OAAOrkB,EAAO4E,eAE1B,CACA,IAAAnE,CAAKH,EAAK7D,GACN,OAAO,EAAI,MAAsBpG,KAAKiuB,MAAO,KAAM7nB,EACvD,CACA,WAAAoJ,CAAYpF,GACRpK,KAAKiuB,MAAQ7jB,CACjB,IAGqDjI,GAA6C,IAAhB,GAAvBA,EAAEiE,OAAO8nB,cAAyB,KAC7FC,WAAahsB,GAAIA,EAAE4rB,OAA2C,GAAV,GAAvB5rB,EAAEiE,OAAO8nB,aACtCE,WAAajsB,GAAIA,EAAE4rB,OAAS,GAAuC,GAAV,GAAvB5rB,EAAEiE,OAAO8nB,cAA6B,IAExEG,GAAyC,IAAI,KAAc,CAC3DH,YAAa,KACbI,SAAU,KACVC,QAAS,IAAI,KAAaT,GAAoC,cAElE,IAAIU,GAA2C,IAAI,KAAc,CAC7DrU,aAAc,KACdC,aAAc,KACd+B,mBAAoB,IAAI,KAAe,KAAmBrD,IAC1D2V,oBAAqB,IAAI,KAAe,KAAeJ,IACvDK,WAAY,IAAI,KAAe,KAAeL,IAC9CM,WAAY,IAAI,KAAe,KAAeN,MAKlD,IAAIO,GAAkC,IAAI,KAAc,CACpD7vB,OAAQ,KACRK,OAAQ,KACR6P,OAAQ,OAER4f,GAAuC,IAAI,KAAc,CACzD3rB,SAAU,IAAI,KAAgB,KAAe,GAC7C4rB,YAAa,KACbC,UAAW,IAAI,KAAc,iBAEjC,IAAIC,GAA2C,IAAI,KAAc,CAC7DC,UAAW,KACXC,UAAW,KACXC,OAAQ,KACRC,WAAY,IAAI,KAAaR,GAAiC,aAC9DS,gBAAiB,IAAI,KAAaR,GAAsC,eAK5E,IAAIS,GAAkC,IAAI,KAAc,CACpDC,aAAc,KACdC,kBAAmB,IAAI,KAAgB,KAAe,CAClD,YACA,UACA,qBACA,uBAGR,IAAIC,GAA2C,IAAI,KAAc,CAC7D3rB,QAAS,KACT4rB,UAAW,KACXC,WAAY,IAAI,KAAaL,GAAiC,eAKlE,IAAIM,GAAqC,IAAI,KAAc,CACvDC,UAAW,KACXC,aAAc,KACdC,OAAQ,IAAI,KAAa,MAAe5tB,GAAIA,EAAEiE,OAAOA,OAAOG,KAAKC,cAErE,IACAwpB,GAA2C,IAAI,KAAc,CACzDlsB,QAAS,KACTR,WAAY,KACZ2sB,iBAAkB,KAClB5mB,QAAS,IAAI,KAAaumB,GAAoC,gBAKlE,IAAIM,GAAiC,IAAI,KAAc,CACnDC,KAAM,KACNC,MAAO,KACPtwB,MAAO,OAEPuwB,GAAmC,IAAI,KAAc,CACrDC,WAAY,KACZC,QAAS,KACT/iB,QAAS,IAAI,KAAa,KAAe,WACzCnL,IAAMF,GAAIA,EAAEqL,QAAQpO,QAAUgD,KAAKC,IAAI7B,MAAM4B,KAAMD,EAAEqL,WAErDgjB,GAAmC,IAAI,KAAc,CACrDC,IAAMtuB,GAAIA,EAAE8O,aAAe9O,EAAEiE,OAAOA,OAAO6K,aAC3CO,IAAMrP,KAAMA,EAAEiE,OAAOsqB,UAAUruB,IAAMF,EAAEsuB,KAAOtuB,EAAEiE,OAAOuqB,SAAW,IAAMxuB,EAAEiE,OAAOuqB,SAAW,GAC5F7G,OAAQ,IAAI,KAAiB,KAAc,SAE3C8G,GAAqC,IAAI,KAAuB,SAAU,CAC1E,EAAG,CACCC,OAAQ,KACRnuB,YAAa,KACbC,cAAe,KACfC,WAAY,KACZkuB,MAAO,IAAI,KAAaZ,GAAgC,WAE5D,EAAG,CACCS,SAAU,KACVD,UAAW,IAAI,KAAe,KAAeL,GAAkC,CAC3EzuB,KAAM,WAEVmvB,WAAY,IAAI,KAAe,KAAeV,GAAkC,CAC5EzuB,KAAM,WAEVovB,MAAO,IAAI,KAAe,KAAeR,GAAkC,CACvE5uB,KAAM,YAGd,EAAG,CACC8S,WAAY,KACZuc,eAAgB,KAChBC,eAAgB,KAChBC,gBAAiB,KACjB9sB,MAAO,KACP+sB,UAAW,IAAI,KAAa,KAAc,kBAC1CC,UAAW,IAAI,KAAa,KAAc,cAC1CC,WAAY,IAAI,KAAa,KAAc,cAC3CC,UAAW,IAAI,KAAa,MAAepvB,GAAIA,EAAE+uB,eAAiB/uB,EAAEgvB,qBAGxEK,GAAkC,IAAI,KAAuB,UAAW,CACxE,EAAG,CACCC,WAAY,KACZryB,OAAQ,KACRL,OAAQ,KACRmX,SAAU,IAAI,KAAgB,KAAc,CACxC,aACA,UACA,cACA,aAEJoL,SAAUsP,GACVc,QAAS,IAAI,KAAgB,MAAevvB,GAAIA,EAAE/C,OAAS+C,EAAEa,kBAEjE,EAAG,CACC5D,OAAQ,KACR8W,SAAU,IAAI,KAAgB,KAAc,CACxC,KACA,KACA,KACA,KACA,KACA,YACA,cACA,aAEJnX,OAAQ,KACR4yB,WAAY,KACZrQ,SAAUsP,GACVc,QAAS,IAAI,KAAgB,MAAevvB,GAAIA,EAAE/C,OAAS+C,EAAEa,oBAGrE,IAAI4uB,GAA2C,IAAI,KAAuB,KAAe,CACrF,EAAG,CACCC,QAAS,KACT7tB,OAAQ,IAAI,KAAawtB,GAAiC,YAE9D,EAAG,CACCtuB,SAAU,IAAI,KAAgB,MAC9B2uB,QAAS,KACT7tB,OAAQ,IAAI,KAAawtB,GAAiC,cASlEM,GAA2C,IAAI,KAAc,CACzDhuB,QAAS,KACT0C,UAAW,KACXurB,MAAO,IAAI,KAAa,KAAc,eAO1CC,GAA2C,IAAI,KAAc,CACzDluB,QAAS,KACTmuB,WAAY,KACZC,MAAO,KACPhmB,QAAS,KACTimB,MAAO,KACPC,WAAY,KACZjmB,UAAW,KACXkmB,UAAW,KACXC,SAAU,IAAI,KAAc,IAC5BC,oBAAqB,IAAI,KAAc,GACvCC,SAAU,IAAI,KAAc,GAC5BC,aAAc,IAAI,KAAc,GAChCC,UAAW,IAAI,KAAc,GAC7BC,WAAY,KACZzvB,SAAU,IAAI,KAAgB,QAOlC,IAAI0vB,GAA8B,IAAI,KAAc,CAChDC,SAAU,KACVC,OAAQ,KACRC,YAAa,KACbC,UAAW,OAEXC,GAA+B,IAAI,KAAc,CACjDC,WAAY,KACZtuB,KAAM,KACNF,KAAM,OAENyuB,GAAkC,IAAI,KAAc,CACpDC,KAAM,KACNC,QAAS,KACTC,MAAO,KACPC,QAAS,IAAI,KAAaN,GAA8B,UAE5D,IAAIO,GAA2C,IAAI,KAAc,CAC7D1vB,QAAS,KACT2vB,QAAS,KACTC,UAAW,KACXC,YAAa,IAAI,KAAaf,GAA6B,aAC3DplB,QAAS,IAAI,KAAa,KAAe,aACzCnK,OAAQ,IAAI,KAAa8vB,GAAiC,aAM9DS,GAA2C,IAAI,KAAc,CACzD9vB,QAAS,KACTqB,OAAQ,KACRC,QAAS,KACTC,QAAS,KACTwuB,iBAAkB,KAClBC,kBAAmB,KACnBC,qBAAsB,KACtBC,WAAY,KACZtuB,eAAgB,KAChBC,cAAe,KACfC,YAAa,KACb1C,SAAU,IAAI,KAAgB,KAAc,GAC5C2C,iBAAkB,KAClBC,gBAAiB,OAKrB,IAAImuB,GAAkC,IAAI,KAAc,CACpDjuB,QAAS,KACTC,QAAS,OAEb,IACAiuB,GAA2C,IAAI,KAAc,CACzD/tB,QAAS,IAAI,KAAiB8tB,IAAkC9xB,GAAIA,EAAEiE,OAAO+tB,KAAKruB,kBAClFQ,SAAU,IAAI,KAAiB,MAAenE,GAAIA,EAAEiE,OAAOG,KAAKC,UAAYrE,EAAEiE,OAAO+tB,KAAKruB,oBAK9F,IAAIsuB,GAAkC,IAAI,KAAa,GAAI,KAAM,IAC7DC,GAAuC,IAAI,KAAc,CACzDC,UAAWF,GACXG,QAASH,KAETI,GAAgC,IAAI,KAAc,CAClDC,UAAW,KACXC,eAAgB,IAAI,KAAaL,GAAsC,eAE3E,IAAIM,GAA2C,IAAI,KAAc,CAC7D7wB,QAAS,KACTkU,UAAW,KACX4c,QAAS,IAAI,KAAaJ,GAA+B,eAM7D,MAAMK,GACF,OAAAC,CAAQra,GACJ,GAA0B,MAAtBza,KAAK+0B,OAAOta,GAAgB,CAC5B,IAAI7L,EAAM5O,KAAK2J,OAAOiF,IACtB5O,KAAK2J,OAAOiF,IAAM5O,KAAKg1B,KAAOh1B,KAAK4B,KAAKwI,KAAK,KAAMpK,KAAKoG,QAAUqU,EAClEza,KAAK+0B,OAAOta,GAASza,KAAK4B,KAAK4G,OAAOxI,KAAK2J,OAAQ3J,KAAKoG,QACxDpG,KAAK2J,OAAOiF,IAAMA,CACtB,CACA,OAAO5O,KAAK+0B,OAAOta,EACvB,CACA,OAAAwa,GACI,MAAO,mBAAmBj1B,KAAK4B,KAAK4N,YAAY0lB,OACpD,CACA,WAAA1lB,CAAY5N,EAAM+H,EAAQvD,GACtBpG,KAAK4B,KAAOA,EACZ5B,KAAK2J,OAASA,EACd3J,KAAKoG,OAASA,EACdpG,KAAKg1B,KAAOh1B,KAAK2J,OAAOiF,IACxB5O,KAAK+0B,OAAS,EAClB,EAEJ,MAAMI,WAAkD,KACpD,MAAA3sB,CAAOmB,EAAQvD,GACX,OAAO,IAAIyuB,GAA6C70B,KAAK4B,KAAM+H,EAAQvD,EAC/E,CACA,WAAAoJ,CAAY5N,GACRmQ,MAAMnQ,EAAM,EAChB,EAEJ,IAAIwzB,GAA4C,SAASC,EAAY,MAmBjEA,EAAY,IAjBZ,MACI,MAAA7sB,CAAOmB,EAAQb,GAEX,OADAA,EAAMA,EAAI1C,OAAOA,OACVpG,KAAK4B,KAAK4G,OAAOmB,EAAQb,EACpC,CACA,IAAAsB,CAAKH,EAAKnB,GAEN,OADAA,EAAMA,EAAI1C,OAAOA,OACVpG,KAAK4B,KAAKwI,KAAKH,EAAKnB,EAC/B,CACA,MAAAsG,CAAOzF,EAAQM,EAAKnB,GAEhB,OADAA,EAAMA,EAAI1C,OAAOA,OACVpG,KAAK4B,KAAKwN,OAAOzF,EAAQM,EAAKnB,EACzC,CACA,WAAA0G,CAAY5N,GACR5B,KAAK4B,KAAOA,CAChB,GAEmByzB,GACvB,IAAIC,EAAqB,IAAI,KAAc,CACvCC,SAAU,KACVC,OAAQ,KACR9yB,YAAa,KACbC,cAAe,KACfC,WAAY,OAEZ6yB,EAAsB,IAAI,KAAc,CACxCC,UAAW,KACXpF,WAAY,KACZxwB,MAAOu1B,IAEPM,EAAqB,IAAI,KAAc,CACvCD,UAAW,KACXpF,WAAY,KACZxG,OAAQ,IAAI,KAAe,KAAe,IAAI,KAAauL,GAAYlzB,GAAIA,EAAEuzB,UAAYvzB,EAAEmuB,WAAa,IAAI,CACxG1uB,KAAM,aAGVg0B,EAAe,IAAI,KAAc,CACjCvY,MAAO,KACPvd,MAAOu1B,IAEX,OAAO,IAAI,KAAuB,KAAe,CAC7C,EAAG,CACCvL,OAAQ,IAAIqL,GAA0CE,IAE1D,EAAG,CACCQ,mBAAoBP,EACpBQ,SAAU,IAAI,KAAaL,GAAsBtzB,GAAIA,EAAE0zB,mBAAmBL,UAE9E,EAAG,CACCK,mBAAoBP,EACpBQ,SAAU,IAAI,KAAaH,GAAqBxzB,GAAIA,EAAE0zB,mBAAmBL,UAE7E,EAAG,CACCK,mBAAoBP,EACpBQ,SAAU,IAAI,KAAaF,GAAezzB,GAAIA,EAAE0zB,mBAAmBL,UAEvE,EAAG,CACClF,WAAY,KACZlnB,MAAO,KACP0gB,OAAQ,IAAI,KAAauL,EAAW,WAGhD,EACA,SAASU,GAA0CC,EAAY,CAAC,EAAG9hB,EAAa,MAC5E,IAAI6Z,EAAQjwB,OAAOm4B,OAAO,CACtBC,SAAU,KACV7xB,MAAO,MACR2xB,GACCG,EAAQ,IAAI,KAAcpI,GAC1BqI,EAAa,IAAIjB,GAA0C,IAAI,KAAa,MAAgBhzB,GAAIA,EAAEk0B,YAOtG,OANkB,IAAI,KAAc,CAChCA,SAAU,KACVC,WAAY,IAAI,KAAe,KAAe,IAAIlB,GAA0ClhB,IAC5FqiB,WAAY,IAAI,KAAe,KAAeH,GAC9CI,WAAY,IAAI,KAAe,KAAe,IAAIrB,GAA0CgB,KAGpG,CA2BA,IAAIM,GAAqC,IAAI,KAAuB,SAAU,CAC1E,EAAG,CACCje,OAAQ,IAAI,KAAa,KAAc,KAE3C,EAAG,CACCA,OAAQ,IAAI,KAAa,KAAc,IACvCke,YAAa,IAAQtB,GAA2C,OAEpE,EAAG,CACCuB,cAAe,KACfC,cAAe,IAAI,KAAa,KAAe,KAEnD,EAAG,CACCD,cAAe,KACfC,cAAe,IAAI,KAAa,KAAe,IAC/CF,YAAa,IAAQtB,GAA2C,SAGxE,IAAIyB,GAA2C,IAAI,KAAc,CAC7D/yB,QAAS,KACT/E,OAAQ,KACR+3B,gBAAiB,KACjBxV,SAAUmV,KAKd,IAAIM,GAAgC,IAAI,KAAc,CAClDC,QAAS,KACT1a,UAAW,KACX4Y,KAAO/yB,GAAIA,EAAEiE,OAAOA,OAAOA,OAAO8uB,KAAK7rB,QAAQ4tB,aAAa90B,EAAEma,aAE9D4a,GAAoC,IAAI,KAAc,CACtDvjB,QAAS,KACTwjB,UAAW,KACXC,aAAc,IAAI,KAAe,KAAe,IAAI,KAAaL,GAA+B,aAAc,CAC1Gn1B,KAAM,WAEVy1B,aAAc,IAAI,KAAgB,KAAc,CAC5C,KACA,KACA,KACA,KACA,KACA,KACA,aACA,cAEJC,eAAgB,KAChBhb,UAAW,KACX4Y,KAAO/yB,GAAIA,EAAEiE,OAAOA,OAAO8uB,KAAK7rB,QAAQ4tB,aAAa90B,EAAEma,aAE3D,IAAIib,GAA2C,IAAI,KAAc,CAC7DzzB,QAAS,KACT0zB,iBAAkB,KAClBC,UAAW,IAAI,KAAgB,MAC/BC,UAAW,IAAI,KAAgB,MAC/BC,aAAc,IAAI,KAAaT,GAAmC,sBAKtE,IAAIU,GAA6B,IAAI,KAAc,CAC/CC,QAAS,IAAI,KAAc,GAC3BC,SAAU,KACVC,aAAc,KACdC,SAAU,KACV3zB,MAAO,KACPsE,OAAQ,KACRusB,KAAO/yB,GAAIA,EAAEiE,OAAOA,OAAO8uB,KAAK7rB,QAAQ4tB,aAAa90B,EAAEwG,UAEvDsvB,GAAiC,IAAI,KAAc,CACnDtvB,OAAQ,KACRusB,KAAO/yB,GAAIA,EAAEiE,OAAOA,OAAO8uB,KAAK7rB,QAAQ4tB,aAAa90B,EAAEwG,QACvDtE,MAAO,KACP6zB,MAAO,IAAI,KAAa,MAAiB/1B,GAAIA,EAAEiE,OAAO4R,YACtDmgB,iBAAkB,IAAI,KAAgB,MAAgBh2B,GAAIA,EAAEiE,OAAOgyB,aAAej2B,EAAEa,eAAiB,MAEzG,IAAIq1B,GAA2C,IAAI,KAAc,CAC7Dv0B,QAAS,KACTw0B,aAAc,KACdC,eAAgB,KAChBvgB,UAAW,KACXwgB,SAAU,KACVC,cAAe,KACfL,aAAc,KACdM,KAAM,IAAI,KAAad,GAA4B,aACnDe,SAAU,IAAI,KAAaV,GAAgC,mBAK/D,IAAIW,GAAkC,IAAI,KAAa,GAAI,KAAM,IAuBjE,IAAIC,GAd6B,IAAI,KAAc,CAC/C/0B,QAAS,KACTZ,SAAU,IAAI,KAAgB,MAC9B8U,UAAW,KACX8gB,iBAAkB,KAClBC,aAAc,IAAI,KAAe,KAAe,IAAI,KAAa,IAAI,KAAaH,GAAiC,aAAc,qBACjIlkB,WAAY,KACZrQ,MAAO,KACPi0B,aAAc,KACd9qB,QAAS,IAAI,KAAa,IAAI,KAjBlC,MACI,aAAOhF,CAAOmB,EAAQvD,GAIlB,OAAOA,EAAO/B,MAAQsF,EAAO4E,eAAyC,EAAxB5E,EAAO6E,cACzD,GAW2E,OAAQ,CAC/E3F,WAAaC,GAAMA,EAAIwvB,aACvBtvB,WAAW,KACV7G,GAAIA,EAAEuS,WAAa,MAO5B,IAAIskB,GAAmC,IAAI,KAAc,CACrD55B,OAAQ,KACR8W,SAAU,KACV+iB,gBAAiB,KACjBC,WAAY,IAtJhB,SAAmDlD,EAAY,CAAC,EAAG9hB,EAAa,MAC5E,IAAIilB,EAAmB,IAAI,KAAc,CACrCr1B,QAAQ,IACG,EAEXwsB,WAAY,KACZxG,OAAQ,IAAI,KAAa,KAAc,QAEvCiE,EAAQjwB,OAAOm4B,OAAO,CACtBmD,eAAgB,KAEhBlD,SAAW/zB,IAAKA,EAAEi3B,gBAAkBj3B,EAAEiE,OAAOmwB,WAAWvB,KAAO7yB,EAAEiE,OAAO6K,eAAiB9O,EAAEiE,OAAOiwB,SAClGhyB,MAAO,MACR2xB,GACCG,EAAQ,IAAI,KAAcpI,GAC1BqI,EAAa,IAAIjB,GAA0C,IAAI,KAAa,MAAehzB,GAAIA,EAAEk0B,YAOrG,OANmB,IAAI,KAAc,CACjCA,SAAU,KACVC,WAAY,IAAI,KAAe,KAAe6C,GAC9C5C,WAAY,IAAI,KAAe,KAAeH,GAC9CI,WAAY,IAAI,KAAe,KAAe,IAAIrB,GAA0CgB,KAGpG,IAiIIkD,GAAyC,IAAI,KAAc,CAC3DC,UAAW,KACXC,gBAAiB,KACjBC,kBAAmB,KACnBC,eAAgB,KAChBC,iBAAkB,KAClBC,UAAW,KACXC,YAAa,OAEbC,GAA0C,IAAI,KAAaR,GAAwC,MACnGS,GAAmC,IAAI,KAAuB,aAAc,CAC5E,EAAG,CACCC,WAAY,KACZC,WAAY,KACZC,MAAO,KACPtlB,OAAQ,IAAI,KAAa,KAAe,OAE5C,EAAG,CACCulB,SAAU,MAEd,EAAG,CACCC,eAAgB,KAChBD,SAAU,KACVE,WAAY,MAEhB,EAAG,CAAC,EACJ,EAAG,CACCC,cAAe,KACfC,aAAc,KACdC,eAAgB,KAChBC,aAAc,MAElB,EAAG,CACCn2B,MAAO,KACPgZ,MAAO,QAGXod,GAA+B,IAAI,KAAc,CACjDC,YAAa,KACbC,WAAY,KACZC,aAAc,KACdC,WAAYf,GACZpI,QAAS,IAAI,KAAgB,MAAevvB,GAAIA,EAAEy4B,aAAez4B,EAAEa,mBAEnE83B,GAA+C,IAAI,KAAaL,GAA8B,MAC9FM,GAA8C,IAAI,KAAc,CAChEC,YAAa,IAAQ5F,GAA2C,IAAI,KAAe,KAAe0F,OAElGG,GAA2C,IAAI,KAAc,CAC7D3E,WAAY,IAAI,KAAe,KAAe0C,GAAkC,CAC5Ep3B,KAAM,WAEVs5B,UAAW,KACXC,sBAAuB,IAAI,KAAe,KAAeJ,GAA6C,CAClGn5B,KAAM,WAEVw5B,mBAAoB,IAAQhG,GAA2C,IAAI,KAAe,KAAeyE,GAAyC,CAC9Ij4B,KAAM,SACNiH,WAAaC,GAAMA,EAAIoyB,eAG/B,IAAIG,GAA2C,IAAI,KAAc,CAC7Dv3B,QAAS,KACT/E,OAAQ,KACRu8B,WAAY,IAAI,KAAe,KAAeL,IAC9CM,SAAU,IAAI,KAAe,KAAeN,MAMhD,IAAIO,GAAqC,CACrCC,OAAQ,MAERC,GAAuC,CACvCC,UAAW,KACXC,aAAc,MAEdC,GAAsC,CACtCC,mBAAoB,KACpBC,kBAAmB,MAEnBC,GAA0C,IAAI,KAAc,CAC5DC,MAAO,IAAQ9G,GAA2C,IAAI,KAAe,KAAe,IAAQC,OAEpG8G,GAAqC,IAAI,KAAuB,OAAQ,CACxE,EAAG,CACChD,WAAY,IAAQnD,IAExB,EAAG,CACCmD,WAAY,IAAQnD,GAA2C2F,IAC/DS,kBAAmB,IAAI,KAAe,KAAeH,KAEzD,EAAG,CACC9C,WAAY,IAAQnD,GAA2CyF,IAC/DY,gBAAiB,IAAI,KAAe,KAAe,IAAQjH,GAA2C,OACtGtV,WAAY,IAAI,KAAe,KAAe,IAAQsV,GAA2C,OACjGkH,aAAc,IAAI,KAAe,KAAe,IAAQlH,GAA2C,QAEvG,EAAG,CACC6F,YAAa,IAAQ5F,IAEzB,EAAG,CACC8D,WAAY,IAAQnD,GAA2C8F,IAC/DS,iBAAkB,IAAI,KAAe,KAAe,IAAQnH,GAA2C,UAG3GoH,GAAiC,IAAI,KAAc,CACnDn9B,OAAQ,KACR8W,SAAU,KACVtU,KAAM,KACNq3B,gBAAiB,KACjBt1B,MAAOu4B,GACPxK,QAAS,IAAI,KAAgB,MAAevvB,GAAIA,EAAE/C,OAAS+C,EAAEa,mBAE7Dw5B,GAAqC,IAAI,KAAc,CACvDC,YAAa,KACbC,eAAgB,KAChBC,YAAa,KACbC,aAAc,OAEdC,GAAkC,IAAI,KAAc,CACpDC,aAAc,KACdC,YAAa,KACbC,gBAAiB,KACjBC,WAAY,KACZC,SAAU,IAAI,KAAaV,GAAoC,mBAC/DW,UAAW,IAAI,KAAaZ,GAAgC,gBAEhE,IAAIa,GAA2C,IAAI,KAAc,CAC7Dt5B,QAAS,KACTu5B,OAAQ,IAAI,KAAgB,MAC5BC,QAAS,KACTC,OAAQ,IAAI,KAAaV,GAAiC,aAM9D,IAAIW,GAAsC,IAAI,KAAc,CACxDrN,KAAM,KACNvT,IAAK,KACLwT,MAAO,KACPqN,OAAQ,OAEZ,IAAIC,GAA2C,IAAI,KAAc,CAC7D55B,QAAS,KACT/E,OAAQ,KACRi8B,YAAa,IAAQ5F,GAA2CoI,MAIpE,IAAIG,GAA+B,CAAC,EACpC,IAAIC,GAA2CD,GAC/CA,GAA6BE,KAAWh6B,EACxC85B,GAA6BG,KAAW75B,EACxC05B,GAA6Bt3B,KAAWnB,EACxCy4B,GAA6BI,KAAW73B,EACxCy3B,GAA6Bp3B,KAAWE,EACxCk3B,GAA6BzI,KAAW1rB,EACxCm0B,GAA6B,QAAchxB,EAC3CgxB,GAA6BK,KAAWpxB,GACxC+wB,GAA6BM,KAAWrwB,GACxC+vB,GAA6BO,KAAWlwB,GACxC2vB,GAA6BQ,KAAWlwB,GACxC0vB,GAA6B,QAAcjwB,GAC3CiwB,GAA6BS,KAAWjwB,GACxCwvB,GAA6B,QAAczf,GAC3Cyf,GAAmC,KAAQzf,GAC3Cyf,GAA6BU,KAAW/f,GACxCqf,GAA6BW,KAAWnc,GACxCwb,GAA6BY,KAAOZ,GAA6BW,KACjEX,GAA6Ba,KAAW/b,GACxCkb,GAA6Bc,KAAWxb,GACxC0a,GAA6Be,KAAW/a,GACxCga,GAA6BgB,KAAW3Y,GACxC2X,GAA6BiB,KAAW7X,GACxC4W,GAA6BkB,KAAWvT,GACxCqS,GAA6BmB,KAAWtS,GACxCmR,GAA6BoB,KAAWnR,GACxC+P,GAA6BqB,KAAWxQ,GACxCmP,GAA6BsB,KAAWjQ,GACxC2O,GAA6BuB,KAAWzP,GACxCkO,GAA6BwB,KAAWnP,GACxC2N,GAA6ByB,KAAWxN,GACxC+L,GAA6B0B,KAAWvN,GACxC6L,GAA6B2B,KAAWtN,GACxC2L,GAA6B4B,KAAW/L,GACxCmK,GAA6BxJ,KAAWP,GACxC+J,GAA6B6B,KAAWtL,GACxCyJ,GAA6B8B,KAAW9K,GACxCgJ,GAA6B+B,KAAW7I,GACxC8G,GAA6BgC,KAAWpI,GACxCoG,GAA6BiC,KAAWvH,GACxCsF,GAA6BkC,KAAWhH,GACxC8E,GAA6BmC,KAAWzE,GACxCsC,GAA6BoC,KAAW3C,GACxCO,GAA6BqC,KAAWtC,GAGxC,IAAIuC,GAAmC,IAAI,KAAc,CACrD/2B,IAAK,IAAI,KAAc,GACvBg3B,SAAU,KACVjxB,OAAQ,IAAI,KAAe,KAAe,OAAQ,CAC9CrN,KAAM,WAEVxC,OAAQ,OAER+gC,GAAkC,IAAI,KAAc,CACpDj3B,IAAK,IAAI,KAAc,GACvBk3B,UAAW,KACX19B,YAAa,KACbC,cAAe,KACfC,WAAY,KACZoB,OAAQ,IAAI,KAAai8B,GAAkC,eAE/DE,GAAgCz2B,QAAU,WACtC,IAAI1F,EAAS,CAAC,EACd,IAAK,IAAIL,KAAS3D,KAAKgE,OAAOA,EAAOL,EAAMuF,KAAOvF,EAClD3D,KAAKgE,OAASA,CAClB,EACAm8B,GAAgCr2B,UAAY,WACxC,IAAKC,MAAMC,QAAQhK,KAAKgE,QAAS,CAC7B,IAAIA,EAAS,GACb,IAAI,IAAIkF,KAAOlJ,KAAKgE,OAAO,CACvB,IAAIL,EAAQ3D,KAAKgE,OAAOkF,GACpBvF,GAAOK,EAAOhF,KAAK,CACnBkK,IAAKA,EACLg3B,SAAU,EACVjxB,OAAQ,IAAI,KAAuB2uB,GAA0C10B,GAAMvF,GACnFvE,OAAYw+B,GAA0C10B,GAAKkB,KAAKzG,IAExE,CACA3D,KAAKgE,OAASA,CAClB,CACAhE,KAAKkJ,IAAM,OACXlJ,KAAKogC,UAAYpgC,KAAKgE,OAAO5E,OAC7B,IAAIihC,EAAkBj+B,KAAKk+B,MAAMl+B,KAAKm+B,IAAIvgC,KAAKogC,WAAah+B,KAAKo+B,KAC7DC,EAAcr+B,KAAKs+B,IAAI,EAAGL,GAC9BrgC,KAAK0C,YAA4B,GAAd+9B,EACnBzgC,KAAK2C,cAAgBP,KAAKm+B,IAAIE,GAAer+B,KAAKo+B,IAClDxgC,KAAK4C,WAA8B,GAAjB5C,KAAKogC,UAAiBpgC,KAAK0C,WACjD,EACA,IAAIi+B,GAA2CR,GAK/C,SAASS,GAA0C1xB,EAAK2xB,GACpD,IAAIC,EAAM,EACNz+B,EAAM6M,EAAI9P,OAAS,EACvB,KAAM0hC,GAAOz+B,GAAI,CACb,IAAIyb,EAAMgjB,EAAMz+B,GAAO,EACnB8F,EAAM04B,EAAI3xB,EAAI4O,IAClB,GAAI3V,EAAM,EAAG9F,EAAMyb,EAAM,MACpB,MAAI3V,EAAM,GACV,OAAO2V,EADMgjB,EAAMhjB,EAAM,CACf,CACnB,CACA,OAAQ,CACZ,CACA,SAASijB,GAA0CtmB,EAAOzL,GACtD,IAAIqM,EAAQ,GACZ,KAAMZ,EAAQzL,GAAIqM,EAAMrc,KAAKyb,KAC7B,OAAOY,CACX,CACA,MAAM2lB,GAA4C,IAAI14B,YAAY,SAE5D24B,GAA8B,mEAC9BC,GAA+B,IAAI34B,WAAW,KACpD,IAAI,IAAIpJ,EAAI,EAAGA,EAAI8hC,GAAoC9hC,IAAI+hC,GAA6BD,GAA4B74B,WAAWjJ,IAAMA,EACrI,SAASgiC,GAA0CC,GAC/C,IAAIC,EAA+B,IAAhBD,EAAOhiC,OACQ,MAA9BgiC,EAAOA,EAAOhiC,OAAS,KACvBiiC,IACkC,MAA9BD,EAAOA,EAAOhiC,OAAS,IAAYiiC,KAE3C,IAAIC,EAAQ,IAAI/4B,WAAW84B,GACvBE,EAAI,EACR,IAAI,IAAIpiC,EAAI,EAAGqS,EAAM4vB,EAAOhiC,OAAQD,EAAIqS,EAAKrS,GAAK,EAAE,CAChD,IAAIqiC,EAAWN,GAA6BE,EAAOh5B,WAAWjJ,IAC1DsiC,EAAWP,GAA6BE,EAAOh5B,WAAWjJ,EAAI,IAC9DuiC,EAAWR,GAA6BE,EAAOh5B,WAAWjJ,EAAI,IAC9DwiC,EAAWT,GAA6BE,EAAOh5B,WAAWjJ,EAAI,IAClEmiC,EAAMC,KAAOC,GAAY,EAAIC,GAAY,EACzCH,EAAMC,MAAmB,GAAXE,IAAkB,EAAIC,GAAY,EAChDJ,EAAMC,MAAmB,EAAXG,IAAiB,EAAe,GAAXC,CACvC,CACA,OAAOL,CACX,CAKA,MAAMM,GACF,YAAAC,CAAaC,EAAWhR,GACpB,IAAK,IAAKrtB,EAAYC,KAAeotB,EAAM,IAAK,IAAI+M,KAAQiE,EAAU99B,OAClE,GAAI65B,EAAKp6B,aAAeA,GAAco6B,EAAKn6B,aAAeA,EAAY,OAAOm6B,EAAKl6B,MAEtF,OAAO,IACX,CACA,MAAAo+B,CAAOC,EAAWC,GAGd,GAAIjiC,KAAKgI,SAAUg6B,EAAYhiC,KAAKgI,SAAShK,IAAIgkC,IAAcA,OAC1D,GAAIC,EAAmB,CACxB,IAAIzkB,EAAMxd,KAAKkiC,qBAAqBF,EAAWC,GAC/C,GAAIzkB,EAAK,OAAOA,CACpB,CACA,IAAIqgB,EAAO79B,KAAK69B,KAChB,OAAOA,EAAK/5B,SACR,KAAK,EACD,OAAO+5B,EAAK77B,QAAQhE,IAAIgkC,IAAc,EAC1C,KAAK,EACD,CACI,IAAIlB,EAAM,EACNz+B,EAAMw7B,EAAKp7B,SAAW,EAC1B,KAAMq+B,GAAOz+B,GAAI,CACb,IAAIyb,EAAMgjB,EAAMz+B,GAAO,EACvB,GAAI2/B,EAAYnE,EAAK96B,UAAU/E,IAAI8f,GAAMzb,EAAMyb,EAAM,MAChD,MAAIkkB,EAAYnE,EAAKh7B,QAAQ7E,IAAI8f,IACjC,CACD,IACIN,EADA2kB,EAActE,EAAKh9B,cAAc7C,IAAI8f,GAEzC,GAAoB,IAAhBqkB,EAAmB3kB,EAAMwkB,EAAYnE,EAAKj9B,QAAQ5C,IAAI8f,OACrD,CACD,IAAIrD,EAAQ0nB,EAAc,GAAKH,EAAYnE,EAAK96B,UAAU/E,IAAI8f,KAAS+f,EAAKp7B,SAAWqb,GACvFN,EAAMqgB,EAAKt7B,gBAAgBvE,IAAIyc,IAAU,EAC7B,IAAR+C,IAAWA,GAAOqgB,EAAKj9B,QAAQ5C,IAAI8f,GAC3C,CACA,OAAa,MAANN,CACX,CAX4CsjB,EAAMhjB,EAAM,CAWxD,CACJ,CACA,OAAO,CACX,CACJ,KAAK,EACD,MAAM,IAAIte,MAAM,uBACpB,KAAK,EACL,KAAK,GACD,OAAOq+B,EAAK56B,aAAajF,IAAIgkC,EAAYnE,EAAKn9B,YAAc,EAChE,KAAK,GACL,KAAK,GACD,CACI,IAAIogC,EAAM,EACNz+B,EAAMw7B,EAAKz6B,QAAU,EACzB,KAAM09B,GAAOz+B,GAAI,CACb,IAAIyb,EAAMgjB,EAAMz+B,GAAO,EACnB+/B,EAAQvE,EAAKx6B,OAAOrF,IAAI8f,GAC5B,GAAIkkB,EAAYI,EAAMrhC,cAAesB,EAAMyb,EAAM,MAC5C,MAAIkkB,EAAYI,EAAMphC,aAEvB,OAAqB,KAAjB68B,EAAK/5B,QAAuBs+B,EAAMnhC,SAAW+gC,EAAYI,EAAMrhC,eACvDqhC,EAAMnhC,QAHkB6/B,EAAMhjB,EAAM,CAIpD,CACJ,CACA,OAAO,CACX,CACJ,KAAK,GACD,MAAM,IAAIte,MAAM,wBACpB,QACI,MAAM,IAAIA,MAAM,uBAAuBq+B,EAAK/5B,WAExD,CACA,oBAAAo+B,CAAqBF,EAAWC,GAC5B,IAAKjiC,KAAKqiC,IAAK,OAAO,EACtB,IAAIC,EAAYtiC,KAAKqiC,IAAI9+B,aAAag/B,UAClCpjC,EAAQyhC,GAA2C0B,GAAYE,GAAIP,EAAoBO,EAAE9gC,cACzF+gC,EAAMH,EAAUnjC,GAEpB,OADW,IAAPA,GAAYsjC,EAAI9gC,aAAYxC,EAAQyhC,GAA2C6B,EAAI9gC,YAAa6gC,GAAIR,EAAYQ,EAAErhC,mBAAqB,EAAI6gC,EAAYQ,EAAErhC,kBAAoBqhC,EAAEphC,gBAAkB,EAAI,MAC9L,IAAPjC,GAAYsjC,EAAI5gC,gBAChB1C,EAAQyhC,GAA2C6B,EAAI5gC,eAAgB2gC,GAAIR,EAAYQ,EAAElhC,gBAC9E,IAAPnC,GAAiBsjC,EAAI5gC,cAAc1C,GAAG8B,QAEvC,CACX,CACA,eAAAyhC,GACI,IAAI7E,EAAO79B,KAAK69B,KAChB,OAAOA,EAAK/5B,SACR,KAAK,EACD,OAAWi9B,GAA2C,EAAGlD,EAAK77B,QAAQ5C,QAC1E,KAAK,EACD,CACI,IAAI+I,EAAM,GACNw6B,EAAW9E,EAAKh7B,QAAQ0/B,UAC5B,IAAI,IAAIpjC,EAAI,EAAGA,EAAIwjC,EAASvjC,OAAQD,IAAI,CACpC,IAAIyjC,EAAOD,EAASxjC,GAAK,EACrB4P,EAAQ8uB,EAAK96B,UAAU/E,IAAImB,GAC/BgJ,EAAInJ,QAAY+hC,GAA2ChyB,EAAO6zB,GACtE,CACA,OAAOz6B,CACX,CACJ,KAAK,EACD,MAAM,IAAI3I,MAAM,uBACpB,KAAK,EACL,KAAK,GACD,OAAWuhC,GAA2ClD,EAAKn9B,UAAWm9B,EAAKn9B,UAAYm9B,EAAK56B,aAAa7D,QAC7G,KAAK,GACL,KAAK,GACD,CACI,IAAI+I,EAAM,GACV,IAAK,IAAIi6B,KAASvE,EAAKx6B,OAAOk/B,UAAUp6B,EAAInJ,QAAY+hC,GAA2CqB,EAAMrhC,cAAeqhC,EAAMphC,YAAc,IAC5I,OAAOmH,CACX,CACJ,KAAK,GACD,MAAM,IAAI3I,MAAM,wBACpB,QACI,MAAM,IAAIA,MAAM,uBAAuBq+B,EAAK/5B,WAExD,CACA,kBAAA++B,CAAmBrlB,GACf,IAAIqgB,EAAO79B,KAAK69B,KAChB,OAAOA,EAAK/5B,SACR,KAAK,EACD,CACI,IAAIqE,EAAM,GACV,IAAI,IAAIhJ,EAAI,EAAGA,EAAI,IAAKA,IAAQ0+B,EAAK77B,QAAQhE,IAAImB,KAAOqe,GAAKrV,EAAInJ,KAAKG,GACtE,OAAOgJ,CACX,CACJ,KAAK,EACD,CACI,IAAIA,EAAM,GACV,IAAI,IAAIhJ,EAAI,EAAGA,EAAI0+B,EAAKp7B,SAAUtD,IAAI,CAClC,IAAI6P,EAAM6uB,EAAKh7B,QAAQ7E,IAAImB,GACvB4P,EAAQ8uB,EAAK96B,UAAU/E,IAAImB,GAC3BgjC,EAActE,EAAKh9B,cAAc7C,IAAImB,GACrC2jC,EAAQjF,EAAKj9B,QAAQ5C,IAAImB,GAC7B,IAAI,IAAI4jC,EAAIh0B,EAAOg0B,GAAK/zB,EAAK+zB,IAAI,CAC7B,IAAIC,EAAI,EACR,GAAoB,IAAhBb,EAAmBa,EAAID,EAAID,MAC1B,CACD,IAAIroB,EAAQ0nB,EAAc,GAAKY,EAAIh0B,IAAU8uB,EAAKp7B,SAAWtD,GAC7D6jC,EAAInF,EAAKt7B,gBAAgBvE,IAAIyc,IAAU,EAC7B,IAANuoB,IAASA,GAAKF,EACtB,CACIE,IAAMxlB,GAAKrV,EAAInJ,KAAK+jC,EAC5B,CACJ,CACA,OAAO56B,CACX,CACJ,KAAK,GACD,CACI,IAAIA,EAAM,GACV,IAAK,IAAIi6B,KAASvE,EAAKx6B,OAAOk/B,UAAc/kB,GAAO4kB,EAAMnhC,SAAWuc,GAAO4kB,EAAMnhC,SAAWmhC,EAAMphC,YAAcohC,EAAMrhC,gBAAgBoH,EAAInJ,KAAKojC,EAAMrhC,eAAiByc,EAAM4kB,EAAMnhC,UAClL,OAAOkH,CACX,CACJ,KAAK,GACD,CACI,IAAIA,EAAM,GACV,IAAK,IAAIi6B,KAASvE,EAAKx6B,OAAOk/B,UAAc/kB,IAAQ4kB,EAAMnhC,SAASkH,EAAInJ,QAAY+hC,GAA2CqB,EAAMrhC,cAAeqhC,EAAMphC,YAAc,IACvK,OAAOmH,CACX,CACJ,QACI,MAAM,IAAI3I,MAAM,uBAAuBq+B,EAAK/5B,WAExD,CACA,WAAA0L,CAAYsyB,GAwCR,GAtCA9hC,KAAKgI,SAAW,KAChBhI,KAAK69B,KAAO79B,KAAK6hC,aAAaC,EAAW,CAErC,CACI,EACA,IAEJ,CACI,EACA,GAEJ,CACI,EACA,GAGJ,CACI,EACA,GAEJ,CACI,EACA,GAEJ,CACI,EACA,GAEJ,CACI,EACA,GAEJ,CACI,EACA,MAIH9hC,KAAK69B,KAAM,IAAK,IAAIA,KAAQiE,EAAU99B,OAAO,CAC9C,IACIkE,EAAcH,EADCR,EAA2Cs2B,EAAKp6B,WAAYo6B,EAAKn6B,WAAYm6B,EAAKl6B,MAAM5B,SAAW,IAElHmG,IACAlI,KAAK69B,KAAOA,EAAKl6B,MACjB3D,KAAKgI,SAAWE,EAExB,CACA,IAAKlI,KAAK69B,KAAM,MAAM,IAAIr+B,MAAM,yCAChCQ,KAAKqiC,IAAMriC,KAAK6hC,aAAaC,EAAW,CACpC,CACI,EACA,KAGJ9hC,KAAKqiC,KAA4B,KAArBriC,KAAKqiC,IAAIv+B,UAAgB9D,KAAKqiC,IAAM,KACxD,GAEJ,EAAI,MAAW,CACP3iC,GACLkiC,GAAyCqB,UAAW,kBAAmB,OAC1E,EAAI,MAAW,CACPvjC,GACLkiC,GAAyCqB,UAAW,qBAAsB,MAI7E,MAAMC,GACF,OAAAx5B,CAAQiL,EAAQwuB,GACZ,IAAI,IAAI/kB,EAAa,EAAGA,EAAazJ,EAAOvV,OAAS,EAAGgf,IAAa,CACjE,IAAI+R,EAAOxb,EAAOyJ,GAAYglB,GAC1BhT,EAAQzb,EAAOyJ,EAAa,GAAGglB,GACnCD,EAAU/kB,GAAYqJ,UAAYznB,KAAKqjC,WAAWlT,EAAMC,EAC5D,CACJ,CACA,UAAAiT,CAAWlT,EAAMC,GACb,IAAIjoB,EAAM,EACV,IAAK,IAAIxE,KAAS3D,KAAKo/B,KAAKp7B,OAAO,CAC/B,GAAIL,EAAMuS,SAASotB,YAAa,SAChC,OAAO3/B,EAAMG,SACT,KAAK,EACD,IAAKH,EAAMuS,SAASolB,WAAY,SAChC,MACJ,KAAK,EACD,GAAI33B,EAAMuS,SAASqlB,UAAY53B,EAAMuS,SAASqtB,UAAW,SACzD,MACJ,QACI,MAAM,IAAI/jC,MAAM,qCAAqCmE,EAAMG,WAEnE,IAAImG,EAAM,EACNpM,EAAI8F,EAAM2d,SACd,OAAO3d,EAAM5E,QACT,KAAK,EACD,IAAIykC,EAAc5C,GAA2C/iC,EAAEizB,OAAO,SAAS2S,GAC3E,OAAOtT,EAAOsT,EAAKtT,MAAQC,EAAQqT,EAAKrT,KAC5C,IACIoT,GAAW,IAAGv5B,EAAMpM,EAAEizB,MAAM0S,GAAS1jC,OACzC,MACJ,KAAK,EACD,IAAI4jC,EAAa,EAAGC,EAAc,EACyDD,EAAvFvT,GAAQtyB,EAAE6yB,UAAUJ,YAAcH,EAAOtyB,EAAE6yB,UAAUJ,WAAazyB,EAAE6yB,UAAUH,QAAsB1yB,EAAE6yB,UAAUljB,QAAQ2iB,EAAOtyB,EAAE6yB,UAAUJ,YAC7HzyB,EAAEmzB,MAAMP,IACtBL,GAASvyB,EAAEkzB,WAAWT,YAAcF,EAAQvyB,EAAEkzB,WAAWT,WAAazyB,EAAEkzB,WAAWR,UAASoT,EAAc9lC,EAAEkzB,WAAWvjB,QAAQ4iB,EAAQvyB,EAAEkzB,WAAWT,aACxJ,IAAI7V,GAASipB,EAAaC,EAAc9lC,EAAEmzB,MAAMP,KAAO,EACvDxmB,EAAMpM,EAAEmzB,MAAMlH,OAAO9rB,IAAIyc,GACzB,MACJ,KAAK,EACD,GAAI0V,GAAQtyB,EAAE6W,YAAc0b,GAASvyB,EAAE6W,WAAY,OAAO,EAC1DzK,EAAMpM,EAAEuzB,UAAUvzB,EAAE0zB,UAAU1zB,EAAEwzB,UAAUlB,GAAQtyB,EAAEszB,gBAAkBtzB,EAAEyzB,WAAWlB,KACnF,MACJ,QACI,MAAM,IAAI5wB,MAAM,wCAAwCmE,EAAM5E,UAIlE4E,EAAMuS,SAAS0tB,SAAUz7B,EAAM8B,EAC9B9B,GAAO8B,CAChB,CACA,OAAO9B,CACX,CACA,WAAAqH,CAAYlQ,GACRU,KAAKo/B,KAAO9/B,EAAK8/B,IACrB,EAKJ,MAAMyE,GACF,cAAAC,CAAenvB,EAAQwuB,GAEnB,IAAIY,EAAe,EACfC,EAAa,EACjB,IAAI,IAAIvpB,EAAQ,EAAGA,EAAQ9F,EAAOvV,OAAQqb,IAAQ,CAClC9F,EAAO8F,GACTwpB,OAAQD,EAAavpB,GAEvBspB,IAAiBC,GAAYhkC,KAAKkkC,gBAAgBvvB,EAAQwuB,EAAWY,EAAcC,GACvFD,EAAeC,EAAavpB,EAEpC,CAEA,OADIspB,IAAiBC,GAAYhkC,KAAKkkC,gBAAgBvvB,EAAQwuB,EAAWY,EAAcC,GAChFb,CACX,CACA,eAAAe,CAAgBvvB,EAAQwuB,EAAWY,EAAcC,GAC7C,IAAIhP,EAAOrgB,EAAOovB,GACdI,EAAUnP,EAAKoP,KAAKC,OAEpBrP,EAAKsP,WAAWllC,OAAS,IAC7B+kC,EAAQI,OAASvP,EAAKsP,WAAWllC,OAAS,GAAK+kC,EAAQxlB,MAAQqW,EAAKsP,WAAWllC,QAC/E,IAAIkgB,GAAW6jB,EAAUY,GAActc,SACnClI,EAAU,EACVilB,EAAOxkC,KAAKV,KAAKgF,WAAa,GAElC,IAAI,IAAImW,EAAQspB,EAAe,EAAGtpB,GAASupB,EAAYvpB,IAAQ,CAC3D,IAAIgqB,EAAO9vB,EAAO8F,GACdiqB,EAAUD,EAAKL,KACfO,EAAWxB,EAAU1oB,GACrBmqB,EAAiB5kC,KAAK6kC,kBAAkBJ,EAAKH,WAAW,IAC5D,GAAuB,kBAAnBM,EAAoC,CAGpC,OAFAD,EAASrlB,QAAUqlB,EAASplB,QAAU,EAE/BqlB,GACH,IAAK,eACL,IAAK,eAEDD,EAASrlB,SAAW6kB,EAAQI,KAAOG,EAAQ/lB,MAAQ,EAAI+lB,EAAQH,KAC/D,MACJ,IAAK,sBACL,IAAK,aACL,IAAK,aAEDI,EAASrlB,SAAW6kB,EAAQI,KAAOG,EAAQH,KAC3C,MACJ,IAAK,uBACL,IAAK,cACL,IAAK,cAEDI,EAASrlB,SAAW6kB,EAAQW,KAAOJ,EAAQ/lB,MAAQ+lB,EAAQH,KAC3D,MACJ,QAEII,EAASrlB,SAAW6kB,EAAQI,MAAQJ,EAAQxlB,MAAQ+lB,EAAQ/lB,OAAS,EAAI+lB,EAAQH,KAGzF,OAAOK,GACH,IAAK,eACL,IAAK,aACL,IAAK,QACL,IAAK,cACL,IAAK,sBACL,IAAK,iBAEsB,wBAAnBA,GAA+D,mBAAnBA,IAAqCT,EAAQY,MAAQP,GACrGG,EAASplB,SAAW4kB,EAAQY,KAAOL,EAAQM,KAC3Cb,EAAQY,MAAQL,EAAQhmB,OACxB,MACJ,IAAK,eACL,IAAK,aACL,IAAK,QACL,IAAK,cACL,IAAK,iBACL,IAAK,uBAEsB,mBAAnBkmB,GAA0D,yBAAnBA,IAA2CT,EAAQa,MAAQR,GACtGG,EAASplB,QAAU4kB,EAAQa,KAAON,EAAQK,KAC1CZ,EAAQa,MAAQN,EAAQhmB,OAGhCimB,EAASld,SAAWkd,EAASjd,SAAW,EACxCid,EAASrlB,SAAWA,EACpBqlB,EAASplB,SAAWA,CACxB,MACID,GAAWqlB,EAASld,SACpBlI,GAAWolB,EAASjd,QAE5B,CAEJ,CACA,iBAAAmd,CAAkBI,GACd,IAAIL,GAAiB,EAAI,MAA0BK,GAEnD,GAA2B,QAAT,IAAbA,GACD,GAAuB,kBAAnBL,EAAoC,OAAOK,GAC3C,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACD,MAAO,cACX,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACD,MAAO,QACX,KAAK,KACD,MAAO,aAEV,GAAkB,OAAdA,EAAsB,MAAO,cAE1C,OAAOL,GAEH,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QAuBL,IAAK,QACL,IAAK,QAQL,IAAK,SAKL,IAAK,SACL,IAAK,SACD,MAAO,QArCX,IAAK,QACD,MAAO,iBACX,IAAK,QAyBL,IAAK,SACD,MAAO,cAxBX,IAAK,QACL,IAAK,QACD,MAAO,aACX,IAAK,QAKL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QAaL,IAAK,SAML,IAAK,SACD,MAAO,QA9BX,IAAK,QACD,MAeJ,IAAK,SACD,MAAO,cAef,OAAOA,CACX,CACA,WAAAp1B,CAAYlQ,GACRU,KAAKV,KAAOA,CAChB,EAMA,MAAM4lC,GAIJ,SAAIvmB,GACF,OAAO3e,KAAK8kC,KAAO9kC,KAAKukC,IAC5B,CAIE,UAAI7lB,GACF,OAAO1e,KAAKglC,KAAOhlC,KAAK+kC,IAC5B,CACA,QAAAI,CAAS3C,EAAG4C,GACJhjC,KAAKijC,IAAI7C,KAAO8C,MACZ9C,EAAIxiC,KAAKukC,OAAMvkC,KAAKukC,KAAO/B,GAC3BA,EAAIxiC,KAAK8kC,OAAM9kC,KAAK8kC,KAAOtC,IAE/BpgC,KAAKijC,IAAID,KAAOE,MACZF,EAAIplC,KAAK+kC,OAAM/kC,KAAK+kC,KAAOK,GAC3BA,EAAIplC,KAAKglC,OAAMhlC,KAAKglC,KAAOI,GAEvC,CACA,IAAAf,GACI,OAAO,IAAIa,GAAyCllC,KAAKukC,KAAMvkC,KAAK+kC,KAAM/kC,KAAK8kC,KAAM9kC,KAAKglC,KAC9F,CACA,WAAAx1B,CAAY+0B,EAAOe,IAAUP,EAAOO,IAAUR,GAAQQ,IAAUN,GAAQM,KAIpEtlC,KAAKukC,KAAOA,EAIZvkC,KAAK+kC,KAAOA,EAIZ/kC,KAAK8kC,KAAOA,EAIZ9kC,KAAKglC,KAAOA,CAChB,EAQJ,MAAMO,GAAwC,CAC1CC,mBAAoB,OACpBC,OAAQ,OACRC,iBAAkB,OAClBC,SAAU,OACVC,QAAS,OACTC,SAAU,OACVC,MAAO,OACPC,UAAW,OACXC,MAAO,OACPC,QAAS,CACL,OACA,QAEJC,SAAU,OACVC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,MAAO,OACPC,OAAQ,OACRC,oBAAqB,OACrBC,OAAQ,OACRC,KAAM,OACNC,SAAU,OACVC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,WAAY,CACR,OACA,QAEJC,QAAS,OACTC,SAAU,OACVC,qBAAsB,OACtBC,QAAS,OACTC,SAAU,OACVC,SAAU,OACVC,WAAY,OACZC,OAAQ,OACRC,QAAS,OACTC,MAAO,OACPC,SAAU,CACN,OACA,QAEJC,SAAU,CACN,OACA,QAEJC,OAAQ,OACRC,IAAK,OACLC,QAAS,OACTC,OAAQ,OACRC,SAAU,OACVC,aAAc,OACdC,qBAAsB,OACtBC,WAAY,OACZC,SAAU,OACVC,SAAU,OACVC,SAAU,OACVC,WAAY,OACZC,MAAO,OACPC,OAAQ,OACRC,QAAS,CACL,OACA,QAEJC,OAAQ,OACRC,SAAU,OACVC,IAAK,OACLC,MAAO,OACPC,OAAQ,OACRC,MAAO,OACPC,SAAU,OACVC,SAAU,OACVC,KAAM,OACNC,OAAQ,OACRC,OAAQ,OACRC,SAAU,OACVC,QAAS,OACTC,WAAY,OACZC,cAAe,OACfC,iBAAkB,OAClBC,qBAAsB,OACtBC,UAAW,CACP,OACA,QAEJC,KAAM,OACNC,UAAW,OACXC,IAAK,OACLC,aAAc,OACdC,QAAS,CACL,OACA,QAEJC,kBAAmB,OACnBC,UAAW,OACXC,IAAK,OACLC,MAAO,OACPC,SAAU,OACVC,WAAY,OACZC,MAAO,CACH,OACA,QAEJC,QAAS,OACTC,UAAW,OACXC,YAAa,OACbC,WAAY,OACZC,SAAU,OACVC,sBAAuB,OACvBC,gBAAiB,OACjBC,WAAY,OACZC,KAAM,OACNC,uBAAwB,OACxBC,OAAQ,OACRC,MAAO,OACPC,UAAW,OACXC,kBAAmB,OACnBC,WAAY,OACZC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,UAAW,OACXC,QAAS,OACTC,aAAc,OACdC,UAAW,OACXC,aAAc,OACdC,OAAQ,OACRC,SAAU,OACVC,MAAO,OACPC,OAAQ,OACRC,YAAa,OACbC,MAAO,CACH,OACA,QAEJC,SAAU,OACVC,OAAQ,CACJ,OACA,QAEJC,SAAU,OACVC,QAAS,OACTC,OAAQ,OACRC,KAAM,OACNC,QAAS,OACTC,QAAS,OACTC,SAAU,OACVC,IAAK,OACLC,YAAa,OACbC,YAAa,OACbC,UAAW,OACXC,GAAI,OACJC,UAAW,OACXC,OAAQ,OACRC,QAAS,QAEPC,GAAyC,CAAC,EAChD,IAAI,IAAIp6B,KAAUoyB,GAAsC,CACpD,IAAIr8B,EAAMq8B,GAAsCpyB,GAChD,GAAIpJ,MAAMC,QAAQd,GAAM,IAAK,IAAI/G,KAAK+G,EAAIqkC,GAAuCprC,GAAKgR,OACjFo6B,GAAuCrkC,GAAOiK,CACvD,CAmCA,MAAMq6B,GAA4B,CAC9BC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACN,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EAENC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,GAEV,SAASC,GAA0C97B,GAC/C,OAAIq6B,GAA0Br6B,GAAgB,MACvC,KACX,CAGA,MAAM+7B,GAIA,gBAAIC,GACF,IAAIxwB,EAAQ,EACZ,IAAK,IAAIgmB,KAAY3kC,KAAKmjC,UAAUxkB,GAASgmB,EAASld,SACtD,OAAO9I,CACX,CAIC,iBAAIywB,GACD,IAAI1wB,EAAS,EACb,IAAK,IAAIimB,KAAY3kC,KAAKmjC,UAAUzkB,GAAUimB,EAASjd,SACvD,OAAOhJ,CACX,CAIC,QAAI2wB,GACD,IAAIA,EAAO,IAAQnK,GACf1C,EAAI,EACJ4C,EAAI,EACR,IAAI,IAAI3qB,EAAQ,EAAGA,EAAQza,KAAK2U,OAAOvV,OAAQqb,IAAQ,CACnD,IAAI4C,EAAQrd,KAAK2U,OAAO8F,GACpB8mB,EAAIvhC,KAAKmjC,UAAU1oB,GACnB1K,EAAIsN,EAAMgyB,KACdA,EAAKlK,SAASp1B,EAAEw0B,KAAO/B,EAAIjB,EAAEjiB,QAASvP,EAAEg1B,KAAOK,EAAI7D,EAAEhiB,SACrD8vB,EAAKlK,SAASp1B,EAAE+0B,KAAOtC,EAAIjB,EAAEjiB,QAASvP,EAAEi1B,KAAOI,EAAI7D,EAAEhiB,SACrDijB,GAAKjB,EAAE9Z,SACP2d,GAAK7D,EAAE7Z,QACX,CACA,OAAO2nB,CACX,CACA,WAAA7/B,CAAYmF,EAAQuoB,EAAU/pB,EAAQpR,EAAUutC,GA6B5C,GAzBAtvC,KAAK2U,OAASA,EAId3U,KAAKmjC,UAAY,KAIjBnjC,KAAKmT,OAASA,EAKdnT,KAAK+B,SAAWA,GAAY,KAK5B/B,KAAKsvC,UAAYA,GAAaL,GAA0C97B,GAKxEnT,KAAKk9B,SAAW,CAAC,EAEbnzB,MAAMC,QAAQkzB,GAAW,IAAK,IAAIh0B,KAAOg0B,EAASl9B,KAAKk9B,SAASh0B,IAAO,MAC9C,iBAAbg0B,IAAuBl9B,KAAKk9B,SAAWA,EAC3D,EAMA,MAAMqS,GACN,WAAA//B,CAAYiY,EAAW,EAAGC,EAAW,EAAGpI,EAAU,EAAGC,EAAU,GAI3Dvf,KAAKynB,SAAWA,EAIhBznB,KAAK0nB,SAAWA,EAIhB1nB,KAAKsf,QAAUA,EAIftf,KAAKuf,QAAUA,CACnB,EAOJ,MAAMiwB,GAAiC,CACnCC,uBAAwB,CACpBC,KAAM,EACNC,WAAW,EACXC,gBAAiB,GAErBC,UAAW,CACPH,KAAM,EACNC,WAAW,EACXG,kBAAmB,EACnBC,gBAAiB,EACjBC,cAAe,EAEfC,cAAe,EACfC,mBAAoB,GACpBC,iBAAkB,GAClBC,uBAAwB,GACxBC,gBAAiB,GACjBC,oBAAqB,GACrBC,oBAAqB,IAEzBC,kBAAmB,CACfd,KAAM,EACNC,WAAW,EACXc,YAAa,EACbC,mBAAoB,EACpBC,QAAS,GAEbC,WAAY,CACRlB,KAAM,EACNC,WAAW,GAQfkB,qBAAsB,CAClBnB,KAAM,EACNC,WAAW,EACXmB,wBAAyB,GAE7BC,wBAAyB,CACrBrB,KAAM,EACNC,WAAW,EACXoB,wBAAyB,GAE7BC,cAAe,CACXtB,KAAM,EACNC,WAAW,EACXsB,kBAAmB,EACnBC,oBAAqB,EACrBC,kBAAmB,EACnBC,oBAAqB,GAEzBC,WAAY,CACR3B,KAAM,EACNC,WAAW,EACX2B,mBAAoB,EACpBC,iBAAkB,EAGlBC,gBAAiB,GAErBC,WAAY,CACR/B,KAAM,EACNC,WAAW,EACX+B,eAAgB,EAChBC,eAAgB,EAChBC,oBAAqB,GAEzBC,iBAAkB,CACdnC,KAAM,GACNC,WAAW,EACXmC,eAAgB,EAChBC,UAAW,EACXC,UAAW,EACXC,SAAU,EACVC,oBAAqB,GAEzBC,UAAW,CACPzC,KAAM,GACNC,WAAW,EACXyC,YAAa,EACbC,kBAAmB,EACnBC,kBAAmB,GAEvBC,sBAAuB,CACnB7C,KAAM,GACNC,WAAW,EACX6C,eAAgB,GAEpBC,kBAAmB,CACf/C,KAAM,GACNC,WAAW,EAGX+C,YAAa,GAKjBC,mBAAoB,CAChBjD,KAAM,GACNC,WAAW,EAMXiD,kBAAmB,IAEvBC,aAAc,CACVnD,KAAM,GACNC,WAAW,EACXmD,YAAa,EACbC,SAAU,EACVC,aAAc,EACdC,SAAU,EACVC,kBAAmB,EACnBC,qBAAsB,EACtBC,YAAa,GAEjBC,sBAAuB,CACnB3D,KAAM,GACNC,WAAW,EACX2D,aAAc,GAGlBC,iBAAkB,CACd7D,KAAM,GACNC,WAAW,EACX6D,aAAc,EACdC,aAAc,EACdC,aAAc,EACdC,aAAc,EACdC,aAAc,GAElBC,aAAc,CACVnE,KAAM,GACNC,WAAW,EACXmE,eAAgB,EAChBC,YAAa,EACbC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,SAAU,GAEdC,eAAgB,CACZ1E,KAAM,GACNC,WAAW,EACX0E,sBAAuB,EACvBC,qBAAsB,EACtBC,kBAAmB,EACnBC,kBAAmB,EACnBC,kBAAmB,EACnBC,kBAAmB,EACnBC,kBAAmB,EACnBC,oBAAqB,EACrBC,mBAAoB,EACpBC,mBAAoB,EACpBC,iBAAkB,GAClBC,kBAAmB,GACnBC,eAAgB,GAChBC,cAAe,GACfC,2BAA4B,IAEhCC,WAAY,CACR1F,KAAM,GACNC,WAAW,EACX0F,iBAAkB,EAClBC,iBAAkB,GAEtBC,YAAa,CACT7F,KAAM,GACNC,WAAW,EACX6F,iBAAkB,EAClBC,eAAgB,EAChBC,cAAe,EACfC,eAAgB,EAChBC,iBAAkB,EAClBC,oBAAqB,EACrBC,iBAAkB,GAEtBC,gBAAiB,CACbrG,KAAM,GACNC,WAAW,EACXqG,kBAAmB,GAWvBC,WAAY,CACRvG,KAAM,GACNC,WAAW,EACXuG,aAAc,EACdC,cAAe,EACfC,qBAAsB,EACtBC,iBAAkB,EAClBC,yBAA0B,EAC1BC,sBAAuB,EACvBC,iBAAkB,EAClBC,uBAAwB,EACxBC,kBAAmB,EACnBC,sBAAuB,EACvBC,6BAA8B,IAElCC,YAAa,CACTnH,KAAM,GACNC,WAAW,EACXmH,cAAe,EACfC,iBAAkB,GAEtBC,mBAAoB,CAChBtH,KAAM,GACNC,WAAW,EACXsH,oBAAqB,EACrBC,uBAAwB,EACxBC,oBAAqB,GAEzBC,qBAAsB,CAClB1H,KAAM,GACNC,WAAW,EACX0H,qBAAsB,EACtBC,yBAA0B,EAC1BC,uBAAwB,GAE5BC,SAAU,CACN9H,KAAM,GACNC,WAAW,EAGX6H,SAAU,GAEdC,sBAAuB,CACnB/H,KAAM,GACNC,WAAW,EACX+H,wBAAyB,EACzBC,gBAAiB,EACjBC,gBAAiB,EACjBC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,GAEtBC,wBAAyB,CACrBtI,KAAM,GACNC,WAAW,EACXsI,0BAA2B,EAC3BC,kBAAmB,EACnBC,kBAAmB,EACnBC,oBAAqB,EACrBC,mBAAoB,EACpBC,mBAAoB,GAExBC,0BAA2B,CACvB7I,KAAM,GACNC,WAAW,EACX6I,yBAA0B,EAC1BC,0BAA2B,GAE/BC,eAAgB,CACZhJ,KAAM,GACNC,WAAW,EAGXgJ,eAAgB,GAEpBC,oBAAqB,CACjBlJ,KAAM,GACNC,WAAW,EACXiJ,oBAAqB,EACrBC,qBAAsB,GAE1BC,cAAe,CACXpJ,KAAM,GACNC,WAAW,EACXoJ,mBAAoB,EACpBC,kBAAmB,GAEvBC,sBAAuB,CACnBvJ,KAAM,GACNC,WAAW,EACXuJ,sBAAuB,EACvBC,gBAAiB,EACjBC,gBAAiB,EACjBC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,GAClBC,gBAAiB,GACjBC,kBAAmB,GACnBC,kBAAmB,GACnBC,iBAAkB,GAClBC,gBAAiB,GACjBC,mBAAoB,GACpBC,mBAAoB,GACpBC,qBAAsB,GACtBC,qBAAsB,GACtBC,oBAAqB,GACrBC,oBAAqB,GACrBC,sBAAuB,GACvBC,qBAAsB,GACtBC,qBAAsB,GACtBC,mBAAoB,IAExBC,qBAAsB,CAClB7K,KAAM,GACNC,WAAW,EACX4K,qBAAsB,EACtBC,gBAAiB,EACjBC,0BAA2B,GAE/BC,UAAW,CACPhL,KAAM,GACNC,WAAW,EACXgL,iBAAkB,EAClBC,mBAAoB,EACpBC,oBAAqB,GAEzBC,UAAW,CACPpL,KAAM,GACNC,WAAW,EACXoL,iBAAkB,EAClBC,mBAAoB,EACpBC,oBAAqB,GAEzBC,YAAa,CACTxL,KAAM,GACNC,WAAW,GAEfwL,gBAAiB,CACbzL,KAAM,IACNC,WAAW,EACXyL,kBAAmB,EACnBC,qBAAsB,EACtBC,gBAAiB,EACjBC,kBAAmB,IAGrBC,GAAgC,CAACtmB,EAAMumB,IAAW,CAChDjM,GAA+Bta,GAAMwa,KACrCF,GAA+Bta,GAAMumB,IAEvCC,GAAkC,CACpCC,KAAMH,GAA8B,YAAa,qBACjDI,KAAMJ,GAA8B,YAAa,uBACjDK,KAAML,GAA8B,YAAa,iBACjDM,KAAMN,GAA8B,YAAa,uBACjDO,KAAMP,GAA8B,YAAa,mBACjDQ,KAAMR,GAA8B,YAAa,uBACjDS,KAAMT,GAA8B,YAAa,sBACjDU,KAAMV,GAA8B,YAAa,uBACjDW,KAAMX,GAA8B,YAAa,qBACjDY,KAAMZ,GAA8B,YAAa,qBACjDa,KAAMb,GAA8B,YAAa,qBACjDc,KAAMd,GAA8B,YAAa,qBAUjDe,KAAMf,GAA8B,sBAAuB,uBAC3DgB,KAAMhB,GAA8B,uBAAwB,wBAC5DiB,KAAMjB,GAA8B,4BAA6B,4BACjEkB,KAAMlB,GAA8B,4BAA6B,4BACjEmB,KAAMnB,GAA8B,uBAAwB,mBAC5DoB,KAAMpB,GAA8B,uBAAwB,6BAC5DqB,KAAMrB,GAA8B,oBAAqB,WACzDsB,KAAMtB,GAA8B,YAAa,uBACjDuB,KAAMvB,GAA8B,YAAa,sBACjDwB,KAAMxB,GAA8B,aAAc,sBAClDyB,KAAMzB,GAA8B,aAAc,oBAClD0B,KAAM1B,GAA8B,aAAc,mBAClD2B,KAAM3B,GAA8B,aAAc,mBAClD4B,KAAM5B,GAA8B,aAAc,oBAClD6B,KAAM7B,GAA8B,aAAc,oBAClD8B,KAAM9B,GAA8B,cAAe,oBACnD+B,KAAM/B,GAA8B,cAAe,iBACnDgC,KAAMhC,GAA8B,cAAe,oBACnDiC,KAAMjC,GAA8B,gBAAiB,sBACrDkC,KAAMlC,GAA8B,gBAAiB,qBAErDmC,KAAMnC,GAA8B,iBAAkB,kBACtDoC,KAAMpC,GAA8B,aAAc,oBAClDqC,KAAMrC,GAA8B,aAAc,oBAClDsC,KAAMtC,GAA8B,qBAAsB,qBAG1DuC,KAAMvC,GAA8B,uBAAwB,wBAC5DwC,KAAMxC,GAA8B,uBAAwB,2BAC5D35B,KAAM25B,GAA8B,uBAAwB,2BAC5DyC,KAAMzC,GAA8B,gBAAiB,qBACrD0C,KAAM1C,GAA8B,gBAAiB,uBACrD2C,KAAM3C,GAA8B,mBAAoB,aACxD4C,KAAM5C,GAA8B,mBAAoB,aACxD6C,KAAM7C,GAA8B,mBAAoB,YACxD8C,KAAM9C,GAA8B,cAAe,oBACnD+C,KAAM/C,GAA8B,cAAe,iBACnDgD,KAAMhD,GAA8B,cAAe,oBACnDiD,KAAMjD,GAA8B,cAAe,kBACnDkD,KAAMlD,GAA8B,cAAe,oBACnDmD,KAAMnD,GAA8B,cAAe,uBACnDoD,KAAMpD,GAA8B,iBAAkB,yBACtDqD,KAAMrD,GAA8B,iBAAkB,wBACtDsD,KAAMtD,GAA8B,iBAAkB,qBACtDuD,KAAMvD,GAA8B,iBAAkB,qBACtDwD,KAAMxD,GAA8B,iBAAkB,qBACtDyD,KAAMzD,GAA8B,iBAAkB,qBACtD0D,KAAM1D,GAA8B,iBAAkB,oBACtD2D,KAAM3D,GAA8B,iBAAkB,kBACtD4D,KAAM5D,GAA8B,iBAAkB,iBACtD6D,KAAM7D,GAA8B,iBAAkB,8BACtD8D,KAAM9D,GAA8B,WAAY,YAChD+D,KAAM/D,GAA8B,eAAgB,eACpDgE,KAAMhE,GAA8B,oBAAqB,eACzDiE,KAAMjE,GAA8B,wBAAyB,mBAC7DkE,KAAMlE,GAA8B,wBAAyB,mBAC7DmE,KAAMnE,GAA8B,wBAAyB,qBAC7DoE,KAAMpE,GAA8B,wBAAyB,oBAC7DqE,KAAMrE,GAA8B,wBAAyB,oBAC7DsE,KAAMtE,GAA8B,wBAAyB,mBAC7DuE,KAAMvE,GAA8B,wBAAyB,qBAC7DwE,KAAMxE,GAA8B,wBAAyB,qBAC7DyE,KAAMzE,GAA8B,wBAAyB,oBAC7D0E,KAAM1E,GAA8B,wBAAyB,mBAC7D2E,KAAM3E,GAA8B,wBAAyB,sBAC7D4E,KAAM5E,GAA8B,wBAAyB,sBAC7D6E,KAAM7E,GAA8B,wBAAyB,wBAC7D8E,KAAM9E,GAA8B,wBAAyB,wBAC7D+E,KAAM/E,GAA8B,wBAAyB,uBAC7DgF,KAAMhF,GAA8B,wBAAyB,uBAC7DiF,KAAMjF,GAA8B,wBAAyB,yBAC7DkF,KAAMlF,GAA8B,wBAAyB,wBAC7DmF,KAAMnF,GAA8B,wBAAyB,wBAC7DoF,KAAMpF,GAA8B,wBAAyB,uBAIjE,IAAI,IAAIr8C,EAAI,EAAGA,GAAK,GAAIA,IAAIu8C,GAAgC,KAAK,KAAKv8C,IAAI0hD,OAAO,MAAQ,CACrFrR,GAA+B6D,sBAAsB3D,KACrDvwC,GAGJ,IAAI2hD,GAAmC,CAAC,EACxC,IAAI,IAAIC,KAAMrF,GAAgC,CAC1C,IAAIsF,EAAMtF,GAAgCqF,GACM,MAA5CD,GAAiCE,EAAI,MAAaF,GAAiCE,EAAI,IAAM,CAAC,GAClGF,GAAiCE,EAAI,IAAIA,EAAI,IAAMD,CACvD,CAcA,SAASE,GAAwCC,GAC7C,IAAKt/C,EAAMo1B,GAAWkqB,EACtB,GAAIC,MAAMv/C,GAAO,IAAIw/C,EAAW5R,GAA+B5tC,IAAS4tC,GAA+B5tC,GAAM8tC,UACpG0R,EAAWx/C,EACpB,GAAIu/C,MAAMnqB,GAAU,IAAIqqB,EAAc7R,GAA+B5tC,IAAS4tC,GAA+B5tC,GAAMo1B,QAC1GqqB,EAAcrqB,EACvB,MAAO,CACHoqB,EACAC,EAER,CA4BA,MAAMC,GACF,MAAAvf,CAAO1kB,GACH,OAAOrd,KAAK2D,MAAMG,SACd,KAAK,EACD,OAAO9D,KAAK2D,MAAMmmB,OAAOgL,QAAQzX,GACrC,KAAK,EACL,KAAK,EACD,CACI,IAAIyjB,EAAM,EACNz+B,EAAMrC,KAAK2D,MAAMkyB,mBAAmBL,OAAS,EACjD,KAAMsL,GAAOz+B,GAAI,CACb,IAAIyb,EAAMgjB,EAAMz+B,GAAO,EAGvB,GAAuB,SAFnBk/C,EAAMvhD,KAAK2D,MAAMmyB,SAAShY,IAEtBwS,WAAuB,OAAO,KACtC,GAAIjT,EAAQkkC,EAAIjxB,WAAYjuB,EAAMyb,EAAM,MACnC,MAAIT,EAAQkkC,EAAI7rB,WAEjB,OAA2B,IAAvB11B,KAAK2D,MAAMG,QAAsBy9C,EAAIzhD,MAC7ByhD,EAAIz3B,OAAOzM,EAAQkkC,EAAIjxB,YAHPwQ,EAAMhjB,EAAM,CAI5C,CACJ,CACA,OAAO,IACX,CACJ,KAAK,EACD,CACI,IAAIgjB,EAAM,EACNz+B,EAAMrC,KAAK2D,MAAMkyB,mBAAmBL,OAAS,EACjD,KAAMsL,GAAOz+B,GAAI,CACb,IACIk/C,EADAzjC,EAAMgjB,EAAMz+B,GAAO,EAGvB,GAAkB,SAFdk/C,EAAMvhD,KAAK2D,MAAMmyB,SAAShY,IAEtBT,MAAkB,OAAO,KACjC,GAAIA,EAAQkkC,EAAIlkC,MAAOhb,EAAMyb,EAAM,MAC9B,MAAIT,EAAQkkC,EAAIlkC,OAChB,OAAOkkC,EAAIzhD,MADYghC,EAAMhjB,EAAM,CACnB,CACzB,CACA,OAAO,IACX,CACJ,KAAK,EACD,OAAO9d,KAAK2D,MAAMmmB,OAAOzM,EAAQrd,KAAK2D,MAAM2sB,YAChD,QACI,MAAM,IAAI9wB,MAAM,gCAAgCQ,KAAK2D,MAAMG,WAEvE,CACA,cAAA09C,CAAeC,GACX,IAAIt5C,EAAM,GACV,OAAOnI,KAAK2D,MAAMG,SACd,KAAK,EACL,KAAK,EACD,IAAK,IAAI8wB,KAAW50B,KAAK2D,MAAMmyB,SAAS,GAA2B,IAAvB91B,KAAK2D,MAAMG,SAAiB8wB,EAAQ90B,QAAU2hD,EAAYt5C,EAAInJ,QAAY+hC,GAA2CnM,EAAQtE,WAAYsE,EAAQc,UAAY,SAErM,IAAI,IAAIjb,EAAQ,EAAGA,EAAQma,EAAQ9K,OAAO1qB,OAAQqb,IAAYma,EAAQ9K,OAAOrP,KAAWgnC,GAAYt5C,EAAInJ,KAAK41B,EAAQtE,WAAa7V,GAEtI,MACJ,KAAK,EACD,IAAK,IAAIma,KAAW50B,KAAK2D,MAAMmyB,SAAalB,EAAQ90B,QAAU2hD,GAAYt5C,EAAInJ,KAAK41B,EAAQvX,OAC3F,MACJ,KAAK,EACD,IAAI,IAAIle,EAAI,EAAGA,EAAIa,KAAK2D,MAAMmmB,OAAO1qB,OAAQD,IAAQa,KAAK2D,MAAMmmB,OAAO3qB,KAAOsiD,GAAYt5C,EAAInJ,KAAKgB,KAAK2D,MAAM2sB,WAAanxB,GAC3H,MACJ,QACI,MAAM,IAAIK,MAAM,gCAAgCQ,KAAK2D,MAAMG,WAEnE,OAAOqE,CACX,CACA,WAAAqH,CAAY7L,GACR3D,KAAK2D,MAAQA,CACjB,GAEJ,EAAI,MAAW,CACPjE,GACL4hD,GAAyCre,UAAW,iBAAkB,MAUzE,MAAMye,GACF,OAAAh4C,CAAQiL,EAAQgtC,EAASC,GACrB,IAAIC,EATsC,EAUtCpnC,EAAQknC,EAAUhtC,EAAOvV,OAAS,EAAI,EACtC0iD,EAAMH,GAAW,EAAI,EACzB,KAAc,IAARG,GAAarnC,GAAS9F,EAAOvV,SAAmB,IAAT0iD,GAAcrnC,IAAU,GAAE,CACnE,IAAI4C,EAAQ,KACR0kC,EAXkC,EAYlCC,GAAgB,EAChBvnC,IAAU9F,EAAOvV,SAAqB,IAAXqb,EAAcsnC,EAdT,GAgBhC1kC,EAAQ1I,EAAO8F,GACE,QAAb4C,EAAM+lB,GAAe2e,EAfS,GAiB9BA,EAAY/hD,KAAKg7B,YAAY+G,OAAO1kB,EAAM+lB,IACzB,MAAb2e,IAAmBA,EAnBO,KAsBtC,IACIE,EADMjiD,KAAKk5B,WAAW3C,WAAWzB,QAAQ+sB,GACxBE,GACjBh0B,EAAQ/tB,KAAKk5B,WAAW1C,WAAW1B,QAAQmtB,GAzBX,IA0BhCF,GAxBkC,IAwBuBA,IACzDH,EAAavkC,EAAO0Q,EAAOtT,GAC3BunC,IAxB2B,MAwBTj0B,EAAM1pB,QAE5Bw9C,EAAe9zB,EAAMmI,SACjB8rB,IAAevnC,GAASqnC,EAChC,CACA,OAAOntC,CACX,CAIE,QAAAutC,CAASC,EAAMC,EAAQ,EAAGC,EAAU,IAAIz6C,KACtC,GAAIy6C,EAAQ/hD,IAAI8hD,GAAQ,OACxBC,EAAQC,IAAIF,GACZ,IAAM/rB,SAAUA,EAAUE,WAAYA,EAAYC,WAAYA,GAAex2B,KAAKk5B,WAC9EqpB,EAAMhsB,EAAWzB,QAAQstB,GAE7B,IAAI,IAAIL,EAAY,EAAGA,EAAY1rB,EAAU0rB,IAAY,CACrD,IAAIE,EAAaM,EAAIR,GACjBh0B,EAAQyI,EAAW1B,QAAQmtB,GAE/B,IAAK,IAAI5kC,KAASrd,KAAKg7B,YAAYwmB,eAAeO,GAC1CI,EAAKK,OAAOL,EAAKK,MAAMnlC,EAAO0Q,GACX,IAAnBA,EAAMmI,UAAgBl2B,KAAKkiD,SAASC,EAAMp0B,EAAMmI,SAAUmsB,GAC1DF,EAAKM,MAAMN,EAAKM,KAAKplC,EAAO0Q,EAExC,CACJ,CACA,WAAAve,CAAY0pB,GACRl5B,KAAKk5B,WAAaA,EAClBl5B,KAAKg7B,YAAc,IAAQsmB,GAA0CpoB,EAAW5C,WACpF,EAOJ,MAaMosB,GAA0C,QAShD,MAAMC,GAGF,OAAAj5C,CAAQiL,EAAQuoB,EAAW,CAAC,GACxB,IAAK,IAAI0lB,KAAS5iD,KAAK+/B,KAAKxC,OAAO,CAC/B,IAAIl5B,EAAQu+C,EAAM9lB,aAElB,IAAK,IAAInpB,KAAWivC,EAAM1lB,SAAS,CAC/B,IAAIgkB,GACAA,EAAIhkB,EAASvpB,EAAQ8oB,gBACjBykB,EAAEvtC,EAAQ+oB,iBACVr4B,GAASsP,EAAQipB,aACjBv4B,GAASsP,EAAQgpB,cACoB,IAA9BukB,EAAEvtC,EAAQ+oB,kBACjBr4B,IAAUsP,EAAQipB,aAClBv4B,IAAUsP,EAAQgpB,aAG9B,CACA,IAAK,IAAIrb,KAAYshC,EAAMzlB,UAAc7b,EAAS2X,gBAAkB50B,GAAOrE,KAAK6iD,gBAAgBvhC,EAAU3M,EAC9G,CAEA,IAAI8F,EAAQ9F,EAAOvV,OAAS,EAC5B,KAAMqb,GAAS,GACc,QAArB9F,EAAO8F,GAAO2oB,IAAezuB,EAAOmuC,OAAOroC,EAAO,GACtDA,IAEJ,OAAO9F,CACX,CACA,eAAAkuC,CAAgBvhC,EAAU3M,GAGtB,GAFA3U,KAAKshB,SAAWA,EAChBthB,KAAK2U,OAASA,EACa,IAAvB3U,KAAKshB,SAAS1f,KAEd,YADA5B,KAAK+iD,kCAAkC/iD,KAAKshB,SAAUthB,KAAK2U,QAG/D3U,KAAKgjD,cAAgB,GACrBhjD,KAAKijD,YAAc,KACnBjjD,KAAKswB,WAAa,KAClBtwB,KAAK01B,UAAY,KACjB11B,KAAKkjD,YAAc,KACnB,IAAIC,EAAenjD,KAAKojD,gBAAgB9hC,GACpC5X,EAAU1J,KAAKqjD,eACf1B,KAAa3hD,KAAKshB,SAASpL,SAAWwsC,IAC1C,OAAOS,EAAaz5C,QAAQ1J,KAAK2U,OAAQgtC,EAASj4C,EACtD,CACA,eAAA05C,CAAgB9hC,GACZ,OAAO,IAAQogC,GAA0CpgC,EAAS3d,MAAMu1B,WAC5E,CACA,YAAAmqB,GACI,OAAOrjD,KAAKshB,SAAS1f,MACjB,KAAK,EACD,OAAO5B,KAAKsjD,yBAChB,KAAK,EACD,OAAOtjD,KAAKujD,8BAChB,KAAK,EACD,OAAOvjD,KAAKwjD,gBAChB,KAAK,EACD,OAAOxjD,KAAK+iD,kCAChB,KAAK,EACD,OAAO/iD,KAAKyjD,sBAChB,QACI,MAAM,IAAIjkD,MAAM,+BAA+BQ,KAAKshB,SAAS1f,QAEzE,CACA,wBAAA0hD,CAAyBjmC,EAAO0Q,EAAOtT,GAvFF,MAwF7BsT,EAAM1pB,QAA0CrE,KAAKswB,WAAa7V,GAvFtC,KAwF5BsT,EAAM1pB,QAAyCrE,KAAK01B,UAAYjb,GAiL5E,SAA6C9F,EAAQ+uC,EAAMpzB,EAAYoF,GAEnE,OAAOguB,GACH,KAAK,EACD,OAAO/uC,EACX,KAAK,EACD,OAAOgvC,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IAER,KAAK,EACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IAER,KAAK,EACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IAER,KAAK,EACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IAER,KAAK,EACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IACD,GAAM,GACb,KAAK,EACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IAER,KAAK,EACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IACD,GAAO,GACd,KAAK,EACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IAER,KAAK,EACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IACD,GAAO,GACd,KAAK,GACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IAER,KAAK,GACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IACD,GAAM,GACb,KAAK,GACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IAER,KAAK,GACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IACD,GAAM,GACb,KAAK,GACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IACD,GAAO,GACd,KAAK,GACD,OAAOiuB,GAA2BhvC,EAAQ,CACtC2b,EACA,GACD,CACCoF,EACA,IACD,GAAM,GACb,QACI,MAAM,IAAIl2B,MAAM,iBAAiBkkD,KAE7C,CAhTQE,CAAoC5jD,KAAK2U,OAxFd,GAwFsBoZ,EAAM1pB,MAAoCrE,KAAKswB,WAAYtwB,KAAK01B,UACrH,CACA,6BAAA6tB,CAA8BlmC,EAAO0Q,EAAOtT,GACxC,IAAIopC,EAAe7jD,KAAKshB,SAAS3d,MAAMw4B,kBAAkBF,MACzD,GAAwB,QAApBlO,EAAM4N,UAAsB,CAC5B,IAAIoG,EAAS8hB,EAAa/uB,QAAQ/G,EAAM4N,WACpCX,EAAc,IAAQsmB,GAA0Cvf,GACpE1kB,EAAQrd,KAAK2U,OAAO3U,KAAKijD,cACrBzlC,EAAMwd,EAAY+G,OAAO1kB,EAAM+lB,OAC1BpjC,KAAK2U,OAAO3U,KAAKijD,aAAejjD,KAAKV,KAAKwkD,SAAStmC,EAAKH,EAAMinB,YAC3E,CACA,GAA2B,QAAvBvW,EAAM6N,aAAyB,CAC/B,IAAImG,EAAS8hB,EAAa/uB,QAAQ/G,EAAM6N,cACpCZ,EAAc,IAAQsmB,GAA0Cvf,GAEpE,IAAIvkB,EADJH,EAAQrd,KAAK2U,OAAO8F,IAChB+C,EAAMwd,EAAY+G,OAAO1kB,EAAM+lB,OAC1BpjC,KAAK2U,OAAO8F,GAASza,KAAKV,KAAKwkD,SAAStmC,EAAKH,EAAMinB,YAChE,CAvG+B,MAwG3BvW,EAAM1pB,QAAwCrE,KAAKijD,YAAcxoC,EACzE,CACA,eAAA+oC,CAAgBnmC,EAAO0Q,EAAOtT,GAE1B,GA1GoC,MAyGhCsT,EAAM1pB,OAA6CrE,KAAKgjD,cAAchkD,KAAKyb,GAxG1C,KAyGjCsT,EAAM1pB,MAA8C,CACpD,IAAI0/C,EAAU/jD,KAAKshB,SAAS3d,MAAMy4B,gBAC9Bvc,EAAa7f,KAAKshB,SAAS3d,MAAMkc,WACjCwc,EAAer8B,KAAKshB,SAAS3d,MAAM04B,aACnC2nB,EAAcj2B,EAAM0N,OACpBwoB,GAAO,EACPC,EAAgB,EAChB5f,EAAa,GACb6f,EAAiB,GACrB,MAAOF,GAAK,CACR,IAAIG,EAAiBpkD,KAAKgjD,cAAc3wC,MACxCiyB,EAAW+f,WAAWrkD,KAAK2U,OAAOyvC,GAAgB9f,YAClD,IAAI7I,EAASsoB,EAAQjvB,QAAQkvB,KAC7BC,KApHwB,WAoHdxoB,GACV,IAAI6oB,KApHqB,WAoHV7oB,GACXxsB,GApHsB,WAoHZwsB,IAA+C,GAAK,EAIlE,GAHAxsB,GAAUjP,KAAK2U,OAAOyvC,GAAgBhhB,GAEtC8gB,GADgBrkC,EAAWiV,QAAQ7lB,GAE/Bg1C,GAAQK,EAAO,CACf,IAAIC,EAAgBloB,EAAavH,QAAQovB,GACzClkD,KAAK2U,OAAOyvC,GAAkBpkD,KAAKV,KAAKwkD,SAASS,EAAejgB,GAChE6f,EAAenlD,KAAKolD,GACpBF,EAAgB,EAChB5f,EAAa,EACjB,MAAOtkC,KAAK2U,OAAOyvC,GAAkBpkD,KAAKV,KAAKwkD,SAAS,MAC5D,CAEA9jD,KAAKgjD,cAAchkD,QAAQmlD,EAC/B,CACJ,CACA,iCAAApB,CAAkCzhC,EAAU3M,EAAQ8F,GAChD,IAAIugB,EAAc,IAAQsmB,GAA0ChgC,EAAS3d,MAAMq3B,aACnF,IAAIvgB,EAAQ,EAAGA,EAAQ9F,EAAOvV,OAAQqb,IAAQ,CAC1C,IAAI4C,EAAQ1I,EAAO8F,GACnB,GAAiB,QAAb4C,EAAM+lB,GAAe,CACrB,IAAI5lB,EAAMwd,EAAY+G,OAAO1kB,EAAM+lB,IAC/B5lB,IAAK7I,EAAO8F,GAASza,KAAKV,KAAKwkD,SAAStmC,EAAKH,EAAMinB,YAC3D,CACJ,CACJ,CACA,aAAAkgB,CAAcpmC,EAAYqmC,EAAsBr7C,EAAOs7C,GACnD,IAAIC,EAAa,GACjB,KAAMv7C,KAAQ,CACV,IAAIoU,EAAMxd,KAAKshB,SAAS3d,MAAM24B,iBAAiBxH,QAAQ2vB,KACvDE,EAAW3lD,KAAKgB,KAAKV,KAAKwkD,SAAStmC,GACvC,CACKknC,GAAUtmC,IACfpe,KAAK2U,OAAOmuC,OAAO1kC,EAAY,KAAMumC,EACzC,CACA,qBAAAlB,CAAsBpmC,EAAO0Q,EAAOtT,GAEhC,GAhK+B,MA+J3BsT,EAAM1pB,QAAwCrE,KAAKkjD,YAAczoC,GACrC,QAA5BsT,EAAMgO,kBAA8B,CACpC,IAAI3yB,GAhJkC,GAgJzB2kB,EAAM1pB,SAAuD,EACtEqgD,KAnJmC,KAmJrB32B,EAAM1pB,OACxBrE,KAAKwkD,cAAcxkD,KAAKkjD,YAAan1B,EAAMgO,kBAAmB3yB,EAAOs7C,EACzE,CACA,GAAiC,QAA7B32B,EAAM+N,mBAA+B,CACrC,IAAI1yB,GAtJmC,IAsJ1B2kB,EAAM1pB,SAAwD,EACvEqgD,KAzJoC,KAyJtB32B,EAAM1pB,OACxBrE,KAAKwkD,cAAc/pC,EAAOsT,EAAM+N,mBAAoB1yB,EAAOs7C,EAC/D,CACJ,CACA,oBAAAE,GACI,IAAI1nB,EAAW,GACf,IAAK,IAAI0lB,KAAS5iD,KAAK+/B,KAAKxC,OAAO,IAAK,IAAI5pB,KAAWivC,EAAM1lB,SAASA,EAASl+B,KAAK,CAChF2U,EAAQ8oB,YACR9oB,EAAQ+oB,iBAEZ,OAAOQ,CACX,CACA,cAAA2nB,CAAernC,GAEX,OADKxd,KAAK8kD,YAAY9kD,KAAK+kD,qBACpB/kD,KAAK8kD,WAAWtnC,IAAQ,EACnC,CACA,kBAAAunC,GACI/kD,KAAK8kD,WAAa,CAAC,EACnB,IAAK,IAAIlC,KAAS5iD,KAAK+/B,KAAKxC,OAAO,CAC/B,IAAIl5B,EAAQu+C,EAAM9lB,aAClB,IAAK,IAAIxb,KAAYshC,EAAMzlB,UAAc7b,EAAS2X,gBAAkB50B,GAAOrE,KAAKglD,0BAA0B1jC,EAC9G,CACJ,CACA,yBAAA0jC,CAA0B1jC,GAEtB,GAAsB,IAAlBA,EAAS1f,KAAY,OAEzB,MADiB0f,EAASpL,SAAWwsC,IACxB,MAAM,IAAIljD,MAAM,oCAC7BQ,KAAKshB,SAAWA,EAChBthB,KAAKgjD,cAAgB,GACrB,IAAIG,EAAenjD,KAAKojD,gBAAgB9hC,GACpC5X,EAAU1J,KAAKqjD,eACf1tC,EAAQ,GACRsvC,EAAQ,GACZjlD,KAAK2U,OAAS,GACdwuC,EAAajB,SAAS,CAClBM,MAAO,CAACnlC,EAAO0Q,KACX,IAAIpZ,EAAS3U,KAAK2U,OAClBswC,EAAMjmD,KAAK,CACP2V,OAAQA,EAAOksC,QACfmC,cAAehjD,KAAKgjD,cAAcnC,UAGtC,IAAI7d,EAAIhjC,KAAKV,KAAKwkD,SAASzmC,GAC3B1H,EAAM3W,KAAKgkC,GACXruB,EAAO3V,KAAK2W,EAAMA,EAAMvW,OAAS,IAEjCsK,EAAQiL,EAAOA,EAAOvV,OAAS,GAAI2uB,EAAOpZ,EAAOvV,OAAS,GAE1D,IAAIgK,EAAQ,EACR87C,EAAQ,EACZ,IAAI,IAAI/lD,EAAI,EAAGA,EAAIwV,EAAOvV,QAAUgK,GAAS,EAAGjK,IAAyB,QAAjBwV,EAAOxV,GAAGikC,KAC9Dh6B,IACA87C,EAAQvwC,EAAOxV,GAAGikC,IAEtB,GAAc,IAAVh6B,EAAa,CACb,IAAI7I,EAASoV,EAAMlI,KAAKu1B,GAAIA,EAAEI,KAC1BljC,EAAQF,KAAK8kD,WAAWI,GACxBhlD,EAAOA,EAAMlB,KAAKuB,GACjBP,KAAK8kD,WAAWI,GAAS,CAC1B3kD,EAER,GAEJkiD,KAAM,OACC9tC,OAAQ3U,KAAK2U,OAAQquC,cAAehjD,KAAKgjD,eAAkBiC,EAAM5yC,OACpEsD,EAAMtD,KAAK,GAGvB,CACA,WAAA7C,CAAYlQ,GACRU,KAAKsjD,yBAA2BtjD,KAAKsjD,yBAAyB6B,KAAKnlD,MACnEA,KAAKujD,8BAAgCvjD,KAAKujD,8BAA8B4B,KAAKnlD,MAC7EA,KAAKwjD,gBAAkBxjD,KAAKwjD,gBAAgB2B,KAAKnlD,MACjDA,KAAK+iD,kCAAoC/iD,KAAK+iD,kCAAkCoC,KAAKnlD,MACrFA,KAAKyjD,sBAAwBzjD,KAAKyjD,sBAAsB0B,KAAKnlD,MAC7DA,KAAKV,KAAOA,EACZU,KAAK+/B,KAAOzgC,EAAKygC,KACjB//B,KAAK8kD,WAAa,IACtB,EAQJ,SAASnB,GAA2BhvC,EAAQywC,EAAQC,EAAQC,GAAW,EAAOC,GAAW,GACrF,IAAIv2C,EAAM2F,EAAOmuC,OAAOuC,EAAO,IAAMA,EAAO,GAAK,GAAIA,EAAO,IACxDE,GAAUv2C,EAAI2yC,UAClB,IAAI5yC,EAAQ4F,EAAOmuC,OAAOsC,EAAO,GAAIA,EAAO,MAAOp2C,GAGnD,OAFIs2C,GAAUv2C,EAAM4yC,UACpBhtC,EAAOmuC,OAAOuC,EAAO,IAAMD,EAAO,GAAK,GAAI,KAAMr2C,GAC1C4F,CACX,EAbA,EAAI,MAAW,CACPjV,GACLijD,GAAyC1f,UAAW,kBAAmB,MA+I1E,MAAMuiB,GACF,UAAAt5B,CAAWu5B,GAGoB,QAAvBA,EAASnW,WAAqBmW,EAAS9wC,OAAOgtC,UAClD3hD,KAAK0lD,cAAch8C,QAAQ+7C,EAAS9wC,OAnlB5C,SAAmDuoB,GAC/C,IAAI/0B,EAAM,CAAC,EACX,IAAI,IAAIsJ,KAAKyrB,EAAS,CAClB,IAAIyoB,GACAA,EAAIjK,GAAgCjqC,MACnB,MAAbtJ,EAAIw9C,EAAE,MAAax9C,EAAIw9C,EAAE,IAAM,CAAC,GACpCx9C,EAAIw9C,EAAE,IAAIA,EAAE,IAAMzoB,EAASzrB,GAEnC,CACA,OAAOtJ,CACX,CAykBoDy9C,CAA0CH,EAASvoB,UACnG,CACA,oBAAA2oB,CAAqB1yC,EAAQpR,GACzB,OA9jBR,SAAmDm7B,GAC/C,IAAI/0B,EAAM,CAAC,EACX,GAAI4B,MAAMC,QAAQkzB,GAAW,IAAI,IAAIzrB,EAAI,EAAGA,EAAIyrB,EAAS99B,OAAQqS,IAAI,CACjE,IAAIk0C,EACAzE,EAAID,GAAwC/jB,EAASzrB,KACrDk0C,EAAI7E,GAAiCI,EAAE,KAAOJ,GAAiCI,EAAE,IAAIA,EAAE,OAAK/4C,EAAIw9C,IAAK,EAC7G,MACK,GAAwB,iBAAbzoB,EAAuB,IAAI,IAAIt7B,KAAQs7B,EAAS,CAC5D,IAAIvpB,EAAUupB,EAASt7B,GACvB,IAAI,IAAIo1B,KAAWrjB,EAAQ,CACvB,IAAIgyC,EACAzE,EAAID,GAAwC,CAC5Cr/C,EACAo1B,IAEArjB,EAAQqjB,KAAa2uB,EAAI7E,GAAiCI,EAAE,KAAOJ,GAAiCI,EAAE,IAAIA,EAAE,OAAM/4C,EAAIw9C,IAAK,EACnI,CACJ,CACA,OAAO7nD,OAAOgoD,KAAK39C,EACvB,CA2iBe49C,CAA0C/lD,KAAK0lD,cAAcd,uBACxE,CACA,eAAAoB,CAAgBxoC,GACZ,IAAIyoC,EAAejmD,KAAK0lD,cAAcb,eAAernC,GACjDjd,EAAS,IAAIqH,IACjB,IAAK,IAAI+M,KAAUsxC,EAAajmD,KAAKkmD,YAAYvxC,EAAQ,EAAGpU,EAAQ,IACpE,OAAOA,CACX,CACA,WAAA2lD,CAAYvxC,EAAQ8F,EAAO0rC,EAASv9C,GAChC,IAAI07B,EAAatkC,KAAKV,KAAK8mD,eAAevjB,mBAAmBluB,EAAO8F,IACpE,IAAK,IAAIwqB,KAAaX,EAAW,CAC7B,IAAIzmC,EAAI+K,EAASy9C,OAAOC,cAAcrhB,GAClCxqB,EAAQ9F,EAAOvV,OAAS,EAAGY,KAAKkmD,YAAYvxC,EAAQ8F,EAAQ,EAAG0rC,EAAStoD,GACvEsoD,EAAQ7D,IAAIzkD,EACrB,CACJ,CACA,WAAA2R,CAAYlQ,GACRU,KAAKV,KAAOA,EACZU,KAAK0lD,cAAgB,IAAQ/C,GAA0CrjD,GACvEU,KAAKumD,kBAAmB,CAC5B,EAKJ,MAAMC,GAIA,YAAAC,CAAavpB,EAAUwpB,GACrB,IAAIC,EAAa3mD,KAAK4mD,OAAOxnD,OAAS,EAClCynD,EAAQ7mD,KAAK4mD,OAAOD,GACxB,IAAK,IAAIhzC,KAAWupB,EAA0C,MAA7Bl9B,KAAK8mD,YAAYnzC,KAC9CkzC,EAAM7nD,KAAK2U,GACX3T,KAAK8mD,YAAYnzC,GAAWgzC,EACxBD,IAAQ1mD,KAAK+mD,eAAepzC,IAAW,GAEnD,CAGE,GAAA2uC,CAAI0E,EAAKN,GAAS,GAKhB,GAJ2B,IAAvB1mD,KAAK4mD,OAAOxnD,QAAcY,KAAK4mD,OAAO5nD,KAAK,IAC5B,iBAARgoD,IAAkBA,EAAM,CAC/BA,IAEAj9C,MAAMC,QAAQg9C,GAAMhnD,KAAKymD,aAAaO,EAAKN,OAC1C,IAAmB,iBAARM,EAGT,MAAM,IAAIxnD,MAAM,2CAFnBQ,KAAKymD,aAAaO,EAAIN,QAAU,IAAI,GACpC1mD,KAAKymD,aAAaO,EAAIC,OAAS,IAAI,EAC0B,CACrE,CAGE,QAAAC,CAASF,EAAKN,GACO,mBAARM,EAAoBhnD,KAAK4mD,OAAO5nD,KAAKgoD,EAAK,KAEjDhnD,KAAK4mD,OAAO5nD,KAAK,IACjBgB,KAAKsiD,IAAI0E,EAAKN,GAEtB,CACA,mBAAAS,CAAoBjqB,GAChB,GAAInzB,MAAMC,QAAQkzB,GAAWl9B,KAAKsiD,IAAIplB,QACjC,GAAwB,iBAAbA,EAAuB,IAAI,IAAIh0B,KAAOg0B,EAClD,GAAIA,EAASh0B,GAAMlJ,KAAKsiD,IAAIp5C,QACvB,GAA6B,MAAzBlJ,KAAK8mD,YAAY59C,GAAc,CACpC,IAAI29C,EAAQ7mD,KAAK4mD,OAAO5mD,KAAK8mD,YAAY59C,IACzC29C,EAAM/D,OAAO+D,EAAM38C,QAAQhB,GAAM,UAC1BlJ,KAAK8mD,YAAY59C,UACjBlJ,KAAK+mD,eAAe79C,EAC/B,CAER,CAGE,oBAAAk+C,CAAqBzyC,GACnB,IAAK,IAAI0I,KAAS1I,EAAO,IAAI,IAAIhB,KAAW3T,KAAK+mD,eAAe1pC,EAAM6f,SAASvpB,IAAW,CAC9F,CAGE,OAAAjK,CAAQ29C,EAAW1yC,EAAQwuB,GACzB,IAAK,IAAI0jB,KAAS7mD,KAAK4mD,OACE,mBAAVC,EACF1jB,GAAW0jB,EAAM7mD,KAAKV,KAAMqV,EAAQ3U,MAClC6mD,EAAMznD,OAAS,GAAGioD,EAAUC,cAAcT,EAAOlyC,EAAQwuB,EAE5E,CACA,WAAA3zB,CAAYlQ,EAAM6T,EAAQm8B,GACtBtvC,KAAKV,KAAOA,EACZU,KAAKmT,OAASA,EACdnT,KAAKsvC,UAAYA,EACjBtvC,KAAK4mD,OAAS,GACd5mD,KAAK+mD,eAAiB,CAAC,EACvB/mD,KAAK8mD,YAAc,CAAC,CACxB,EAMJ,MAAMS,GAA2C,CAC7C,QAEEC,GAAwC,CAC1C,OACA,OACA,OACA,OACA,QAEEC,GAA4C,CAC9C,OACA,OACA,QAEEC,GAA4C,CAC9C,OACA,OACA,OACA,OACA,OACA,QAKEC,GAA6C,CAC/CC,IAAK,CACD,OACA,QAEJC,IAAK,CACD,OACA,SAGR,MAAMC,GACF,WAAOC,CAAKA,EAAMpzC,EAAQuoB,GAEtBl9B,KAAKgoD,kBAAkBD,GACvB/nD,KAAKioD,aAAaF,GAClB/nD,KAAKkoD,mBAAmBH,EAAM7qB,GAE9B6qB,EAAKX,qBAAqBzyC,GAE1B3U,KAAKmoD,eAAeJ,EAAMpzC,EAC9B,CACA,wBAAOqzC,CAAkBD,GACrBA,EAAKzF,IAAI,CACLoE,OAAQ,IACDa,MACAI,GAA2CI,EAAKzY,YAEvD2X,MAAOQ,IAEf,CACA,mBAAOQ,CAAaF,GAEpB,CACA,yBAAOG,CAAmBH,EAAMK,GAC5BL,EAAKzF,IAAI,IACFkF,MACAE,KAEPK,EAAKZ,oBAAoBiB,EAC7B,CACA,qBAAOD,CAAeJ,EAAMpzC,GAExB,IAAI,IAAIxV,EAAI,EAAGA,EAAIwV,EAAOvV,OAAQD,IAAI,CAClC,IAAIke,EAAQ1I,EAAOxV,GACnB,GAA4B,OAAxBke,EAAMinB,WAAW,GAAe,CAChC,IAAIv1B,EAAQ5P,EACR6P,EAAM7P,EAAI,EAEd,KAAM4P,EAAQ,IAAK,EAAI,MAAgB4F,EAAO5F,EAAQ,GAAGu1B,WAAW,KAChE3vB,EAAO5F,EAAQ,GAAGmuB,SAASmf,MAAO,EAClC1nC,EAAO5F,EAAQ,GAAGmuB,SAASif,MAAO,EAClCptC,IAGJ,KAAMC,EAAM2F,EAAOvV,SAAU,EAAI,MAAgBuV,EAAO3F,GAAKs1B,WAAW,KACpE3vB,EAAO3F,GAAKkuB,SAASkf,MAAO,EAC5BznC,EAAO3F,GAAKkuB,SAASif,MAAO,EAC5BntC,IAGJqO,EAAM6f,SAASif,MAAO,EACtBh9C,EAAI6P,EAAM,CACd,CACJ,CACJ,GAEJ,EAAI,KAAU84C,GAA0C,iBAAkB,cAO1E,MAAMO,GAA6B,IAAQ,EAAwBlnB,GAA2C,qsBACxGmnB,GAAiC,CACnC,OACA,OACA,OACA,OACA,OACA,OACA,QAEEC,GACW,EADXA,GAQW,EAEXC,GAA6B,OAC7BC,GAA6B,OAC7BC,GAA6B,OAE7BC,GAA6B,OAC7BC,GAA6B,OAC7BC,GAA6B,OAC7BC,GAA6B,KAE7BC,GAAoC,CAGtC,CACI,CACID,GACAA,GACA,GAEJ,CACIA,GACAN,GACA,GAEJ,CACIM,GACAN,GACA,GAEJ,CACIM,GACAN,GACA,GAEJ,CACIM,GACAN,GACA,GAEJ,CACIM,GACAN,GACA,IAIR,CACI,CACIM,GACAA,GACA,GAEJ,CACIA,GACAN,GACA,GAEJ,CACIM,GACAN,GACA,GAEJ,CACIM,GACAN,GACA,GAEJ,CACIM,GACAJ,GACA,GAEJ,CACII,GACAN,GACA,IAIR,CACI,CACIM,GACAA,GACA,GAEJ,CACIA,GACAN,GACA,GAEJ,CACIK,GACAJ,GACA,GAEJ,CACII,GACAJ,GACA,GAEJ,CACII,GACAJ,GACA,GAEJ,CACII,GACAJ,GACA,IAIR,CACI,CACIK,GACAA,GACA,GAEJ,CACIA,GACAN,GACA,GAEJ,CACIG,GACAF,GACA,GAEJ,CACIE,GACAF,GACA,GAEJ,CACIE,GACAF,GACA,GAEJ,CACIE,GACAF,GACA,IAIR,CACI,CACIK,GACAA,GACA,GAEJ,CACIA,GACAN,GACA,GAEJ,CACII,GACAJ,GACA,GAEJ,CACII,GACAJ,GACA,GAEJ,CACII,GACAF,GACA,GAEJ,CACIE,GACAJ,GACA,IAIR,CACI,CACIM,GACAA,GACA,GAEJ,CACIA,GACAN,GACA,GAEJ,CACIA,GACAA,GACA,GAEJ,CACIA,GACAA,GACA,GAEJ,CACIA,GACAE,GACA,GAEJ,CACIF,GACAA,GACA,IAIR,CACI,CACIM,GACAA,GACA,GAEJ,CACIA,GACAN,GACA,GAEJ,CACIM,GACAN,GACA,GAEJ,CACIM,GACAN,GACA,GAEJ,CACIM,GArOuB,OAuOvB,GAEJ,CACIA,GACAN,GACA,KAIZ,MAAMQ,WAAqDlB,GACvD,mBAAOG,CAAaF,GAChBA,EAAKzF,IAAI,CACL,OACA,SAEJ,IAAI,IAAInjD,EAAI,EAAGA,EAAImpD,GAA+BlpD,OAAQD,IAAI,CAC1D,IAAIwU,EAAU20C,GAA+BnpD,GAC7C4oD,EAAKb,SAASvzC,GAAS,EAC3B,CACAo0C,EAAKb,SAAS,OAClB,CACA,qBAAOiB,CAAeJ,EAAMpzC,GACxB5C,MAAMo2C,eAAeJ,EAAMpzC,GAC3B,IAAIs0C,GAAQ,EACR7G,EAAQ,EACR2B,EAAU,GAEd,IAAI,IAAI5kD,EAAI,EAAGA,EAAIwV,EAAOvV,OAAQD,IAAI,CAClC,IAAI+pD,EAAWC,EAEf,IAAIvnD,EAAOwnD,IADP/rC,EAAQ1I,EAAOxV,IACoCmlC,WAAW,IAC9D1iC,IAAS2mD,KAIZY,EAAYD,EAAW9G,GAAS2G,GAAkC3G,GAAOxgD,GACtEunD,IAAeL,KAAwC,IAAVG,IAAalF,EAAQkF,GAAQE,GAC9EpF,EAAQ5kD,GAAK+pD,EACbD,EAAO9pD,GANH4kD,EAAQ5kD,GAAK2pD,EAOrB,CAEA,IAAI,IAAIruC,EAAQ,EAAGA,EAAQ9F,EAAOvV,OAAQqb,IAAQ,CAC9C,IAAI9G,EACJ,IAAI0J,EAAQ1I,EAAO8F,IACf9G,EAAUowC,EAAQtpC,MAAQ4C,EAAM6f,SAASvpB,IAAW,EAC5D,CACJ,EAEJ,SAASy1C,GAAsCnkB,GAC3C,IAAI98B,EAAMkgD,GAA2BrqD,IAAIinC,GACzC,GAAI98B,EAAK,OAAOA,EAAM,EACtB,IAAIkhD,GAAW,EAAI,MAAoBpkB,GACvC,MAAiB,OAAbokB,GAAkC,OAAbA,GAAkC,OAAbA,EAA0Bd,GACjEA,EACX,CAMA,MAAMe,GACF,KAAAC,CAAMt3C,EAAU,CAAC,EAAGwI,EAAQ,GACxBza,KAAKiS,QAAUA,EACfjS,KAAKqE,MAAQ4N,EAAQ5N,OAAS,CAAC,EAC/BrE,KAAK8T,mBAAqB7B,EAAQ6B,oBAAsB,EACxD9T,KAAKya,MAAQA,CACjB,CACA,OAAI+uC,GACA,OAAOxpD,KAAK2U,OAAO3U,KAAKya,QAAU,IACtC,CACA,YAAAgvC,CAAapsC,GACT,OAAOrd,KAAKqE,MAAMqlD,aAAersC,EAAM4mB,QAAUjkC,KAAKqE,MAAMslD,kBAAoBtsC,EAAMusC,QAAU5pD,KAAKqE,MAAMwlD,iBAAmBxsC,EAAMysC,YAAc9pD,KAAK8T,oBAAsBuJ,EAAM4mB,QAAU5mB,EAAMvJ,qBAAuB9T,KAAK8T,kBACnO,CACA,IAAAi2C,CAAKjI,GAED,IADA9hD,KAAKya,OAASqnC,EACR,GAAK9hD,KAAKya,OAASza,KAAKya,MAAQza,KAAK2U,OAAOvV,QAAUY,KAAKypD,aAAazpD,KAAK2U,OAAO3U,KAAKya,SAAQza,KAAKya,OAASqnC,EACrH,OAAI,EAAI9hD,KAAKya,OAASza,KAAKya,OAASza,KAAK2U,OAAOvV,OAAe,KACxDY,KAAK2U,OAAO3U,KAAKya,MAC5B,CACA,IAAAuvC,GACI,OAAOhqD,KAAK+pD,KAAK,EACrB,CACA,IAAAd,GACI,OAAOjpD,KAAK+pD,MAAM,EACtB,CACA,IAAAE,CAAK7gD,EAAQ,GACT,IAAI8gD,EAAMlqD,KAAKya,MACXtS,EAAMnI,KAAKmqD,UAAU/gD,GAEzB,OADApJ,KAAKya,MAAQyvC,EACN/hD,CACX,CACA,SAAAiiD,CAAUhhD,EAAQ,GACd,IAAI8gD,EAAMlqD,KAAKya,MACfza,KAAKmqD,UAAU/gD,GACf,IAAIjB,EAAMnI,KAAKya,MAEf,OADAza,KAAKya,MAAQyvC,EACN/hD,CACX,CACA,SAAAgiD,CAAU/gD,EAAQ,GACd,IAAI04C,EAAM14C,EAAQ,GAAK,EAAI,EAE3B,IADAA,EAAQhH,KAAKijC,IAAIj8B,GACXA,KAAQpJ,KAAK+pD,KAAKjI,GACxB,OAAO9hD,KAAK2U,OAAO3U,KAAKya,MAC5B,CACA,WAAAjL,CAAYmF,EAAQ1C,GAChBjS,KAAK2U,OAASA,EACd3U,KAAKupD,MAAMt3C,EACf,EAKJ,MAAMo4C,GAAwC,CAC1C,OACA,OACA,QAEJ,MAAMC,GACF,UAAAC,CAAWp3C,GACP,GAA6B,MAAzBnT,KAAK2D,MAAM4nB,WAAoB,OAAO,KACrCxhB,MAAMC,QAAQmJ,KAASA,EAAS,CACjCA,IAEJ,IAAK,IAAItV,KAAKsV,EAAO,IAAK,IAAI4a,KAAS/tB,KAAK2D,MAAM4nB,WAC9C,GAAIwC,EAAM7kB,MAAQrL,EAAG,OAAOkwB,EAEhC,OAAO,IACX,CACA,YAAAy8B,CAAar3C,EAAQpR,EAAUutC,GAC3B,IACIvhB,EADA08B,GAAU,EAEd,IAAKzqD,KAAKmT,QAAUA,IAAWnT,KAAK0qD,UAAW,CAG3C,GAFA38B,EAAQ/tB,KAAKuqD,WAAWp3C,GACnB4a,IAAOA,EAAQ/tB,KAAKuqD,WAAWF,MAC/Bt8B,EAAO,OAAO/tB,KAAK0qD,UACxB1qD,KAAK0qD,UAAY38B,EAAM7kB,IACvBlJ,KAAKmT,OAAS4a,EAAM5a,OACpBnT,KAAK+B,SAAW,KAChB/B,KAAKk7C,YAAc,KACnBuP,GAAU,CACd,CAGA,GAFKnb,GAAaA,IAActvC,KAAKsvC,YAAWtvC,KAAKsvC,UAAYA,GAAaL,GAA0C97B,IACpHpR,GAAYA,EAAS3C,OAAS,IAAG2C,GAAY,IAAI4oD,OAAO,EAAI5oD,EAAS3C,UACpE2C,GAAYA,IAAa/B,KAAKk7C,YAAa,CAC5Cl7C,KAAK+B,SAAW,KAChB,IAAK,IAAItC,KAAQO,KAAKmT,OAAOF,eAAe,GAAIxT,EAAKyJ,MAAQnH,EAAU,CACnE/B,KAAK+B,SAAWtC,EAAKqT,QACrB9S,KAAKk7C,YAAcz7C,EAAKyJ,IACxB,KACJ,CACKlJ,KAAK+B,WACN/B,KAAK+B,SAAW/B,KAAKmT,OAAOH,eAC5BhT,KAAKk7C,YAAc,MAEvBuP,GAAU,CACd,CAEA,GAAIA,IACAzqD,KAAKk9B,SAAW,CAAC,EACbl9B,KAAK+B,UAAU,IAAK,IAAI2X,KAAgB1Z,KAAK+B,SAAS6Q,eAAe,CACrE,IAAIhJ,EAAS5J,KAAK2D,MAAM6nB,YAAY9R,GAChCkxC,EAAoB5qD,KAAK6qD,+BAA+BnxC,GAC5D1Z,KAAKk9B,SAAStzB,EAAOV,KAAO0hD,GAAqBhhD,EAAO+J,OAC5D,CAEJ,OAAO3T,KAAK0qD,SAChB,CACA,kBAAAI,CAAmB1C,EAAe,GAAI2C,GAClC,IAAIC,EAAU,GACd,IAAK,IAAI9hD,KAAOk/C,EAAa,CACzB,IAAIz0C,EAAU3T,KAAKk9B,SAASh0B,GAC5B,GAAKyK,EACL,IAAK,IAAIs3C,KAAet3C,EAAQF,kBACxBs3C,IAA6C,IAAlCA,EAAQ7gD,QAAQ+gD,IAC/BD,EAAQhsD,KAAK,CACT2U,QAASzK,EACTuR,MAAOwwC,EACPlpB,OAAQ/hC,KAAK2D,MAAM8nB,WAAWztB,IAAIitD,IAG9C,CAEA,OADAD,EAAQE,MAAK,CAAC7sD,EAAG0R,IAAI1R,EAAEoc,MAAQ1K,EAAE0K,QAC1BuwC,CACX,CACA,8BAAAH,CAA+BnxC,GAC3B,IAA8B,IAA1B1Z,KAAKmrD,gBAAwB,OAAO,KACxC,IACIrxC,EADS9Z,KAAK2D,MAAM+nB,kBAAkBpR,wBAAwBta,KAAKmrD,iBAC5ClxC,yBAAyBH,cACpD,IAAK,IAAIsxC,KAAgBtxC,EACrB,GAAIsxC,EAAa1xC,eAAiBA,EAAc,OAAO0xC,EAAazxC,sBAExE,OAAO,IACX,CACA,mBAAA0xC,CAAoBC,GAChB,IAAIC,EAAavrD,KAAK2D,MAAM+nB,kBAC5B,IAAK6/B,EAAY,OAAQ,EACzB,IAAIliD,EAAUkiD,EAAWjxC,wBACzB,IAAI,IAAInb,EAAI,EAAGA,EAAIkK,EAAQjK,OAAQD,IAAI,CACnC,IAAIqsD,EAAaniD,EAAQlK,GAAG6a,aAAaR,eACzC,GAAIxZ,KAAKyrD,yBAAyBD,EAAYF,GAAS,OAAOnsD,CAClE,CACA,OAAQ,CACZ,CACA,wBAAAssD,CAAyBD,EAAYF,GACjC,OAAOE,EAAWE,OAAOC,IACrB,IAAIzzB,EAAQyzB,EAAUxyC,UAAYmyC,EAAOlsD,OAASksD,EAAOK,EAAUxyC,WAAa,EAChF,OAAOwyC,EAAUvyC,qBAAuB8e,GAASA,GAASyzB,EAAUtyC,mBAAmB,GAE/F,CACA,aAAAiuC,CAAcc,EAAczzC,EAAQi3C,GAChC,IAAIZ,EAAUhrD,KAAK8qD,mBAAmB1C,GACtCpoD,KAAK6rD,aAAab,EAASr2C,EAAQi3C,EACvC,CACA,YAAAC,CAAab,EAASr2C,EAAQwuB,GAC1BnjC,KAAK2U,OAASA,EACd3U,KAAKmjC,UAAYA,EACjBnjC,KAAK8rD,cAAgB,IAAQxC,GAA0C30C,GACvE,IAAK,IAAMhB,QAASA,EAASouB,OAAQA,KAAYipB,EAG7C,IAFAhrD,KAAK+rD,eAAiBp4C,EACtB3T,KAAK8rD,cAAcvC,MAAMxnB,EAAO19B,OAC1BrE,KAAK8rD,cAAcrxC,MAAQ9F,EAAOvV,QACpC,GAAMuU,KAAW3T,KAAK8rD,cAActC,IAAItsB,SAAxC,CAIA,IAAK,IAAIv5B,KAASo+B,EAAO3tB,UAAU,CAE/B,GADUpU,KAAKgsD,YAAYjqB,EAAO7tB,WAAYvQ,GACrC,KACb,CACA3D,KAAK8rD,cAAc9B,MALnB,MAFIhqD,KAAK8rD,cAAc9B,MAUnC,CACA,WAAAgC,CAAYjqB,EAAQp+B,GAChB,MAAM,IAAInE,MAAM,gDACpB,CACA,eAAAysD,CAAgBr2C,GACZ,IAAI3D,EAAUjS,KAAK8rD,cAAc75C,QAC7BmM,EAAape,KAAK8rD,cAAcrxC,MACpC,IAAK,IAAIyxC,KAAgBt2C,EAAc,CAEnC5V,KAAK8rD,cAAcvC,MAAMt3C,EAASmM,GAClCpe,KAAK8rD,cAAc3B,UAAU+B,EAAa12C,eAE1C,IAAIusB,EAAS/hC,KAAK2D,MAAM8nB,WAAWztB,IAAIkuD,EAAaz2C,iBACpDzV,KAAK8rD,cAAcvC,MAAMxnB,EAAO19B,MAAOrE,KAAK8rD,cAAcrxC,OAE1D,IAAK,IAAI9W,KAASo+B,EAAO3tB,UACrB,GAAIpU,KAAKgsD,YAAYjqB,EAAO7tB,WAAYvQ,GAAQ,KAExD,CAEA,OADA3D,KAAK8rD,cAAcvC,MAAMt3C,EAASmM,IAC3B,CACX,CACA,aAAA+tC,CAAcj2C,EAAUmH,GAEpB,OADa,MAATA,IAAeA,EAAQrd,KAAK8rD,cAActC,IAAIpmB,IAC3CltB,EAASpS,SACZ,KAAK,EACD,OAAOoS,EAASvB,OAAOzK,QAAQmT,GACnC,KAAK,EACD,IAAK,IAAIhC,KAASnF,EAASrB,aACvB,GAAIwG,EAAMtM,OAASsO,GAASA,GAAShC,EAAMrM,IAAK,OAAOqM,EAAM7G,mBAAqB6I,EAAQhC,EAAMtM,MAI5G,OAAQ,CACZ,CACA,KAAAq9C,CAAM52C,EAAe62C,EAAUpsD,EAAIqsD,GAC/B,IAAI19C,EAAM5O,KAAK8rD,cAAcrxC,MACzB4C,EAAQrd,KAAK8rD,cAAc3B,UAAU30C,GACrC00C,EAAM,EACV,KAAMA,EAAMmC,EAASjtD,QAAUie,GAASpd,EAAGosD,EAASnC,GAAM7sC,IAClDivC,GAASA,EAAQttD,KAAKgB,KAAK8rD,cAAcrxC,OAC7CyvC,IACA7sC,EAAQrd,KAAK8rD,cAAc9B,OAG/B,OADAhqD,KAAK8rD,cAAcrxC,MAAQ7L,IACvBs7C,EAAMmC,EAASjtD,UACZktD,IAAW,EACtB,CACA,eAAAC,CAAgB/2C,EAAe62C,GAC3B,OAAOrsD,KAAKosD,MAAM52C,EAAe62C,GAAU,CAACG,EAAWnvC,IAAQmvC,IAAcnvC,EAAM+lB,IACvF,CACA,oBAAAqpB,CAAqBj3C,EAAe62C,GAChC,OAAOrsD,KAAKosD,MAAM52C,EAAe62C,GAAU,CAACG,EAAWnvC,IAE7Crd,KAAK+rD,kBAAkB1uC,EAAM6f,UAC5BsvB,IAAcnvC,EAAM+lB,IAC5B,GACP,CACA,uBAAAspB,CAAwBl3C,EAAe62C,GACnC,OAAOrsD,KAAKosD,MAAM52C,EAAe62C,GAAU,CAACn2C,EAAUmH,IAAQrd,KAAKmsD,cAAcj2C,EAAUmH,EAAM+lB,KAAO,GAC5G,CACA,UAAAupB,CAAWtvC,EAAOhH,GACd,OAAOA,EAASvS,SACZ,KAAK,EACD,IAAI3E,EAAIke,EAAQhH,EAASpB,WACzB,GAAI9V,GAAK,GAAKA,EAAIkX,EAASnB,gBAAgB9V,OAAQ,OAAOiX,EAASnB,gBAAgB/V,GACnF,MACJ,KAAK,EACD,IAAK,IAAIkc,KAAShF,EAASjB,iBACvB,GAAIiG,EAAMtM,OAASsO,GAASA,GAAShC,EAAMrM,IAAK,OAAOqM,EAAMtG,MAIzE,OAAO,CACX,CACA,oBAAA63C,CAAqBp3C,EAAe62C,EAAUh2C,GAC1C,OAAOrW,KAAKosD,MAAM52C,EAAe62C,GAAU,CAACQ,EAASxvC,IAAQwvC,IAAY7sD,KAAK2sD,WAAWtvC,EAAM+lB,GAAI/sB,IACvG,CACA,YAAAy2C,CAAanpD,GACT,IAAI8W,EAAOxc,EACX,OAAO0F,EAAMG,SACT,KAAK,EAED,GADA2W,EAAQza,KAAKmsD,cAAcxoD,EAAMuS,WAClB,IAAXuE,EAAc,OAAO,EACzBxc,EAAM0F,EAAMyS,SAASqE,GACrB,IAAK,IAAIsyC,KAAQ9uD,EACb,GAAI+B,KAAKusD,gBAAgB,EAAGQ,EAAKp3C,OAAQ,OAAO3V,KAAKisD,gBAAgBc,EAAKn3C,eAE9E,MACJ,KAAK,EACD,IAA4C,IAAxC5V,KAAKmsD,cAAcxoD,EAAMuS,UAAkB,OAAO,EAEtD,GADAuE,EAAQza,KAAK2sD,WAAW3sD,KAAK8rD,cAActC,IAAIpmB,GAAIz/B,EAAM0S,WAC1C,IAAXoE,EAAc,OAAO,EACzBxc,EAAM0F,EAAM4S,SAASkE,GACrB,IAAK,IAAIsyC,KAAQ9uD,EACb,GAAI+B,KAAK4sD,qBAAqB,EAAGG,EAAKh3C,QAASpS,EAAM0S,UAAW,OAAOrW,KAAKisD,gBAAgBc,EAAKn3C,eAErG,MACJ,KAAK,EACD,GAAI5V,KAAK0sD,wBAAwB,EAAG/oD,EAAM6S,WAAY,OAAOxW,KAAKisD,gBAAgBtoD,EAAMiS,eAGhG,OAAO,CACX,CACA,oBAAAo3C,CAAqBrpD,GACjB,IAAI8W,EACJ,OAAO9W,EAAMG,SACT,KAAK,EAED,GADA2W,EAAQza,KAAKmsD,cAAcxoD,EAAMuS,WAClB,IAAXuE,EAAc,OAAO,EACzB,IAAIxc,EAAM0F,EAAMuT,cAAcuD,GAC9B,IAAK,IAAIsyC,KAAQ9uD,EACb,GAAI+B,KAAKusD,iBAAiBQ,EAAKp2C,UAAUvX,OAAQ2tD,EAAKp2C,YAAc3W,KAAKusD,gBAAgB,EAAGQ,EAAKp3C,QAAU3V,KAAKusD,gBAAgB,EAAIQ,EAAKp3C,MAAMvW,OAAQ2tD,EAAKj2C,WAAY,OAAO9W,KAAKisD,gBAAgBc,EAAKn3C,eAE7M,MACJ,KAAK,EACD,IAA4C,IAAxC5V,KAAKmsD,cAAcxoD,EAAMuS,UAAkB,OAAO,EACtDuE,EAAQza,KAAK2sD,WAAW3sD,KAAK8rD,cAActC,IAAIpmB,GAAIz/B,EAAMyT,eACzD,IAAI61C,EAAQtpD,EAAM2T,cAAcmD,GAChC,IAAKwyC,EAAO,OAAO,EACnB,IAAK,IAAIF,KAAQE,EACb,GAAIjtD,KAAK4sD,sBAAsBG,EAAKp2C,UAAUvX,OAAQ2tD,EAAKp2C,UAAWhT,EAAMwT,oBAAsBnX,KAAK4sD,qBAAqB,EAAGG,EAAKp3C,MAAOhS,EAAMyT,gBAAkBpX,KAAK4sD,qBAAqB,EAAIG,EAAKp3C,MAAMvW,OAAQ2tD,EAAKj2C,UAAWnT,EAAM0T,mBAAoB,OAAOrX,KAAKisD,gBAAgBc,EAAKn3C,eAEnS,MACJ,KAAK,EACD,GAAI5V,KAAK0sD,yBAAyB/oD,EAAM+S,oBAAqB/S,EAAM4T,oBAAsBvX,KAAK0sD,wBAAwB,EAAG/oD,EAAM6T,gBAAkBxX,KAAK0sD,wBAAwB/oD,EAAMiT,gBAAiBjT,EAAM8T,mBAAoB,OAAOzX,KAAKisD,gBAAgBtoD,EAAMiS,eAGzQ,OAAO,CACX,CACA,WAAApG,CAAYlQ,EAAMqE,GACd3D,KAAKV,KAAOA,EACZU,KAAK2D,MAAQA,EACb3D,KAAKmT,OAAS,KACdnT,KAAK0qD,UAAY,KACjB1qD,KAAK+B,SAAW,KAChB/B,KAAKk7C,YAAc,KACnBl7C,KAAKk9B,SAAW,CAAC,EACjBl9B,KAAKgrD,QAAU,CAAC,EAEhBhrD,KAAKmrD,gBAAkB7rD,EAAK4tD,oBAAsBltD,KAAKqrD,oBAAoB/rD,EAAK4tD,oBAAoBC,mBAAqB,EAEzHntD,KAAKwqD,eAELxqD,KAAK2U,OAAS,GACd3U,KAAKmjC,UAAY,GACjBnjC,KAAKotD,WAAa,EAClBptD,KAAK+rD,eAAiB,IAC1B,EAIJ,MAAMsB,GACF,MAAIjqB,GACA,OAAOpjC,KAAKstD,GAChB,CACA,MAAIlqB,CAAGA,GACHpjC,KAAKstD,IAAMlqB,EACXpjC,KAAKutD,aAAc,EACnB,IAAI3uB,EAAO5+B,KAAKwtD,MAAM5uB,KACtB,GAAIA,GAAQA,EAAK5X,cAAe,CAE5B,IAAI6lC,EAAcvC,GAA0CrnB,UAAU0pB,WAAWvpB,EAAIxE,EAAK5X,eAC1FhnB,KAAK4pD,OAAqB,IAAZiD,EACd7sD,KAAK8pD,WAAyB,IAAZ+C,EAClB7sD,KAAKikC,OAAqB,IAAZ4oB,EACd7sD,KAAK8T,mBAAqB8qB,EAAKzX,mBAAyBmjC,GAA0CrnB,UAAU0pB,WAAWvpB,EAAIxE,EAAKzX,oBAAsB,CAC1J,MACInnB,KAAKikC,OAASjkC,KAAKskC,WAAWllC,OAAS,GAAKY,KAAKskC,WAAWonB,MAAU,MACtE1rD,KAAK4pD,QAAU5pD,KAAKikC,OACpBjkC,KAAK8pD,WAAa9pD,KAAKskC,WAAWllC,OAAS,EAC3CY,KAAK8T,mBAAqB,CAElC,CACA,IAAAuwB,GACI,OAAO,IAAIgpB,GAAyCrtD,KAAKwtD,MAAOxtD,KAAKojC,GAAIpjC,KAAKskC,WAAYtkC,KAAKk9B,SACnG,CACA,WAAA1tB,CAAYlQ,EAAM8jC,EAAIkB,EAAa,GAAIpH,GAKnC,GAJAl9B,KAAKwtD,MAAQluD,EACbU,KAAKskC,WAAaA,EAClBtkC,KAAKojC,GAAKA,EACVpjC,KAAKk9B,SAAW,CAAC,EACbnzB,MAAMC,QAAQkzB,GAAW,IAAI,IAAI/9B,EAAI,EAAGA,EAAI+9B,EAAS99B,OAAQD,IAAI,CACjE,IAAIwU,EAAUupB,EAAS/9B,GACvBa,KAAKk9B,SAASvpB,IAAW,CAC7B,KAC6B,iBAAbupB,GAAuBp/B,OAAOm4B,OAAOj2B,KAAKk9B,SAAUA,GACpEl9B,KAAKotD,WAAa,KAClBptD,KAAKytD,kBAAoB,KACzBztD,KAAK0tD,WAAY,EACjB1tD,KAAK2tD,kBAAoB,KACzB3tD,KAAK4tD,eAAiB,KACtB5tD,KAAK6tD,WAAa,KAClB7tD,KAAKutD,aAAc,EACnBvtD,KAAK8tD,cAAe,CACxB,EAIJ,MAAMC,WAAqDjG,GACvD,mBAAOG,CAAaF,GAChBA,EAAKzF,IAAI,CACL,OACA,OACA,SACD,EACP,CACA,qBAAO6F,CAAeJ,EAAMpzC,GACxB,IAAIytC,EAAQ,EACRjjD,EAAI,EACR,KAAMA,EAAIwV,EAAOvV,QAAO,CACpB,IAAIq8B,EAEAiU,EADQ/6B,EAAOxV,GACFmlC,WAAW,GACxB1iC,EAAOosD,GAA8Bte,GAEzC,QADCjU,EAAQ2mB,GAAS6L,GAAkC7L,GAAOxgD,GACpD65B,GACH,KAAKyyB,GAEInG,EAAKzoD,KAAK6uD,qBAAqBze,KAAOvwC,EAAIivD,GAAgCz5C,EAAQxV,EAAG4oD,EAAKzoD,OAC/F,MACJ,KAAK+uD,GAEDlvD,EAAImvD,GAA8B35C,EAAQxV,EAAG4oD,EAAKzoD,MAClD,MACJ,KAAKivD,GAEDC,GAAsC75C,EAAQxV,EAAG4oD,EAAKzoD,MACtD,MACJ,KAAKmvD,GAEDtvD,EAAIuvD,GAAyC/5C,EAAQxV,EAAG4oD,EAAKzoD,MAGrEH,GACJ,CACJ,GAEJ,EAAI,KAAU4uD,GAA0C,iBAAkB,QAC1E,MAAMY,GAAoC,MAEpCC,GADmC,MACqCD,GAAoC,EAC5GE,GAA+B,KAC/BC,GAA+B,KAC/BC,GAA+B,KAE/BC,GAAgC,GAChCC,GAAgC,GAChCC,GAA8BL,GAHE,GAG6D,EAC7FM,GAA8BL,GAA+BE,GAAgC,EAC7FI,GAA8BL,GAA+BE,GAAgC,EAC7FI,GAAsC,KACtCC,GAA6B5f,GAAO,MAAUA,GAAQA,GAAQ,MAAU,OAAUA,GAAQA,GAAQ,MAClG6f,GAA6B7f,GAAO,MAAUA,GAAQA,GAAQ,MAAU,OAAUA,GAAQA,GAAQ,MAClG8f,GAA6B9f,GAAO,MAAUA,GAAQA,GAAQ,MAAU,OAAUA,GAAQA,GAAQ,MAClG+f,GAAgC/f,GAAO,OAAUA,GAAQA,GAAQ,MACjEggB,GAA+BhgB,GAAOif,IAAqCjf,GAAQA,GAhBhD,MAiBnCigB,GAA8BjgB,GAAOA,EAAOif,GAAoCC,KAAuClf,EAAOif,IAAqCM,IAAkC,EACrMW,GAAsClgB,GAAOmf,IAAgCnf,GAAQA,GAAQwf,GAC7FW,GAAsCngB,GAAOof,IAAgCpf,GAAQA,GAAQyf,GAC7FW,GAAsCpgB,GAAOqf,GAA+B,GAAK,GAAKrf,GAAQA,GAAQ0f,GAEtGW,GAA0B,EAC1BC,GAA0B,EAC1BC,GAA0B,EAC1BC,GAA0B,EAC1BC,GAA2B,EAC3BC,GAA4B,EAC5BC,GAA0B,EAEhC,SAASrC,GAA8Bte,GACnC,OAAI4f,GAA0B5f,GAAcsgB,GACxCT,GAA0B7f,GAAcugB,GACxCT,GAA0B9f,GAAcwgB,GACxCP,GAA2BjgB,GAAcygB,GACzCT,GAA4BhgB,GAAc0gB,GAC1CX,GAA6B/f,GAAc2gB,GACxCN,EACX,CAEA,MACM7B,GAAkC,EAClCG,GAAgC,EAChCE,GAAkC,EAClCE,GAAgC,EAGhCR,GAAoC,CAGtC,CACI,CAXgC,EAa5B,GAEJ,CAfgC,EAiB5B,GAEJ,CAnBgC,EAqB5B,GAEJ,CAvBgC,EAyB5B,GAEJ,CACIC,GACA,GAEJ,CACIA,GACA,GAEJ,CACIO,GACA,IAIR,CACI,CA1CgC,EA4C5B,GAEJ,CA9CgC,EAgD5B,GAEJ,CACIJ,GACA,GAEJ,CAtDgC,EAwD5B,GAEJ,CACIH,GACA,GAEJ,CACIA,GACA,GAEJ,CACIO,GACA,IAIR,CACI,CAzEgC,EA2E5B,GAEJ,CA7EgC,EA+E5B,GAEJ,CAjFgC,EAmF5B,GAEJ,CACIJ,GACA,GAEJ,CACIH,GACA,GAEJ,CACIA,GACA,GAEJ,CACIK,GACA,IAIR,CACI,CAxGgC,EA0G5B,GAEJ,CA5GgC,EA8G5B,GAEJ,CAhHgC,EAkH5B,GAEJ,CApHgC,EAsH5B,GAEJ,CACIL,GACA,GAEJ,CACIA,GACA,GAEJ,CACIK,GACA,KAIZ,SAAS+B,GAA+BhxD,EAAMowC,EAAMxS,GAChD,OAAO,IAAQmwB,GAA0C/tD,EAAMA,EAAKixD,kBAAkB7gB,GAAMtM,GAAI,CAC5FsM,GACDxS,EACP,CACA,SAASkxB,GAAgCz5C,EAAQxV,EAAGG,GAChD,IAAI+d,EAAQ1I,EAAOxV,GAEftB,EADOwf,EAAMinB,WAAW,GACbqqB,GACXxsD,EAAI4sD,GAA+BlxD,EAAIoxD,GAC3CpxD,EAAIA,EAAIoxD,GAAgC,EACxC,IAAIuB,EAAI3B,GAA+BhxD,EAAImxD,GAAgC,EACvEpxD,EAAIkxD,GAA+BjxD,EAAImxD,GAE3C,IAAK1vD,EAAK6uD,qBAAqBqC,KAAOlxD,EAAK6uD,qBAAqBvwD,IAAMuE,IAAM4sD,KAAiCzvD,EAAK6uD,qBAAqBhsD,GAAI,OAAOhD,EAGlJ,IAAIsxD,EAAOH,GAA+BhxD,EAAMkxD,EAAGnzC,EAAM6f,UACzDuzB,EAAKvzB,SAASuzB,MAAO,EACrB,IAAIC,EAAOJ,GAA+BhxD,EAAM1B,EAAGyf,EAAM6f,UACzDwzB,EAAKxzB,SAASwzB,MAAO,EACrB,IAAIC,EAAS,CACTF,EACAC,GAEJ,GAAIvuD,EAAI4sD,GAA8B,CAClC,IAAI6B,EAAON,GAA+BhxD,EAAM6C,EAAGkb,EAAM6f,UACzD0zB,EAAK1zB,SAAS0zB,MAAO,EACrBD,EAAO3xD,KAAK4xD,EAChB,CAEA,OADAj8C,EAAOmuC,OAAO3jD,EAAG,KAAMwxD,GAChBxxD,EAAIwxD,EAAOvxD,OAAS,CAC/B,CACA,SAASkvD,GAA8B35C,EAAQxV,EAAGG,GAC9C,IAMIuxD,EAAIJ,EAAMC,EAAME,EANhBvzC,EAAQ1I,EAAOxV,GAEfyC,EAAOosD,GADAr5C,EAAOxV,GAAGmlC,WAAW,IAE5B2kB,EAAOt0C,EAAOxV,EAAI,GAAGmlC,WAAW,GAChCwsB,EAAW9C,GAA8B/E,GAG7C,GAAI6H,IAAaX,IAA4BvuD,IAASsuD,GAElDW,EAAK5H,EACL2H,EAAOvzC,MACJ,CACCzb,IAASquD,IAETQ,EAAO97C,EAAOxV,EAAI,GAClBuxD,EAAOrzC,IAGPozC,EAAO97C,EAAOxV,EAAI,GAClBuxD,EAAO/7C,EAAOxV,EAAI,GAClByxD,EAAOvzC,GAEX,IAAImzC,EAAIC,EAAKnsB,WAAW,GACpB1mC,EAAI8yD,EAAKpsB,WAAW,GAEpBsrB,GAAmCY,IAAMX,GAAmCjyD,KAAIizD,EAAKlC,KAAsC6B,EAAI3B,IAAgCG,IAAiCpxD,EAAIkxD,KAAiCG,GAC7O,CACA,IAAI9sD,EAAIyuD,GAAQA,EAAKtsB,WAAW,IAAMyqB,GACtC,GAAU,MAAN8B,IAAe1uD,IAAM4sD,IAAgCe,GAAmC3tD,IAAK,CAC7F,IAAItE,EAAIgzD,GAAM1uD,EAAI4sD,IAGlB,GAAIzvD,EAAK6uD,qBAAqBtwD,GAAI,CAC9B,IAAIkzD,EAAMD,IAAab,GAA0B,EAAI,EAErD,OADAt7C,EAAOmuC,OAAO3jD,EAAI4xD,EAAM,EAAGA,EAAKT,GAA+BhxD,EAAMzB,EAAGwf,EAAM6f,WACvE/9B,EAAI4xD,EAAM,CACrB,CACJ,CAKA,OAHIN,IAAMA,EAAKvzB,SAASuzB,MAAO,GAC3BC,IAAMA,EAAKxzB,SAASwzB,MAAO,GAC3BE,IAAMA,EAAK1zB,SAAS0zB,MAAO,GAC3BE,IAAaX,IAIb/B,GAAgCz5C,EAAQxV,EAAI,EAAGG,GACxCH,EAAI,GAERA,CACX,CAYA,SAASqvD,GAAsC75C,EAAQxV,EAAGG,GACtD,IAAI+d,EAAQ1I,EAAOxV,GACfuwC,EAAO/6B,EAAOxV,GAAGmlC,WAAW,GAEhC,GAAkD,IAA9ChlC,EAAKixD,kBAAkB7gB,GAAMP,aAAoB,OACrD,IACI39B,EAjBR,SAAyCk+B,GACrC,OAAOse,GAA8Bte,IACjC,KAAKygB,GACL,KAAKC,GACD,OAAO,EACX,KAAKH,GACD,OAAO,EACX,KAAKC,GACD,OAAO,EAEnB,CAOcc,CADCr8C,EAAOxV,EAAI,GAAGmlC,WAAW,IAGpC,OADA3vB,EAAOmuC,OAAO3jD,EAAG,GACVwV,EAAOmuC,OAAO3jD,EAAIqS,EAAK,EAAG6L,EACrC,CACA,SAASqxC,GAAyC/5C,EAAQxV,EAAGG,GACzD,IAAI+d,EAAQ1I,EAAOxV,GACfuwC,EAAO/6B,EAAOxV,GAAGmlC,WAAW,GAChC,GAAIhlC,EAAK6uD,qBAAqBkB,IAAsC,CAChE,IAAI4B,EAAeX,GAA+BhxD,EAAM+vD,GAAqChyC,EAAM6f,UAE/FgtB,EAAoD,IAA9C5qD,EAAKixD,kBAAkB7gB,GAAMP,aAAqBhwC,EAAIA,EAAI,EACpEwV,EAAOmuC,OAAOoH,EAAK,EAAG+G,GACtB9xD,GACJ,CACA,OAAOA,CACX,CAUA,IAAI+xD,GACJA,GAA4BC,KAAKC,MAAM,mt1CAGvC,IAAIC,GACJA,GAA4BF,KAAKC,MAAM,8nOAKvC,MAAME,GAA4C,CAC9CC,EAAG,EACHC,EAAG,EACHC,EAAG,EACHC,EAAG,EACHC,EAAG,GACHC,KAAM,GACNC,IAAK,GACLC,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,EAAG,KACHC,YAAa,KACbC,cAAe,KACfC,GAAI,KACJC,MAAO,MACPC,MAAO,MACPC,GAAI,MACJC,GAAI,OACJC,OAAQ,QAENC,GAA4C,CAC9CC,MAAO,EACPC,kBAAmB,EACnBC,MAAO,EACPC,MAAO,EACPC,OAAQ,GACRC,WAAY,GACZC,QAAS,GACTC,WAAY,IACZC,QAAS,IACTC,UAAW,IACXC,YAAa,KACbC,OAAQ,KACRC,WAAY,KACZC,QAAS,KACTC,KAAM,MACNC,IAAK,OAEHC,GAA2CrC,GAA0CE,EAAIF,GAA0CiB,GAAKjB,GAA0CkB,GAAKlB,GAA0CG,EAAIH,GAA0CY,YAAcZ,GAA0Ca,cACvUyB,GAA4CtC,GAA0CO,IAAMP,GAA0CM,KACtIiC,GAA2CvC,GAA0CK,EAAIL,GAA0Ce,MACnIyB,GAA4C,CAC9CC,QAAS,CACLC,YAAY,EACZC,OAAQ,EACRC,QAAS,OACTC,QAASzB,GAA0CW,YACnDe,SAAU,WACVC,SAAU,gBAEdttB,WAAY,CACRitB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0CW,YACnDe,SAAU,WACVC,SAAU,gBAEdpuB,QAAS,CACL+tB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0CU,UACnDgB,SAAU,WACVC,SAAU,gBAEd1sB,SAAU,CACNqsB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0CQ,WACnDkB,SAAU,WACVC,SAAU,gBAEd3sB,SAAU,CACNssB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0CW,YACnDe,SAAU,WACVC,SAAU,gBAEd7pB,MAAO,CACHwpB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0CM,WACnDoB,SAAU,WACVC,SAAU,gBAEdhoB,MAAO,CACH2nB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0Ca,WACnDa,SAAU,WACVC,SAAU,gBAEd9nB,OAAQ,CACJynB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0Ca,WACnDa,SAAU,WACVC,SAAU,aAEd3rB,QAAS,CACLsrB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0Ca,WACnDa,SAAU,WACVC,SAAU,aAEdzqB,UAAW,CACPoqB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAA0CM,WACnDoB,SAAU,YACVC,SAAU,gBAWd7rB,MAAO,CACHwrB,YAAY,EACZC,OAAQ,KACRC,QAAS,QACTC,QAASzB,GAA0CE,kBACnDwB,SAAU,YACVC,SAAU,iBAGZC,GAA4C,CAE9C,KAAQ,CACJ,KACA,MAEJ,KAAQ,CACJ,KACA,MAEJ,KAAQ,CACJ,KACA,MAEJ,KAAQ,CACJ,KACA,MAEJ,KAAQ,CACJ,KACA,QAMAC,eAAgBC,IAA2Dp2D,EAAuBizD,IACpGoD,GAA6B,IAAQ,EAAwBtzB,GAA2C,qqKACxGuzB,GAAqC,IAAQ,EAA8Bt2D,EAAuB8yD,KACxG,MAAMyD,WAAqD7M,GACvD,mBAAOG,CAAaF,GAjkFxB,IAAmD7+C,EAkkF3C6+C,EAAKb,SAAS0N,IACd7M,EAAKb,SAAS,CACV,OACA,SAEJa,EAAKb,SAAS2N,IACd9M,EAAKb,SAAS,QACda,EAAKb,SAAS,QACda,EAAKb,SAAS,QAAQ,GACtBa,EAAKb,SAAS,QACda,EAAKb,SAAS,QAAQ,GACtBa,EAAKb,SAAS,QAAQ,GACtBa,EAAKb,SAAS,QAAQ,GACtBa,EAAKb,SAAS,QAAQ,GACtBa,EAAKb,SAAS,QAAQ,GACtBa,EAAKb,SAAS,QACda,EAAKb,SAAS,QACda,EAAKb,SAAS,QAAQ,GACtBa,EAAKb,SAAS4N,IACd/M,EAAKb,SAAS,CACVD,MAAO,CACH,QAEJP,OAAQ,CACJ,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,UAIRqB,EAAKgN,eAvmFsC7rD,EAumFoB6+C,EAAK50C,OAtmFjEo6B,GAAuCrkC,IAumF1C6+C,EAAKiN,YAAkBlB,GAA2C/L,EAAKgN,gBAAsBjB,GAA2CC,QACxIhM,EAAKkN,UAAYlN,EAAKiN,YAAYhB,YAAsD,MAAxCjM,EAAK50C,OAAO40C,EAAK50C,OAAO/T,OAAS,EAErF,CACA,qBAAO+oD,CAAeJ,EAAMpzC,GAGxB,IAAI,IAAIxV,EAAIwV,EAAOvV,OAAS,EAAGD,GAAK,EAAGA,IAAI,CACvC,IAAI6iC,EAAYrtB,EAAOxV,GAAGmlC,WAAW,GACjC4wB,EAAQZ,GAA2CtyB,IAAcwyB,GAAqCxyB,GAC1G,GAAIkzB,EAAG,CACH,IAAIC,EAAaD,EAAEznD,KAAKs1B,IACpB,IAAIC,EAAI+kB,EAAKzoD,KAAKixD,kBAAkBxtB,GACpC,OAAO,IAAQsqB,GAA0CtF,EAAKzoD,KAAM0jC,EAAEI,GAAI,CACtEL,GACDpuB,EAAOxV,GAAG+9B,SAAS,IAE1BvoB,EAAOmuC,OAAO3jD,EAAG,KAAMg2D,EAC3B,CACJ,CACJ,EAGJ,SAASC,GAAoC/3C,GACzC,OAAOo3C,GAA2Bz2D,IAAIqf,EAAMinB,WAAW,KAAO,CAClE,CACA,SAAS+wB,GAAoCh4C,GACzC,OAAO,IAA4D,IAAtDo3C,GAA2Bz2D,IAAIqf,EAAMinB,WAAW,IACjE,EANA,EAAI,KAAUqwB,GAA0C,iBAAkB,QAO1E,MAAMW,GACF,WAAA9lD,CAAY65C,EAAU1kB,EAAU4wB,EAAcC,GAC1Cx1D,KAAKqpD,SAAWA,EAChBrpD,KAAK2kC,SAAWA,EAChB3kC,KAAKu1D,aAAeA,EACpBv1D,KAAKw1D,SAAWA,CACpB,EAEJ,SAASZ,GAAqCt1D,EAAMqV,GAChD,IAAI6gD,EAAW,EACXvR,EAAO,EACX,IAAK,IAAKl1C,EAAOC,EAAKymD,KAASf,GAAmCtI,MAAMz3C,EAAOlH,IAAI2nD,KAAsC,CACrH,GAAIrmD,EAAQk1C,EAAM,GACZuR,EACF,IAAI,IAAIr2D,EAAI8kD,EAAM9kD,EAAI4P,EAAO5P,IAAIwV,EAAOxV,GAAG0uD,WAAa,IAAIyH,GAAoChE,GAA2CC,EAAOmB,GAA2CgB,IAAK,oBAAqB8B,EAC3N,GACEA,EAEF,IAAI,IAAIr2D,EAAI4P,EAAO5P,GAAK6P,EAAK7P,IAAIwV,EAAOxV,GAAG0uD,WAAa,IAAIyH,GAAgC,GAAKF,GAAoCzgD,EAAOxV,IAAKk2D,GAAoC1gD,EAAOxV,IAAKs2D,EAAK,GAAID,GAC1MvR,EAAOj1C,EAAM,CACjB,CACA,GAAIi1C,EAAOtvC,EAAOvV,OAAQ,GACpBo2D,EACF,IAAI,IAAIr2D,EAAI8kD,EAAM9kD,EAAIwV,EAAOvV,OAAQD,IAAIwV,EAAOxV,GAAG0uD,WAAa,IAAIyH,GAAoChE,GAA2CC,EAAOmB,GAA2CgB,IAAK,oBAAqB8B,EACnO,CACJ,CACA,SAASE,GAAkCr4C,GACvC,OAAOA,EAAMwwC,WAAWxE,SAAesK,EAC3C,CACA,SAASgC,GAA+Bt4C,GACpC,OAAOA,EAAMwwC,WAAWxE,SAAeuK,EAC3C,CACA,SAASgC,GAAsCv4C,GAC3C,OAAOA,EAAMwwC,WAAWxE,SAAewK,EAC3C,CACA,SAASgC,GAAsClhD,EAAQhB,GACnD,IAAK,IAAI0J,KAAS1I,EAAO0I,EAAM6f,SAAW,CACtC,CAACvpB,IAAU,GAMf,OAJWgB,EAAO,GAAG64C,MAAMsI,cAAcC,OAAOC,cAC3C1O,cAAc,CACf3zC,GACDgB,GACsB,IAAlBA,EAAOvV,MAClB,CACA,SAAS62D,GAAwC32D,EAAM42D,EAAWjC,GAC9D,IAAIt/C,EAAS,CACTs/C,EACAiC,EACAjC,GAEJ,OAAI4B,GAAsClhD,EAAOksC,MAAM,EAAG,GAAI,SAAWgV,GAAsClhD,EAAOksC,MAAM,EAAG,GAAI,QAAoB6R,GAA2CS,QACzL0C,GAAsClhD,EAAOksC,MAAM,EAAG,GAAI,SAAWgV,GAAsClhD,EAAOksC,MAAM,EAAG,GAAI,SAC/HgV,GAAsClhD,EAAOksC,MAAM,EAAG,GAAI,SAAWgV,GAAsClhD,EAAOksC,MAAM,EAAG,GAAI,QADoB6R,GAA2CY,OAE5LZ,GAA2CK,MAC1D,CACA,SAAS8B,GAAwCv1D,EAAMqV,EAAQozC,GAC3D,IAAIiN,EAAcjN,EAAKiN,YACnB93B,EAAW59B,EAAKw2D,cAAcC,OAAOC,cAAc94B,SACnD+zB,EAAe3xD,EAAKixD,kBAAkB,MAAQntB,GAC9C6wB,EAAS30D,EAAKixD,kBAAkByE,EAAYf,QAAQ7wB,GACxD,GAAI6wB,EAAQ,CACR,IAAIkC,EAAO,IAAQ9I,GAA0C/tD,EAAM20D,EAAQ,CACvEe,EAAYf,SAEhB,IAAI,IAAI90D,EAAI,EAAGA,EAAIwV,EAAOvV,OAAQD,IAAQwV,EAAOxV,GAAG0uD,WAAWlpB,WAAiB+tB,GAA2CK,SAAQp+C,EAAOxV,GAAG0uD,WAAWlpB,SAAWsxB,GAAwC32D,EAAMqV,EAAOxV,GAAGklC,OAAQ8xB,GACvO,CACA,IAAI,IAAIpnD,EAAQ,EAAGC,EAAMonD,GAAmCzhD,EAAQ,GAAI5F,EAAQ4F,EAAOvV,OAAQ2P,EAAQC,EAAKA,EAAMonD,GAAmCzhD,EAAQ5F,GAAO,CAChK,IAAMs6C,SAAUA,EAAUkM,aAAcA,GAAiB5gD,EAAO5F,GAAO8+C,WACvE,GAAqB,mBAAjB0H,GAAsD,sBAAjBA,EAAsC,SAC/E,GAAqB,mBAAjBA,GAAqCtE,EAAc,CACnD,IAAIjuB,EAAI,IAAQqqB,GAA0C/tD,EAAM2xD,EAAc,CAC1E,OAEJjuB,EAAE6qB,WAAa,IAAIyH,GAAgC,GAAKF,GAAoCpyB,GAAIqyB,GAAoCryB,GAAIruB,EAAO5F,GAAO8+C,WAAW0H,aAAc5gD,EAAO5F,GAAO8+C,WAAW2H,UAExM,IAAIr2D,EAAI4P,EACR,KAAM5P,EAAI6P,GAAO2F,EAAOxV,GAAG0uD,WAAWxE,WAAiBiI,GAA2CgB,OAAMnzD,IACxGwV,EAAOmuC,OAAO3jD,IAAK,EAAG6jC,GACtBh0B,GACJ,CASA,IAAIgmB,EAAOhmB,EACPqnD,EAAQtnD,EACRunD,GAAU,EAId,GAAItB,EAAYb,UAAgBzB,GAA2CE,mBAAqB11B,EAASq5B,MAAQxnD,EAAQ,GAAKC,IAAiC,aAAzBgmD,EAAYZ,WAA4BuB,GAA+BhhD,EAAO5F,EAAQ,KAAgC,aAAzBimD,EAAYZ,UAA2Bz/C,EAAO5F,EAAQ,GAAG8+C,WAAWxE,WAAiBiI,GAA2CO,KAAM,CAErW,IAAI7uB,EAAI,CACJruB,EAAO5F,GAAOs1B,OACd1vB,EAAO5F,EAAQ,GAAGs1B,OAClB1vB,EAAO5F,EAAQ,GAAGs1B,QAEtB,GAAIwxB,GAAsC7yB,EAAE6d,MAAM,EAAG,GAAI,SAAoC,aAAzBmU,EAAYZ,UAA2ByB,GAAsC7yB,EAAG,QAAS,CAEzJ,IADAqzB,GAAS,EACHA,EAAQrnD,GAAO2mD,GAA+BhhD,EAAO0hD,KAAQA,IACnErhC,EAAOjmB,EACPunD,GAAU,CACd,CACJ,MAAO,GAA6B,cAAzBtB,EAAYZ,UAA4Bz/C,EAAO5F,GAAO8+C,WAAWxE,WAAiBiI,GAA2CgB,MAAO,CAE3I,IADA+D,IACMA,EAAQrnD,GAAO2mD,GAA+BhhD,EAAO0hD,KAAQA,IACnErhC,EAAOjmB,EACPunD,GAAU,CACd,CACA,OAAOtB,EAAYd,SACf,IAAK,OACD,CAEI,IAAI/0D,EAAI6P,EACJwnD,GAAY,EAChB,EAAG,CACC,IAAIL,EAAOxhD,IAASxV,GAAG0uD,WAEvB,GAAI6H,GAAkC/gD,EAAOxV,IAAK,CAG9C,GAAIg3D,EAAKxxB,WAAiB+tB,GAA2CS,UAAYgD,EAAKxxB,WAAiB+tB,GAA2CY,QAAUkD,GAAY,CACpKxhC,EAAO71B,EACP,KACJ,CAUIg3D,EAAKxxB,WAAiB+tB,GAA2CS,UAASqD,GAAY,GAC1FxhC,EAAO71B,CACX,MAAO,GAAI4P,EAAQ5P,GAAKg3D,EAAK9M,WAAiBiI,GAA2CO,KAAOl9C,EAAOxV,EAAI,GAAG0uD,WAAWxE,WAAiBiI,GAA2CK,EAAG,KAC5L,OAAQxyD,EAAIk3D,GACZ,KACJ,CACJ,IAAK,QAEDrhC,EAAOjmB,EAEP,IAAI,IAAI5P,EAAI61B,EAAO,EAAG71B,EAAI6P,EAAK7P,IAAQu2D,GAAkC/gD,EAAOxV,MAAKwV,EAAOxV,GAAG0uD,WAAWlpB,SAAe+tB,GAA2CS,SAOxKmD,GAAWthC,IAASjmB,GAASsnD,EAAQrhC,GAAQ,IAAGshC,GAAU,GA4B9D,IAAI,IAAIn3D,EAAI4P,EAAO5P,EAAI61B,EAAM71B,IAAI,CAC7B,IAAIg3D,EAAOxhD,EAAOxV,GAAG0uD,WACrBsI,EAAKxxB,SAAWviC,KAAK0+B,IAAQ4xB,GAA2CI,MAAOqD,EAAKxxB,SACxF,CACI3P,EAAOhmB,IAAK2F,EAAOqgB,GAAM64B,WAAWlpB,SAAe+tB,GAA2CK,QAGlG,IAAI,IAAI5zD,EAAI61B,EAAO,EAAG71B,EAAI6P,EAAK7P,IAAI,GAAIwV,EAAOxV,GAAG0uD,WAAWxE,WAAiBiI,GAA2CQ,EAAG,CACvH,IAAI,IAAI2E,EAAIt3D,EAAI,EAAGs3D,EAAIznD,EAAKynD,IAAI,GAAIf,GAAkC/gD,EAAO8hD,IAAK,CAC9E9hD,EAAO8hD,GAAG5I,WAAWlpB,SAAe+tB,GAA2Cc,QAC/E,KACJ,CACA,KACJ,CAmBA,GAjBI8C,IAAS3hD,EAAO5F,GAAO8+C,WAAWlpB,SAAe+tB,GAA2CE,mBAiB5F7K,EAAKkN,UAAW,CAChB,IAAIyB,EAA+C,cAAvB3O,EAAKgN,cACjC,IAAI,IAAI51D,EAAI61B,EAAO,EAAG71B,EAAI6P,EAAK7P,IAAI,GAAIwV,EAAOxV,GAAG0uD,WAAWxE,WAAiBiI,GAA2CK,EAAG,CACvH,IAAI8E,EACJ,IAAIA,EAAIznD,EAAM,EAAGynD,EAAIt3D,KACbu2D,GAAkC/gD,EAAO8hD,KAAOC,GAAyB/hD,EAAO8hD,GAAG5I,WAAWxE,WAAiBiI,GAA2CK,GAD1I8E,KAGxB,GAAI9hD,EAAO8hD,GAAG5I,WAAWxE,WAAiBiI,GAA2CK,GAAK8E,EAAIt3D,EAAG,CAE7F,IAAIgD,EAAIwS,EAAOxV,GACfwV,EAAOmuC,OAAO3jD,EAAG,KAAMwV,EAAOmuC,OAAO3jD,EAAI,EAAGs3D,EAAIt3D,IAChDwV,EAAO8hD,GAAKt0D,CAChB,CACA,KACJ,CACJ,CAEA,IAAIw0D,EAAcjE,GAA2CC,MAC7D,IAAI,IAAIxzD,EAAI4P,EAAO5P,EAAI6P,EAAK7P,IAAI,CAC5B,IAAIg3D,EAAOxhD,EAAOxV,GAAG0uD,WACrB,GAAIsI,EAAK9M,UAAgBuK,GAAiDtC,GAA2CI,EAAQJ,GAA2Cc,GAASd,GAA2CkB,GAASqB,GAA4CsC,EAAK9M,WAElR,GADA8M,EAAKxxB,SAAWgyB,EACZR,EAAK9M,WAAiBiI,GAA2CK,GAAKwE,EAAKxxB,WAAiB+tB,GAA2CG,MAQvI,IAAI,IAAI4D,EAAIt3D,EAAGs3D,EAAI1nD,EAAO0nD,IAAI,GAAI9hD,EAAO8hD,EAAI,GAAG5I,WAAWlpB,WAAiB+tB,GAA2CG,MAAO,CAC1HsD,EAAKxxB,SAAWhwB,EAAO8hD,EAAI,GAAG5I,WAAWlpB,SACzC,KACJ,OAEGwxB,EAAKxxB,WAAiB+tB,GAA2Ce,OAAMkD,EAAUR,EAAKxxB,SACrG,CAGA,IAAIsf,EAAOjvB,EACX,IAAI,IAAI71B,EAAI61B,EAAO,EAAG71B,EAAI6P,EAAK7P,IAC3B,GAAIu2D,GAAkC/gD,EAAOxV,IAAK,CAC9C,IAAI,IAAIs3D,EAAIxS,EAAO,EAAGwS,EAAIt3D,EAAGs3D,IAAQ9hD,EAAO8hD,GAAG5I,WAAWlpB,SAAe+tB,GAA2Ce,OAAM9+C,EAAO8hD,GAAG5I,WAAWlpB,SAAWhwB,EAAOxV,GAAG0uD,WAAWlpB,UAC/Ksf,EAAO9kD,CACX,MAAWwV,EAAOxV,GAAG0uD,WAAWxE,WAAiBiI,GAA2CQ,IAAG7N,EAAO9kD,GAE1G,IAAI+P,EAAMyF,EAAOksC,MAAM9xC,EAAOC,GAC9BE,EAAIg8C,MAAK,CAAC7sD,EAAG0R,IAAI1R,EAAEwvD,WAAWlpB,SAAW50B,EAAE89C,WAAWlpB,WACtDhwB,EAAOmuC,OAAO/zC,EAAOG,EAAI9P,UAAW8P,GAEpC,IAAI,IAAI/P,EAAI4P,EAAO5P,EAAI6P,EAAK7P,IAAI,GAAIwV,EAAOxV,GAAG0uD,WAAWlpB,WAAiB+tB,GAA2CK,OAAQ,CACzH/9B,EAAO71B,EACP,KACJ,CAGA,IAAI,IAAIA,EAAI4P,EAAO5P,EAAI6P,GAAO2F,EAAOxV,GAAG0uD,WAAWlpB,WAAiB+tB,GAA2CE,kBAAmBzzD,IAAIwV,EAAOxV,GAAG+9B,SAASq5B,MAAO,EAEhK,IAAIK,GAAQ7O,EAAKkN,WAAsC,iBAAzBD,EAAYX,SAC1C,IAAI,IAAIl1D,EAAI4P,EAAO5P,EAAI61B,EAAM71B,IACzBwV,EAAOxV,GAAG+9B,SAASqgB,MAAO,EACtBqZ,IAAMjiD,EAAOxV,GAAG+9B,SAAS05B,MAAO,GAGxC,IAAI,IAAIz3D,EAAI61B,EAAO,EAAG71B,EAAI6P,EAAK7P,IAC3BwV,EAAOxV,GAAG+9B,SAAS25B,MAAO,EAC1BliD,EAAOxV,GAAG+9B,SAAS45B,MAAO,EAC1BniD,EAAOxV,GAAG+9B,SAAS05B,MAAO,EAE9B,GAAI7O,EAAKkN,WAAoC,eAAvBlN,EAAKgN,cAkBvB,IAAI,IAAI51D,EAAI4P,EAAO5P,EAAI,EAAI61B,EAAM71B,IAAQwV,EAAOxV,GAAG0uD,WAAWxE,WAAiBiI,GAA2CiB,IAAM59C,EAAOxV,EAAI,GAAG0uD,WAAWxE,WAAiBiI,GAA2CK,GAAMxyD,EAAI,IAAM61B,GAAQrgB,EAAOxV,EAAI,GAAG0uD,WAAWxE,WAAiBiI,GAA2CO,MAC9Tl9C,EAAOxV,GAAG+9B,SAAS05B,MAAO,EAC1BjiD,EAAOxV,EAAI,GAAG+9B,SAAS05B,MAAO,GAGtC,IAAIG,EAAU,EACd,GAAI75B,EAAS85B,MAAQhiC,EAAO+hC,EAAU/nD,EACtC,IAAI,IAAI7P,EAAI61B,EAAO,EAAG71B,EAAI43D,EAAU,EAAI/nD,EAAK7P,IAAI,CAK7C,GAAI02D,GAJI,CACJlhD,EAAOxV,GAAGklC,OACV1vB,EAAOxV,EAAI,GAAGklC,QAE2B,QAAS,CAClD,IAAI,IAAIoyB,EAAI,EAAGA,EAAIM,EAASN,IAAI9hD,EAAOxV,KAAK+9B,SAAS85B,MAAO,EAM5D,GAAI95B,EAAS+5B,KAAM,KAAM93D,EAAI6P,EAAK7P,IAAIwV,EAAOxV,GAAG+9B,SAAS+5B,MAAO,EAChE,KACJ,CACJ,CAEA,IAAI,IAAI93D,EAAI4P,EAAQ,EAAG5P,EAAI6P,EAAK7P,IAAI,GAAIw2D,GAA+BhhD,EAAOxV,IAAK,CAC/E,IAAI+3D,EAAYviD,EAAOxV,GAAG0uD,WAAWxE,WAAiBiI,GAA2CM,KAC7F6E,EAAIt3D,EACR,GACIs3D,IAKIS,UAAkBviD,EAAO8hD,GAAGv5B,SAASqgB,WACrCkZ,EAAI1nD,IAAU2mD,GAAkC/gD,EAAO8hD,IACnE,CACJ,CACJ,CACA,SAAS3B,GAAsCx1D,EAAMqV,EAAQozC,GACzD,IAAIiN,EAAcjN,EAAKiN,YACnB93B,EAAW59B,EAAKw2D,cAAcC,OAAOC,cAAc94B,SACvD,IAAI,IAAInuB,EAAQ,EAAGC,EAAMonD,GAAmCzhD,EAAQ,GAAI5F,EAAQ4F,EAAOvV,OAAQ2P,EAAQC,EAAKA,EAAMonD,GAAmCzhD,EAAQ5F,GAAO,CAOhK,IAAIooD,IAAYj6B,EAAS85B,KAErBhiC,EAAOjmB,EACX,KAAMimB,EAAOhmB,EAAKgmB,IAAO,GAAIrgB,EAAOqgB,GAAM64B,WAAWlpB,UAAgB+tB,GAA2CK,OAAQ,CACpH,GAAIoE,GAAWniC,EAAO,EAAIhmB,EACtB,IAAI,IAAI7P,EAAI61B,EAAO,EAAG71B,EAAI6P,EAAK7P,IAAI,GAAIwV,EAAOxV,GAAG+9B,SAAS85B,KAAM,CAC5D,IAAMriD,EAAOxV,GAAGouD,cAAe54C,EAAOxV,GAAGuuD,WAAc/4C,EAAOxV,GAAG2uD,aAAe,CAI5E,IADA94B,EAAO71B,EACD61B,EAAOhmB,GAAO4mD,GAAsCjhD,EAAOqgB,KAAOA,IACxErgB,EAAOqgB,GAAM64B,WAAWlpB,SAAe+tB,GAA2C0E,OAClFD,GAAU,CACd,CACA,KACJ,CAGJ,GAA2B,cAAvBpP,EAAKgN,cAA+B,IAAI,IAAI51D,EAAI61B,EAAO,EAAG71B,EAAI6P,EAAK7P,IAAI,CACvE,KAAMA,EAAI6P,GAAO2mD,GAA+BhhD,EAAOxV,KAAIA,IAC3D,GAAIA,IAAM6P,IAAQ4mD,GAAsCjhD,EAAOxV,IAAK,MAEpE,IADAA,IACMA,EAAI6P,GAAO2mD,GAA+BhhD,EAAOxV,KAAIA,IACvDA,EAAI6P,GAAO0mD,GAAkC/gD,EAAOxV,KAAOwV,EAAOxV,GAAG0uD,WAAWlpB,WAAiB+tB,GAA2CS,UAC5In+B,EAAO71B,EACPwV,EAAOqgB,GAAM64B,WAAWlpB,SAAe+tB,GAA2CK,OAE1F,CACIhkD,EAAQimB,GAAQrgB,EAAOqgB,GAAM64B,WAAWlpB,SAAe+tB,GAA2CK,QAAQ/9B,IAC9G,KACJ,CAEA,GADIA,IAAShmB,GAAOD,EAAQimB,GAAQrgB,EAAOqgB,EAAO,GAAG64B,WAAWxE,WAAiBiI,GAA2CO,KAAK78B,IAC7HA,EAAOhmB,EAAK,KAAMD,EAAQimB,GAAQrgB,EAAOqgB,GAAM64B,WAAWxE,UAAgBiI,GAA2CI,EAAQmC,KAA2C7+B,IAU5K,GAAIjmB,EAAQ,EAAIC,GAAOD,EAAQimB,EAAM,CAEjC,IAAIqiC,EAASriC,IAAShmB,EAAMgmB,EAAO,EAAIA,EAAO,EAI9C,GAA2B,cAAvB+yB,EAAKgN,eAAwD,UAAvBhN,EAAKgN,cAA2B,CACtE,KAAMsC,EAAStoD,KAAW4F,EAAO0iD,GAAQxJ,WAAWxE,UAAgBiI,GAA2CQ,EAAQ+B,MAA4CwD,IAI/JzB,GAAsCjhD,EAAO0iD,KAAY1iD,EAAO0iD,GAAQxJ,WAAWlpB,WAAiB+tB,GAA2CG,MAE3IwE,EAAS,EAAIroD,GAAO2mD,GAA+BhhD,EAAO0iD,EAAS,KAAKA,IACzEA,EAAStoD,CACpB,CACA,GAAIA,EAAQsoD,GAAU1iD,EAAO0iD,GAAQxJ,WAAWlpB,WAAiB+tB,GAA2CG,MAExG,IAAI,IAAI1zD,EAAIk4D,EAAQl4D,EAAI4P,EAAO5P,IAAI,GAAIwV,EAAOxV,EAAI,GAAG0uD,WAAWlpB,WAAiB+tB,GAA2CG,MAAO,CAC/H,IAAIyE,EAASn4D,EAAI,EACbm4D,EAAStiC,GAAQA,GAAQqiC,GAAQriC,IACrC,IAAIuiC,EAAM5iD,EAAO2iD,GACjB3iD,EAAOmuC,OAAOwU,EAAQ,KAAM3iD,EAAOmuC,OAAOwU,EAAS,EAAGD,EAASC,IAC/D3iD,EAAO0iD,GAAUE,EACjBF,GACJ,CAER,CAgBA,GAAItoD,EAAQ,EAAIC,GAAO2F,EAAO5F,GAAO8+C,WAAWlpB,WAAiB+tB,GAA2CE,mBAAqBj+C,EAAO5F,GAAO8+C,WAAWxE,WAAiBiI,GAA2CgB,SAAW39C,EAAO5F,GAAO2+C,YAAc/4C,EAAO5F,GAAO++C,cAAe,CACtR,IAAI0J,EACArD,EAAUa,EAAYb,QACtBjP,GAAQ,EAGZ,GAAIiP,IAAgBzB,GAA2Ca,WAAY,CAYvE,IADAiE,EAAazoD,EAAQ,EACfyoD,EAAaxiC,IAAS4gC,GAAsCjhD,EAAO6iD,KAAaA,IAStF,GARIA,EAAaxiC,GAAQ4gC,GAAsCjhD,EAAO6iD,MAE9DA,EAAa,EAAIxiC,GAAQ2gC,GAA+BhhD,EAAO6iD,EAAa,KAAKA,IACrFtS,GAAQ,IAKPA,GAASiP,IAAgBzB,GAA2CM,WAAY,CAEjF,IADAwE,EAAaxiC,EACPwiC,EAAa,EAAIxoD,GAAO2F,EAAO6iD,EAAa,GAAG3J,WAAWlpB,UAAgB+tB,GAA2CM,YAAWwE,IACtItS,EAAQsS,EAAaxoD,CACzB,CAOA,IAAKk2C,GAASiP,IAAgBzB,GAA2CU,UAAW,CAEhF,IADAoE,EAAaxiC,EACPwiC,EAAa,EAAIxoD,KAAS2F,EAAO6iD,EAAa,GAAG3J,WAAWlpB,UAAgB+tB,GAA2CY,OAAaZ,GAA2Ca,WAAiBb,GAA2Ce,QAAO+D,IACxPtS,EAAQsS,EAAaxoD,CACzB,CACJ,CAOA,IAAKk2C,EAAO,CAGR,IADAsS,EAAazoD,EAAQ,EACfyoD,EAAaxiC,IAAS4gC,GAAsCjhD,EAAO6iD,KAAaA,IAClFA,EAAaxiC,GAAQ4gC,GAAsCjhD,EAAO6iD,MAE9DA,EAAa,EAAIxiC,GAAQ2gC,GAA+BhhD,EAAO6iD,EAAa,KAAKA,IACrFtS,GAAQ,EAEhB,CAEA,IAAKA,EAAO,CAER,IADAsS,EAAaxoD,EAAM,EACbwoD,EAAazoD,GAAS4F,EAAO6iD,GAAY3J,WAAWlpB,WAAiB+tB,GAA2Ce,MAAK+D,IAM3H,GAAI5B,GAAsCjhD,EAAO6iD,IAC7C,IAAI,IAAIr4D,EAAI61B,EAAO,EAAG71B,EAAIq4D,EAAYr4D,IAAQwV,EAAOxV,GAAG0uD,WAAWxE,WAAiBiI,GAA2CQ,GAAG0F,GAE1I,CACA,IAAIC,EAAO9iD,EAAO5F,GAClB4F,EAAOmuC,OAAO/zC,EAAO,KAAM4F,EAAOmuC,OAAO/zC,EAAQ,EAAGyoD,EAAazoD,IACjE4F,EAAO6iD,GAAcC,EACjB1oD,EAAQimB,GAAQA,GAAQwiC,GAAYxiC,GAC5C,CAKA,GAAImiC,GAAWniC,EAAO,EAAIhmB,EACtB,IAAI,IAAI7P,EAAI61B,EAAO,EAAG71B,EAAI6P,EAAK7P,IAAI,GAAIwV,EAAOxV,GAAG+9B,SAAS85B,KAAM,CAQ5D,GAAIriD,EAAOxV,GAAGuuD,YAAc/4C,EAAOxV,GAAG2uD,aAAc,CAMhD,IAAIuJ,EAASriC,EAIb,GAA2B,cAAvB+yB,EAAKgN,eAAwD,UAAvBhN,EAAKgN,cAA2B,CACtE,KAAMsC,EAAStoD,KAAW4F,EAAO0iD,EAAS,GAAGxJ,WAAWxE,UAAgBiI,GAA2CQ,EAAQ+B,MAA4CwD,IAGvK,GAAIA,EAAStoD,GAAS4F,EAAO0iD,EAAS,GAAGxJ,WAAWxE,WAAiBiI,GAA2CQ,EAAG,CAC/G,IAAIwF,EAASn4D,EACb,IAAI,IAAIs3D,EAAIzhC,EAAO,EAAGyhC,EAAIa,EAAQb,IAAI,GAAI9hD,EAAO8hD,GAAG5I,WAAWxE,WAAiBiI,GAA2CQ,EAAG,CAC1HuF,IACA,KACJ,CACJ,CACJ,CACIA,EAAStoD,GAAS6mD,GAAsCjhD,EAAO0iD,EAAS,KAEpEA,EAASroD,GAAO2mD,GAA+BhhD,EAAO0iD,KAAUA,IAExE,IAAIC,EAASn4D,EACTo4D,EAAM5iD,EAAO2iD,GACjB3iD,EAAOmuC,OAAOuU,EAAS,EAAG,KAAM1iD,EAAOmuC,OAAOuU,EAAQC,EAASD,IAC/D1iD,EAAO0iD,GAAUE,EACbF,GAAUriC,GAAQA,EAAOsiC,GAAQtiC,GACzC,CACA,KACJ,CAGArgB,EAAO5F,GAAO8+C,WAAWlpB,WAAiB+tB,GAA2CG,OAAW9jD,GAAU,QAAQ2oD,MAAK,EAAI,MAAoB/iD,EAAO5F,EAAQ,GAAGu1B,WAAW,OAAO3vB,EAAO5F,GAAOmuB,SAAS8f,MAAO,EACzN,CACJ,CACA,SAASoZ,GAAmCzhD,EAAQ5F,GAChD,GAAIA,GAAS4F,EAAOvV,OAAQ,OAAO2P,EACnC,IAAIymD,EAAW7gD,EAAO5F,GAAO8+C,WAAW2H,SACxC,OAAQzmD,EAAQ4F,EAAOvV,QAAUuV,EAAO5F,GAAO8+C,WAAW2H,WAAaA,IACvE,OAAOzmD,CACX,CAUA,MAAQ4oD,WAAYC,GAAkCrD,eAAgBsD,IAA2Dz5D,EAAuBizD,IAClJyG,GAA6B,IAAQ,EAAwB32B,GAA2C,6sJACxG42B,GAAqC,IAAQ,EAA8B35D,EAAuBizD,KACxG,MAAM2G,WAAqDlQ,GACvD,mBAAOG,CAAaF,GAChBA,EAAKb,SAAS+Q,IAEdlQ,EAAKb,SAAS,CACV,OACA,OACA,OACA,SAGJa,EAAKb,SAASgR,IACdnQ,EAAKb,SAAS,CACV,SACD,GACHa,EAAKb,SAASiR,IACdpQ,EAAKb,SAASgR,IACdnQ,EAAKb,SAAS,CACV,SAEJa,EAAKb,SAASkR,IAEdrQ,EAAKb,SAAS,CACV,OACA,OACA,OACA,OACA,OACA,OACA,SAEJa,EAAKb,SAASmR,IAKdtQ,EAAKb,SAAS,CACV,OACA,OACA,OACA,OACA,OACA,OACA,QAER,CACA,qBAAOiB,CAAeJ,EAAMpzC,GAGxB,IAAI,IAAIxV,EAAIwV,EAAOvV,OAAS,EAAGD,GAAK,EAAGA,IAAI,CACvC,IAAI6iC,EAAYrtB,EAAOxV,GAAGmlC,WAAW,GACrC,GAAIuzB,GAAqC71B,GAAY,CACjD,IAAImzB,EAAa0C,GAAqC71B,GAAWv0B,KAAKs1B,IAClE,IAAIC,EAAI+kB,EAAKzoD,KAAKixD,kBAAkBxtB,GACpC,OAAO,IAAQsqB,GAA0CtF,EAAKzoD,KAAM0jC,EAAEI,GAAI,CACtEL,GACDpuB,EAAOxV,GAAG+9B,SAAS,IAE1BvoB,EAAOmuC,OAAO3jD,EAAG,KAAMg2D,EAC3B,CACJ,CACJ,EAGJ,SAASmD,GAAkCj7C,GACvC,OAAOy6C,GAA2B95D,IAAIqf,EAAMinB,WAAW,GAC3D,EAHA,EAAI,KAAU0zB,GAA0C,iBAAkB,eAI1E,MAAMO,GACF,WAAA/oD,CAAY65C,EAAUkM,EAAcC,GAChCx1D,KAAKqpD,SAAWA,EAChBrpD,KAAKu1D,aAAeA,EACpBv1D,KAAKw1D,SAAWA,CACpB,EAEJ,SAASyC,GAAqC34D,EAAMqV,GAChD,IAAI6gD,EAAW,EACf,IAAK,IAAKzmD,EAAOC,EAAKymD,KAASsC,GAAmC3L,MAAMz3C,EAAOlH,IAAI6qD,KAAoC,GACjH9C,EAEF,IAAI,IAAIr2D,EAAI4P,EAAO5P,GAAK6P,EAAK7P,IAAIwV,EAAOxV,GAAG0uD,WAAa,IAAI0K,GAA8BX,GAAiCU,GAAkC3jD,EAAOxV,KAAMs2D,EAAK,GAAID,GAEnL,IAAIa,EAA8C,MAAtC1hD,EAAO5F,GAAO8+C,WAAWxE,SAAmB,EAAIjnD,KAAK0+B,IAAI,EAAG9xB,EAAMD,GAC9E,IAAI,IAAI5P,EAAI4P,EAAO5P,EAAI4P,EAAQsnD,EAAOl3D,IAAIwV,EAAOxV,GAAG+9B,SAASq5B,MAAO,CACxE,CACJ,CACA,SAAS2B,GAA6C54D,EAAMqV,GACxD,IAAK,IAAI0I,KAAS1I,EAAO0I,EAAMkwC,aAAc,CACjD,CACA,SAAS4K,GAAiC74D,EAAMqV,GAC5C,IAAK,IAAI0I,KAAS1I,EAAW0I,EAAMkwC,aAAelwC,EAAM6f,SAASq5B,OACjEl5C,EAAMwwC,WAAWxE,SAAW,IAChC,CACA,SAAS+O,GAAiC94D,EAAMqV,GAC5C,IAAK,IAAI0I,KAAS1I,EAAW0I,EAAMkwC,cACnClwC,EAAMwwC,WAAWxE,SAAW,OAChC,CACA,SAASgP,GAA8B/4D,EAAMqV,GACzC,IAAIs8C,EAAe3xD,EAAKixD,kBAAkB,MAAQntB,GAClD,IAAI,IAAIr0B,EAAQ,EAAGC,EAAMwpD,GAAmC7jD,EAAQ,GAAI5F,EAAQ4F,EAAOvV,OAAQ2P,EAAQC,EAAKA,EAAMwpD,GAAmC7jD,EAAQ5F,GAAO,CAChK,IAAI5P,EAAGs3D,EACHN,EAAOxhD,EAAO5F,GAAO8+C,WACrBjsD,EAAOu0D,EAAKZ,aAEhB,GAAa,8BAAT3zD,GAAiD,qBAATA,GAAwC,mBAATA,EAA3E,CAEA,GAAa,mBAATA,GAA6BqvD,EAAc,CAC3C,IAAIjuB,EAAI,IAAQqqB,GAA0C/tD,EAAM2xD,EAAc,CAC1E,OAIJ,IAFAjuB,EAAE6qB,WAAasI,EAEXh3D,EAAI4P,EAAO5P,EAAI6P,GAAyC,MAAlC2F,EAAOxV,GAAG0uD,WAAWxE,SAAkBlqD,KACjEwV,EAAOmuC,SAAS3jD,EAAG,EAAG6jC,GACtBh0B,GACJ,CAEA,GAAsB,MAAlBmnD,EAAK9M,UAAoBr6C,EAAMD,EAAQ,EAC3C,IAAI5P,EAAI4P,EAAQ,EAAG5P,EAAI6P,EAAK7P,IAExB,GADAg3D,EAAOxhD,EAAOxV,GAAG0uD,WACb4K,GAA6BtC,IAASuC,GAA+B/jD,EAAOxV,IAAK,CAG7Eu5D,GAA+B/jD,EAAOxV,KAAKA,IAC/CwV,EAAOmuC,OAAO/zC,EAAO,KAAM4F,EAAOmuC,OAAO/zC,EAAQ,EAAG5P,EAAI4P,GAAQ4F,EAAOxV,IACvE,KACJ,CAGJ,IAAIA,EAAI4P,EAAO0nD,EAAIznD,EAAK7P,EAAI6P,EAAK7P,IAC7Bg3D,EAAOxhD,EAAOxV,GAAG0uD,WACb4K,GAA6BtC,IAASuC,GAA+B/jD,EAAOxV,IAEhFs3D,EAAIiC,GAA+B/jD,EAAOxV,IAAMA,EAAI,EAAIA,GAC5B,SAAlBg3D,EAAK9M,UAAyC,UAAlB8M,EAAK9M,WAAyBoN,EAAIt3D,GAAGwV,EAAOmuC,OAAO2T,EAAG,EAAG9hD,EAAOxV,MAAOwV,EAAOmuC,OAAO2T,EAAGt3D,EAAIs3D,GA9BxB,CAgClH,CACJ,CACA,SAAS+B,GAAmC7jD,EAAQ5F,GAChD,GAAIA,GAAS4F,EAAOvV,OAAQ,OAAO2P,EACnC,IAAIymD,EAAW7gD,EAAO5F,GAAO8+C,WAAW2H,SACxC,OAAQzmD,EAAQ4F,EAAOvV,QAAUuV,EAAO5F,GAAO8+C,WAAW2H,WAAaA,IACvE,OAAOzmD,CACX,CACA,SAAS2pD,GAA+Br7C,GACpC,MAAqC,MAA9BA,EAAMwwC,WAAWxE,WAAqBhsC,EAAMqwC,SACvD,CACA,SAAS+K,GAA6BtC,GAClC,MAAyB,MAAlBA,EAAK9M,UAAsC,OAAlB8M,EAAK9M,QACzC,CAGA,MAAMsP,GAAgC,CAClClrB,KAAUub,GACV4P,KAAU5P,GACVrb,KAAUqb,GACV,OAAYA,GACZ6P,KAAU7P,GACVxa,KAAUwa,GACVra,KAAUqa,GACVha,KAAUga,GACV8P,KAAU/K,GACVgL,KAAUpE,GACVqE,KAAUrE,GACVsE,KAAUtE,GACVuE,KAAUvE,GACVwE,KAAUxE,GACVyE,KAAUzE,GACV0E,KAAU1E,GACV2E,KAAU3E,GACV4E,KAAU5E,GACV6E,KAAU7E,GACV8E,KAAU9E,GACV+E,KAAU/E,GACVgF,KAAUhF,GACViF,KAAUjF,GACVkF,KAAUlF,GACVmF,KAAUnF,GACVoF,KAAUpF,GACVqF,KAAUrF,GACVsF,KAAUtF,GACVuF,KAAUlC,GACVmC,KAAUnC,GACVoC,KAAUpC,GACVqC,KAAUrC,GACVsC,KAAUtC,GACVuC,KAAUvC,GACVwC,KAAUxC,GACVyC,KAAUzC,GACV0C,KAAU1C,GACV2C,KAAU3C,GACV4C,KAAU5C,GACV6C,KAAU7C,GACV8C,KAAU9C,GACV+C,KAAU/C,GACVlqB,KAAUkqB,GACVgD,KAAUhD,GACViD,KAAUjD,GACVkD,KAAUlD,GACVmD,KAAUnD,GACVoD,KAAUpD,GAGVqD,KAAUrD,GACVsD,KAAUtD,GAGVuD,KAAUvD,GAGVwD,KAAUxD,GACVyD,KAAUzD,GACV0D,KAAU1D,GACV2D,KAAU3D,GACV4D,KAAUjH,GACVkH,KAAU7D,GACV8D,KAAU9D,GACV+D,KAAU/D,GACVgE,KAAUhE,GACViE,KAAUjE,GACVkE,KAAUlE,GACVmE,KAAUnE,GACVoE,KAAUpE,GACVqE,KAAUrE,GACVsE,KAAUtE,GACVuE,KAAUvE,GACVwE,KAAU1U,GACV2U,KAAU3U,IAkBd,MAAM4U,WAAqDpS,GACvD,WAAA0B,CAAY93C,EAAYvQ,GACpB,OAAOuQ,GACH,KAAK,EACD,CACI,IAAIuG,EAAQza,KAAKmsD,cAAcxoD,EAAMuS,UACrC,IAAe,IAAXuE,EAAc,OAAO,EACzB,IAAI4C,EAAQrd,KAAK8rD,cAActC,IAC/B,OAAO7lD,EAAMG,SACT,KAAK,EACDuZ,EAAM+lB,GAAK/lB,EAAM+lB,GAAKz/B,EAAMsoB,aAAe,MAC3C,MACJ,KAAK,EACD5O,EAAM+lB,GAAKz/B,EAAMuoB,WAAWluB,IAAIyc,GAGxC,OAAO,CACX,CACJ,KAAK,EACD,CACI,IAAIA,EAAQza,KAAKmsD,cAAcxoD,EAAMuS,UACrC,IAAe,IAAXuE,EAAc,CACd,IAAI4xC,EAAW1oD,EAAMyoB,UAAUpuB,IAAIyc,GACnC,GAAwB,IAApB4xC,EAASjtD,OAIT,OADAY,KAAK2U,OAAOmuC,OAAO9iD,KAAK8rD,cAAcrxC,MAAO,IACtC,EAEXza,KAAK8rD,cAActC,IAAIpmB,GAAKipB,EAAS,GACrCrsD,KAAK8rD,cAActC,IAAIiE,kBAAoB,EAC3C,IAAIvwB,EAAWl9B,KAAK8rD,cAActC,IAAItsB,SAClCy/B,EAAW38D,KAAK8rD,cAActC,IAC9BoT,EAAcvQ,EAASxL,MAAM,GAAGpzC,KAAI,CAAC+P,EAAKre,KAC1C,IAAIke,EAAQ,IAAQgwC,GAA0CrtD,KAAKV,KAAMke,OAAKq/C,EAAW3/B,GAMzF,OALA7f,EAAMwwC,WAAa8O,EAAS9O,WAC5BxwC,EAAMqwC,UAAYiP,EAASjP,UAC3BrwC,EAAMowC,kBAAoBtuD,EAAI,EAC9Bke,EAAMkwC,aAAc,EACpBlwC,EAAMywC,cAAe,EACdzwC,CAAK,IAGhB,OADArd,KAAK2U,OAAOmuC,OAAO9iD,KAAK8rD,cAAcrxC,MAAQ,EAAG,KAAMmiD,IAChD,CACX,CACA,OAAO,CACX,CACJ,KAAK,EACD,CACI,IAAIniD,EAAQza,KAAKmsD,cAAcxoD,EAAMuS,UACrC,IAAe,IAAXuE,EAAc,CACd,IAAIqiD,EAAa,EAEjB,OADA98D,KAAK8rD,cAActC,IAAIpmB,GAAKz/B,EAAM0oB,aAAaruB,IAAIyc,GAAOqiD,IACnD,CACX,CACA,OAAO,CACX,CACJ,KAAK,EACD,CACI,IAAIriD,EAAQza,KAAKmsD,cAAcxoD,EAAMuS,UACrC,IAAe,IAAXuE,EAAc,OAAO,EACzB,IAAK,IAAIsiD,KAAYp5D,EAAM2oB,aAAatuB,IAAIyc,GAAO,CAC/C,IAAI6xC,EAAUtsD,KAAKysD,qBAAqB,EAAGsQ,EAASl9C,YACpD,IAAKysC,EAAS,SACd,IAAIqQ,EAAW38D,KAAK8rD,cAActC,IAE9BwT,EAAaL,EAASr4B,WAAWuc,QACrC,IAAK,IAAIpmC,KAAS6xC,EAAQ0Q,EAAWh+D,QAAQgB,KAAK2U,OAAO8F,GAAO6pB,YAEhE,IAAI24B,EAAgB,IAAQ5P,GAA0CrtD,KAAKV,KAAMy9D,EAAS1/C,MAAO2/C,EAAYL,EAASz/B,UACtH+/B,EAAcpP,WAAa8O,EAAS9O,WACpCoP,EAAcvP,WAAY,EAC1BuP,EAAc1P,aAAc,EAyB5B,IAAI2P,EAAiBP,EAAS14B,OAC9B,IAAI,IAAI9kC,EAAI,EAAGA,EAAImtD,EAAQltD,QAAU89D,EAAgB/9D,IAAI+9D,EAAiBl9D,KAAK2U,OAAO23C,EAAQntD,IAAI8kC,OAClGg5B,EAAc7P,WAAa8P,EAAiB,KAAOl9D,KAAKotD,aACxD,IAAI+P,EAAYR,EAASvP,WACrBgQ,EAAeT,EAASr4B,WAAWllC,OACnCi+D,EAAWD,EACXlT,EAAMlqD,KAAK8rD,cAAcrxC,MAAQ,EAGrC,IAAK,IAAI6iD,KAAchR,EAAQ,CAE3B,GAAI4Q,EAAgBhT,EAAMoT,OACrB,KAAMpT,EAAMoT,GAAW,CACxB,IAAI7P,EAAoB4P,EAAWD,EAAeh7D,KAAK0+B,IAAI9gC,KAAK2U,OAAOu1C,GAAKuD,mBAAqB,EAAG2P,GACpGp9D,KAAK2U,OAAOu1C,GAAKkD,WAAa6P,EAAc7P,WAC5CptD,KAAK2U,OAAOu1C,GAAKuD,kBAAoBA,EACrCvD,GACJ,CACAiT,EAAYn9D,KAAK2U,OAAOu1C,GAAKkD,WAC7BgQ,EAAep9D,KAAK2U,OAAOu1C,GAAK5lB,WAAWllC,OAC3Ci+D,GAAYD,EACZlT,GACJ,CAEA,GAAIiT,IAAcD,EAAgB,IAAI,IAAI/9D,EAAI+qD,EAAK/qD,EAAIa,KAAK2U,OAAOvV,QAC3DY,KAAK2U,OAAOxV,GAAGiuD,aAAe+P,EADqCh+D,IAAI,CAEnEsuD,EAAoB4P,EAAWD,EAAeh7D,KAAK0+B,IAAI9gC,KAAK2U,OAAOxV,GAAGsuD,mBAAqB,EAAG2P,GAClGp9D,KAAK2U,OAAOxV,GAAGsuD,kBAAoBA,CAE3C,CAEA,IAAI,IAAItuD,EAAImtD,EAAQltD,OAAS,EAAGD,GAAK,EAAGA,IAAIa,KAAK2U,OAAOmuC,OAAOwJ,EAAQntD,GAAI,GAE3E,OADAa,KAAK2U,OAAO3U,KAAK8rD,cAAcrxC,OAASwiD,GACjC,CACX,CACA,OAAO,CACX,CACJ,KAAK,EACD,OAAOj9D,KAAK8sD,aAAanpD,GAC7B,KAAK,EACD,OAAO3D,KAAKgtD,qBAAqBrpD,GACrC,KAAK,EACD,OAAO3D,KAAKgsD,YAAYroD,EAAMuQ,WAAYvQ,EAAM0nB,WACpD,QACI,MAAM,IAAI7rB,MAAM,mBAAmB0U,sBAE/C,EAKJ,MAAMqpD,WAAqDjT,GACvD,kBAAAkT,CAAmBhoD,EAAe1V,GAC9B,IAAI6kC,EAAW3kC,KAAKmjC,UAAUnjC,KAAK8rD,cAAc1B,UAAU50C,IACrC,MAAlB1V,EAAM2nB,WAAkBkd,EAASld,UAAY3nB,EAAM2nB,UACjC,MAAlB3nB,EAAM4nB,WAAkBid,EAASjd,UAAY5nB,EAAM4nB,UAC/B,MAApB5nB,EAAMynB,aAAoBod,EAASrlB,SAAWxf,EAAMynB,YAChC,MAApBznB,EAAM0nB,aAAoBmd,EAASplB,SAAWzf,EAAM0nB,YAExD,IAAIi2C,EAAqBz9D,KAAKV,KAAK4tD,oBAC/BwQ,EAAiB19D,KAAKV,KAAKs/B,MAAQ5+B,KAAKV,KAAKs/B,KAAKziB,mBAClDshD,GAAsBC,IAClB59D,EAAM6nB,aAAYgd,EAASrlB,SAAWm+C,EAAmBE,SAASD,EAAgB59D,EAAM6nB,WAAWtpB,EAAGyB,EAAM6nB,WAAW5X,IACvHjQ,EAAM+nB,aAAY8c,EAASplB,SAAWk+C,EAAmBE,SAASD,EAAgB59D,EAAM+nB,WAAWxpB,EAAGyB,EAAM+nB,WAAW9X,IACvHjQ,EAAMgoB,aAAY6c,EAASld,UAAYg2C,EAAmBE,SAASD,EAAgB59D,EAAMgoB,WAAWzpB,EAAGyB,EAAMgoB,WAAW/X,IACxHjQ,EAAMioB,aAAY4c,EAASjd,UAAY+1C,EAAmBE,SAASD,EAAgB59D,EAAMioB,WAAW1pB,EAAGyB,EAAMioB,WAAWhY,IAGpI,CACA,WAAAi8C,CAAY93C,EAAYvQ,GACpB,OAAOuQ,GACH,KAAK,EACD,CACI,IAAIuG,EAAQza,KAAKmsD,cAAcxoD,EAAMuS,UACrC,IAAe,IAAXuE,EAAc,OAAO,EACzB,OAAO9W,EAAMG,SACT,KAAK,EACD9D,KAAKw9D,mBAAmB,EAAG75D,EAAM7D,OACjC,MACJ,KAAK,EACDE,KAAKw9D,mBAAmB,EAAG75D,EAAMmmB,OAAO9rB,IAAIyc,IAGpD,OAAO,CACX,CACJ,KAAK,EACD,CACI,IAAImjD,EAAY59D,KAAK8rD,cAAc7B,OACnC,IAAK2T,EAAW,OAAO,EACvB,IAAInjD,EAAQza,KAAKmsD,cAAcxoD,EAAMuS,UACrC,IAAe,IAAXuE,EAAc,OAAO,EACzB,OAAO9W,EAAMG,SACT,KAAK,EACD,IAAI7F,EAAM0F,EAAMumB,SAASlsB,IAAIyc,GAC7B,IAAK,IAAIgpB,KAAQxlC,EAAI,GAAIwlC,EAAKrb,cAAgBw1C,EAAUx6B,GAGpD,OAFApjC,KAAKw9D,mBAAmB,EAAG/5B,EAAKpb,QAChCroB,KAAKw9D,mBAAmB,EAAG/5B,EAAKnb,SACzB,EAEX,OAAO,EACX,KAAK,EACD,IAAIu1C,EAAS79D,KAAK2sD,WAAW3sD,KAAK8rD,cAActC,IAAIpmB,GAAIz/B,EAAMwmB,WAC1D2zC,EAAS99D,KAAK2sD,WAAWiR,EAAUx6B,GAAIz/B,EAAMymB,WACjD,IAAgB,IAAZyzC,IAA6B,IAAZC,EAAe,OAAO,EAC3C,IAAIr6B,EAAO9/B,EAAM4mB,aAAavsB,IAAI6/D,GAAQ7/D,IAAI8/D,GAG9C,OAFA99D,KAAKw9D,mBAAmB,EAAG/5B,EAAKpb,QAChCroB,KAAKw9D,mBAAmB,EAAG/5B,EAAKnb,SACzB,EAEnB,CACJ,KAAK,EACD,CACI,IAAIy1C,EAAY/9D,KAAK8rD,cAAc1B,YAC/BwT,EAAY59D,KAAK2U,OAAOopD,GAC5B,IAAKH,EAAW,OAAO,EACvB,IAAII,EAAYr6D,EAAM8mB,iBAAiBzqB,KAAKmsD,cAAcxoD,EAAMuS,WAChE,IAAK8nD,IAAcA,EAAU/0C,WAAY,OAAO,EAChD,IAAIg1C,EAAat6D,EAAM8mB,iBAAiBzqB,KAAKmsD,cAAcxoD,EAAMuS,SAAU0nD,EAAUx6B,KACrF,IAAK66B,IAAeA,EAAWj1C,YAAa,OAAO,EACnD,IAIIksC,EAJAnnC,EAAQ/tB,KAAKk+D,UAAUD,EAAWj1C,aAClCy5B,EAAOziD,KAAKk+D,UAAUF,EAAU/0C,YAChCugC,EAAMxpD,KAAKmjC,UAAUnjC,KAAK8rD,cAAcrxC,OACxCuvC,EAAOhqD,KAAKmjC,UAAU46B,GAE1B,OAAO/9D,KAAKsvC,WACR,IAAK,MACDka,EAAI/hC,SAAWg7B,EAAKjgB,EAAIgnB,EAAIlqC,QAC5B41C,EAAInnC,EAAMyU,EAAIwnB,EAAK1qC,QACnB0qC,EAAKviC,UAAYytC,EACjBlL,EAAK1qC,SAAW41C,EAChB,MACJ,IAAK,MACDA,EAAIzS,EAAKjgB,EAAIgnB,EAAIlqC,QACjBkqC,EAAI/hC,UAAYytC,EAChB1L,EAAIlqC,SAAW41C,EACflL,EAAKviC,SAAWsG,EAAMyU,EAAIwnB,EAAK1qC,QAUvC,OAPItf,KAAK8rD,cAAcznD,MAAM85D,aACzBn+D,KAAK8rD,cAActC,IAAImE,kBAAoBoQ,EAC3CvU,EAAIjqC,QAAUwO,EAAMqX,EAAIqd,EAAKrd,IAE7Bw4B,EAAUjQ,kBAAoB3tD,KAAK8rD,cAAcrxC,MACjD+uC,EAAIjqC,QAAUkjC,EAAKrd,EAAIrX,EAAMqX,IAE1B,CACX,CACJ,KAAK,EACD,CACI,IAAIzJ,EAAY37B,KAAKmsD,cAAcxoD,EAAM+mB,cACzC,IAAmB,IAAfiR,EAAkB,OAAO,EAE7B,IAAIyiC,EAAiBp+D,KAAK8rD,cAAcrxC,MACxC,OAAQ2jD,GAAkB,IAAMp+D,KAAK2U,OAAOypD,GAAgBn6B,QAAUjkC,KAAK2U,OAAOypD,GAAgB3Q,kBAAoB,KACtH,GAAI2Q,EAAiB,EAAG,OAAO,EAC/B,IAAIC,EAAYr+D,KAAKmsD,cAAcxoD,EAAMgnB,aAAc3qB,KAAK2U,OAAOypD,GAAgBh7B,IACnF,IAAmB,IAAfi7B,EAAkB,OAAO,EAC7B,IAAIC,EAAa36D,EAAMinB,UAAU+Q,GAC7B4iC,EAAa56D,EAAMknB,UAAUwzC,GAAWC,EAAWvpD,OAEvD,OADA/U,KAAKw+D,YAAYF,EAAYC,EAAYH,IAClC,CACX,CACJ,KAAK,EACD,CACI,IAAIziC,EAAY37B,KAAKmsD,cAAcxoD,EAAM+mB,cACzC,IAAmB,IAAfiR,EAAkB,OAAO,EAE7B,IAAIyiC,EAAiBp+D,KAAK8rD,cAAcrxC,MACxC,OAAQ2jD,GAAkB,GAAKp+D,KAAK2U,OAAOypD,GAAgBn6B,SAC3D,GAAIm6B,EAAiB,EAAG,OAAO,EAC/B,IAAIK,EAAWz+D,KAAKmsD,cAAcxoD,EAAMmnB,iBAAkB9qB,KAAK2U,OAAOypD,GAAgBh7B,IACtF,IAAkB,IAAdq7B,EAAiB,OAAO,EAC5B,IAAIC,EAAY/6D,EAAMonB,cAAc0zC,GAChCE,EAAY3+D,KAAK8rD,cAActC,IAC/BoV,EAAW5+D,KAAK2U,OAAOypD,GACvBS,EAAYD,EAASxR,YAAcwR,EAASxR,aAAeuR,EAAUvR,YAAcuR,EAAUlR,kBAAoB,EAAIrrD,KAAK0+B,IAAI69B,EAAUlR,kBAAmBmR,EAASt6B,WAAWllC,QAAU,EAAIw/D,EAASt6B,WAAWllC,OAAS,EAC1Nk/D,EAAa36D,EAAMinB,UAAU+Q,GAC7B4iC,EAAaG,EAAUG,GAAWP,EAAWvpD,OAEjD,OADA/U,KAAKw+D,YAAYF,EAAYC,EAAYH,IAClC,CACX,CACJ,KAAK,EACD,CACI,IAAIU,EAAa9+D,KAAKmsD,cAAcxoD,EAAMqnB,eAC1C,IAAoB,IAAhB8zC,EAAmB,OAAO,EAE9B,IAAIC,EAAY/+D,KAAK8rD,cAAc1B,WAAW,GAC1CnB,EAAOjpD,KAAK2U,OAAOoqD,GACvB,IAAK9V,IAASA,EAAKhlB,OAAQ,OAAO,EAClC,IAAIulB,EAAMxpD,KAAK8rD,cAActC,IAEzBwV,GAAO,EAOX,GANIxV,EAAI4D,aAAenE,EAAKmE,WACnB5D,EAAI4D,WACA5D,EAAIiE,oBAAsBxE,EAAKwE,oBAAmBuR,GAAO,GAD7CA,GAAO,GAI5BxV,EAAI4D,aAAe5D,EAAIiE,mBAAqBxE,EAAKmE,aAAenE,EAAKwE,qBAAmBuR,GAAO,IAC9FA,EAAM,OAAO,EAClB,IAAIC,EAAaj/D,KAAKmsD,cAAcxoD,EAAMsnB,cAAeg+B,EAAK7lB,IAC9D,IAAoB,IAAhB67B,EAAmB,OAAO,EAC9B,IAAIX,EAAa36D,EAAMunB,WAAW4zC,GAC9BP,EAAa56D,EAAMwnB,WAAW8zC,GAAYX,EAAWvpD,OAEzD,OADA/U,KAAKw+D,YAAYF,EAAYC,EAAYQ,IAClC,CACX,CACJ,KAAK,EACD,OAAO/+D,KAAK8sD,aAAanpD,GAC7B,KAAK,EACD,OAAO3D,KAAKgtD,qBAAqBrpD,GACrC,KAAK,EACD,OAAO3D,KAAKgsD,YAAYroD,EAAMuQ,WAAYvQ,EAAM0nB,WACpD,QACI,MAAM,IAAI7rB,MAAM,2BAA2B0U,KAEvD,CACA,WAAAsqD,CAAYF,EAAYC,EAAYH,GAChC,IAAIx5C,EAAa5kB,KAAKk+D,UAAUK,GAC5BW,EAAal/D,KAAKk+D,UAAUI,EAAWn1C,YAEvCg2C,GADUn/D,KAAKmjC,UAAUi7B,GACfp+D,KAAKmjC,UAAUnjC,KAAK8rD,cAAcrxC,QAChD0kD,EAAQ7/C,QAAUsF,EAAW4d,EAAI08B,EAAW18B,EAC5C28B,EAAQ5/C,QAAUqF,EAAWwgB,EAAI85B,EAAW95B,EAC5CplC,KAAK8rD,cAActC,IAAIoE,eAAiBwQ,CAC5C,CACA,SAAAF,CAAUkB,GAEN,IAAI58B,EAAI48B,EAAO12C,YACX0c,EAAIg6B,EAAOz2C,YAEX80C,EAAqBz9D,KAAKV,KAAK4tD,oBAC/BwQ,EAAiB19D,KAAKV,KAAKs/B,MAAQ5+B,KAAKV,KAAKs/B,KAAKziB,mBAKtD,OAJIshD,GAAsBC,IAClB0B,EAAOv2C,eAAc2Z,GAAKi7B,EAAmBE,SAASD,EAAgB0B,EAAOv2C,aAAaxqB,EAAG+gE,EAAOv2C,aAAa9Y,IACjHqvD,EAAOt2C,eAAcsc,GAAKq4B,EAAmBE,SAASD,EAAgB0B,EAAOt2C,aAAazqB,EAAG+gE,EAAOt2C,aAAa/Y,KAElH,CACHyyB,EAAGA,EACH4C,EAAGA,EAEX,CACA,aAAAkiB,CAAcc,EAAczzC,EAAQi3C,GAChC75C,MAAMu1C,cAAcc,EAAczzC,EAAQi3C,GAC1C,IAAI,IAAIzsD,EAAI,EAAGA,EAAIa,KAAK2U,OAAOvV,OAAQD,IAAIa,KAAKq/D,qBAAqBlgE,GACrEa,KAAKs/D,mBACT,CACA,oBAAAD,CAAqBlgE,GACjB,IAAIke,EAAQrd,KAAK2U,OAAOxV,GACxB,GAA+B,MAA3Bke,EAAMswC,kBAA2B,CACjC,IAAI8I,EAAIp5C,EAAMswC,kBACdtwC,EAAMswC,kBAAoB,KAC1B3tD,KAAKq/D,qBAAqB5I,GAC1Bz2D,KAAKmjC,UAAUhkC,GAAGogB,SAAWvf,KAAKmjC,UAAUszB,GAAGl3C,OACnD,CACJ,CACA,iBAAA+/C,GACI,IAAI,IAAIngE,EAAI,EAAGA,EAAIa,KAAK2U,OAAOvV,OAAQD,IAAI,CACvC,IAAIke,EAAQrd,KAAK2U,OAAOxV,GACxB,GAA4B,MAAxBke,EAAMuwC,eAAwB,CAC9B,IAAI6I,EAAIp5C,EAAMuwC,eAGd,GAFA5tD,KAAKmjC,UAAUhkC,GAAGmgB,SAAWtf,KAAKmjC,UAAUszB,GAAGn3C,QAC/Ctf,KAAKmjC,UAAUhkC,GAAGogB,SAAWvf,KAAKmjC,UAAUszB,GAAGl3C,QACxB,QAAnBvf,KAAKsvC,UAAqB,IAAI,IAAI79B,EAAIglD,EAAGhlD,EAAItS,EAAGsS,IAChDzR,KAAKmjC,UAAUhkC,GAAGmgB,SAAWtf,KAAKmjC,UAAU1xB,GAAGgW,SAC/CznB,KAAKmjC,UAAUhkC,GAAGogB,SAAWvf,KAAKmjC,UAAU1xB,GAAGiW,cAE9C,IAAI,IAAIjW,EAAIglD,EAAI,EAAGhlD,EAAItS,EAAI,EAAGsS,IAC/BzR,KAAKmjC,UAAUhkC,GAAGmgB,SAAWtf,KAAKmjC,UAAU1xB,GAAGgW,SAC/CznB,KAAKmjC,UAAUhkC,GAAGogB,SAAWvf,KAAKmjC,UAAU1xB,GAAGiW,QAEvD,CACJ,CACJ,EAIJ,MAAM63C,GACF,KAAAC,CAAM/Z,GAGFzlD,KAAKy/D,WAAaha,EAAS9wC,OAAOlH,KAAK4P,GAAQ,IAAQgwC,GAA0CrtD,KAAKV,KAAM+d,EAAM+lB,GAAI,IAC3G/lB,EAAMinB,eAGjB,IAAInxB,EAAS,KACTnT,KAAK0/D,gBAAevsD,EAASnT,KAAK0/D,cAAclV,aAAa/E,EAAStyC,OAAQsyC,EAAS1jD,SAAU0jD,EAASnW,YAC1GtvC,KAAKg2D,gBAAe7iD,EAASnT,KAAKg2D,cAAcxL,aAAa/E,EAAStyC,OAAQsyC,EAAS1jD,SAAU0jD,EAASnW,YAG9GtvC,KAAK2/D,OAjZb,SAAmDxsD,GAC1CpJ,MAAMC,QAAQmJ,KAASA,EAAS,CACjCA,IAEJ,IAAK,IAAItV,KAAKsV,EAAO,CACjB,IAAIwsD,EAAShH,GAA8B96D,GAC3C,GAAI8hE,EAAQ,OAAOA,CACvB,CACA,OAAU7X,EACd,CAwYsB8X,CAA0CzsD,GACxDnT,KAAK+nD,KAAO,IAAQvB,GAA0CxmD,KAAKV,KAAM6T,EAAQsyC,EAASnW,WAC1FtvC,KAAK2/D,OAAO5X,KAAK/nD,KAAK+nD,KAAM/nD,KAAKy/D,WAAYha,EAASvoB,UAEtD,IAAI,IAAIt9B,KAAOI,KAAK+nD,KAAKjB,YAAYrB,EAASvoB,SAASt9B,IAAO,CAClE,CACA,UAAAssB,CAAWu5B,GACHzlD,KAAKg2D,gBACLh2D,KAAK+nD,KAAKr+C,QAAQ1J,KAAKg2D,cAAeh2D,KAAKy/D,YAE3Cha,EAAS9wC,OAAS3U,KAAKy/D,WAAWhyD,KAAKoyD,GAAY7/D,KAAKV,KAAKwkD,SAAS+b,EAAUz8B,GAAIy8B,EAAUv7B,cAEtG,CACA,QAAAK,CAAS8gB,GASL,MARmC,gBAA/BzlD,KAAK2/D,OAAOG,gBAAkC9/D,KAAK+/D,iBAAiBta,EAAStiB,WAC7EnjC,KAAK0/D,eAAe1/D,KAAK+nD,KAAKr+C,QAAQ1J,KAAK0/D,cAAe1/D,KAAKy/D,WAAYha,EAAStiB,WACrD,eAA/BnjC,KAAK2/D,OAAOG,gBAAiC9/D,KAAK+/D,iBAAiBta,EAAStiB,WAErD,QAAvBsiB,EAASnW,YACTmW,EAAS9wC,OAAOgtC,UAChB8D,EAAStiB,UAAUwe,WAEhB3hD,KAAK0/D,eAAiB1/D,KAAK0/D,cAAcxiC,QACpD,CACA,gBAAA6iC,CAAiB58B,GACb,IAAI,IAAIhkC,EAAI,EAAGA,EAAIa,KAAKy/D,WAAWrgE,OAAQD,IAAQa,KAAKy/D,WAAWtgE,GAAG8kC,SAClEd,EAAUhkC,GAAGsoB,SAAW,EACxB0b,EAAUhkC,GAAGuoB,SAAW,EAEhC,CACA,OAAAs4C,GACIhgE,KAAKy/D,WAAa,KAClBz/D,KAAK+nD,KAAO,KACZ/nD,KAAK2/D,OAAS,IAClB,CACA,oBAAA9Z,CAAqB1yC,EAAQpR,GACzB,IAAIm7B,EAAW,GASf,OARIl9B,KAAKg2D,gBACLh2D,KAAKg2D,cAAcxL,aAAar3C,EAAQpR,GACxCm7B,EAASl+B,QAAQlB,OAAOgoD,KAAK9lD,KAAKg2D,cAAc94B,YAEhDl9B,KAAK0/D,gBACL1/D,KAAK0/D,cAAclV,aAAar3C,EAAQpR,GACxCm7B,EAASl+B,QAAQlB,OAAOgoD,KAAK9lD,KAAK0/D,cAAcxiC,YAE7CA,CACX,CACA,WAAA1tB,CAAYlQ,GACRU,KAAKV,KAAOA,EACZU,KAAKy/D,WAAa,KAClBz/D,KAAK+nD,KAAO,KACZ/nD,KAAKg2D,cAAgB,KACrBh2D,KAAK0/D,cAAgB,KACrB1/D,KAAKumD,kBAAmB,EACpBjnD,EAAKw/B,OAAM9+B,KAAKg2D,cAAgB,IAAQ0G,GAA0Cp9D,EAAMA,EAAKw/B,OAC7Fx/B,EAAKu/B,OAAM7+B,KAAK0/D,cAAgB,IAAQnC,GAA0Cj+D,EAAMA,EAAKu/B,MACrG,EAIJ,MAAMohC,GACF,MAAAC,CAAOt3D,EAAQs0B,EAAU/pB,EAAQpR,EAAUutC,GASvC,GAPwB,iBAAbpS,IACPoS,EAAYvtC,EACZA,EAAWoR,EACXA,EAAS+pB,EACTA,EAAW,IAGO,iBAAXt0B,EAAqB,CAEd,MAAVuK,IAAgBA,EAx4HhC,SAAmDvK,GAC/C,IAAI4I,EAAM5I,EAAOxJ,OACb8qD,EAAM,EACV,KAAMA,EAAM14C,GAAI,CACZ,IAAIk+B,EAAO9mC,EAAOR,WAAW8hD,KAE7B,GAAI,OAAUxa,GAAQA,GAAQ,OAAUwa,EAAM14C,EAAK,CAC/C,IAAIw4C,EAAOphD,EAAOR,WAAW8hD,GAEzB,OAAUF,GAAQA,GAAQ,QAC1BE,IACAxa,IAAgB,KAAPA,IAAiB,KAAc,KAAPsa,GAAgB,MAEzD,CACA,IAAI72C,GAAS,EAAI,MAAkBu8B,GACnC,GAAe,WAAXv8B,GAAkC,cAAXA,GAAqC,YAAXA,EAAsB,OAAOoyB,GAAsCpyB,EAC5H,CACA,OAAOoyB,GAAsC+H,OACjD,CAs3HyC6yB,CAA0Cv3D,IACvE,IAAI+L,EAAS3U,KAAKV,KAAK8gE,gBAAgBx3D,EAC3C,KAAO,CAEH,GAAc,MAAVuK,EAAgB,CAChB,IAAImxB,EAAa,GACjB,IAAK,IAAIjnB,KAASzU,EAAO07B,EAAWtlC,QAAQqe,EAAMinB,YAClDnxB,EA53HhB,SAAmDmxB,GAC/C,IAAI,IAAInlC,EAAI,EAAGA,EAAImlC,EAAWllC,OAAQD,IAAI,CACtC,IAAI8lC,EAAYX,EAAWnlC,GACvBgU,GAAS,EAAI,MAAkB8xB,GACnC,GAAe,WAAX9xB,GAAkC,cAAXA,GAAqC,YAAXA,EAAsB,OAAOoyB,GAAsCpyB,EAC5H,CACA,OAAOoyB,GAAsC+H,OACjD,CAq3HyB+yB,CAA0C/7B,EACvD,CACI3vB,EAAS/L,CACjB,CACA,IAAI68C,EAAW,IAAQvW,GAA0Cv6B,EAAQuoB,EAAU/pB,EAAQpR,EAAUutC,GAErG,OAAsB,IAAlB36B,EAAOvV,QACPqmD,EAAStiB,UAAY,GACdsiB,IAGPzlD,KAAK+1D,QAAU/1D,KAAK+1D,OAAOyJ,OAAOx/D,KAAK+1D,OAAOyJ,MAAM/Z,GAExDzlD,KAAKksB,WAAWu5B,GAChBzlD,KAAK2kC,SAAS8gB,GACdzlD,KAAKsgE,sBAAsB7a,EAAS9wC,OAAQ8wC,EAAStiB,WAEjDnjC,KAAK+1D,QAAU/1D,KAAK+1D,OAAOiK,SAAShgE,KAAK+1D,OAAOiK,UAC7Cva,EACX,CACA,UAAAv5B,CAAWu5B,GAEHzlD,KAAK+1D,QAAU/1D,KAAK+1D,OAAO7pC,YAAYlsB,KAAK+1D,OAAO7pC,WAAWu5B,EACtE,CACA,QAAA9gB,CAAS8gB,GAELA,EAAStiB,UAAYsiB,EAAS9wC,OAAOlH,KAAK4P,GAAQ,IAAQkyB,GAA0ClyB,EAAM8xB,gBAC1G,IAAIoxB,EAAa,KAEbvgE,KAAK+1D,QAAU/1D,KAAK+1D,OAAOpxB,WAAU47B,EAAavgE,KAAK+1D,OAAOpxB,SAAS8gB,IAEtE8a,GAAgBvgE,KAAK+1D,SAAU/1D,KAAK+1D,OAAOxP,mBACvCvmD,KAAKwgE,sBAAqBxgE,KAAKwgE,oBAAsB,IAAQ38B,GAA0C7jC,KAAKV,OACjHU,KAAKwgE,oBAAoB18B,eAAe2hB,EAAS9wC,OAAQ8wC,EAAStiB,YAGhEo9B,GAAeA,EAAWnhC,OAAoC,IAA3BqmB,EAASvoB,SAASkC,OAAkBp/B,KAAKV,KAAK8/B,OAC9Ep/B,KAAKygE,gBAAezgE,KAAKygE,cAAgB,IAAQv9B,GAA0CljC,KAAKV,OACrGU,KAAKygE,cAAc/2D,QAAQ+7C,EAAS9wC,OAAQ8wC,EAAStiB,WACrDsiB,EAASvoB,SAASkC,MAAO,EAEjC,CACA,qBAAAkhC,CAAsB3rD,EAAQwuB,GAC1B,IAAIu9B,EAAQ1gE,KAAKV,KAAKixD,kBAAkB,IACxC,IAAI,IAAIpxD,EAAI,EAAGA,EAAIwV,EAAOvV,OAAQD,IAAQa,KAAK2gE,mBAAmBhsD,EAAOxV,GAAGmlC,WAAW,MACnF3vB,EAAOxV,GAAKuhE,EACZv9B,EAAUhkC,GAAGsoB,SAAW,EACxB0b,EAAUhkC,GAAGuoB,SAAW,EAEhC,CACA,kBAAAi5C,CAAmBC,GAIf,IAAIC,EAAQD,GAAM,GAClB,GAAc,IAAVC,EACJ,OAAOD,GAAM,GACT,KAAK,EACD,OAAc,MAAPA,EACX,KAAK,EACD,OAAc,MAAPA,EACX,KAAK,EACD,OAAc,OAAPA,EACX,KAAK,GACD,OAAO,MAAUA,GAAMA,GAAM,KACjC,KAAK,GACD,OAAO,MAAUA,GAAMA,GAAM,KACjC,KAAK,GACD,OAAO,MAAUA,GAAMA,GAAM,MAAU,MAAUA,GAAMA,GAAM,MAAU,MAAUA,GAAMA,GAAM,KACjG,KAAK,IACD,OAAO,OAAUA,GAAMA,GAAM,OAAiB,QAAPA,EAC3C,KAAK,IACD,OAAO,OAAUA,GAAMA,GAAM,MACjC,QACI,OAAO,OAGf,OAAOC,GACH,KAAK,EACD,OAAO,QAAWD,GAAMA,GAAM,QAAW,QAAWA,GAAMA,GAAM,OACpE,KAAK,GACD,OAAO,QAAWA,GAAMA,GAAM,OAClC,QACI,OAAO,EAEnB,CACA,oBAAA/a,CAAqB1yC,EAAQpR,GACzB,IAAIm7B,EAAW,GAGf,OAFIl9B,KAAK+1D,QAAQ74B,EAASl+B,QAAQgB,KAAK+1D,OAAOlQ,qBAAqB1yC,EAAQpR,IACvE/B,KAAKV,KAAK8/B,OAAsC,IAA9BlC,EAAShzB,QAAQ,SAAgBgzB,EAASl+B,KAAK,QAC9Dk+B,CACX,CACA,eAAA8oB,CAAgBxoC,GACZ,IAAIjd,EAAS,IAAIqH,IACb08B,EAAatkC,KAAKV,KAAK8mD,eAAevjB,mBAAmBrlB,GAC7D,IAAK,IAAIynB,KAAaX,EAAW/jC,EAAO+hD,IAAI+D,OAAOC,cAAcrhB,IACjE,GAAIjlC,KAAK+1D,QAAU/1D,KAAK+1D,OAAO/P,gBAAiB,IAAK,IAAIp9C,KAAU5I,KAAK+1D,OAAO/P,gBAAgBxoC,GAAKjd,EAAO+hD,IAAI15C,GAC/G,OAAOmB,MAAM+2D,KAAKvgE,EACtB,CACA,WAAAiP,CAAYlQ,GACRU,KAAKV,KAAOA,EACZU,KAAKwgE,oBAAsB,KAC3BxgE,KAAKygE,cAAgB,KAGjBzgE,KAAKV,KAAKygC,KAAM//B,KAAK+1D,OAAS,IAAQvQ,GAA0CxlD,KAAKV,OAChFU,KAAKV,KAAKw/B,MAAQ9+B,KAAKV,KAAKu/B,QAAM7+B,KAAK+1D,OAAS,IAAQwJ,GAA0Cv/D,KAAKV,MACpH,EAQJ,MAAMyhE,GAAqC,CACvCC,OAAQ,IACRC,OAAQ,IACRC,iBAAkB,IAClBC,cAAe,IACfC,UAAW,KAEf,MAAMC,GAKA,UAAAC,GACE,OAAQx4D,IACJ9I,KAAKuhE,SAASC,SAASz+B,GACZj6B,EAAIi6B,EAAE0+B,SAASjhE,MAAMsI,EAAKi6B,EAAE1iC,OACrC,CAEV,CAIE,KAAAqhE,GAKE,OAJW1hE,KAAKuhE,SAAS9zD,KAAKs1B,IAC1B,IAAI1iC,EAAO0iC,EAAE1iC,KAAKoN,KAAKu5C,GAAM5kD,KAAKu/D,MAAY,IAAN3a,GAAa,MACrD,MAAO,GAAG+Z,GAAmCh+B,EAAE0+B,WAAWphE,EAAKuhE,KAAK,MAAM,IAElEA,KAAK,GACrB,CAOE,QAAIx9B,GACF,IAAKpkC,KAAK6hE,MAAO,CACb,IAAIz9B,EAAO,IAAQc,GACnB,IAAK,IAAIu8B,KAAWzhE,KAAKuhE,SAAS,IAAI,IAAIpiE,EAAI,EAAGA,EAAIsiE,EAAQphE,KAAKjB,OAAQD,GAAK,EAAEilC,EAAKe,SAASs8B,EAAQphE,KAAKlB,GAAIsiE,EAAQphE,KAAKlB,EAAI,IACjIa,KAAK6hE,MAAQ/jE,OAAOgkE,OAAO19B,EAC/B,CACA,OAAOpkC,KAAK6hE,KAChB,CAKE,QAAIxyB,GACF,GAAIrvC,KAAK+hE,MAAO,OAAO/hE,KAAK+hE,MAC5B,IAAI1yB,EAAO,IAAQnK,GACf88B,EAAK,EAAGC,EAAK,EACb/gB,EAAK/+C,GAAIC,KAAKs+B,IAAI,EAAIv+B,EAAG,GAAK+/D,EAAG/iE,GAAK,EAAIiD,KAAKs+B,IAAI,EAAIv+B,EAAG,GAAKA,EAAIggE,EAAGhjE,GAAK,GAAK,EAAIgD,GAAKC,KAAKs+B,IAAIv+B,EAAG,GAAKigE,EAAGjjE,GAAKiD,KAAKs+B,IAAIv+B,EAAG,GAAKkgE,EAAGljE,GAC1I,IAAK,IAAI4jC,KAAK/iC,KAAKuhE,SAAS,OAAOx+B,EAAE0+B,SACjC,IAAK,SACL,IAAK,SACD,IAAKj/B,EAAG4C,GAAKrC,EAAE1iC,KACfgvC,EAAKlK,SAAS3C,EAAG4C,GACjB48B,EAAKx/B,EACLy/B,EAAK78B,EACL,MACJ,IAAK,mBACL,IAAK,gBACD,GAAkB,qBAAdrC,EAAE0+B,QAEF,IAAKa,EAAMC,EAAMC,EAAKC,GAAO1/B,EAAE1iC,KAC3BqiE,EAAOV,EAAK,EAAI,GAAKM,EAAON,GAC5BW,EAAOV,EAAK,EAAI,GAAKM,EAAON,GAC5BW,EAAOJ,EAAM,EAAI,GAAKF,EAAOE,GAC7BK,EAAOJ,EAAM,EAAI,GAAKF,EAAOE,QAC9B,IAAKC,EAAMC,EAAMC,EAAMC,EAAML,EAAKC,GAAO1/B,EAAE1iC,KAElDgvC,EAAKlK,SAASq9B,EAAKC,GAiBnB,IAhBA,IAAIP,EAAK,CACLF,EACAC,GAEAE,EAAK,CACLO,EACAC,GAEAP,EAAK,CACLQ,EACAC,GAEAR,EAAK,CACLG,EACAC,GAEItjE,EAAI,EAAGA,GAAK,EAAGA,IAAI,CACvB,IAAI4Q,EAAI,EAAImyD,EAAG/iE,GAAK,GAAKgjE,EAAGhjE,GAAK,EAAIijE,EAAGjjE,GACpCd,GAAK,EAAI6jE,EAAG/iE,GAAK,EAAIgjE,EAAGhjE,GAAK,EAAIijE,EAAGjjE,GAAK,EAAIkjE,EAAGljE,GAEpD,GADA4jC,EAAI,EAAIo/B,EAAGhjE,GAAK,EAAI+iE,EAAG/iE,GACb,IAANd,EAAS,CACT,GAAU,IAAN0R,EAAS,SACb,IAAI5N,GAAK4gC,EAAIhzB,EACT,EAAI5N,GAAKA,EAAI,IACH,IAANhD,EAASkwC,EAAKlK,SAAS+b,EAAE/+C,GAAIktC,EAAKrK,MACvB,IAAN7lC,GAASkwC,EAAKlK,SAASkK,EAAKvK,KAAMoc,EAAE/+C,KAEjD,QACJ,CACA,IAAI2gE,EAAO1gE,KAAKs+B,IAAI3wB,EAAG,GAAK,EAAIgzB,EAAI1kC,EACpC,GAAIykE,EAAO,EAAG,SACd,IAAIC,IAAOhzD,EAAI3N,KAAK4gE,KAAKF,KAAU,EAAIzkE,GACnC,EAAI0kE,GAAMA,EAAK,IACL,IAAN5jE,EAASkwC,EAAKlK,SAAS+b,EAAE6hB,GAAK1zB,EAAKrK,MACxB,IAAN7lC,GAASkwC,EAAKlK,SAASkK,EAAKvK,KAAMoc,EAAE6hB,KAEjD,IAAIE,IAAOlzD,EAAI3N,KAAK4gE,KAAKF,KAAU,EAAIzkE,GACnC,EAAI4kE,GAAMA,EAAK,IACL,IAAN9jE,EAASkwC,EAAKlK,SAAS+b,EAAE+hB,GAAK5zB,EAAKrK,MACxB,IAAN7lC,GAASkwC,EAAKlK,SAASkK,EAAKvK,KAAMoc,EAAE+hB,IAErD,CACAjB,EAAKQ,EACLP,EAAKQ,EAGb,OAAOziE,KAAK+hE,MAAQjkE,OAAOgkE,OAAOzyB,EACtC,CAKE,SAAA6zB,CAAUjjE,GACR,IAAIkjE,EAAO,IAAI9B,GACf,IAAK,IAAIt+B,KAAK/iC,KAAKuhE,SAAS,CACxB,IAAIlhE,EAAO,GACX,IAAI,IAAIlB,EAAI,EAAGA,EAAI4jC,EAAE1iC,KAAKjB,OAAQD,GAAK,EAAE,CACrC,IAAKqjC,EAAG4C,GAAKnlC,EAAG8iC,EAAE1iC,KAAKlB,GAAI4jC,EAAE1iC,KAAKlB,EAAI,IACtCkB,EAAKrB,KAAKwjC,EAAG4C,EACjB,CACA+9B,EAAKpgC,EAAE0+B,YAAYphE,EACvB,CACA,OAAO8iE,CACX,CAGE,SAAAC,CAAUC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC5B,OAAO1jE,KAAKkjE,WAAU,CAAC1gC,EAAG4C,IAGf,CAFIi+B,EAAK7gC,EAAI+gC,EAAKn+B,EAAIq+B,EAClBH,EAAK9gC,EAAIghC,EAAKp+B,EAAIs+B,IAMrC,CAGE,SAAAC,CAAUnhC,EAAG4C,GACX,OAAOplC,KAAKojE,UAAU,EAAG,EAAG,EAAG,EAAG5gC,EAAG4C,EACzC,CAGE,MAAAw+B,CAAOC,GACL,IAAIC,EAAM1hE,KAAK0hE,IAAID,GACfE,EAAM3hE,KAAK2hE,IAAIF,GACnB,OAAO7jE,KAAKojE,UAAUU,EAAKC,GAAMA,EAAKD,EAAK,EAAG,EAClD,CAGE,KAAAE,CAAMC,EAAQC,EAASD,GACrB,OAAOjkE,KAAKojE,UAAUa,EAAQ,EAAG,EAAGC,EAAQ,EAAG,EACnD,CACA,WAAA10D,GACIxP,KAAKuhE,SAAW,GAChBvhE,KAAK+hE,MAAQ,KACb/hE,KAAK6hE,MAAQ,IACjB,EAEJ,IAAK,IAAIJ,IAAW,CAChB,SACA,SACA,mBACA,gBACA,aACFJ,GAAyCp+B,UAAUw+B,GAAW,YAAYphE,GAMxE,OALAL,KAAK+hE,MAAQ/hE,KAAK6hE,MAAQ,KAC1B7hE,KAAKuhE,SAASviE,KAAK,CACfyiE,QAASA,EACTphE,KAAMA,IAEHL,IACX,EAIA,IAAImkE,GAA2C,CAC3C,UACA,QACA,mBACA,QACA,SACA,WACA,aACA,SACA,UACA,YACA,cACA,YACA,aACA,WACA,OACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,YACA,OACA,QACA,UACA,WACA,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,cACA,YACA,eACA,cACA,aACA,QACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,YACA,QACA,WACA,SACA,SACA,YACA,YACA,SACA,SACA,cACA,YACA,SACA,QACA,WACA,SACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,OACA,WACA,UACA,SACA,YACA,aACA,aACA,YACA,YACA,QACA,WACA,WACA,KACA,SACA,WACA,YACA,YACA,eACA,MACA,KACA,cACA,YACA,UACA,KACA,WACA,cACA,eACA,QACA,KACA,SACA,eACA,aACA,aACA,UACA,SACA,cACA,QACA,gBACA,iBACA,WACA,mBACA,SACA,SACA,SACA,KACA,KACA,SACA,SACA,eACA,gBACA,YACA,aACA,SACA,UACA,YACA,YACA,WACA,WACA,gBACA,iBACA,KACA,KACA,YACA,iBACA,iBACA,eACA,cACA,cACA,cACA,SACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,cACA,QACA,SACA,SACA,cACA,SACA,WACA,aACA,QACA,SACA,QACA,YACA,OACA,UACA,eACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,YACA,MACA,MACA,SACA,SACA,QACA,QACA,QACA,WACA,cACA,cACA,gBACA,UACA,aACA,gBACA,QACA,SACA,SACA,aACA,WACA,WACA,SACA,SACA,SACA,SACA,UAIJ,MAAMC,GACF,QAAAC,GACI,OAAO,IAAQhD,EACnB,CACA,QAAAiD,GACI,OAAOtkE,KAAKmjE,KAAK/+B,IACrB,CACA,QAAAmgC,GACI,OAAOvkE,KAAKmjE,KAAK9zB,IACrB,CACA,gBAAAm1B,CAAiB7gE,GACb,GAAI3D,KAAKojC,GAAKz/B,EAAMwC,QAAQ/G,OAAQ,OAAOuE,EAAMwC,QAAQnI,IAAIgC,KAAKojC,IAClE,IAAIqhC,EAAS9gE,EAAMwC,QAAQnI,IAAI2F,EAAMwC,QAAQ/G,OAAS,GAKtD,MAJU,CACN4G,QAASy+D,EAASA,EAAOz+D,QAAU,EACnCC,QAAStC,EAAM2C,SAAStI,IAAIgC,KAAKojC,GAAKz/B,EAAMwC,QAAQ/G,SAAW,EAGvE,CACA,WAAAslE,CAAYtgC,GACR,GAAIpkC,KAAK2kE,SAAU,OAAO3kE,KAAK2kE,SAC/B,IAAM3+D,QAASmpC,EAAclpC,QAAS2+D,GAAgB5kE,KAAKwkE,iBAAiBxkE,KAAKwtD,MAAMzvB,MAEvF,GAAI/9B,KAAKwtD,MAAMhuB,KAAM,IAAMx5B,QAASopC,EAAenpC,QAAS4+D,GAAe7kE,KAAKwkE,iBAAiBxkE,KAAKwtD,MAAMhuB,UACvG,CACD,IAAIslC,EAEJ,GADI,MAAO1gC,KAA0CA,KAAMA,GAASpkC,OAC/D8kE,EAAM9kE,KAAKwtD,MAAM,UAAYsX,EAAIhhE,QAAU,EACxCsrC,EAAgBhtC,KAAKijC,IAAIy/B,EAAIl5D,aAAek5D,EAAIj5D,eAChDg5D,EAAaC,EAAIl5D,aAAew4B,EAAKY,SACtC,CACH,IAAM3+B,KAAMA,GAASrG,KAAKwtD,MAC1B,IAAIpe,EAAgBhtC,KAAKijC,IAAIh/B,EAAKlB,OAASkB,EAAKjB,SAC5Cy/D,EAAax+D,EAAKlB,OAASi/B,EAAKY,IACxC,CACJ,CAEA,OADIhlC,KAAKwtD,MAAMN,qBAAuBltD,KAAKwtD,MAAMxuB,OAAMmQ,GAAgBnvC,KAAKwtD,MAAMN,oBAAoB6X,qBAAqB/kE,KAAKojC,GAAIpjC,KAAKwtD,MAAMxuB,OACxIh/B,KAAK2kE,SAAW,CACnBx1B,aAAcA,EACdC,cAAeA,EACfw1B,YAAaA,EACbC,WAAYA,EAEpB,CAWE,QAAIzgC,GACF,OAAOpkC,KAAKskE,UAChB,CAKE,QAAIj1B,GACF,OAAOrvC,KAAKukE,UAChB,CAIE,QAAIpB,GAGF,OAAOnjE,KAAKqkE,UAChB,CAKE,aAAAW,CAAc56D,GACZ,IAAI45D,EAAQ,EAAIhkE,KAAKwtD,MAAMlpD,WAAa8F,EACxC,OAAOpK,KAAKmjE,KAAKa,MAAMA,EAC3B,CAIE,gBAAI70B,GACF,OAAOnvC,KAAK0kE,cAAcv1B,YAC9B,CAIE,iBAAIC,GACF,OAAOpvC,KAAK0kE,cAAct1B,aAC9B,CACA,0BAAI61B,GAA0B,CAC9B,QAAAC,GACI,IAAMlnC,KAAMA,GAASh+B,KAAKwtD,MAC1B,IAAKxvB,EAAM,OAAO,KAClB,OAAOA,EAAKl6B,SACR,KAAK,EACD,OAAWqgE,GAA0CnkE,KAAKojC,IAC9D,KAAK,EACD,IAAIA,EAAKpF,EAAK1wB,eAAetN,KAAKojC,IAClC,OAAIA,EAAS+gC,GAA0C/kE,OAAmB+kE,GAA0C/gC,GAC7GpF,EAAKzwB,MAAM61B,EAAS+gC,GAA0C/kE,QACzE,KAAK,IACD,OAAW+kE,GAA0CnkE,KAAKojC,GAAKpF,EAAKxwB,QAAQxN,KAAKojC,KACrF,KAAK,EACD,OAAOijB,OAAO8e,aAAannC,EAAKvwB,IAAIzN,KAAKojC,KAErD,CAIE,QAAIlO,GACF,OAAOl1B,KAAKklE,UAChB,CAKE,MAAAE,CAAOt8D,EAAKsB,GACVtB,EAAIu8D,OACJ,IAAIrB,EAAQ,EAAIhkE,KAAKwtD,MAAM1vB,KAAKx5B,WAAa8F,EAC7CtB,EAAIk7D,MAAMA,EAAOA,GACRhkE,KAAKmjE,KAAK7B,YACnBrhE,CAAG6I,GACHA,EAAIw8D,OACJx8D,EAAIy8D,SACR,CACA,WAAA/1D,CAAY4zB,EAAIkB,EAAYhlC,GAIxBU,KAAKojC,GAAKA,EAMVpjC,KAAKskC,WAAaA,EAClBtkC,KAAKwtD,MAAQluD,EAEbU,KAAKikC,OAASjkC,KAAKskC,WAAWllC,OAAS,GAAKY,KAAKskC,WAAWonB,MAAU,MACtE1rD,KAAK8pD,WAAa9pD,KAAKskC,WAAWllC,OAAS,CAC/C,GAEJ,EAAI,MAAW,CACPM,GACL0kE,GAAyCnhC,UAAW,OAAQ,OAC/D,EAAI,MAAW,CACPvjC,GACL0kE,GAAyCnhC,UAAW,OAAQ,OAC/D,EAAI,MAAW,CACPvjC,GACL0kE,GAAyCnhC,UAAW,OAAQ,OAC/D,EAAI,MAAW,CACPvjC,GACL0kE,GAAyCnhC,UAAW,eAAgB,OACvE,EAAI,MAAW,CACPvjC,GACL0kE,GAAyCnhC,UAAW,gBAAiB,OACxE,EAAI,MAAW,CACPvjC,GACL0kE,GAAyCnhC,UAAW,OAAQ,MAO/D,IAAIuiC,GAAmC,IAAI,KAAc,CACrDC,iBAAkB,KAClBhhE,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,OAsBV,MAAM8gE,GACF,IAAArhC,GACI,OAAO,IAAIqhC,GAA0C1lE,KAAK2lE,QAAS3lE,KAAK4lE,WAAY5lE,KAAKwiC,EAAGxiC,KAAKolC,EACrG,CACA,WAAA51B,CAAYm2D,EAASC,EAAYpjC,EAAI,EAAG4C,EAAI,GACxCplC,KAAK2lE,QAAUA,EACf3lE,KAAK4lE,WAAaA,EAClB5lE,KAAKwiC,EAAIA,EACTxiC,KAAKolC,EAAIA,CACb,EAGJ,MAAMygC,GACF,WAAAr2D,CAAYvO,EAAS6kE,EAAIC,GACrB/lE,KAAKiB,QAAUA,EACfjB,KAAK8lE,GAAKA,EACV9lE,KAAK+lE,GAAKA,EACV/lE,KAAK4O,IAAM,EACX5O,KAAKikE,OAASjkE,KAAKkkE,OAAS,EAC5BlkE,KAAKgmE,QAAUhmE,KAAKimE,QAAU,CAClC,EAEJ,MAAMC,WAAqD9B,GAEvD,QAAAE,CAAS6B,GAGL,GAAInmE,KAAKwtD,MAAMN,sBAAwBiZ,EAAU,OAAOnmE,KAAKmjE,KAAK/+B,KAClE,IAAIz6B,EAAS3J,KAAKwtD,MAAM4Y,gBAAgB,QACxCz8D,EAAOiF,KAAO5O,KAAKwtD,MAAMtvB,KAAK1wB,QAAQxN,KAAKojC,IAC3C,IAAI/lB,EAAQmoD,GAAiCh9D,OAAOmB,GAChDy6B,EAAO,IAAQc,GAA0C7nB,EAAM5Y,KAAM4Y,EAAM3Y,KAAM2Y,EAAM1Y,KAAM0Y,EAAMzY,MACvG,OAAO9G,OAAOgkE,OAAO19B,EACzB,CAEA,gBAAAiiC,CAAiB18D,EAAQs/C,EAAMqd,EAAOC,GAClC,GAAID,EAAO,CACP,IAAIr8D,EAAMN,EAAOgF,YACZ43D,IAAMt8D,GAAOA,GAClBA,GAAOg/C,CACX,MAAO,GAAIsd,EAAUt8D,EAAMg/C,OAClBh/C,EAAMg/C,EAAOt/C,EAAOiG,cAC7B,OAAO3F,CACX,CAGA,OAAAu8D,GACI,IAAIC,EAAUzmE,KAAKwtD,MAAMtvB,KAAK1wB,QAAQxN,KAAKojC,IAG3C,GAAIqjC,IAFUzmE,KAAKwtD,MAAMtvB,KAAK1wB,QAAQxN,KAAKojC,GAAK,GAEvB,OAAO,KAChC,IAAIz5B,EAAS3J,KAAKwtD,MAAM4Y,gBAAgB,QACxCz8D,EAAOiF,KAAO63D,EACd,IAAI33D,EAAWnF,EAAOiF,IAClByO,EAAQmoD,GAAiCh9D,OAAOmB,GAGpD,OAFI0T,EAAMooD,iBAAmB,EAAGzlE,KAAK0mE,cAAcrpD,EAAO1T,GACjD0T,EAAMooD,iBAAmB,GAAGzlE,KAAK2mE,iBAAiBtpD,EAAO1T,EAAQmF,GACnEuO,CACX,CACA,aAAAqpD,CAAcrpD,EAAO1T,GAEjB0T,EAAMupD,OAAS,GACf,IAAIC,EAAmB,IAAI,KAAa,KAAexpD,EAAMooD,kBAAkBj9D,OAAOmB,GACtF0T,EAAMxP,aAAe,IAAI,KAAa,KAAc,MAAerF,OAAOmB,GAC1E,IAAItF,EAAQ,GACRyiE,EAAYD,EAAiBA,EAAiBznE,OAAS,GAAK,EAChE,KAAMiF,EAAMjF,OAAS0nE,GAAU,CAC3B,IAAIC,EAAOp9D,EAAOgF,YAGlB,GAFAtK,EAAMrF,KAAK+nE,GApFc,EAsFrBA,EAAqC,CACrC,IAAI39D,EAAQO,EAAOgF,YACnB,IAAI,IAAI8nD,EAAI,EAAGA,EAAIrtD,EAAOqtD,IAAIpyD,EAAMrF,KAAK+nE,EAC7C,CACJ,CACA,IAAI,IAAI5nE,EAAI,EAAGA,EAAIkF,EAAMjF,OAAQD,IAAI,CAC7B4nE,EAAO1iE,EAAMlF,GACjB,IAAI6nE,EAAQ,IAAItB,MAhGW,EAgGkCqB,GAAwCF,EAAiB38D,QAAQ/K,IAAM,EAAG,EAAG,GAC1Ike,EAAMupD,OAAO5nE,KAAKgoE,EACtB,CACA,IAAIC,EAAK,EACT,IAAQ9nE,EAAI,EAAGA,EAAIkF,EAAMjF,OAAQD,IAAI,CAC7B4nE,EAAO1iE,EAAMlF,GACjBke,EAAMupD,OAAOznE,GAAGqjC,EAAIykC,EAAKjnE,KAAKqmE,iBAAiB18D,EAAQs9D,EArGtB,EAqG0BF,EAlGlC,GAkG+EA,EAC5G,CACA,IAAIG,EAAK,EACT,IAAQ/nE,EAAI,EAAGA,EAAIkF,EAAMjF,OAAQD,IAAI,CAC7B4nE,EAAO1iE,EAAMlF,GACjBke,EAAMupD,OAAOznE,GAAGimC,EAAI8hC,EAAKlnE,KAAKqmE,iBAAiB18D,EAAQu9D,EAzGtB,EAyG0BH,EAtGlC,GAsG+EA,EAC5G,CACA,GAAI/mE,KAAKwtD,MAAMN,oBAAqB,CAChC,IAAI0Z,EAASvpD,EAAMupD,OAAO/lB,QAC1B+lB,EAAO5nE,QAAQgB,KAAKmnE,kBAAkB9pD,IACtCrd,KAAKwtD,MAAMN,oBAAoBka,gBAAgBpnE,KAAKojC,GAAIwjC,GACxDvpD,EAAMgqD,cAAgBT,EAAO/lB,OAAO,EACxC,CAEJ,CACA,gBAAA8lB,CAAiBtpD,EAAO1T,EAAQsF,EAAS,GAErCoO,EAAMwC,WAAa,GACnB,IAAIynD,GAAmB,EACnBjjE,EA9GkC,GA+GtC,KA/GsC,GA+GhCA,GAA8C,CAChDA,EAAQsF,EAAO6E,eACf,IAAI+4D,EAAO59D,EAAOiF,IAAMK,EACpBhO,EAAU0I,EAAO6E,eAErB,GADK84D,IAAkBA,EAA4E,IAhH5D,IAgHIjjE,IAvHH,EAwHpCA,EACA,IAAIyhE,EAAKn8D,EAAOiG,cACZm2D,EAAKp8D,EAAOiG,mBAEZk2D,EAAKn8D,EAAO69D,WACZzB,EAAKp8D,EAAO69D,YAEhBhb,EAAY,IAAIqZ,GAAgC5kE,EAAS6kE,EAAIC,IACvDn3D,IAAM24D,EA7HkB,EA8H9BljE,EACJmoD,EAAUyX,OAASzX,EAAU0X,QAAUv6D,EAAOgF,aAAe,GAAKhF,EAAOgF,aAAe,IAAM,WA7HnD,GA8HlCtK,GACLmoD,EAAUyX,QAAUt6D,EAAOgF,aAAe,GAAKhF,EAAOgF,aAAe,IAAM,WAC3E69C,EAAU0X,QAAUv6D,EAAOgF,aAAe,GAAKhF,EAAOgF,aAAe,IAAM,YA/HxC,IAgI5BtK,IACPmoD,EAAUyX,QAAUt6D,EAAOgF,aAAe,GAAKhF,EAAOgF,aAAe,IAAM,WAC3E69C,EAAUwZ,SAAWr8D,EAAOgF,aAAe,GAAKhF,EAAOgF,aAAe,IAAM,WAC5E69C,EAAUyZ,SAAWt8D,EAAOgF,aAAe,GAAKhF,EAAOgF,aAAe,IAAM,WAC5E69C,EAAU0X,QAAUv6D,EAAOgF,aAAe,GAAKhF,EAAOgF,aAAe,IAAM,YAE/E0O,EAAMwC,WAAW7gB,KAAKwtD,EAC1B,CACA,GAAIxsD,KAAKwtD,MAAMN,oBAAqB,CAChC,IAAI0Z,EAAS,GACb,IAAI,IAAInQ,EAAI,EAAGA,EAAIp5C,EAAMwC,WAAWzgB,OAAQq3D,IAAI,CAC5C,IAAIjK,EAAYnvC,EAAMwC,WAAW42C,GACjCmQ,EAAO5nE,KAAK,IAAI0mE,IAA0C,GAAM,EAAMlZ,EAAUsZ,GAAItZ,EAAUuZ,IAClG,CACAa,EAAO5nE,QAAQgB,KAAKmnE,kBAAkB9pD,IACtCrd,KAAKwtD,MAAMN,oBAAoBka,gBAAgBpnE,KAAKojC,GAAIwjC,GACxDvpD,EAAMgqD,cAAgBT,EAAO9jB,QAAQ,EAAG,GACxC,IAAI,IAAI3jD,EAAI,EAAGA,EAAIynE,EAAOxnE,OAAQD,IAAI,CAClC,IAAI6nE,EAAQJ,EAAOznE,GACnBke,EAAMwC,WAAW1gB,GAAG2mE,GAAKkB,EAAMxkC,EAC/BnlB,EAAMwC,WAAW1gB,GAAG4mE,GAAKiB,EAAM5hC,CACnC,CACJ,CACA,OAAOkiC,CACX,CACA,iBAAAH,CAAkB9pD,GACd,IAAI+mB,EAAOpkC,KAAKskE,UAAS,GACJ,MAAjBtkE,KAAK2kE,WAAkB3kE,KAAK2kE,SAAeP,GAA0CnhC,UAAUyhC,YAAY3kE,KAAKC,KAAMokC,IAC1H,IAAM+K,aAAcA,EAAcC,cAAeA,EAAew1B,YAAaA,EAAaC,WAAYA,GAAe7kE,KAAK2kE,SAC1H,MAAO,CACH,IAAIe,IAA0C,GAAO,EAAMroD,EAAM5Y,KAAOmgE,EAAa,GACrF,IAAIc,IAA0C,GAAO,EAAMroD,EAAM5Y,KAAOmgE,EAAcz1B,EAAc,GACpG,IAAIu2B,IAA0C,GAAO,EAAM,EAAGroD,EAAMzY,KAAOigE,GAC3E,IAAIa,IAA0C,GAAO,EAAM,EAAGroD,EAAMzY,KAAOigE,EAAaz1B,GAEhG,CAEA,YAAAq4B,GACI,IAAIpqD,EAAQrd,KAAKwmE,UACjB,IAAKnpD,EAAO,MAAO,GACnB,IAAIupD,EAAS,GACb,GAAIvpD,EAAMooD,iBAAmB,EAC7B,IAAK,IAAIjZ,KAAanvC,EAAMwC,WAAW,CACnC,IAAI6nD,EAAW1nE,KAAKwtD,MAAM1J,SAAS0I,EAAUvrD,SAASwmE,eACtD,IAAI,IAAItoE,EAAI,EAAGA,EAAIuoE,EAAStoE,OAAQD,IAAI,CACpC,IAAIwoE,EAAUD,EAASvoE,GACvB,IAAI,IAAIs3D,EAAI,EAAGA,EAAIkR,EAAQvoE,OAAQq3D,IAAI,CACnC,IAAIuQ,EAAQW,EAAQlR,GAChBj0B,EAAIwkC,EAAMxkC,EAAIgqB,EAAUyX,OAAS+C,EAAM5hC,EAAIonB,EAAUwZ,QAAUxZ,EAAUsZ,GACzE1gC,EAAI4hC,EAAM5hC,EAAIonB,EAAU0X,OAAS8C,EAAMxkC,EAAIgqB,EAAUyZ,QAAUzZ,EAAUuZ,GAC7Ea,EAAO5nE,KAAK,IAAI0mE,GAA0CsB,EAAMrB,QAASqB,EAAMpB,WAAYpjC,EAAG4C,GAClG,CACJ,CACJ,MACKwhC,EAASvpD,EAAMupD,QAAU,GAE1BvpD,EAAMgqD,gBAAkBrnE,KAAKwtD,MAAMoa,UAAU5jE,OAAOg7B,OACpDh/B,KAAK2kE,SAASx1B,aAAe9xB,EAAMgqD,cAAc,GAAG7kC,EAAInlB,EAAMgqD,cAAc,GAAG7kC,EAC/ExiC,KAAK2kE,SAASv1B,cAAgB/xB,EAAMgqD,cAAc,GAAGjiC,EAAI/nB,EAAMgqD,cAAc,GAAGjiC,EAChFplC,KAAK2kE,SAASC,YAAcvnD,EAAM5Y,KAAO4Y,EAAMgqD,cAAc,GAAG7kC,EAChExiC,KAAK2kE,SAASE,WAAaxnD,EAAMgqD,cAAc,GAAGjiC,EAAI/nB,EAAMzY,MAEhE,IAAI8iE,EAAW,GACXle,EAAM,GACV,IAAI,IAAI/3C,EAAI,EAAGA,EAAIm1D,EAAOxnE,OAAQqS,IAAI,CAClC,IAAIu1D,EAAQJ,EAAOn1D,GACnB+3C,EAAIxqD,KAAKgoE,GACLA,EAAMpB,aACN8B,EAAS1oE,KAAKwqD,GACdA,EAAM,GAEd,CACA,OAAOke,CACX,CACA,WAAAhD,GACI,GAAI1kE,KAAK2kE,SAAU,OAAO3kE,KAAK2kE,SAC/B,IAAIvgC,EAAOpkC,KAAKskE,UAAS,GAIzB,OAHAvyD,MAAM2yD,YAAYtgC,GACdpkC,KAAKwtD,MAAMN,sBAAwBltD,KAAKwtD,MAAMxuB,MAClDh/B,KAAKmjE,KACEnjE,KAAK2kE,QAChB,CAEA,QAAAN,GACI,IAAIqD,EAAW1nE,KAAKynE,eAChBtE,EAAO,IAAQ9B,GACnB,IAAI,IAAIliE,EAAI,EAAGA,EAAIuoE,EAAStoE,OAAQD,IAAI,CACpC,IAAIwoE,EAAUD,EAASvoE,GACnB0oE,EAAUF,EAAQ,GAClBG,EAASH,EAAQA,EAAQvoE,OAAS,GAClC2P,EAAQ,EACZ,GAAI84D,EAAQlC,QAAS,CAEjB,IAAIoC,EAAU,KACdh5D,EAAQ,CACZ,KAAO,CAEH84D,EADIC,EAAOnC,QACDmC,EAEA,IAAIpC,IAA0C,GAAO,GAAQmC,EAAQrlC,EAAIslC,EAAOtlC,GAAK,GAAIqlC,EAAQziC,EAAI0iC,EAAO1iC,GAAK,GACvH2iC,EAAUF,CAClB,CACA1E,EAAKnC,OAAO6G,EAAQrlC,EAAGqlC,EAAQziC,GAC/B,IAAI,IAAIqxB,EAAI1nD,EAAO0nD,EAAIkR,EAAQvoE,OAAQq3D,IAAI,CACvC,IAAIuR,EAAKL,EAAQlR,GACbwR,EAAe,IAANxR,EAAUoR,EAAUF,EAAQlR,EAAI,GAC7C,GAAIwR,EAAOtC,SAAWqC,EAAGrC,QAASxC,EAAKlC,OAAO+G,EAAGxlC,EAAGwlC,EAAG5iC,QAClD,GAAI6iC,EAAOtC,UAAYqC,EAAGrC,QAAaoC,EAAUC,OACjD,GAAKC,EAAOtC,SAAYqC,EAAGrC,QAKzB,IAAKsC,EAAOtC,UAAWqC,EAAGrC,QAG1B,MAAM,IAAInmE,MAAM,0BAFnB2jE,EAAKjC,iBAAiB6G,EAAQvlC,EAAGulC,EAAQ3iC,EAAG4iC,EAAGxlC,EAAGwlC,EAAG5iC,GACjD2iC,EAAU,IAC8B,KARP,CACrC,IAAIG,GAAQD,EAAOzlC,EAAIwlC,EAAGxlC,GAAK,EAC3B2lC,GAAQF,EAAO7iC,EAAI4iC,EAAG5iC,GAAK,EAC/B+9B,EAAKjC,iBAAiB+G,EAAOzlC,EAAGylC,EAAO7iC,EAAG8iC,EAAMC,GAChD,IAAIJ,EAAUC,CAClB,CAIJ,CAEID,GAAS5E,EAAKjC,iBAAiB6G,EAAQvlC,EAAGulC,EAAQ3iC,EAAGyiC,EAAQrlC,EAAGqlC,EAAQziC,GAC5E+9B,EAAK/B,WACT,CACA,OAAO+B,CACX,CACA,WAAA3zD,IAAenP,GACX0R,SAAS1R,IACT,EAAI,KAAUL,KAAM,OAAQ,MAChC,EAOJ,MAAMooE,WAAqDhE,GACvD,QAAAc,GACI,OAAIllE,KAAKwtD,MAAM6a,KAAat2D,MAAMmzD,WAC3BllE,KAAKwtD,MAAM,QAAQjwC,aAAavd,KAAKojC,GAChD,CACA,IAAAklC,CAAKzqE,GACD,OAAIA,EAAEuB,OAAS,KAAa,IACnBvB,EAAEuB,OAAS,MAAc,KACtB,KAChB,CACA,QAAAilE,GACI,IAAIkE,EAAMvoE,KAAKwtD,MAAM6a,MAAQroE,KAAKwtD,MAAM,SAClC7jD,OAAQA,GAAW4+D,EACrBz4D,EAAMy4D,EAAI7rD,QAAQnB,YAAYvb,KAAKojC,IACnCp0B,EAAMc,EAAIb,OAASa,EAAI1Q,OAC3BuK,EAAOiF,IAAMkB,EAAIb,OACjB,IAMIu5D,EACAC,EAPAtF,EAAO,IAAQ9B,GACfpc,EAAQ,GACRyjB,EAAQ,GACR/pD,EAAQ,KACRgqD,EAAS,EACTnmC,EAAI,EAAG4C,EAAI,EAGXwjC,GAAO,EACX5oE,KAAK6oE,YAAcL,EAAa,CAAC,EACjCxoE,KAAK8oE,WAAaL,EAAY,CAAC,EAC/B,IAAIM,EAASR,EAAI9rD,iBAAmB,GAChCusD,EAAahpE,KAAKsoE,KAAKS,GACvBE,EAAcV,EAAIxqD,oBAAoB/d,KAAKojC,KAAO,CAAC,EACnD8lC,EAAQD,EAAYE,OAAS,GAC7BC,EAAYppE,KAAKsoE,KAAKY,GACtBG,EAASd,EAAI7rD,QAAQ2sD,QAAUd,EAAI7rD,QAAQ2sD,OAAOltD,mBAClDmtD,EAAUL,EAAYK,QACtB7L,EAAqBz9D,KAAKwtD,MAAMN,oBACpC,SAASqc,IACQ,MAAT5qD,IAAeA,EAAQsmC,EAAMukB,QAAUP,EAAYQ,cAC3D,CACA,SAASC,IAGL,OAFIzkB,EAAM7lD,OAAS,GAAM,GAAGmqE,IAC5BZ,GAAU1jB,EAAM7lD,QAAU,EACnB6lD,EAAM7lD,OAAS,CAC1B,CACA,SAAS4hE,EAAOx+B,EAAG4C,GACXwjC,GAAMzF,EAAK/B,YACf+B,EAAKnC,OAAOx+B,EAAG4C,GACfwjC,GAAO,CACX,CACA,IAAIxX,EAAQ,WACR,KAAMznD,EAAOiF,IAAMI,GAAI,CACnB,IAAI8B,EAAKnH,EAAOgF,YAChB,GAAImC,EAAK,GAAI,CACT,IAAI2J,EAAOkvD,EAAMC,EACbC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACzBC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACzBC,EACJ,OAAO35D,GACH,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACD44D,IACA,MACJ,KAAK,EACGzkB,EAAM7lD,OAAS,GAAGmqE,IACtBnkC,GAAK6f,EAAMukB,QACXxI,EAAOx+B,EAAG4C,GACV,MACJ,KAAK,EACD,KAAM6f,EAAM7lD,QAAU,GAClBojC,GAAKyiB,EAAMukB,QACXpkC,GAAK6f,EAAMukB,QACXrG,EAAKlC,OAAOz+B,EAAG4C,GAEnB,MACJ,KAAK,EACL,KAAK,EAED,IADAwkC,EAAe,IAAP94D,EACFm0C,EAAM7lD,QAAU,GACdwqE,EAAOpnC,GAAKyiB,EAAMukB,QACjBpkC,GAAK6f,EAAMukB,QAChBrG,EAAKlC,OAAOz+B,EAAG4C,GACfwkC,GAASA,EAEb,MACJ,KAAK,EACD,KAAM3kB,EAAM7lD,OAAS,GACjByqE,EAAMrnC,EAAIyiB,EAAMukB,QAChBM,EAAM1kC,EAAI6f,EAAMukB,QAChBO,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBhnC,EAAIunC,EAAM9kB,EAAMukB,QAChBpkC,EAAI4kC,EAAM/kB,EAAMukB,QAChBrG,EAAKhC,cAAc0I,EAAKC,EAAKC,EAAKC,EAAKxnC,EAAG4C,GAE9C,MACJ,KAAK,GAGD,GAFA3qB,EAAQwqC,EAAM5yC,MAAQ+2D,EACtBO,EAAOT,EAAMzuD,GACTkvD,EAAM,CACNlB,EAAUhuD,IAAS,EACnB,IAAI8mB,EAAI53B,EAAOiF,IACXlR,EAAIsR,EACRrF,EAAOiF,IAAM+6D,EAAK16D,OAClBD,EAAM26D,EAAK16D,OAAS06D,EAAKvqE,OACzBgyD,IACAznD,EAAOiF,IAAM2yB,EACbvyB,EAAMtR,CACV,CACA,MACJ,KAAK,GACD,GAAI6qE,EAAIzkE,SAAW,EAAG,MACtB,OACJ,KAAK,GACD,GAAIykE,EAAIzkE,SAAW,EAAG,MAClBmhD,EAAM7lD,OAAS,GAAGmqE,IAClBX,IACAzF,EAAK/B,YACLwH,GAAO,GAEX,MACJ,KAAK,GACD,GAAIL,EAAIzkE,QAAU,EAAG,MAAM,IAAItE,MAAM,4CACrC8pE,EAAUrkB,EAAM5yC,MAChB,MACJ,KAAK,GACD,CACI,GAAIk2D,EAAIzkE,QAAU,EAAG,MAAM,IAAItE,MAAM,0CACrC,IAAKi+D,EAAoB,MAAM,IAAIj+D,MAAM,wCACzC,IAAIkrE,EAAcjN,EAAmBkN,eAAetB,EAAQC,GACxDl3D,EAAY6yC,EAAM5yC,MAClBu4D,EAAcx4D,EAAYs4D,EAAYtrE,OACtC0jC,EAAQmiB,EAAM7lD,OAASwrE,EACvB51C,EAAO8N,EAAQ1wB,EACnB,IAAI,IAAIjT,EAAI,EAAGA,EAAIiT,EAAWjT,IAAI,CAC9B,IAAI0rE,EAAM5lB,EAAMjwB,EAAO71B,GACvB,IAAI,IAAIs3D,EAAI,EAAGA,EAAIiU,EAAYtrE,OAAQq3D,IAAIoU,GAAOH,EAAYjU,GAAKxR,EAAMniB,KACzEmiB,EAAMjwB,EAAO71B,GAAK0rE,CACtB,CACA,KAAMD,KAAc3lB,EAAM5yC,MAC1B,KACJ,CACJ,KAAK,GACL,KAAK,GACDq3D,IACA//D,EAAOiF,KAAO+5D,EAAS,GAAK,EAC5B,MACJ,KAAK,GACG1jB,EAAM7lD,OAAS,GAAGmqE,IACtB/mC,GAAKyiB,EAAMukB,QACXpkC,GAAK6f,EAAMukB,QACXxI,EAAOx+B,EAAG4C,GACV,MACJ,KAAK,GACG6f,EAAM7lD,OAAS,GAAGmqE,IACtB/mC,GAAKyiB,EAAMukB,QACXxI,EAAOx+B,EAAG4C,GACV,MACJ,KAAK,GACD,KAAM6f,EAAM7lD,QAAU,GAClByqE,EAAMrnC,EAAIyiB,EAAMukB,QAChBM,EAAM1kC,EAAI6f,EAAMukB,QAChBO,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBhnC,EAAIunC,EAAM9kB,EAAMukB,QAChBpkC,EAAI4kC,EAAM/kB,EAAMukB,QAChBrG,EAAKhC,cAAc0I,EAAKC,EAAKC,EAAKC,EAAKxnC,EAAG4C,GAE9C5C,GAAKyiB,EAAMukB,QACXpkC,GAAK6f,EAAMukB,QACXrG,EAAKlC,OAAOz+B,EAAG4C,GACf,MACJ,KAAK,GACD,KAAM6f,EAAM7lD,QAAU,GAClBojC,GAAKyiB,EAAMukB,QACXpkC,GAAK6f,EAAMukB,QACXrG,EAAKlC,OAAOz+B,EAAG4C,GAEnBykC,EAAMrnC,EAAIyiB,EAAMukB,QAChBM,EAAM1kC,EAAI6f,EAAMukB,QAChBO,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBhnC,EAAIunC,EAAM9kB,EAAMukB,QAChBpkC,EAAI4kC,EAAM/kB,EAAMukB,QAChBrG,EAAKhC,cAAc0I,EAAKC,EAAKC,EAAKC,EAAKxnC,EAAG4C,GAC1C,MACJ,KAAK,GAED,IADI6f,EAAM7lD,OAAS,IAAGojC,GAAKyiB,EAAMukB,SAC3BvkB,EAAM7lD,QAAU,GAClByqE,EAAMrnC,EACNsnC,EAAM1kC,EAAI6f,EAAMukB,QAChBO,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBhnC,EAAIunC,EACJ3kC,EAAI4kC,EAAM/kB,EAAMukB,QAChBrG,EAAKhC,cAAc0I,EAAKC,EAAKC,EAAKC,EAAKxnC,EAAG4C,GAE9C,MACJ,KAAK,GAED,IADI6f,EAAM7lD,OAAS,IAAGgmC,GAAK6f,EAAMukB,SAC3BvkB,EAAM7lD,QAAU,GAClByqE,EAAMrnC,EAAIyiB,EAAMukB,QAChBM,EAAM1kC,EACN2kC,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBhnC,EAAIunC,EAAM9kB,EAAMukB,QAChBpkC,EAAI4kC,EACJ7G,EAAKhC,cAAc0I,EAAKC,EAAKC,EAAKC,EAAKxnC,EAAG4C,GAE9C,MACJ,KAAK,GACD6f,EAAMjmD,KAAK2K,EAAOiG,eAClB,MACJ,KAAK,GAGD,GAFA6K,EAAQwqC,EAAM5yC,MAAQ22D,EACtBW,EAAOZ,EAAOtuD,GACVkvD,EAAM,CACNnB,EAAW/tD,IAAS,EACpB,IAAI8mB,EAAI53B,EAAOiF,IACXlR,EAAIsR,EACRrF,EAAOiF,IAAM+6D,EAAK16D,OAClBD,EAAM26D,EAAK16D,OAAS06D,EAAKvqE,OACzBgyD,IACAznD,EAAOiF,IAAM2yB,EACbvyB,EAAMtR,CACV,CACA,MACJ,KAAK,GACL,KAAK,GAED,IADAksE,EAAe,KAAP94D,EACFm0C,EAAM7lD,QAAU,GACdwqE,GACAC,EAAMrnC,EAAIyiB,EAAMukB,QAChBM,EAAM1kC,EACN2kC,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBpkC,EAAI4kC,EAAM/kB,EAAMukB,QAChBhnC,EAAIunC,GAAwB,IAAjB9kB,EAAM7lD,OAAe6lD,EAAMukB,QAAU,KAEhDK,EAAMrnC,EACNsnC,EAAM1kC,EAAI6f,EAAMukB,QAChBO,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBhnC,EAAIunC,EAAM9kB,EAAMukB,QAChBpkC,EAAI4kC,GAAwB,IAAjB/kB,EAAM7lD,OAAe6lD,EAAMukB,QAAU,IAEpDrG,EAAKhC,cAAc0I,EAAKC,EAAKC,EAAKC,EAAKxnC,EAAG4C,GAC1CwkC,GAASA,EAEb,MACJ,KAAK,GAED,OADA94D,EAAKnH,EAAOgF,YACLmC,GACH,KAAK,EACD,IAAIzS,EAAI4mD,EAAM5yC,MACVtC,EAAIk1C,EAAM5yC,MACd4yC,EAAMjmD,KAAKX,GAAK0R,EAAI,EAAI,GACxB,MACJ,KAAK,EACD1R,EAAI4mD,EAAM5yC,MACVtC,EAAIk1C,EAAM5yC,MACV4yC,EAAMjmD,KAAKX,GAAK0R,EAAI,EAAI,GACxB,MACJ,KAAK,EACD1R,EAAI4mD,EAAM5yC,MACV4yC,EAAMjmD,KAAKX,EAAI,EAAI,GACnB,MACJ,KAAK,EACDA,EAAI4mD,EAAM5yC,MACV4yC,EAAMjmD,KAAKoD,KAAKijC,IAAIhnC,IACpB,MACJ,KAAK,GACDA,EAAI4mD,EAAM5yC,MACVtC,EAAIk1C,EAAM5yC,MACV4yC,EAAMjmD,KAAKX,EAAI0R,GACf,MACJ,KAAK,GACD1R,EAAI4mD,EAAM5yC,MACVtC,EAAIk1C,EAAM5yC,MACV4yC,EAAMjmD,KAAKX,EAAI0R,GACf,MACJ,KAAK,GACD1R,EAAI4mD,EAAM5yC,MACVtC,EAAIk1C,EAAM5yC,MACV4yC,EAAMjmD,KAAKX,EAAI0R,GACf,MACJ,KAAK,GACD1R,EAAI4mD,EAAM5yC,MACV4yC,EAAMjmD,MAAMX,GACZ,MACJ,KAAK,GACDA,EAAI4mD,EAAM5yC,MACVtC,EAAIk1C,EAAM5yC,MACV4yC,EAAMjmD,KAAKX,IAAM0R,EAAI,EAAI,GACzB,MACJ,KAAK,GACDk1C,EAAM5yC,MACN,MACJ,KAAK,GACD,IAAIpI,EAAMg7C,EAAM5yC,MACZ63C,EAAMjF,EAAM5yC,MAChBq2D,EAAMxe,GAAOjgD,EACb,MACJ,KAAK,GACDigD,EAAMjF,EAAM5yC,MACZ4yC,EAAMjmD,KAAK0pE,EAAMxe,IAAQ,GACzB,MACJ,KAAK,GACD,IAAI4gB,EAAK7lB,EAAM5yC,MACX04D,EAAK9lB,EAAM5yC,MACX24D,EAAK/lB,EAAM5yC,MACX44D,EAAKhmB,EAAM5yC,MACf4yC,EAAMjmD,KAAKgsE,GAAMC,EAAKH,EAAKC,GAC3B,MACJ,KAAK,GACD9lB,EAAMjmD,KAAKoD,KAAK8oE,UAChB,MACJ,KAAK,GACD7sE,EAAI4mD,EAAM5yC,MACVtC,EAAIk1C,EAAM5yC,MACV4yC,EAAMjmD,KAAKX,EAAI0R,GACf,MACJ,KAAK,GACD1R,EAAI4mD,EAAM5yC,MACV4yC,EAAMjmD,KAAKoD,KAAK4gE,KAAK3kE,IACrB,MACJ,KAAK,GACDA,EAAI4mD,EAAM5yC,MACV4yC,EAAMjmD,KAAKX,EAAGA,GACd,MACJ,KAAK,GACDA,EAAI4mD,EAAM5yC,MACVtC,EAAIk1C,EAAM5yC,MACV4yC,EAAMjmD,KAAK+Q,EAAG1R,GACd,MACJ,KAAK,GACD6rD,EAAMjF,EAAM5yC,MACR63C,EAAM,EAAGA,EAAM,EACVA,EAAMjF,EAAM7lD,OAAS,IAAG8qD,EAAMjF,EAAM7lD,OAAS,GACtD6lD,EAAMjmD,KAAKimD,EAAMiF,IACjB,MACJ,KAAK,GACD,IAAIvsD,EAAIsnD,EAAM5yC,MACVokD,EAAIxR,EAAM5yC,MACd,GAAIokD,GAAK,EAAG,KAAMA,EAAI,GAAE,CACpB,IAAIt0D,EAAI8iD,EAAMtnD,EAAI,GAClB,IAAI,IAAIwB,EAAIxB,EAAI,EAAGwB,GAAK,EAAGA,IAAI8lD,EAAM9lD,EAAI,GAAK8lD,EAAM9lD,GACpD8lD,EAAM,GAAK9iD,EACXs0D,GACJ,MACK,KAAMA,EAAI,GAAE,CACTt0D,EAAI8iD,EAAM,GACd,IAAI,IAAI9lD,EAAI,EAAGA,GAAKxB,EAAGwB,IAAI8lD,EAAM9lD,GAAK8lD,EAAM9lD,EAAI,GAChD8lD,EAAMtnD,EAAI,GAAKwE,EACfs0D,GACJ,CACA,MACJ,KAAK,GACDoT,EAAMrnC,EAAIyiB,EAAMukB,QAChBM,EAAM1kC,EACN2kC,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBS,EAAMF,EAAM9kB,EAAMukB,QAClBU,EAAMF,EACNG,EAAMF,EAAMhlB,EAAMukB,QAClBY,EAAMF,EACNG,EAAMF,EAAMllB,EAAMukB,QAClBc,EAAMF,EACNG,EAAMF,EAAMplB,EAAMukB,QAClBgB,EAAMF,EACN9nC,EAAI+nC,EACJnlC,EAAIolC,EACJrH,EAAKhC,cAAc0I,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAC5C/G,EAAKhC,cAAcgJ,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAC5C,MACJ,KAAK,GACDC,EAAM,GACN,IAAI,IAAItrE,EAAI,EAAGA,GAAK,EAAGA,IACnBqjC,GAAKyiB,EAAMukB,QACXpkC,GAAK6f,EAAMukB,QACXiB,EAAIzrE,KAAKwjC,EAAG4C,GAEhB+9B,EAAKhC,iBAAiBsJ,EAAI5pB,MAAM,EAAG,IACnCsiB,EAAKhC,iBAAiBsJ,EAAI5pB,MAAM,IAChCoE,EAAMukB,QACN,MACJ,KAAK,GACDK,EAAMrnC,EAAIyiB,EAAMukB,QAChBM,EAAM1kC,EAAI6f,EAAMukB,QAChBO,EAAMF,EAAM5kB,EAAMukB,QAClBQ,EAAMF,EAAM7kB,EAAMukB,QAClBS,EAAMF,EAAM9kB,EAAMukB,QAClBU,EAAMF,EACNG,EAAMF,EAAMhlB,EAAMukB,QAClBY,EAAMF,EACNG,EAAMF,EAAMllB,EAAMukB,QAClBc,EAAMF,EAAMnlB,EAAMukB,QAClBe,EAAMF,EAAMplB,EAAMukB,QAClBgB,EAAMF,EACN9nC,EAAI+nC,EACJnlC,EAAIolC,EACJrH,EAAKhC,cAAc0I,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAC5C/G,EAAKhC,cAAcgJ,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAC5C,MACJ,KAAK,GACD,IAAIW,EAAS3oC,EACT4oC,EAAShmC,EACbqlC,EAAM,GACN,IAAI,IAAItrE,EAAI,EAAGA,GAAK,EAAGA,IACnBqjC,GAAKyiB,EAAMukB,QACXpkC,GAAK6f,EAAMukB,QACXiB,EAAIzrE,KAAKwjC,EAAG4C,GAEZhjC,KAAKijC,IAAI7C,EAAI2oC,GAAU/oE,KAAKijC,IAAID,EAAIgmC,IACpC5oC,GAAKyiB,EAAMukB,QACXpkC,EAAIgmC,IAEJ5oC,EAAI2oC,EACJ/lC,GAAK6f,EAAMukB,SAEfiB,EAAIzrE,KAAKwjC,EAAG4C,GACZ+9B,EAAKhC,iBAAiBsJ,EAAI5pB,MAAM,EAAG,IACnCsiB,EAAKhC,iBAAiBsJ,EAAI5pB,MAAM,IAChC,MACJ,QACI,MAAM,IAAIrhD,MAAM,kBAAkBsR,KAE1C,MACJ,QACI,MAAM,IAAItR,MAAM,eAAesR,KAE3C,MAAO,GAAIA,EAAK,IAAKm0C,EAAMjmD,KAAK8R,EAAK,UAChC,GAAIA,EAAK,IAAK,CACf,IAAIu6D,EAAK1hE,EAAOgF,YAChBs2C,EAAMjmD,KAAkB,KAAZ8R,EAAK,KAAau6D,EAAK,IACvC,MAAO,GAAIv6D,EAAK,IAAK,CACbu6D,EAAK1hE,EAAOgF,YAChBs2C,EAAMjmD,KAAmB,MAAZ8R,EAAK,KAAau6D,EAAK,IACxC,MAAOpmB,EAAMjmD,KAAK2K,EAAOkG,cAAgB,MAC7C,CACJ,EAGA,OAFAuhD,IACIwX,GAAMzF,EAAK/B,YACR+B,CACX,CACA,WAAA3zD,IAAenP,GACX0R,SAAS1R,IACT,EAAI,KAAUL,KAAM,OAAQ,MAChC,EAOJ,IAAIsrE,GAAkC,IAAI,KAAc,CACpDC,QAAS,KACTC,QAAS,KACT5pE,KAAM,IAAI,KAAc,GACxB8d,KAAM,IAAI,MAAevd,GAAIA,EAAEiE,OAAOqlE,OAAStpE,EAAEa,mBAErD,MAAM0oE,WAAqDxF,GAQrD,eAAAyF,CAAgBvhE,GACd,IAAI,IAAIjL,EAAI,EAAGA,EAAIa,KAAKwtD,MAAMhvB,KAAK7b,YAAYvjB,OAAQD,IAAI,CACvD,IAAIwE,EAAQ3D,KAAKwtD,MAAMhvB,KAAK7b,YAAYxjB,GACxC,GAAIwE,EAAM2e,MAAQlY,EAAM,KAC5B,CACA,IAAIoD,EAAU7J,EAAM6e,aAChBzT,EAAQvB,EAAQxN,KAAKojC,IACrBp0B,EAAMxB,EAAQxN,KAAKojC,GAAK,GAC5B,OAAIr0B,IAAUC,EAAY,MAC1BhP,KAAKwtD,MAAM7jD,OAAOiF,IAAMG,EACjBu8D,GAAgC9iE,OAAOxI,KAAKwtD,MAAM7jD,OAAQ,CAC7D8hE,OAAQz8D,EAAMD,IAEtB,CACA,MAAAq2D,CAAOt8D,EAAKsB,GACR,IAAIwhE,EAAM5rE,KAAK2rE,gBAAgBvhE,GAC/B,GAAW,MAAPwhE,EAAa,CACb,IAAI5H,EAAQ55D,EAAOpK,KAAKwtD,MAAMlpD,WAC9BwE,EAAI+iE,MAAMD,EAAIlsD,KAAM,CAChBhB,OAAQtU,EACRo4B,EAAGopC,EAAIL,QACPnmC,GAAIplC,KAAKqvC,KAAKtK,KAAO6mC,EAAIJ,SAAWxH,GAE5C,CACIhkE,KAAKwtD,MAAMhvB,KAAKn6B,MAAMynE,gBAAgB/5D,MAAMqzD,OAAOt8D,EAAKsB,EAChE,CACA,WAAAoF,IAAenP,GACX0R,SAAS1R,IACT,EAAI,KAAUL,KAAM,OAAQ,OAChC,EAOJ,MAAM+rE,GACF,WAAAv8D,CAAY6N,EAAO2uD,GACfhsE,KAAKqd,MAAQA,EACbrd,KAAKgsE,MAAQA,CACjB,EAEJ,MAAMC,WAAqD7H,GACvD,QAAAG,GACI,IAAIl1B,EAAO,IAAQnK,GACnB,IAAI,IAAI/lC,EAAI,EAAGA,EAAIa,KAAKksE,OAAO9sE,OAAQD,IAAI,CACvC,IACI4Q,EADQ/P,KAAKksE,OAAO/sE,GACVke,MAAMgyB,KACpBA,EAAKlK,SAASp1B,EAAEw0B,KAAMx0B,EAAEg1B,MACxBsK,EAAKlK,SAASp1B,EAAE+0B,KAAM/0B,EAAEi1B,KAC5B,CACA,OAAOqK,CACX,CAKE,UAAI68B,GACF,IAAIC,EAAOnsE,KAAKwtD,MAAM9uB,KAClB0tC,EAAOpsE,KAAKwtD,MAAM/uB,KAClB7gB,EAAM,EACNC,EAAOuuD,EAAKjpD,gBAAgB/jB,OAAS,EACzC,KAAMwe,GAAOC,GAAK,CACd,IAAIC,EAAMF,EAAMC,GAAQ,EACxB,IAAIwuD,EAAMD,EAAKjpD,gBAAgBrF,GAC/B,GAAI9d,KAAKojC,GAAKipC,EAAI7uD,IAAKK,EAAOC,EAAM,MAC/B,MAAI9d,KAAKojC,GAAKipC,EAAI7uD,KAClB,CACD,IAAI8uD,EAAYD,EAChB,KACJ,CAJ4BzuD,EAAME,EAAM,CAIxC,CACJ,CAGA,GAAiB,MAAbwuD,EAAmB,CACnB,IAAItpC,EAAIhjC,KAAKwtD,MAAM+e,cAAcvsE,KAAKojC,IAOtC,MAAO,CACH,IAAI2oC,GAAgC/oC,EAPpCgpC,EAAQ,CACRvoD,IAAK,EACLD,MAAO,EACPD,KAAM,EACNG,MAAO,MAKf,CAEA,IAAIwoD,EAAS,GACb,IAAI,IAAI/sE,EAAImtE,EAAUvpD,gBAAiB5jB,EAAImtE,EAAUvpD,gBAAkBupD,EAAUtpD,UAAW7jB,IAAI,CACxFktE,EAAMD,EAAKhpD,aAAajkB,GAA5B,IACI6sE,EAAQG,EAAKpoD,aAAasoD,EAAIxpD,cAC9BmgB,EAAIhjC,KAAKwtD,MAAM+e,cAAcF,EAAI7uD,KACrC0uD,EAAOltE,KAAK,IAAI+sE,GAAgC/oC,EAAGgpC,GACvD,CACA,OAAOE,CACX,CACA,MAAA9G,CAAOt8D,EAAKsB,GACR,IAAK,IAAMiT,MAAOA,EAAO2uD,MAAOA,KAAWhsE,KAAKksE,OAC5CpjE,EAAI0jE,UAAU,CACVR,EAAMvoD,IACNuoD,EAAMxoD,MACNwoD,EAAMzoD,MACPyoD,EAAMtoD,MAAQ,IAAM,KACvBrG,EAAM+nD,OAAOt8D,EAAKsB,EAG1B,CACA,WAAAoF,IAAenP,GACX0R,SAAS1R,IACT,EAAI,KAAUL,KAAM,OAAQ,OAChC,EAeJ,MAAMysE,GACF,eAAAC,CAAgBphB,GAGZ,IAAIqhB,EAAa,GACjB,IAAI,IAAIxtE,EAAI,EAAGA,EAAIa,KAAKV,KAAKsgC,KAAKlH,KAAKt5B,OAAQD,IAAI,CAC/C,IAAIu5B,EAAO14B,KAAKV,KAAKsgC,KAAKlH,KAAKv5B,GAC3BmsD,EAAOnsD,GAAKu5B,EAAKX,aAAc40C,EAAW3tE,MAAMssD,EAAOnsD,GAAKu5B,EAAKX,aAAe1nB,OAAOu8D,UAAYl0C,EAAKX,aAAeW,EAAKZ,SAAWznB,OAAOu8D,UAC7ID,EAAW3tE,MAAMssD,EAAOnsD,GAAKu5B,EAAKX,aAAe1nB,OAAOu8D,UAAYl0C,EAAKV,SAAWU,EAAKX,aAAe1nB,OAAOu8D,SACxH,CAGA,GAAI5sE,KAAKV,KAAKmgC,KAAM,IAAQtgC,EAAI,EAAGA,EAAIa,KAAKV,KAAKmgC,KAAK7K,QAAQx1B,OAAQD,IAAI,CACtE,IAAIy1B,EAAU50B,KAAKV,KAAKmgC,KAAK7K,QAAQz1B,GACrC,IAAI,IAAIs3D,EAAI,EAAGA,EAAI7hC,EAAQF,eAAet1B,OAAQq3D,IAAI,CAClD,IAAIhzB,EAAO7O,EAAQF,eAAe+hC,GAClC,GAAIA,GAAK,GAAKkW,EAAWxtE,GAAKskC,EAAKnP,UAAW,CAC1C,IAAI20B,EAAOr0B,EAAQF,eAAe+hC,EAAI,GACtCkW,EAAWxtE,KAAOwtE,EAAWxtE,GAAK8pD,EAAK30B,YAAcmP,EAAKlP,QAAU00B,EAAK10B,SAAWlkB,OAAOu8D,UAAYnpC,EAAKnP,UAAY20B,EAAK30B,UAAYjkB,OAAOu8D,SAAW3jB,EAAK10B,QAChK,KACJ,CACJ,CACJ,CACA,OAAOo4C,CACX,CACA,eAAAvF,CAAgB5pD,EAAKqvD,GACjB,IAAK7sE,KAAKV,KAAKsgC,OAAS5/B,KAAKV,KAAKugC,KAAM,OACxC,IAAMA,KAAMA,GAAS7/B,KAAKV,KAC1B,GAAIke,GAAOqiB,EAAKnrB,WAAY,OAC5B,IAAIzF,EAAS4wB,EAAKryB,QAAQgQ,GAC1B,GAAIvO,IAAW4wB,EAAKryB,QAAQgQ,EAAM,GAAI,OAEtC,IAAM7T,OAAQA,GAAW3J,KAAKV,KAE9B,GADAqK,EAAOiF,IAAMK,EACTtF,EAAOiF,KAAOjF,EAAOvK,OAAQ,OACjC,IAAI0tE,EAAanjE,EAAO6E,eACpB8pB,EAAerpB,EAAStF,EAAO6E,eACnC,GAhDiD,MAgD7Cs+D,EAA+D,CAC/D,IAAIC,EAAOpjE,EAAOiF,IAClBjF,EAAOiF,IAAM0pB,EACb,IAAI00C,EAAehtE,KAAKitE,eACxB30C,EAAe3uB,EAAOiF,IACtBjF,EAAOiF,IAAMm+D,CACjB,CACA,IAAIG,EAAaL,EAAYp/D,KAAKu6D,GAAKA,EAAG3jC,SAC1CyoC,GAvDuC,KAwDvC,IAAI,IAAI3tE,EAAI,EAAGA,EAAI2tE,EAAY3tE,IAAI,CAC/B,IAAIguE,EAAgBxjE,EAAO6E,eACvBmjB,EAAahoB,EAAO6E,eACxB,GA1DuC,MA0DnCmjB,EAAyD,CACzD,IAAIy7C,EAAc,GAClB,IAAI,IAAI/uE,EAAI,EAAGA,EAAIwhC,EAAK7nB,UAAW3Z,IAAI+uE,EAAYpuE,KAAK2K,EAAOiG,cAAgB,MACnF,KAAO,CACH,IA3D+B,KA2D1B+hB,IAAwDkO,EAAK/G,iBAAkB,MAAM,IAAIt5B,MAAM,sBAChG4tE,EAAcvtC,EAAK9G,aA5DQ,KA4DKpH,EACxC,CACA,GAhEqC,MAgEjCA,EAAuD,CACvD,IAAI07C,EAAc,GAClB,IAAI,IAAIhvE,EAAI,EAAGA,EAAIwhC,EAAK7nB,UAAW3Z,IAAIgvE,EAAYruE,KAAK2K,EAAOiG,cAAgB,OAC/E,IAAI09D,EAAY,GAChB,IAAI,IAAIjvE,EAAI,EAAGA,EAAIwhC,EAAK7nB,UAAW3Z,IAAIivE,EAAUtuE,KAAK2K,EAAOiG,cAAgB,MACjF,CAEA,IAAI29D,EAASvtE,KAAKwtE,YAAY77C,EAAYy7C,EAAaC,EAAaC,GACpE,GAAe,IAAXC,EAAc,CACdj1C,GAAgB60C,EAChB,QACJ,CACIJ,EAAOpjE,EAAOiF,IAElB,GADAjF,EAAOiF,IAAM0pB,EA5E2B,KA6EpC3G,EAA0D,IAAIi1C,EAAS5mE,KAAKitE,oBACvErG,EAASoG,EAElB,IAAIS,EAA4B,IAAlB7G,EAAOxnE,OAAeytE,EAAYztE,OAASwnE,EAAOxnE,OAC5DsuE,EAAU1tE,KAAK2tE,aAAaF,GAC5BG,EAAU5tE,KAAK2tE,aAAaF,GAChC,GAAsB,IAAlB7G,EAAOxnE,OAAc,IAAI,IAAID,EAAI,EAAGA,EAAI0tE,EAAYztE,OAAQD,IAAI,CAChE,IAAI6nE,EAAQ6F,EAAY1tE,GACxB6nE,EAAMxkC,GAAKpgC,KAAKu/D,MAAM+L,EAAQvuE,GAAKouE,GACnCvG,EAAM5hC,GAAKhjC,KAAKu/D,MAAMiM,EAAQzuE,GAAKouE,EACvC,KACK,CACD,IAAIM,EAAYX,EAAWz/D,KAAKu6D,GAAKA,EAAG3jC,SACpCypC,EAAWjB,EAAYp/D,KAAI,KAAI,IACnC,IAAI,IAAItO,EAAI,EAAGA,EAAIynE,EAAOxnE,OAAQD,IAAI,CAClC,IAAI+qD,EAAM0c,EAAOznE,GACjB,GAAI+qD,EAAM2iB,EAAYztE,OAAQ,CAC1B,IAAI4nE,EAAQ6G,EAAU3jB,GACtB4jB,EAAS5jB,IAAO,EAChB8c,EAAMxkC,GAAKkrC,EAAQvuE,GAAKouE,EACxBvG,EAAM5hC,GAAKwoC,EAAQzuE,GAAKouE,CAC5B,CACJ,CACAvtE,KAAK+tE,yBAAyBF,EAAWX,EAAYY,GACrD,IAAI,IAAI3uE,EAAI,EAAGA,EAAI0tE,EAAYztE,OAAQD,IAAI,CACvC,IAAI6uE,EAASH,EAAU1uE,GAAGqjC,EAAI0qC,EAAW/tE,GAAGqjC,EACxCyrC,EAASJ,EAAU1uE,GAAGimC,EAAI8nC,EAAW/tE,GAAGimC,EAC5CynC,EAAY1tE,GAAGqjC,EAAIpgC,KAAKu/D,MAAMkL,EAAY1tE,GAAGqjC,EAAIwrC,GACjDnB,EAAY1tE,GAAGimC,EAAIhjC,KAAKu/D,MAAMkL,EAAY1tE,GAAGimC,EAAI6oC,EACrD,CACJ,CACA31C,GAAgB60C,EAChBxjE,EAAOiF,IAAMm+D,CACjB,CACJ,CACA,YAAAE,GACI,IAAItjE,EAAS3J,KAAKV,KAAKqK,OACnBP,EAAQO,EAAOgF,YAhHoB,IAiHnCvF,IAAgDA,GAhHT,IAgHkBA,IAAuD,EAAIO,EAAOgF,aAC/H,IAAIi4D,EAAS,IAAIsH,YAAY9kE,GACzBjK,EAAI,EACJ6nE,EAAQ,EACZ,KAAM7nE,EAAIiK,GAAM,CACZ,IAAI+kE,EAAMxkE,EAAOgF,YACby/D,EAAgE,GAtH7B,IAsHvBD,GACZluE,EAxH+B,IAwH1BkuE,EAA+CxkE,EAAO0kE,WAAa1kE,EAAOgF,UACnF,IAAI,IAAI8nD,EAAI,EAAGA,EAAI2X,GAAYjvE,EAAIiK,EAAOqtD,IACtCuQ,GAAS/mE,EAAGF,KAAK4J,GACjBi9D,EAAOznE,KAAO6nE,CAEtB,CACA,OAAOJ,CACX,CACA,YAAA+G,CAAavkE,GACT,IAAIO,EAAS3J,KAAKV,KAAKqK,OACnBxK,EAAI,EACJqZ,EAAS,IAAI81D,WAAWllE,GAC5B,KAAMjK,EAAIiK,GAAM,CACZ,IAAI+kE,EAAMxkE,EAAOgF,YACby/D,EAAgE,GAlI7B,GAkIvBD,GAChB,GArIkC,IAqI9BA,EAA6ChvE,GAAKivE,MACjD,CACD,IAAInuE,EAtI2B,GAsItBkuE,EAA+CxkE,EAAOiG,YAAcjG,EAAO69D,SACpF,IAAI,IAAI/Q,EAAI,EAAGA,EAAI2X,GAAYjvE,EAAIiK,EAAOqtD,IAAIj+C,EAAOrZ,KAAOc,EAAGF,KAAK4J,EACxE,CACJ,CACA,OAAO6O,CACX,CACA,WAAAg1D,CAAY77C,EAAYy7C,EAAaC,EAAaC,GAC9C,IAAIX,EAAa3sE,KAAKmtD,kBAChBttB,KAAMA,GAAS7/B,KAAKV,KACtBiuE,EAAS,EACb,IAAI,IAAIpuE,EAAI,EAAGA,EAAI0gC,EAAK7nB,UAAW7Y,IAC/B,GAAuB,IAAnBiuE,EAAYjuE,GAAhB,CACA,GAAsB,IAAlBwtE,EAAWxtE,GAAU,OAAO,EAChC,GAAgE,IAzJ3B,MAyJhCwyB,GAA8D,CAC/D,GAAIg7C,EAAWxtE,GAAKiD,KAAK0+B,IAAI,EAAGssC,EAAYjuE,KAAOwtE,EAAWxtE,GAAKiD,KAAKC,IAAI,EAAG+qE,EAAYjuE,IAAK,OAAO,EACvGouE,GAAUA,EAASZ,EAAWxtE,GAAKkR,OAAOu8D,UAAYQ,EAAYjuE,GAAKkR,OAAOu8D,QAClF,KAAO,CACH,GAAID,EAAWxtE,GAAKkuE,EAAYluE,IAAMwtE,EAAWxtE,GAAKmuE,EAAUnuE,GAAI,OAAO,EAClCouE,EAAhCZ,EAAWxtE,GAAKiuE,EAAYjuE,GAAaouE,GAAUZ,EAAWxtE,GAAKkuE,EAAYluE,GAAKkR,OAAOu8D,UAAYQ,EAAYjuE,GAAKkuE,EAAYluE,GAAKkR,OAAOu8D,SAC3IW,GAAUD,EAAUnuE,GAAKwtE,EAAWxtE,GAAKkR,OAAOu8D,UAAYU,EAAUnuE,GAAKiuE,EAAYjuE,GAAKkR,OAAOu8D,QACrH,CATkC,CAWtC,OAAOW,CACX,CAIA,wBAAAQ,CAAyBnH,EAAQ2H,EAAUT,GACvC,GAAsB,IAAlBlH,EAAOxnE,OAAc,OACzB,IAAI4nE,EAAQ,EACZ,KAAMA,EAAQJ,EAAOxnE,QAAO,CACxB,IAAIovE,EAAaxH,EAEbyH,EAAWzH,EACXgB,EAAKpB,EAAO6H,GAChB,MAAOzG,EAAGpC,YAAWoC,EAAKpB,IAAS6H,GAEnC,KAAMzH,GAASyH,IAAaX,EAAS9G,IAAOA,IAC5C,GAAIA,EAAQyH,EAAU,SACtB,IAAIC,EAAa1H,EACb2H,EAAW3H,EAEf,IADAA,IACMA,GAASyH,GAEPX,EAAS9G,KACThnE,KAAK4uE,iBAAiBD,EAAW,EAAG3H,EAAQ,EAAG2H,EAAU3H,EAAOuH,EAAU3H,GAC1E+H,EAAW3H,GAEfA,IAGA2H,IAAaD,EAAY1uE,KAAK6uE,WAAWL,EAAYC,EAAUE,EAAUJ,EAAU3H,IAGnF5mE,KAAK4uE,iBAAiBD,EAAW,EAAGF,EAAUE,EAAUD,EAAYH,EAAU3H,GAC1E8H,EAAa,GAAG1uE,KAAK4uE,iBAAiBJ,EAAYE,EAAa,EAAGC,EAAUD,EAAYH,EAAU3H,IAE1GI,EAAQyH,EAAW,CACvB,CACJ,CACA,gBAAAG,CAAiBzM,EAAIC,EAAI0M,EAAMC,EAAMR,EAAUV,GAC3C,GAAI1L,EAAKC,EAAI,OACb,IAAI4M,EAAW,CACX,IACA,KAEJ,IAAI,IAAI7vE,EAAI,EAAGA,EAAI6vE,EAAS5vE,OAAQD,IAAI,CACpC,IAAIsS,EAAIu9D,EAAS7vE,GACjB,GAAIovE,EAASO,GAAMr9D,GAAK88D,EAASQ,GAAMt9D,GAAI,CACvC,IAAI8vB,EAAIutC,EACRA,EAAOC,EACPA,EAAOxtC,CACX,CACA,IAAI0tC,EAAMV,EAASO,GAAMr9D,GACrBy9D,EAAMX,EAASQ,GAAMt9D,GACrB09D,EAAOtB,EAAUiB,GAAMr9D,GACvB29D,EAAOvB,EAAUkB,GAAMt9D,GAG3B,GAAIw9D,IAAQC,GAAOC,IAASC,EAAM,CAC9B,IAAIpL,EAAQiL,IAAQC,EAAM,GAAKE,EAAOD,IAASD,EAAMD,GACrD,IAAI,IAAI1tC,EAAI4gC,EAAI5gC,GAAK6gC,EAAI7gC,IAAI,CACzB,IAAI8tC,EAAMd,EAAShtC,GAAG9vB,GAClB49D,GAAOJ,EAAKI,GAAOF,EAAOF,EACrBI,GAAOH,EAAKG,GAAOD,EAAOF,EAC9BG,EAAMF,GAAQE,EAAMJ,GAAOjL,EAChC6J,EAAUtsC,GAAG9vB,GAAK49D,CACtB,CACJ,CACJ,CACJ,CACA,UAAAR,CAAW1M,EAAIC,EAAIkN,EAAKf,EAAUV,GAC9B,IAAIG,EAASH,EAAUyB,GAAK9sC,EAAI+rC,EAASe,GAAK9sC,EAC1CyrC,EAASJ,EAAUyB,GAAKlqC,EAAImpC,EAASe,GAAKlqC,EAC9C,GAAe,IAAX4oC,GAA2B,IAAXC,EACpB,IAAI,IAAI1sC,EAAI4gC,EAAI5gC,GAAK6gC,EAAI7gC,IAAQA,IAAM+tC,IACnCzB,EAAUtsC,GAAGiB,GAAKwrC,EAClBH,EAAUtsC,GAAG6D,GAAK6oC,EAE1B,CACA,oBAAAlJ,CAAqBvnD,EAAK7Z,GACtB,IAAIwqB,EAAYC,EAChB,GAAIzqB,EAAM8qB,oBAAqB,CAC3B,IAAIy7B,EAAM1sC,EACN0sC,GAAOvmD,EAAM8qB,oBAAoBH,WAAU47B,EAAMvmD,EAAM8qB,oBAAoBH,SAAW,GACxE3qB,EAAM8qB,oBAAoBP,cACzCC,WAAYA,EAAYC,WAAYA,GAAezqB,EAAM8qB,oBAAoBF,QAAQ27B,GAC5F,MACI/7B,EAAa,EACbC,EAAa5Q,EAEjB,OAAOxd,KAAK29D,SAASh6D,EAAMwY,mBAAoBgS,EAAYC,EAC/D,CAGA,QAAAuvC,CAAS4R,EAAWphD,EAAYC,GAC5B,GAAID,GAAcohD,EAAUt2D,kBAAkB7Z,OAAQ,OAAO,EAC7D,IAAIowE,EAAUD,EAAUt2D,kBAAkBkV,GAC1C,GAAIC,GAAcohD,EAAQ32D,UAAUzZ,OAAQ,OAAO,EACnD,IAAIqwE,EAAWD,EAAQ32D,UAAUuV,GAC7Bs8C,EAAc1qE,KAAK2qE,eAAe4E,EAAWphD,GAC7CuhD,EAAgB,EACpB,IAAI,IAAIC,EAAS,EAAGA,EAASH,EAAQj3D,iBAAkBo3D,IAASD,GAAiBD,EAASj3D,OAAOm3D,GAAUjF,EAAYiF,GACvH,OAAOD,CACX,CACA,cAAA/E,CAAe4E,EAAWphD,GACtB,IAAIqhD,EAAUD,EAAUt2D,kBAAkBkV,GAC1C,GAAInuB,KAAK4vE,aAAatvE,IAAIkvE,GAAU,OAAOxvE,KAAK4vE,aAAa5xE,IAAIwxE,GACjE,IAAIriB,EAAmBntD,KAAKmtD,iBACxBud,EAAc,GAElB,IAAI,IAAIiF,EAAS,EAAGA,EAASH,EAAQj3D,iBAAkBo3D,IAAS,CAC5D,IAAIE,EAAS,EACTC,EAAcN,EAAQ52D,cAAc+2D,GACpCI,EAAOR,EAAUx2D,oBAAoBb,iBAAiB43D,GAE1D,IAAI,IAAIrZ,EAAI,EAAGA,EAAIsZ,EAAK3wE,OAAQq3D,IAAI,CAChC,IACIuZ,EADAt3C,EAAOq3C,EAAKtZ,GAIwDuZ,EAApEt3C,EAAK9gB,WAAa8gB,EAAK7gB,WAAa6gB,EAAK7gB,UAAY6gB,EAAK5gB,UACrD4gB,EAAK9gB,WAAa,GAAK8gB,EAAK5gB,SAAW,GAAwB,IAAnB4gB,EAAK7gB,WAC9B,IAAnB6gB,EAAK7gB,UAFuE,EAG5Es1C,EAAiBsJ,GAAK/9B,EAAK9gB,YAAcu1C,EAAiBsJ,GAAK/9B,EAAK5gB,SAAuB,EAE5Fq1C,EAAiBsJ,KAAO/9B,EAAK7gB,UAAwB,EAChDs1C,EAAiBsJ,GAAK/9B,EAAK7gB,WAAyBs1C,EAAiBsJ,GAAK/9B,EAAK9gB,WAAavH,OAAOu8D,UAAYl0C,EAAK7gB,UAAY6gB,EAAK9gB,WAAavH,OAAOu8D,UAC/Il0C,EAAK5gB,SAAWq1C,EAAiBsJ,GAAKpmD,OAAOu8D,UAAYl0C,EAAK5gB,SAAW4gB,EAAK7gB,UAAYxH,OAAOu8D,SAGxHiD,GAAUG,CACd,CACAtF,EAAYiF,GAAUE,CAC1B,CAEA,OADA7vE,KAAK4vE,aAAa3xE,IAAIuxE,EAAS9E,GACxBA,CACX,CACA,WAAAl7D,CAAYlQ,EAAMgsD,GACdtrD,KAAKV,KAAOA,EACZU,KAAKmtD,iBAAmBntD,KAAK0sE,gBAAgBphB,GAC7CtrD,KAAK4vE,aAAe,IAAIzvE,GAC5B,EAMmC8vE,QAAQC,UAC/C,MAAMC,GACF,YAAAC,CAAa/yD,GAMT,MALqB,iBAAVA,IAAoBA,EAAQA,EAAM+lB,IAClB,MAAvBpjC,KAAKkI,QAAQmV,KACbrd,KAAK2U,OAAO3V,KAAKqe,GACjBrd,KAAKkI,QAAQmV,GAASrd,KAAK2U,OAAOvV,OAAS,GAExCY,KAAKkI,QAAQmV,EACxB,CACA,WAAA7N,CAAYlQ,GACRU,KAAKV,KAAOA,EACZU,KAAK2U,OAAS,GACd3U,KAAKkI,QAAU,CAAC,EAEhBlI,KAAKowE,aAAa,EACtB,EAcJ,MAAMC,GACF,WAAOjmE,CAAKH,GACR,OAAOA,GAAO,GAAKA,GAAO,IAAM,EAAI,CACxC,CACA,aAAOmF,CAAOzF,EAAQ7J,GACdA,GAAS,GAAKA,GAAS,IAAK6J,EAAO4F,WAAWzP,GAC7C6J,EAAO4G,aAAazQ,EAC7B,EAEJ,IAAIwwE,GAA6B,IAAI,KAAc,CAC/C7K,iBAAkB,KAClBhhE,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNiiE,iBAAkB,IAAI,KAAa,KAAe,oBAClDh5D,aAAc,IAAI,KAAa,KAAc,MAC7CxJ,MAAO,IAAI,KAAa,KAAc,GACtCksE,QAAS,IAAI,KAAaF,GAA6B,GACvDG,QAAS,IAAI,KAAaH,GAA6B,KAE3D,MAAMI,GACF,YAAAC,CAAavN,EAAMt1D,EAAe,IAC9B,IAAIg5D,EAAmB,GACnB0J,EAAU,GACVC,EAAU,GACVnsE,EAAQ,GACRkiE,EAAO,EACPoK,EAAQ,EAAGC,EAAQ,EAAGC,EAAW,EACjCC,EAAa,EACjB,IAAI,IAAI3xE,EAAI,EAAGA,EAAIgkE,EAAK5B,SAASniE,OAAQD,IAAI,CACzC,IAAI4jC,EAAIogC,EAAK5B,SAASpiE,GACtB,IAAI,IAAIs3D,EAAI,EAAGA,EAAI1zB,EAAE1iC,KAAKjB,OAAQq3D,GAAK,EAAE,CACrC,IAAIj0B,EAAIO,EAAE1iC,KAAKo2D,GACXrxB,EAAIrC,EAAE1iC,KAAKo2D,EAAI,GACfsQ,EAAO,EAIX,GAAkB,qBAAdhkC,EAAE0+B,SAAwC,IAANhL,EAAS,CAC7C,IAAIzM,EAAOmZ,EAAK5B,SAASpiE,EAAI,GAC7B,GAAI6qD,GAAyB,qBAAjBA,EAAKyX,QAAgC,CAC7C,IAAIyG,GAAQyI,EAAQ3mB,EAAK3pD,KAAK,IAAM,EAChC8nE,GAAQyI,EAAQ5mB,EAAK3pD,KAAK,IAAM,EACpC,GAAImiC,IAAM0lC,GAAQ9iC,IAAM+iC,EAAM,QAClC,CACJ,CAEoB,qBAAdplC,EAAE0+B,SAAwC,IAANhL,IAAUsQ,GAtD7B,GAuDvBA,EAAO/mE,KAAK+wE,aAAavuC,EAAGmuC,EAAOJ,EAASxJ,EAtDf,EAGR,IAoDrBA,EAAO/mE,KAAK+wE,aAAa3rC,EAAGwrC,EAAOJ,EAASzJ,EAtDf,EAGR,IAoDjBA,IAAS8J,GAAYtK,EAAO,KAC5BliE,EAAMA,EAAMjF,OAAS,IAvDJ,EAwDjBmnE,MAEIA,EAAO,IACPliE,EAAMrF,KAAKunE,GACXA,EAAO,GAEXliE,EAAMrF,KAAK+nE,GACX8J,EAAW9J,GAEf4J,EAAQnuC,EACRouC,EAAQxrC,EACR0rC,GACJ,CACkB,cAAd/tC,EAAE0+B,SAAyBoF,EAAiB7nE,KAAK8xE,EAAa,EACtE,CAEI3N,EAAK5B,SAASniE,OAAS,GAAyD,cAApD+jE,EAAK5B,SAAS4B,EAAK5B,SAASniE,OAAS,GAAGqiE,SAAyBoF,EAAiB7nE,KAAK8xE,EAAa,GACpI,IAAIzhC,EAAO8zB,EAAK9zB,KACZjR,EAAO,CACPqnC,iBAAkBoB,EAAiBznE,OACnCqF,KAAM4qC,EAAK9K,KACX7/B,KAAM2qC,EAAKtK,KACXpgC,KAAM0qC,EAAKvK,KACXlgC,KAAMyqC,EAAKrK,KACX6hC,iBAAkBA,EAClBh5D,aAAcA,EACdxJ,MAAOA,EACPksE,QAASA,EACTC,QAASA,GAETpmE,EAAOkmE,GAA2BlmE,KAAKg0B,GACvCwE,EAAO,EAAIx4B,EAAO,EAClBT,EAAS,IAAI,KAAoBS,EAAOw4B,GAI5C,OAHA0tC,GAA2BlhE,OAAOzF,EAAQy0B,GAE7B,IAATwE,GAAYj5B,EAAO27D,KAAK,EAAG1iC,GACxBj5B,EAAO1K,MAClB,CACA,YAAA8xE,CAAajxE,EAAOmkD,EAAM2iB,EAAQG,EAAMiK,EAAWC,GAC/C,IAAIC,EAAOpxE,EAAQmkD,EAUnB,OATInkD,IAAUmkD,EAAM8iB,GAAQkK,IAEnB,KAAOC,GAAQA,GAAQ,MACxBnK,GAAQiK,EACJE,EAAO,EAAGA,GAAQA,EACjBnK,GAAQkK,GAEjBrK,EAAO5nE,KAAKkyE,IAETnK,CACX,EAIJ,MAAMoK,WAAqDhB,GACvD,SAAAiB,CAAU5zD,GACN,IAAIH,EAAQrd,KAAKV,KAAKwkD,SAAStmC,GAC3B4gB,EAAO/gB,EAAMmpD,UAEb6K,EAAYrxE,KAAKV,KAAK4+B,KAAK1wB,QAAQgQ,GACnC8zD,EAAatxE,KAAKV,KAAK4+B,KAAK1wB,QAAQgQ,EAAM,GAC1C7T,EAAS3J,KAAKV,KAAK8mE,gBAAgB,QACvCz8D,EAAOiF,KAAOyiE,EACd,IAAIpyE,EAAS0K,EAAO2T,WAAWg0D,EAAaD,GAE5C,GAAIjzC,GAAQA,EAAKqnC,iBAAmB,EAAG,CACnCxmE,EAAS,IAAIsJ,WAAWtJ,GACxB,IAAIsyE,EAAO,IAAIC,SAASvyE,EAAOA,QAC/B,IAAK,IAAIutD,KAAapuB,EAAKve,WACvBrC,EAAMxd,KAAKowE,aAAa5jB,EAAUvrD,SAClCswE,EAAKE,UAAUjlB,EAAU59C,IAAK4O,EAEtC,MAAW4gB,GAAQp+B,KAAKV,KAAK4tD,sBAC7BjuD,EAASe,KAAK0xE,aAAahB,aAAarzD,EAAM8lD,KAAM/kC,EAAKvwB,eAQzD,OAPA7N,KAAKo+B,KAAKp/B,KAAKC,GACfe,KAAKk+B,KAAK1wB,QAAQxO,KAAKgB,KAAKiP,QAC5BjP,KAAK+9B,KAAK53B,QAAQnH,KAAK,CACnBgH,QAASqX,EAAM8xB,aACflpC,QAASoX,EAAMqnD,cAAcE,cAEjC5kE,KAAKiP,QAAUhQ,EAAOG,OACfY,KAAKo+B,KAAKh/B,OAAS,CAC9B,CACA,MAAAgQ,GAMIpP,KAAKo+B,KAAO,GACZp+B,KAAKiP,OAAS,EACdjP,KAAKk+B,KAAO,CACR1wB,QAAS,GACT1J,QAAS9D,KAAKV,KAAK4+B,KAAKp6B,SAE5B9D,KAAK+9B,KAAO,CACR53B,QAAS,GACTG,SAAU,IAKd,IAAInH,EAAI,EACR,KAAMA,EAAIa,KAAK2U,OAAOvV,QAAOY,KAAKoxE,UAAUpxE,KAAK2U,OAAOxV,MACxD,IAAIoH,EAAW,EAAcvG,KAAKV,KAAKiH,MACvCA,EAAKC,UAAYxG,KAAKo+B,KAAKh/B,OAC3BY,KAAKk+B,KAAK1wB,QAAQxO,KAAKgB,KAAKiP,QAC5B,IAAI6uB,EAAW,EAAc99B,KAAKV,KAAKw+B,MACvCA,EAAK94B,iBAAmBhF,KAAKk+B,KAAKp6B,QAClC,IAAIuC,EAAW,EAAcrG,KAAKV,KAAK+G,MAwBvC,OAvBAA,EAAKP,gBAAkB9F,KAAK+9B,KAAK53B,QAAQ/G,OAuB9BuhC,GAA0CgxC,SAAS,CAC1D3tE,OAAQ,CACJ85B,KAAMA,EACNz3B,KAAMA,EACN63B,KAAMl+B,KAAKk+B,KACX33B,KAAMA,EACN,OAAQvG,KAAKV,KAAK,QAClB6+B,KAAMn+B,KAAKV,KAAK6+B,KAChBC,KAAMp+B,KAAKo+B,KACXL,KAAM/9B,KAAK+9B,KACXE,KAAMj+B,KAAKV,KAAK2+B,OAG5B,CACA,WAAAzuB,CAAYlQ,GACRyS,MAAMzS,GACNU,KAAK0xE,aAAe,IAAQjB,EAChC,EAQJ,MAAMmB,WAAqDzB,GACvD,iBAAA0B,GACI7xE,KAAK8xE,YAAc,GACnB,IAAI/I,EAAS,CAAC,EACd,IAAK,IAAIvrD,KAAOxd,KAAK2U,OAAO,CACxB3U,KAAK8xE,YAAY9yE,KAAKgB,KAAKuoE,IAAInrD,cAAcI,IAC7C,IAAIH,EAAQrd,KAAKV,KAAKwkD,SAAStmC,GACpBH,EAAM8lD,KACjB,IAAI,IAAIwG,KAAQtsD,EAAMwrD,YAAYE,EAAOY,IAAQ,CACrD,CACA3pE,KAAK+oE,OAAS/oE,KAAK+xE,YAAY/xE,KAAKuoE,IAAI9rD,gBAAiBssD,EAC7D,CACA,WAAAgJ,CAAY7I,EAAO8I,GACf,IAAI7pE,EAAM,GACV,IAAI,IAAIhJ,EAAI,EAAGA,EAAI+pE,EAAM9pE,OAAQD,IAAI,CACjC,IAAIwqE,EAAOT,EAAM/pE,GACb6yE,EAAK7yE,IACLa,KAAKuoE,IAAI5+D,OAAOiF,IAAM+6D,EAAK16D,OAC3B9G,EAAInJ,KAAKgB,KAAKuoE,IAAI5+D,OAAO2T,WAAWqsD,EAAKvqE,UACtC+I,EAAInJ,KAAK,IAAIuJ,WAAW,CAC3B,KAER,CACA,OAAOJ,CACX,CACA,cAAA8pE,CAAev1D,GACXA,EAAQsB,QAAU,GAClBtB,EAAQiB,SAAW,CACf7Z,QAAS,EACT8X,IAAK,IAET,IAAIs2D,EAAW,CAAC,EACZC,EAAa,GACbC,EAAY,CAAC,EACjB,IAAK,IAAI50D,KAAOxd,KAAK2U,OAAO,CACxB,IAAI8G,EAAKzb,KAAKuoE,IAAI7qD,WAAWF,GAC7B,GAAU,MAAN/B,EAAY,SACXy2D,EAASz2D,KACViB,EAAQsB,QAAQhf,KAAKlB,OAAOm4B,OAAO,CAAC,EAAGj2B,KAAKuoE,IAAI7rD,QAAQsB,QAAQvC,KAChE02D,EAAWnzE,KAAK,CAAC,GACjBozE,EAAU32D,GAAMiB,EAAQsB,QAAQ5e,OAAS,GAE7C8yE,EAASz2D,IAAM,EACfiB,EAAQiB,SAAS/B,IAAI5c,KAAKozE,EAAU32D,IACpC,IAAI4B,EAAQrd,KAAKV,KAAKwkD,SAAStmC,GACpBH,EAAM8lD,KACjB,IAAI,IAAIwG,KAAQtsD,EAAMyrD,WAAWqJ,EAAWC,EAAU32D,IAAKkuD,IAAQ,CACvE,CACA,IAAI,IAAIxqE,EAAI,EAAGA,EAAIud,EAAQsB,QAAQ5e,OAAQD,IAAI,CAC3C,IAAIiS,EAAOsL,EAAQsB,QAAQ7e,UACpBiS,EAAKihE,SACRjhE,EAAK6M,SAAW7M,EAAK6M,QAAQkrD,QAC7B/3D,EAAK6M,QAAUngB,OAAOm4B,OAAO,CAAC,EAAG7kB,EAAK6M,SACtC7M,EAAK6M,QAAQkrD,MAAQnpE,KAAK+xE,YAAY3gE,EAAK6M,QAAQkrD,MAAOgJ,EAAWhzE,IAE7E,CAEJ,CACA,iBAAAmzE,CAAkB51D,GACd,IAAIy1D,EAAa,CAAC,EAClB,IAAK,IAAI30D,KAAOxd,KAAK2U,OAAO,CACxB,IAAI0I,EAAQrd,KAAKV,KAAKwkD,SAAStmC,GACpBH,EAAM8lD,KACjB,IAAI,IAAIwG,KAAQtsD,EAAMyrD,WAAWqJ,EAAWxI,IAAQ,CACxD,CACA,IAAIV,EAAcnrE,OAAOm4B,OAAO,CAAC,EAAGj2B,KAAKuoE,IAAI7rD,QAAQuB,SAOrD,OANIje,KAAKuoE,IAAI7rD,QAAQuB,SAAWje,KAAKuoE,IAAI7rD,QAAQuB,QAAQkrD,QAAOF,EAAYE,MAAQnpE,KAAK+xE,YAAY/xE,KAAKuoE,IAAI7rD,QAAQuB,QAAQkrD,MAAOgJ,IACrIz1D,EAAQsB,QAAU,CACd,CACIC,QAASgrD,IAGVvsD,EAAQiB,SAAW,CACtB7Z,QAAS,EACToX,QAAS,EACTC,OAAQ,CACJ,CACIP,MAAO,EACPa,GAAI,IAGZI,SAAU7b,KAAK8xE,YAAY1yE,OAEnC,CACA,SAAAmzE,CAAU3pE,GACN,OAAKA,GACA5I,KAAKmmD,UAASnmD,KAAKmmD,QAAU,IAClCnmD,KAAKmmD,QAAQnnD,KAAK4J,GACP0J,GAA0ClT,OAASY,KAAKmmD,QAAQ/mD,OAAS,GAHhE,IAIxB,CACA,MAAAgQ,GACIpP,KAAK6xE,oBACL,IAAIp0D,EAAU,CACV3Z,QAAS9D,KAAK8xE,YAAY1yE,OAAS,IAAM,EAAI,EAC7C+b,OAAQ,CACJ,CACIP,MAAO,EACPC,MAAO7a,KAAK8xE,YAAY1yE,OAAS,KAIzCsd,EAAU5e,OAAOm4B,OAAO,CAAC,EAAGj2B,KAAKuoE,IAAI7rD,SACzCA,EAAQuB,QAAU,KAClBvB,EAAQe,QAAUA,EAClBf,EAAQ81D,SAAW,KACnB91D,EAAQnB,YAAcvb,KAAK8xE,YAC3B,IAAK,IAAIlyE,IAAO,CACZ,UACA,SACA,YACA,WACA,aACA,SACA,aACA,eACA,YACF8c,EAAQ9c,GAAOI,KAAKuyE,UAAUvyE,KAAKuoE,IAAI3/D,OAAO8T,EAAQ9c,KACxD8c,EAAQI,IAAM,CACV9c,KAAKuyE,UAAU,SACfvyE,KAAKuyE,UAAU,YACf,GAEJ71D,EAAQ+1D,SAAWzyE,KAAK8xE,YAAY1yE,OAChCY,KAAKuoE,IAAI1rD,UAAW7c,KAAKiyE,eAAev1D,GACvC1c,KAAKsyE,kBAAkB51D,GAC5B,IAAIE,EAAM,CACN9Y,QAAS,EACTwK,QAAStO,KAAKuoE,IAAIj6D,QAClBI,QAAS,EACTpE,OAAQtK,KAAKuoE,IAAIj+D,OACjBgS,UAAW,CACPtc,KAAKuoE,IAAIrpE,gBAEbqd,aAAc,CACVG,GAEJF,YAAaxc,KAAKmmD,QAClB1pC,gBAAiBzc,KAAK+oE,QAE1B,OAAW1sD,GAA0Cs1D,SAAS/0D,EAClE,CACA,WAAApN,CAAYlQ,GAGR,GAFAyS,MAAMzS,GACNU,KAAKuoE,IAAMvoE,KAAKV,KAAK,SAChBU,KAAKuoE,IAAK,MAAM,IAAI/oE,MAAM,iBACnC,EAMJ,MAAMkzE,GACF,YAAOrzE,CAAMJ,GACT,IAAIF,EAAaiiC,GAA2Cx4B,OAAOvJ,EAAO4hD,MAAM,EAAG,IACnF,MAAkB,SAAX9hD,GAAgC,SAAXA,GAAqBA,IAAWsnD,OAAO8e,aAAa,EAAG,EAAG,EAAG,EAC7F,CACA,kBAAAwN,CAAmBlzE,EAAO,MACtBO,KAAK4yE,gBAAkBnzE,CAC3B,CACA,SAAAozE,CAAUlvE,GACN,KAAMA,EAAMuF,OAAOlJ,KAAK8yE,SAAU,IAC9B9yE,KAAK8yE,QAAQnvE,EAAMuF,KAAOlJ,KAAK+yE,aAAapvE,EAChD,CAAE,MAAOjG,GACDe,IACAu0E,QAAQC,MAAM,wBAAwBtvE,EAAMuF,OAC5C8pE,QAAQC,MAAMv1E,EAAEunD,OAExB,CACA,OAAOjlD,KAAK8yE,QAAQnvE,EAAMuF,IAC9B,CACA,eAAAk9D,CAAgBl9D,GACZ,IAAIvF,EAAQ3D,KAAK4nE,UAAU5jE,OAAOkF,GAClC,OAAIvF,GACA3D,KAAK2J,OAAOiF,IAAMjL,EAAMsL,OACjBjP,KAAK2J,QAET,IACX,CACA,gBAAAupE,GACI,OAAOlzE,KAAK4nE,UAAgBjnC,GAA0Cn4B,OAAOxI,KAAK2J,OAAQ,CACtFsH,aAAc,GAEtB,CACA,YAAA8hE,CAAapvE,GACT,IAAIiL,EAAM5O,KAAK2J,OAAOiF,IAClBjF,EAAS3J,KAAKomE,gBAAgBziE,EAAMuF,KACpC3I,EAAaq9B,GAA0Cj6B,EAAMuF,KAAKV,OAAOmB,EAAQ3J,KAAM2D,EAAMvE,QAEjG,OADAY,KAAK2J,OAAOiF,IAAMA,EACXrO,CACX,CAKE,OAAA4yE,CAAQvzE,EAAKH,EAAOO,KAAK4yE,iBAAmBh0E,GAC1C,IAAIgL,EAAS5J,KAAKk1B,MAAQl1B,KAAKk1B,KAAK7rB,QAAQzJ,GAC5C,OAAIgK,IACGA,EAAOnK,IAASmK,EAAO5J,KAAK4yE,kBAAoBhpE,EAAOhL,IAA8CgL,EAAW,IAAKA,EAAO9L,OAAOgoD,KAAKl8C,GAAQ,MAEhJ,IACX,CAIE,kBAAI1K,GACF,OAAOc,KAAKmzE,QAAQ,iBACxB,CAIE,YAAIn2D,GACF,OAAOhd,KAAKmzE,QAAQ,WACxB,CAIE,cAAIj2D,GACF,OAAOld,KAAKmzE,QAAQ,aACxB,CAIE,iBAAIC,GACF,OAAOpzE,KAAKmzE,QAAQ,gBACxB,CAIE,aAAIE,GACF,OAAOrzE,KAAKmzE,QAAQ,YACxB,CAIE,WAAIrvE,GACF,OAAO9D,KAAKmzE,QAAQ,UACxB,CAIE,UAAIhuE,GACF,OAAOnF,KAAKqG,KAAKlB,MACrB,CAIE,WAAIC,GACF,OAAOpF,KAAKqG,KAAKjB,OACrB,CAIE,WAAIC,GACF,OAAOrF,KAAKqG,KAAKhB,OACrB,CAIE,qBAAIyH,GACF,OAAO9M,KAAKg+B,KAAKlxB,iBACrB,CAIE,sBAAIC,GACF,OAAO/M,KAAKg+B,KAAKjxB,kBACrB,CAIE,eAAIF,GACF,OAAO7M,KAAKg+B,KAAKnxB,WACrB,CAKE,aAAIV,GACF,IAAI24D,EAAM9kE,KAAK,QACf,OAAO8kE,EAAMA,EAAI34D,UAAYnM,KAAKmF,MACtC,CAKE,WAAI+G,GACF,IAAI44D,EAAM9kE,KAAK,QACf,OAAO8kE,EAAMA,EAAI54D,QAAU,CAC/B,CAIE,aAAI1F,GACF,OAAOxG,KAAKuG,KAAKC,SACrB,CAIE,cAAIlC,GACF,OAAOtE,KAAK89B,KAAKx5B,UACrB,CAIE,QAAI+qC,GACF,OAAOvxC,OAAOgkE,OAAO,IAAQ58B,GAA0CllC,KAAK89B,KAAKr5B,KAAMzE,KAAK89B,KAAKp5B,KAAM1E,KAAK89B,KAAKn5B,KAAM3E,KAAK89B,KAAKl5B,MACrI,CACA,kBAAIwhD,GACA,OAAO,IAAQxkB,GAA0C5hC,KAAK69B,KAClE,CAIE,gBAAIy1C,GACF,OAAOtzE,KAAKomD,eAAe1jB,iBAC/B,CAME,oBAAAyrB,CAAqBlpB,GACnB,QAASjlC,KAAKomD,eAAerkB,OAAOkD,EACxC,CAOE,iBAAAsrB,CAAkBtrB,GAChB,OAAOjlC,KAAK8jD,SAAS9jD,KAAKomD,eAAerkB,OAAOkD,GAAY,CACxDA,GAER,CASE,eAAAm7B,CAAgBx3D,GACd,IAAI+L,EAAS,GACTnD,EAAM5I,EAAOxJ,OACb8qD,EAAM,EACNjG,GAAQ,EACR7B,GAAS,EACb,KAAM8H,GAAO14C,GAAI,CACb,IAAIk+B,EAAO,EACP6jC,EAAY,EAChB,GAAIrpB,EAAM14C,EAAK,CAGX,GADAk+B,EAAO9mC,EAAOR,WAAW8hD,KACrB,OAAUxa,GAAQA,GAAQ,OAAUwa,EAAM14C,EAAK,CAC/C,IAAIw4C,EAAOphD,EAAOR,WAAW8hD,GACzB,OAAUF,GAAQA,GAAQ,QAC1BE,IACAxa,IAAgB,KAAPA,IAAiB,KAAc,KAAPsa,GAAgB,MAEzD,CAEAupB,EAAY,OAAU7jC,GAAQA,GAAQ,OAAU,QAAWA,GAAQA,GAAQ,OAAU,EAAI,CAC7F,MAAOwa,IACO,IAAV9H,GAA6B,IAAdmxB,EACnB5+D,EAAO3V,KAAKgB,KAAK8jD,SAAS9jD,KAAKomD,eAAerkB,OAAOkiB,EAAMvU,GAAO,CAC9DuU,EACAvU,KAEe,IAAV0S,GAA6B,IAAdmxB,GACxB5+D,EAAO3V,KAAKgB,KAAKuwD,kBAAkBtM,IACnCA,EAAOvU,EACP0S,EAAQmxB,CACZ,CACA,OAAO5+D,CACX,CACA,iBAAImhD,GACA,OAAO,IAAQmK,GAA0CjgE,KAC7D,CAUE,MAAAkgE,CAAOt3D,EAAQw/C,EAAcj1C,EAAQpR,EAAUutC,GAC7C,OAAOtvC,KAAK81D,cAAcoK,OAAOt3D,EAAQw/C,EAAcj1C,EAAQpR,EAAUutC,EAC7E,CAIE,eAAA0W,CAAgBxoC,GACd,OAAOxd,KAAK81D,cAAc9P,gBAAgBxoC,EAC9C,CAQE,qBAAIg2D,GACF,OAAOxzE,KAAK81D,cAAcjQ,sBAC9B,CACA,oBAAAA,CAAqB1yC,EAAQpR,GACzB,OAAO/B,KAAK81D,cAAcjQ,qBAAqB1yC,EAAQpR,EAC3D,CACA,aAAAwqE,CAAclvD,EAAO2/C,EAAa,IAK9B,OAJKh9D,KAAKyzE,QAAQp2D,KACVrd,KAAK4nE,UAAU5jE,OAAOo6B,KAAMp+B,KAAKyzE,QAAQp2D,GAAS,IAAQ6oD,GAA0C7oD,EAAO2/C,EAAYh9D,OAClHA,KAAK4nE,UAAU5jE,OAAO,SAAWhE,KAAK4nE,UAAU5jE,OAAOqkE,QAAMroE,KAAKyzE,QAAQp2D,GAAS,IAAQ+qD,GAA0C/qD,EAAO2/C,EAAYh9D,QAE9JA,KAAKyzE,QAAQp2D,IAAU,IAClC,CASE,QAAAymC,CAASzmC,EAAO2/C,EAAa,IAM3B,OALKh9D,KAAKyzE,QAAQp2D,KACVrd,KAAK4nE,UAAU5jE,OAAOw6B,KAAMx+B,KAAKyzE,QAAQp2D,GAAS,IAAQquD,GAA0CruD,EAAO2/C,EAAYh9D,MAClHA,KAAK4nE,UAAU5jE,OAAOy6B,MAAQz+B,KAAK4nE,UAAU5jE,OAAO06B,KAAM1+B,KAAKyzE,QAAQp2D,GAAS,IAAQ4uD,GAA0C5uD,EAAO2/C,EAAYh9D,MACzJA,KAAKusE,cAAclvD,EAAO2/C,IAE5Bh9D,KAAKyzE,QAAQp2D,IAAU,IAClC,CAIE,YAAAq2D,GACE,OAAI1zE,KAAK4nE,UAAU5jE,OAAO,QAAgB,IAAQ4tE,GAA0C5xE,MACrF,IAAQmxE,GAA0CnxE,KAC7D,CAOE,iBAAI2zE,GACF,IAAIxrE,EAAM,CAAC,EACX,IAAKnI,KAAK4/B,KAAM,OAAOz3B,EACvB,IAAK,IAAIuwB,KAAQ14B,KAAK4/B,KAAKlH,KAAKvwB,EAAIuwB,EAAKb,QAAQ+7C,QAAU,CACvD1+C,KAAMwD,EAAKxD,KAAK/qB,GAChB22B,IAAKpI,EAAKZ,SACVv5B,QAASm6B,EAAKX,aACd11B,IAAKq2B,EAAKV,UAEd,OAAO7vB,CACX,CAOE,mBAAI0rE,GACF,IAAI1rE,EAAM,CAAC,EACX,IAAKnI,KAAK4/B,KAAM,OAAOz3B,EACvB,IAAK,IAAIwwB,KAAY34B,KAAK4/B,KAAKjH,SAAS,CACpC,IAAIm7C,EAAW,CAAC,EAChB,IAAI,IAAI30E,EAAI,EAAGA,EAAIa,KAAK4/B,KAAKlH,KAAKt5B,OAAQD,IAAI,CAE1C20E,EADW9zE,KAAK4/B,KAAKlH,KAAKv5B,GACZ04B,QAAQ+7C,QAAUj7C,EAAST,MAAM/4B,EACnD,CACAgJ,EAAIwwB,EAASzD,KAAK/qB,IAAM2pE,CAC5B,CACA,OAAO3rE,CACX,CAQE,YAAA4rE,CAAaD,GACX,IAAM9zE,KAAK4nE,UAAU5jE,OAAO47B,QAAS5/B,KAAK4nE,UAAU5jE,OAAO67B,MAAQ7/B,KAAK4nE,UAAU5jE,OAAOo6B,MAAQp+B,KAAK4nE,UAAU5jE,OAAOqkE,MAAQ,MAAM,IAAI7oE,MAAM,2EAE/I,GADwB,iBAAbs0E,IAAuBA,EAAW9zE,KAAK6zE,gBAAgBC,IAC1C,iBAAbA,EAAuB,MAAM,IAAIt0E,MAAM,0EAElD,IAAI8rD,EAAStrD,KAAK4/B,KAAKlH,KAAKjrB,KAAI,CAACirB,EAAMv5B,KACnC,IAAI04B,EAAUa,EAAKb,QAAQ+7C,OAC3B,OAAI/7C,KAAWi8C,EAAiB1xE,KAAKC,IAAIq2B,EAAKZ,SAAU11B,KAAK0+B,IAAIpI,EAAKV,SAAU87C,EAASj8C,KAC7Ea,EAAKX,YAAY,IAE7BpuB,EAAS,IAAI,KAAoB3J,KAAK2J,OAAO1K,QACjD0K,EAAOiF,IAAM5O,KAAKg0E,cAClB,IAAI10E,EAAO,IAAIozE,GAAyC/oE,EAAQ2hD,GAEhE,OADAhsD,EAAKwzE,QAAU9yE,KAAK8yE,QACbxzE,CACX,CACA,uBAAI4tD,GACA,IAAKltD,KAAK4/B,KAAM,OAAO,KACvB,IAAIq0C,EAAkBj0E,KAAKi0E,gBAE3B,OAAKA,GAAoBj0E,KAAKqoE,MACzB4L,IAAiBA,EAAkBj0E,KAAK4/B,KAAKlH,KAAKjrB,KAAKirB,GAAOA,EAAKX,gBACjE,IAAQ00C,GAA0CzsE,KAAMi0E,IAFpB,IAG/C,CAEA,OAAA10E,CAAQ21B,GACJ,OAAOl1B,KAAK+zE,aAAa7+C,EAC7B,CACA,WAAA1lB,CAAY7F,EAAQsqE,EAAkB,OAClC,EAAI,KAAUj0E,KAAM,OAAQ,OAC5BA,KAAK4yE,gBAAkB,KACvB5yE,KAAK2J,OAASA,EACd3J,KAAKi0E,gBAAkBA,EACvBj0E,KAAKg0E,cAAgBh0E,KAAK2J,OAAOiF,IACjC5O,KAAK8yE,QAAU,CAAC,EAChB9yE,KAAKyzE,QAAU,CAAC,EAChBzzE,KAAKkzE,mBAEL,IAAI,IAAIhqE,KAAOlJ,KAAK4nE,UAAU5jE,OAAO,CACjC,IAAIL,EAAQ3D,KAAK4nE,UAAU5jE,OAAOkF,GAC1B00B,GAA0C10B,IAAQvF,EAAMvE,OAAS,GAAGtB,OAAOC,eAAeiC,KAAMkJ,EAAK,CACzGlL,IAAKgC,KAAK6yE,UAAU1tB,KAAKnlD,KAAM2D,IAEvC,CACJ,GAEJ,EAAI,MAAW,CACPjE,GACLgzE,GAAyCzvC,UAAW,OAAQ,OAC/D,EAAI,MAAW,CACPvjC,GACLgzE,GAAyCzvC,UAAW,iBAAkB,OACzE,EAAI,MAAW,CACPvjC,GACLgzE,GAAyCzvC,UAAW,eAAgB,OACvE,EAAI,MAAW,CACPvjC,GACLgzE,GAAyCzvC,UAAW,gBAAiB,OACxE,EAAI,MAAW,CACPvjC,GACLgzE,GAAyCzvC,UAAW,gBAAiB,OACxE,EAAI,MAAW,CACPvjC,GACLgzE,GAAyCzvC,UAAW,kBAAmB,OAC1E,EAAI,MAAW,CACPvjC,GACLgzE,GAAyCzvC,UAAW,sBAAuB,MAO9E,IAAIixC,GAA2C,IAAI,KAAc,CAC7DhrE,IAAK,IAAI,KAAc,GACvB+F,OAAQ,IAAI,KAAe,KAAe,OAAQ,CAC9CrN,KAAM,WAEVuyE,WAAY,KACZ/0E,OAAQ,KACRg1E,aAAc,OAEdC,GAAsC,IAAI,KAAc,CACxDnrE,IAAK,IAAI,KAAc,GACvBorE,OAAQ,KACRl1E,OAAQ,KACRghC,UAAW,KACXl9B,SAAU,IAAI,KAAgB,MAC9BqxE,cAAe,KACfp6D,aAAc,KACdC,aAAc,KACdo6D,WAAY,KACZC,WAAY,KACZC,eAAgB,KAChBC,WAAY,KACZC,WAAY,KACZ5wE,OAAQ,IAAI,KAAakwE,GAA0C,eAEvEG,GAAoC3qE,QAAU,WAC1C,IAAI1F,EAAS,CAAC,EACd,IAAK,IAAIL,KAAS3D,KAAKgE,OAAOA,EAAOL,EAAMuF,KAAOvF,EAClD3D,KAAKgE,OAASA,CAClB,EACA,IAAI6wE,GAA2CR,GA2C/C,MAAMS,WAAqD5O,GACvD,OAAAM,GAEI,OAAOxmE,KAAKwtD,MAAMunB,mBAAmB/0E,KAAKojC,GAC9C,CACA,QAAAkhC,GACI,OAAOtkE,KAAKmjE,KAAK9zB,IACrB,CACA,WAAA7/B,IAAenP,GACX0R,SAAS1R,IACT,EAAI,KAAUL,KAAM,OAAQ,QAChC,EAKJ,MAAMg1E,GAAgC,CAClC,MAAAxsE,CAAQmB,GACJ,IAAIpJ,EAAS,EACTyuE,EAAW,CACX,EACA,EACA,EACA,EACA,GAEJ,IAAI,IAAIvY,EAAI,EAAGA,EAAIuY,EAAS5vE,OAAQq3D,IAAI,CACpC,IACI/mB,EAAO/lC,EAAOgF,YAElB,GAAa,WAATpO,EAAqB,MAAM,IAAIf,MAAM,YAEzC,GADAe,EAASA,GAAU,EAAW,IAAPmvC,EACD,IAAV,IAAPA,GAAoB,OAAOnvC,CACpC,CACA,MAAM,IAAIf,MAAM,sBACpB,GAEJ,IAAIy1E,GAAkC,CAClC,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEAC,GAA4C,IAAI,KAAc,CAC9D7wE,MAAO,KACP8wE,UAAW,IAAI,KAAgB,IAAI,KAAc,IAAKhzE,GAAyB,KAAV,GAAVA,EAAEkC,SAC7D6E,IAAM/G,GAAIA,EAAEgzE,WAAaF,GAA0C,GAAV9yE,EAAEkC,OAC3DjF,OAAQ41E,GACRI,iBAAmBjzE,GAAIA,EAAEkC,QAAU,EAAI,EACvCgxE,YAAclzE,GAAc,SAAVA,EAAE+G,KAA4B,SAAV/G,EAAE+G,IAAwC,IAAvB/G,EAAEizE,iBAAgD,IAAvBjzE,EAAEizE,iBACtFE,gBAAiB,IAAI,KAAgBN,IAAgC7yE,GAAIA,EAAEkzE,gBAE3EE,GAAuC,IAAI,KAAc,CACzDrsE,IAAK,IAAI,KAAc,GACvBorE,OAAQ,KACRl1E,OAAQ,KACRghC,UAAW,KACXl9B,SAAU,IAAI,KAAgB,MAC9BqxE,cAAe,KACfiB,oBAAqB,KACrBr7D,aAAc,KACdC,aAAc,KACdo6D,WAAY,KACZC,WAAY,KACZC,eAAgB,KAChBC,WAAY,KACZC,WAAY,KACZ5wE,OAAQ,IAAI,KAAakxE,GAA2C,eAExEK,GAAqC7rE,QAAU,WAC3C,IAAI1F,EAAS,CAAC,EACd,IAAI,IAAI7E,EAAI,EAAGA,EAAIa,KAAKgE,OAAO5E,OAAQD,IAAI,CACvC,IAAIwE,EAAQ3D,KAAKgE,OAAO7E,GACxB6E,EAAOL,EAAMuF,KAAOvF,CACxB,CACA,OAAO3D,KAAKgE,OAASA,CACzB,EACA,IAAIyxE,GAA2CF,GA+E/C,MAAMG,GACF,MAAAltE,CAAOmB,EAAQvD,GACX,OAAO,IAAI,KAAoBpG,KAAK21E,KAAKntE,OAAOmB,EAAQvD,GAC5D,CACA,WAAAoJ,CAAYpQ,GACRY,KAAKZ,OAASA,EACdY,KAAK21E,KAAO,IAAI,KAAcv2E,EAClC,EAGJ,IAAIw2E,GAAkC,IAAI,KAAc,CACpD9xE,QAAS,KACT0C,UAAW,KACXqvE,YAAa,KACbC,mBAAoB,KACpBC,kBAAmB,KACnBC,eAAgB,KAChBC,gBAAiB,KACjBC,oBAAqB,KACrBC,eAAgB,KAChBC,sBAAuB,KACvBC,UAAW,IAAIX,GAAgC,sBAC/CjI,QAAS,IAAIiI,GAAgC,qBAC7CrxE,MAAO,IAAIqxE,GAAgC,kBAC3C/gE,OAAQ,IAAI+gE,GAAgC,mBAC5CY,WAAY,IAAIZ,GAAgC,uBAChDa,OAAQ,IAAIb,GAAgC,kBAC5C7nE,aAAc,IAAI6nE,GAAgC,2BAEtD,MAAMc,GAAkC,IAClCC,GAA4C,IAC5CC,GAA4C,IAC5CC,GAAsC,IAC5C,SAASC,GAAoCjtE,GACzC,IAAI+lC,EAAO/lC,EAAOgF,YAClB,OAAI+gC,IAAS8mC,GAAwC7sE,EAAO6E,eACxDkhC,IAASgnC,GAAkD/sE,EAAOgF,YAAcgoE,GAChFjnC,IAAS+mC,GAAkD9sE,EAAOgF,YAAoD,EAAtCgoE,GAC7EjnC,CACX,CACA,SAASmnC,GAA+B9P,EAAM+P,GAC1C,OAAc,EAAP/P,EAAW+P,GAAWA,CACjC,CACA,SAASC,GAAoC1yE,EAAOsQ,EAAQ84D,GACxD,IAAIroC,EACA5C,EAAI4C,EAAI,EACRj9B,EAAM,GACV,IAAI,IAAIhJ,EAAI,EAAGA,EAAIsuE,EAAStuE,IAAI,CAC5B,IAAI2mE,EAAK,EAAGC,EAAK,EACbgB,EAAO1iE,EAAMsK,YACbg3D,IAAYoB,GAAQ,GAExB,GADAA,GAAQ,IACJA,EAAO,GACPjB,EAAK,EACLC,EAAK8Q,GAA+B9P,IAAe,GAAPA,IAAc,GAAKpyD,EAAOhG,kBACnE,GAAIo4D,EAAO,GACdjB,EAAK+Q,GAA+B9P,IAAQA,EAAO,GAAK,KAAO,GAAKpyD,EAAOhG,aAC3Eo3D,EAAK,OACF,GAAIgB,EAAO,GAAI,CAGlBjB,EAAK+Q,GAA+B9P,EAAM,GAAU,IAFhDiQ,EAAKjQ,EAAO,OACZsE,EAAK12D,EAAOhG,cACmD,IACnEo3D,EAAK8Q,GAA+B9P,GAAQ,EAAG,IAAW,GAALiQ,IAAc,IAAW,GAAL3L,GAC7E,MAAO,GAAItE,EAAO,IAAK,CACnB,IAAIiQ,EACJlR,EAAK+Q,GAA+B9P,EAAM,IADtCiQ,EAAKjQ,EAAO,IACoC,IAAM,GAAKpyD,EAAOhG,aACtEo3D,EAAK8Q,GAA+B9P,GAAQ,EAAG,GAAKiQ,EAAK,IAAM,GAAK,GAAKriE,EAAOhG,YACpF,MAAO,GAAIo4D,EAAO,IAAK,CACnB,IAAIsE,EAAK12D,EAAOhG,YAChB,IAAIsoE,EAAKtiE,EAAOhG,YAChBm3D,EAAK+Q,GAA+B9P,GAAOsE,GAAM,IAAM4L,GAAM,IAC7DlR,EAAK8Q,GAA+B9P,GAAQ,IAAU,GAALkQ,IAAc,GAAKtiE,EAAOhG,YAC/E,MACIm3D,EAAK+Q,GAA+B9P,EAAMpyD,EAAOnG,gBACjDu3D,EAAK8Q,GAA+B9P,GAAQ,EAAGpyD,EAAOnG,gBAE1Dg0B,GAAKsjC,EACL1gC,GAAK2gC,EACL59D,EAAInJ,KAAK,IAAQ0mE,GAA2CC,GAAS,EAAOnjC,EAAG4C,GACnF,CACA,OAAOj9B,CACX,CASA,IAAI+uE,GAAkC,IAAI,KAAuB,KAAe,CAC5E,MAAY,CACRC,SAAU,KACV3pE,QAAS,IAAI,KAAa,KAAe,aAE7C,OAAY,CACR2pE,SAAU,KACV3pE,QAAS,IAAI,KAAa,KAAe,YACzC4pE,QAAS,KACTC,WAAY,KACZC,WAAY,QAqCpB,IAAIC,GAAkC,IAAI,KAAc,MAKpDC,IAJkC,IAAI,KAAc,CACpDhmE,IAAK,KACLimE,IAAK,IAAI,KAAc,SAEK,IAAI,KAAc,CAC9Cr0C,GAAI,KACJs0C,WAAY,KACZC,KAAM,KACNC,WAAY,KACZC,OAAQ,QAERC,GAA6B,IAAI,KAAc,CAC/C5iD,KAAM,IAAI,KAAc,GACxB6iD,aAAc,KACdC,QAAS,IAAI,KAAe,KAAe,IAAI,KAAaR,IAA4Br1E,GAAIA,EAAE41E,aAAe,IAAI,CAC7Gn2E,KAAM,aAGVq2E,GAAiC,IAAI,KAAc,CACnD74E,OAAQ,KACR84E,MAAO,IAAI,KAAaJ,IAA6B31E,GAAIA,EAAE/C,OAAS,MAEpE+4E,GAAiC,IAAI,KAAc,CACnDj1E,SAAU,IAAI,KAAgB,KAAc,IAC5Ck1E,SAAU,IAAI,KAAe,KAAeH,IAC5CI,eAAgB,IAAI,KAAe,KAAe,UAElDC,GAAoC,IAAI,KAAc,CACtDV,WAAY,KACZnqE,IAAK,IAAI,KAAe,KAAe0qE,IACvCI,WAAY,KACZC,UAAW,OAkDX95E,EAA8Cg0E,IAC9Ch0E,EAvdJ,cAA2Dg0E,GACvD,YAAOrzE,CAAMJ,GACT,MAAqF,SAA1E+hC,GAA2Cx4B,OAAOvJ,EAAO4hD,MAAM,EAAG,GACjF,CACA,gBAAAqyB,GACIlzE,KAAK4nE,UAAgBiN,GAA0CrsE,OAAOxI,KAAK2J,OAAQ,CAC/EsH,aAAc,GAEtB,CACA,eAAAm1D,CAAgBl9D,GACZ,IAAIvF,EAAQ3D,KAAK4nE,UAAU5jE,OAAOkF,GAClC,GAAIvF,EAAO,CAEP,GADA3D,KAAK2J,OAAOiF,IAAMjL,EAAMsL,OACpBtL,EAAMwwE,WAAaxwE,EAAMvE,OAAQ,CACjCY,KAAK2J,OAAOiF,KAAO,EACnB,IAAI6pE,EAAY,IAAIlwE,WAAW5E,EAAMvE,QACjCq4E,EAAU,EAAoBz3E,KAAK2J,OAAO2T,WAAW3Z,EAAMwwE,WAAa,GAAIsE,GAChF,OAAO,IAAI,KAAoBhB,EACnC,CAAO,OAAOz3E,KAAK2J,MACvB,CACA,OAAO,IACX,CACA,WAAA6F,IAAenP,GACX0R,SAAS1R,IACT,EAAI,KAAUL,KAAM,OAAQ,OAChC,IA+bAtB,EAxSJ,cAA2Dg0E,GACvD,YAAOrzE,CAAMJ,GACT,MAAqF,SAA1E+hC,GAA2Cx4B,OAAOvJ,EAAO4hD,MAAM,EAAG,GACjF,CACA,gBAAAqyB,GACIlzE,KAAK4nE,UAAgB6N,GAA0CjtE,OAAOxI,KAAK2J,QAC3E3J,KAAK04E,SAAW14E,KAAK2J,OAAOiF,GAChC,CACA,WAAA+pE,GAEI,IAAK34E,KAAK44E,cAAe,CACrB54E,KAAK2J,OAAOiF,IAAM5O,KAAK04E,SACvB,IAAIz5E,EAASe,KAAK2J,OAAO2T,WAAWtd,KAAK4nE,UAAU4N,qBAC/CqD,EAAmB,EACvB,IAAI,IAAI3vE,KAAOlJ,KAAK4nE,UAAU5jE,OAAO,CACjC,IAAI+pB,EAAQ/tB,KAAK4nE,UAAU5jE,OAAOkF,GAClC6kB,EAAM9e,OAAS4pE,EACfA,GAA6C,MAAzB9qD,EAAMunD,gBAA0BvnD,EAAMunD,gBAAkBvnD,EAAM3uB,MACtF,CACA,IAAI05E,EAAmB,EAA2B75E,EAAQ45E,GAC1D,IAAKC,EAAc,MAAM,IAAIt5E,MAAM,2CACnCQ,KAAK2J,OAAS,IAAI,KAAoBmvE,GACtC94E,KAAK44E,eAAgB,CACzB,CACJ,CACA,YAAA7F,CAAapvE,GAET,OADA3D,KAAK24E,cACE5mE,MAAMghE,aAAapvE,EAC9B,CAGA,aAAA4oE,CAAclvD,EAAO2/C,EAAa,IAC9B,IAAKh9D,KAAKyzE,QAAQp2D,GACd,OAAIrd,KAAK4nE,UAAU5jE,OAAOo6B,MAAQp+B,KAAK4nE,UAAU5jE,OAAOo6B,KAAKi3C,aACpDr1E,KAAK+0E,oBAAoB/0E,KAAK+4E,sBAC5B/4E,KAAKyzE,QAAQp2D,GAAS,IAAQy3D,GAA0Cz3D,EAAO2/C,EAAYh9D,OACxF+R,MAAMw6D,cAAclvD,EAAO2/C,EAEjD,CACA,mBAAA+b,GACI/4E,KAAK24E,cACL34E,KAAK2J,OAAOiF,IAAM5O,KAAK4nE,UAAU5jE,OAAOo6B,KAAKnvB,OAC7C,IAAItL,EAAQiyE,GAAgCptE,OAAOxI,KAAK2J,QACpDgL,EAAS,GACb,IAAI,IAAI8F,EAAQ,EAAGA,EAAQ9W,EAAM6C,UAAWiU,IAAQ,CAChD,IAAI4C,EAAQ,CAAC,EACTg5D,EAAY1yE,EAAM0yE,UAAUzmE,cAEhC,GADAyN,EAAMooD,iBAAmB4Q,EACrBA,EAAY,EAAG,CACf,IAAI5I,EAAU,GACVuL,EAAc,EAClB,IAAI,IAAI75E,EAAI,EAAGA,EAAIk3E,EAAWl3E,IAAI,CAE9B65E,GADQpC,GAAoCjzE,EAAM8pE,SAElDA,EAAQzuE,KAAKg6E,EACjB,CACA37D,EAAMupD,OAASmQ,GAAoCpzE,EAAMU,MAAOV,EAAMgR,OAAQqkE,GAC9E,IAAI,IAAI75E,EAAI,EAAGA,EAAIk3E,EAAWl3E,IAAIke,EAAMupD,OAAO6G,EAAQtuE,GAAK,GAAGymE,YAAa,EACtDgR,GAAoCjzE,EAAMgR,OACpE,MAAO,GAAI0hE,EAAY,EAAG,CAItB,GAH2BnQ,GAA0CjjC,UAAU0jC,iBAAiB5mE,KAAK,CACjGytD,MAAOxtD,MACRqd,EAAO1Z,EAAM2yE,YAC4BM,GAAoCjzE,EAAMgR,OAC1F,CACAA,EAAO3V,KAAKqe,EAChB,CACArd,KAAK+0E,mBAAqBpgE,CAC9B,CACA,WAAAnF,IAAenP,GACX0R,SAAS1R,IACT,EAAI,KAAUL,KAAM,OAAQ,QAChC,IAiOAtB,EAvHJ,MACI,YAAOW,CAAMJ,GACT,MAAqF,SAA1E+hC,GAA2Cx4B,OAAOvJ,EAAO4hD,MAAM,EAAG,GACjF,CACA,OAAAthD,CAAQ21B,GACJ,IAAK,IAAIjmB,KAAUjP,KAAKsK,OAAOkD,QAAQ,CACnC,IAAI7D,EAAS,IAAI,KAAoB3J,KAAK2J,OAAO1K,QACjD0K,EAAOiF,IAAMK,EACb,IAAI3P,EAAO,IAAQozE,GAA0C/oE,GAC7D,GAAIrK,EAAKJ,iBAAmBg2B,GAAQ51B,EAAKJ,0BAA0BqJ,YAAc2sB,aAAgB3sB,YAAcjJ,EAAKJ,eAAewsD,OAAM,CAAC9tD,EAAGuB,IAAI+1B,EAAK/1B,KAAOvB,IAAI,OAAO0B,CAC5K,CACA,OAAO,IACX,CACA,SAAI25E,GACA,IAAIA,EAAQ,GACZ,IAAK,IAAIhqE,KAAUjP,KAAKsK,OAAOkD,QAAQ,CACnC,IAAI7D,EAAS,IAAI,KAAoB3J,KAAK2J,OAAO1K,QACjD0K,EAAOiF,IAAMK,EACbgqE,EAAMj6E,KAAK,IAAQ0zE,GAA0C/oE,GACjE,CACA,OAAOsvE,CACX,CACA,WAAAzpE,CAAY7F,GAGR,IAFA,EAAI,KAAU3J,KAAM,OAAQ,OAC5BA,KAAK2J,OAASA,EACe,SAAzBA,EAAOuvE,WAAW,GAAe,MAAM,IAAI15E,MAAM,6BACrDQ,KAAKsK,OAAS4sE,GAAgC1uE,OAAOmB,EACzD,IA6FAjL,EApDJ,MACI,YAAOW,CAAMJ,GACT,IAAI0K,EAAS,IAAI,KAAoB1K,GACrC,IACI,IAAIqL,EAASguE,GAAkC9vE,OAAOmB,EAC1D,CAAE,MAAOjM,GACL,OAAO,CACX,CACA,IAAK,IAAIkE,KAAQ0I,EAAOmD,IAAI2qE,SAASF,MACjC,GAAkB,SAAdt2E,EAAKszB,KAAiB,OAAO,EAErC,OAAO,CACX,CACA,OAAA31B,CAAQ21B,GACJ,IAAKl1B,KAAKm5E,KAAM,OAAO,KACvB,IAAK,IAAI7J,KAAOtvE,KAAKm5E,KAAKnB,QAAQ,CAC9B,IAAIppE,EAAM5O,KAAKsK,OAAOstE,WAAatI,EAAIsI,WAAa,EAChDjuE,EAAS,IAAI,KAAoB3J,KAAK2J,OAAO1K,OAAO4hD,MAAMjyC,IAC1DtP,EAAO,IAAQozE,GAA0C/oE,GAC7D,GAAIrK,EAAKJ,iBAAmBg2B,GAAQ51B,EAAKJ,0BAA0BqJ,YAAc2sB,aAAgB3sB,YAAcjJ,EAAKJ,eAAewsD,OAAM,CAAC9tD,EAAGuB,IAAI+1B,EAAK/1B,KAAOvB,IAAI,OAAO0B,CAC5K,CACA,OAAO,IACX,CACA,SAAI25E,GACA,IAAIA,EAAQ,GACZ,IAAK,IAAI3J,KAAOtvE,KAAKm5E,KAAKnB,QAAQ,CAC9B,IAAIppE,EAAM5O,KAAKsK,OAAOstE,WAAatI,EAAIsI,WAAa,EAChDjuE,EAAS,IAAI,KAAoB3J,KAAK2J,OAAO1K,OAAO4hD,MAAMjyC,IAC9DqqE,EAAMj6E,KAAK,IAAQ0zE,GAA0C/oE,GACjE,CACA,OAAOsvE,CACX,CACA,WAAAzpE,CAAY7F,IACR,EAAI,KAAU3J,KAAM,OAAQ,SAC5BA,KAAK2J,OAASA,EACd3J,KAAKsK,OAASguE,GAAkC9vE,OAAOxI,KAAK2J,QAC5D,IAAK,IAAI/H,KAAQ5B,KAAKsK,OAAOmD,IAAI2qE,SAASF,MAAM,CAC5C,IAAK,IAAI5I,KAAO1tE,EAAKo2E,QAAY1I,EAAIoI,YAAc,GAC/C13E,KAAK2J,OAAOiF,IAAM0gE,EAAIoI,WAAa13E,KAAKsK,OAAOmD,IAAI4qE,eACnD/I,EAAIp6C,KAAOqiD,GAAgC/uE,OAAOxI,KAAK2J,SACpD2lE,EAAIp6C,KAAO,KACA,SAAdtzB,EAAKszB,OAAiBl1B,KAAKm5E,KAAOv3E,EAC1C,CACJ,G","sources":["webpack://acura/./node_modules/fontkit/dist/browser-module.mjs"],"sourcesContent":["import {DecodeStream as $6uUbQ$DecodeStream, Struct as $6uUbQ$Struct, String as $6uUbQ$String, uint32 as $6uUbQ$uint32, Pointer as $6uUbQ$Pointer, uint16 as $6uUbQ$uint16, Array as $6uUbQ$Array, VoidPointer as $6uUbQ$VoidPointer, int16 as $6uUbQ$int16, uint24 as $6uUbQ$uint24, uint8 as $6uUbQ$uint8, VersionedStruct as $6uUbQ$VersionedStruct, LazyArray as $6uUbQ$LazyArray, Reserved as $6uUbQ$Reserved, int32 as $6uUbQ$int32, Bitfield as $6uUbQ$Bitfield, fixed32 as $6uUbQ$fixed32, Buffer as $6uUbQ$Buffer, Number as $6uUbQ$Number, resolveLength as $6uUbQ$resolveLength, fixed16 as $6uUbQ$fixed16, PropertyDescriptor as $6uUbQ$PropertyDescriptor, Fixed as $6uUbQ$Fixed, int8 as $6uUbQ$int8, Optional as $6uUbQ$Optional, EncodeStream as $6uUbQ$EncodeStream} from \"restructure\";\nimport {_ as $6uUbQ$_} from \"@swc/helpers/_/_define_property\";\nimport {_ as $6uUbQ$_1} from \"@swc/helpers/_/_ts_decorate\";\nimport $6uUbQ$fastdeepequal from \"fast-deep-equal\";\nimport {getCombiningClass as $6uUbQ$getCombiningClass, getScript as $6uUbQ$getScript, isDigit as $6uUbQ$isDigit, getCategory as $6uUbQ$getCategory, isMark as $6uUbQ$isMark} from \"unicode-properties\";\nimport $6uUbQ$unicodetrie from \"unicode-trie\";\nimport $6uUbQ$dfa from \"dfa\";\nimport $6uUbQ$clone from \"clone\";\nimport $6uUbQ$tinyinflate from \"tiny-inflate\";\nimport $6uUbQ$brotlidecompressjs from \"brotli/decompress.js\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\nvar $d636bc798e7178db$exports = {};\n\n$parcel$export($d636bc798e7178db$exports, \"logErrors\", () => $d636bc798e7178db$export$bd5c5d8b8dcafd78);\n$parcel$export($d636bc798e7178db$exports, \"registerFormat\", () => $d636bc798e7178db$export$36b2f24e97d43be);\n$parcel$export($d636bc798e7178db$exports, \"create\", () => $d636bc798e7178db$export$185802fd694ee1f5);\n$parcel$export($d636bc798e7178db$exports, \"defaultLanguage\", () => $d636bc798e7178db$export$42940898df819940);\n$parcel$export($d636bc798e7178db$exports, \"setDefaultLanguage\", () => $d636bc798e7178db$export$5157e7780d44cc36);\n\nlet $d636bc798e7178db$export$bd5c5d8b8dcafd78 = false;\nlet $d636bc798e7178db$var$formats = [];\nfunction $d636bc798e7178db$export$36b2f24e97d43be(format) {\n $d636bc798e7178db$var$formats.push(format);\n}\nfunction $d636bc798e7178db$export$185802fd694ee1f5(buffer, postscriptName) {\n for(let i = 0; i < $d636bc798e7178db$var$formats.length; i++){\n let format = $d636bc798e7178db$var$formats[i];\n if (format.probe(buffer)) {\n let font = new format(new (0, $6uUbQ$DecodeStream)(buffer));\n if (postscriptName) return font.getFont(postscriptName);\n return font;\n }\n }\n throw new Error('Unknown font format');\n}\nlet $d636bc798e7178db$export$42940898df819940 = 'en';\nfunction $d636bc798e7178db$export$5157e7780d44cc36(lang = 'en') {\n $d636bc798e7178db$export$42940898df819940 = lang;\n}\n\n\n\n\n\n/**\n * This decorator caches the results of a getter or method such that\n * the results are lazily computed once, and then cached.\n * @private\n */ function $e71565f2ce09cb6b$export$69a3209f1a06c04d(target, key, descriptor) {\n if (descriptor.get) {\n let get = descriptor.get;\n descriptor.get = function() {\n let value = get.call(this);\n Object.defineProperty(this, key, {\n value: value\n });\n return value;\n };\n } else if (typeof descriptor.value === 'function') {\n let fn = descriptor.value;\n return {\n get () {\n let cache = new Map;\n function memoized(...args) {\n let key = args.length > 0 ? args[0] : 'value';\n if (cache.has(key)) return cache.get(key);\n let result = fn.apply(this, args);\n cache.set(key, result);\n return result;\n }\n Object.defineProperty(this, key, {\n value: memoized\n });\n return memoized;\n }\n };\n }\n}\n\n\n\n\n\nlet $26a62205ad06574e$var$SubHeader = new $6uUbQ$Struct({\n firstCode: $6uUbQ$uint16,\n entryCount: $6uUbQ$uint16,\n idDelta: $6uUbQ$int16,\n idRangeOffset: $6uUbQ$uint16\n});\nlet $26a62205ad06574e$var$CmapGroup = new $6uUbQ$Struct({\n startCharCode: $6uUbQ$uint32,\n endCharCode: $6uUbQ$uint32,\n glyphID: $6uUbQ$uint32\n});\nlet $26a62205ad06574e$var$UnicodeValueRange = new $6uUbQ$Struct({\n startUnicodeValue: $6uUbQ$uint24,\n additionalCount: $6uUbQ$uint8\n});\nlet $26a62205ad06574e$var$UVSMapping = new $6uUbQ$Struct({\n unicodeValue: $6uUbQ$uint24,\n glyphID: $6uUbQ$uint16\n});\nlet $26a62205ad06574e$var$DefaultUVS = new $6uUbQ$Array($26a62205ad06574e$var$UnicodeValueRange, $6uUbQ$uint32);\nlet $26a62205ad06574e$var$NonDefaultUVS = new $6uUbQ$Array($26a62205ad06574e$var$UVSMapping, $6uUbQ$uint32);\nlet $26a62205ad06574e$var$VarSelectorRecord = new $6uUbQ$Struct({\n varSelector: $6uUbQ$uint24,\n defaultUVS: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$DefaultUVS, {\n type: 'parent'\n }),\n nonDefaultUVS: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$NonDefaultUVS, {\n type: 'parent'\n })\n});\nlet $26a62205ad06574e$var$CmapSubtable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n codeMap: new $6uUbQ$LazyArray($6uUbQ$uint8, 256)\n },\n 2: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n subHeaderKeys: new $6uUbQ$Array($6uUbQ$uint16, 256),\n subHeaderCount: (t)=>Math.max.apply(Math, t.subHeaderKeys),\n subHeaders: new $6uUbQ$LazyArray($26a62205ad06574e$var$SubHeader, 'subHeaderCount'),\n glyphIndexArray: new $6uUbQ$LazyArray($6uUbQ$uint16, 'subHeaderCount')\n },\n 4: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n segCountX2: $6uUbQ$uint16,\n segCount: (t)=>t.segCountX2 >> 1,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n endCode: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n reservedPad: new $6uUbQ$Reserved($6uUbQ$uint16),\n startCode: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n idDelta: new $6uUbQ$LazyArray($6uUbQ$int16, 'segCount'),\n idRangeOffset: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n glyphIndexArray: new $6uUbQ$LazyArray($6uUbQ$uint16, (t)=>(t.length - t._currentOffset) / 2)\n },\n 6: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n firstCode: $6uUbQ$uint16,\n entryCount: $6uUbQ$uint16,\n glyphIndices: new $6uUbQ$LazyArray($6uUbQ$uint16, 'entryCount')\n },\n 8: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint16,\n is32: new $6uUbQ$LazyArray($6uUbQ$uint8, 8192),\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 10: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n firstCode: $6uUbQ$uint32,\n entryCount: $6uUbQ$uint32,\n glyphIndices: new $6uUbQ$LazyArray($6uUbQ$uint16, 'numChars')\n },\n 12: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 13: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 14: {\n length: $6uUbQ$uint32,\n numRecords: $6uUbQ$uint32,\n varSelectors: new $6uUbQ$LazyArray($26a62205ad06574e$var$VarSelectorRecord, 'numRecords')\n }\n});\nlet $26a62205ad06574e$var$CmapEntry = new $6uUbQ$Struct({\n platformID: $6uUbQ$uint16,\n encodingID: $6uUbQ$uint16,\n table: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$CmapSubtable, {\n type: 'parent',\n lazy: true\n })\n});\nvar // character to glyph mapping\n$26a62205ad06574e$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numSubtables: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($26a62205ad06574e$var$CmapEntry, 'numSubtables')\n});\n\n\n\nvar // font header\n$f2612a29f92ac062$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n revision: $6uUbQ$int32,\n checkSumAdjustment: $6uUbQ$uint32,\n magicNumber: $6uUbQ$uint32,\n flags: $6uUbQ$uint16,\n unitsPerEm: $6uUbQ$uint16,\n created: new $6uUbQ$Array($6uUbQ$int32, 2),\n modified: new $6uUbQ$Array($6uUbQ$int32, 2),\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16,\n macStyle: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'bold',\n 'italic',\n 'underline',\n 'outline',\n 'shadow',\n 'condensed',\n 'extended'\n ]),\n lowestRecPPEM: $6uUbQ$uint16,\n fontDirectionHint: $6uUbQ$int16,\n indexToLocFormat: $6uUbQ$int16,\n glyphDataFormat: $6uUbQ$int16 // 0 for current format\n});\n\n\n\nvar // horizontal header\n$2c179dd593583073$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n ascent: $6uUbQ$int16,\n descent: $6uUbQ$int16,\n lineGap: $6uUbQ$int16,\n advanceWidthMax: $6uUbQ$uint16,\n minLeftSideBearing: $6uUbQ$int16,\n minRightSideBearing: $6uUbQ$int16,\n xMaxExtent: $6uUbQ$int16,\n caretSlopeRise: $6uUbQ$int16,\n caretSlopeRun: $6uUbQ$int16,\n caretOffset: $6uUbQ$int16,\n reserved: new $6uUbQ$Reserved($6uUbQ$int16, 4),\n metricDataFormat: $6uUbQ$int16,\n numberOfMetrics: $6uUbQ$uint16 // Number of advance widths in 'hmtx' table\n});\n\n\n\nlet $bdc9060542264b85$var$HmtxEntry = new $6uUbQ$Struct({\n advance: $6uUbQ$uint16,\n bearing: $6uUbQ$int16\n});\nvar $bdc9060542264b85$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n metrics: new $6uUbQ$LazyArray($bdc9060542264b85$var$HmtxEntry, (t)=>t.parent.hhea.numberOfMetrics),\n bearings: new $6uUbQ$LazyArray($6uUbQ$int16, (t)=>t.parent.maxp.numGlyphs - t.parent.hhea.numberOfMetrics)\n});\n\n\n\nvar // maxiumum profile\n$dbf51cb3d3fe409d$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n numGlyphs: $6uUbQ$uint16,\n maxPoints: $6uUbQ$uint16,\n maxContours: $6uUbQ$uint16,\n maxComponentPoints: $6uUbQ$uint16,\n maxComponentContours: $6uUbQ$uint16,\n maxZones: $6uUbQ$uint16,\n maxTwilightPoints: $6uUbQ$uint16,\n maxStorage: $6uUbQ$uint16,\n maxFunctionDefs: $6uUbQ$uint16,\n maxInstructionDefs: $6uUbQ$uint16,\n maxStackElements: $6uUbQ$uint16,\n maxSizeOfInstructions: $6uUbQ$uint16,\n maxComponentElements: $6uUbQ$uint16,\n maxComponentDepth: $6uUbQ$uint16 // Maximum levels of recursion; 1 for simple components\n});\n\n\n\n/**\n * Gets an encoding name from platform, encoding, and language ids.\n * Returned encoding names can be used in iconv-lite to decode text.\n */ function $e449ad78d50845fe$export$badc544e0651b6b1(platformID, encodingID, languageID = 0) {\n if (platformID === 1 && $e449ad78d50845fe$export$479e671907f486d1[languageID]) return $e449ad78d50845fe$export$479e671907f486d1[languageID];\n return $e449ad78d50845fe$export$6fef87b7618bdf0b[platformID][encodingID];\n}\nconst $e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS = new Set([\n 'x-mac-roman',\n 'x-mac-cyrillic',\n 'iso-8859-6',\n 'iso-8859-8'\n]);\nconst $e449ad78d50845fe$var$MAC_ENCODINGS = {\n 'x-mac-croatian': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\u0160\\u2122\\xb4\\xa8\\u2260\\u017D\\xd8\\u221E\\xb1\\u2264\\u2265\\u2206\\xb5\\u2202\\u2211\\u220F\\u0161\\u222B\\xaa\\xba\\u03A9\\u017E\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u0106\\xab\\u010C\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u0110\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\uF8FF\\xa9\\u2044\\u20AC\\u2039\\u203A\\xc6\\xbb\\u2013\\xb7\\u201A\\u201E\\u2030\\xc2\\u0107\\xc1\\u010D\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\u0111\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u03C0\\xcb\\u02DA\\xb8\\xca\\xe6\\u02C7\",\n 'x-mac-gaelic': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u1E02\\xb1\\u2264\\u2265\\u1E03\\u010A\\u010B\\u1E0A\\u1E0B\\u1E1E\\u1E1F\\u0120\\u0121\\u1E40\\xe6\\xf8\\u1E41\\u1E56\\u1E57\\u027C\\u0192\\u017F\\u1E60\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\u1E61\\u1E9B\\xff\\u0178\\u1E6A\\u20AC\\u2039\\u203A\\u0176\\u0177\\u1E6B\\xb7\\u1EF2\\u1EF3\\u204A\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\u2663\\xd2\\xda\\xdb\\xd9\\u0131\\xdd\\xfd\\u0174\\u0175\\u1E84\\u1E85\\u1E80\\u1E81\\u1E82\\u1E83\",\n 'x-mac-greek': \"\\xc4\\xb9\\xb2\\xc9\\xb3\\xd6\\xdc\\u0385\\xe0\\xe2\\xe4\\u0384\\xa8\\xe7\\xe9\\xe8\\xea\\xeb\\xa3\\u2122\\xee\\xef\\u2022\\xbd\\u2030\\xf4\\xf6\\xa6\\u20AC\\xf9\\xfb\\xfc\\u2020\\u0393\\u0394\\u0398\\u039B\\u039E\\u03A0\\xdf\\xae\\xa9\\u03A3\\u03AA\\xa7\\u2260\\xb0\\xb7\\u0391\\xb1\\u2264\\u2265\\xa5\\u0392\\u0395\\u0396\\u0397\\u0399\\u039A\\u039C\\u03A6\\u03AB\\u03A8\\u03A9\\u03AC\\u039D\\xac\\u039F\\u03A1\\u2248\\u03A4\\xab\\xbb\\u2026 \\u03A5\\u03A7\\u0386\\u0388\\u0153\\u2013\\u2015\\u201C\\u201D\\u2018\\u2019\\xf7\\u0389\\u038A\\u038C\\u038E\\u03AD\\u03AE\\u03AF\\u03CC\\u038F\\u03CD\\u03B1\\u03B2\\u03C8\\u03B4\\u03B5\\u03C6\\u03B3\\u03B7\\u03B9\\u03BE\\u03BA\\u03BB\\u03BC\\u03BD\\u03BF\\u03C0\\u03CE\\u03C1\\u03C3\\u03C4\\u03B8\\u03C9\\u03C2\\u03C7\\u03C5\\u03B6\\u03CA\\u03CB\\u0390\\u03B0\\xad\",\n 'x-mac-icelandic': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\xdd\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\xe6\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u2044\\u20AC\\xd0\\xf0\\xde\\xfe\\xfd\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\",\n 'x-mac-inuit': \"\\u1403\\u1404\\u1405\\u1406\\u140A\\u140B\\u1431\\u1432\\u1433\\u1434\\u1438\\u1439\\u1449\\u144E\\u144F\\u1450\\u1451\\u1455\\u1456\\u1466\\u146D\\u146E\\u146F\\u1470\\u1472\\u1473\\u1483\\u148B\\u148C\\u148D\\u148E\\u1490\\u1491\\xb0\\u14A1\\u14A5\\u14A6\\u2022\\xb6\\u14A7\\xae\\xa9\\u2122\\u14A8\\u14AA\\u14AB\\u14BB\\u14C2\\u14C3\\u14C4\\u14C5\\u14C7\\u14C8\\u14D0\\u14EF\\u14F0\\u14F1\\u14F2\\u14F4\\u14F5\\u1505\\u14D5\\u14D6\\u14D7\\u14D8\\u14DA\\u14DB\\u14EA\\u1528\\u1529\\u152A\\u152B\\u152D\\u2026 \\u152E\\u153E\\u1555\\u1556\\u1557\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\u1558\\u1559\\u155A\\u155D\\u1546\\u1547\\u1548\\u1549\\u154B\\u154C\\u1550\\u157F\\u1580\\u1581\\u1582\\u1583\\u1584\\u1585\\u158F\\u1590\\u1591\\u1592\\u1593\\u1594\\u1595\\u1671\\u1672\\u1673\\u1674\\u1675\\u1676\\u1596\\u15A0\\u15A1\\u15A2\\u15A3\\u15A4\\u15A5\\u15A6\\u157C\\u0141\\u0142\",\n 'x-mac-ce': \"\\xc4\\u0100\\u0101\\xc9\\u0104\\xd6\\xdc\\xe1\\u0105\\u010C\\xe4\\u010D\\u0106\\u0107\\xe9\\u0179\\u017A\\u010E\\xed\\u010F\\u0112\\u0113\\u0116\\xf3\\u0117\\xf4\\xf6\\xf5\\xfa\\u011A\\u011B\\xfc\\u2020\\xb0\\u0118\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\u0119\\xa8\\u2260\\u0123\\u012E\\u012F\\u012A\\u2264\\u2265\\u012B\\u0136\\u2202\\u2211\\u0142\\u013B\\u013C\\u013D\\u013E\\u0139\\u013A\\u0145\\u0146\\u0143\\xac\\u221A\\u0144\\u0147\\u2206\\xab\\xbb\\u2026 \\u0148\\u0150\\xd5\\u0151\\u014C\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\u014D\\u0154\\u0155\\u0158\\u2039\\u203A\\u0159\\u0156\\u0157\\u0160\\u201A\\u201E\\u0161\\u015A\\u015B\\xc1\\u0164\\u0165\\xcd\\u017D\\u017E\\u016A\\xd3\\xd4\\u016B\\u016E\\xda\\u016F\\u0170\\u0171\\u0172\\u0173\\xdd\\xfd\\u0137\\u017B\\u0141\\u017C\\u0122\\u02C7\",\n 'x-mac-romanian': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\u0102\\u0218\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\u0103\\u0219\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u2044\\u20AC\\u2039\\u203A\\u021A\\u021B\\u2021\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\",\n 'x-mac-turkish': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\xe6\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u011E\\u011F\\u0130\\u0131\\u015E\\u015F\\u2021\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\uF8A0\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\"\n};\nconst $e449ad78d50845fe$var$encodingCache = new Map();\nfunction $e449ad78d50845fe$export$1dceb3c14ed68bee(encoding) {\n let cached = $e449ad78d50845fe$var$encodingCache.get(encoding);\n if (cached) return cached;\n // These encodings aren't supported by TextDecoder.\n let mapping = $e449ad78d50845fe$var$MAC_ENCODINGS[encoding];\n if (mapping) {\n let res = new Map();\n for(let i = 0; i < mapping.length; i++)res.set(mapping.charCodeAt(i), 0x80 + i);\n $e449ad78d50845fe$var$encodingCache.set(encoding, res);\n return res;\n }\n // Only single byte encodings can be mapped 1:1.\n if ($e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS.has(encoding)) {\n // TextEncoder only supports utf8, whereas TextDecoder supports legacy encodings.\n // Use this to create a mapping of code points.\n let decoder = new TextDecoder(encoding);\n let mapping = new Uint8Array(0x80);\n for(let i = 0; i < 0x80; i++)mapping[i] = 0x80 + i;\n let res = new Map();\n let s = decoder.decode(mapping);\n for(let i = 0; i < 0x80; i++)res.set(s.charCodeAt(i), 0x80 + i);\n $e449ad78d50845fe$var$encodingCache.set(encoding, res);\n return res;\n }\n}\nconst $e449ad78d50845fe$export$6fef87b7618bdf0b = [\n // unicode\n [\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be'\n ],\n // macintosh\n // Mappings available at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/\n // 0\tRoman 17\tMalayalam\n // 1\tJapanese\t 18\tSinhalese\n // 2\tTraditional Chinese\t 19\tBurmese\n // 3\tKorean\t 20\tKhmer\n // 4\tArabic\t 21\tThai\n // 5\tHebrew\t 22\tLaotian\n // 6\tGreek\t 23\tGeorgian\n // 7\tRussian\t 24\tArmenian\n // 8\tRSymbol\t 25\tSimplified Chinese\n // 9\tDevanagari\t 26\tTibetan\n // 10\tGurmukhi\t 27\tMongolian\n // 11\tGujarati\t 28\tGeez\n // 12\tOriya\t 29\tSlavic\n // 13\tBengali\t 30\tVietnamese\n // 14\tTamil\t 31\tSindhi\n // 15\tTelugu\t 32\t(Uninterpreted)\n // 16\tKannada\n [\n 'x-mac-roman',\n 'shift-jis',\n 'big5',\n 'euc-kr',\n 'iso-8859-6',\n 'iso-8859-8',\n 'x-mac-greek',\n 'x-mac-cyrillic',\n 'x-mac-symbol',\n 'x-mac-devanagari',\n 'x-mac-gurmukhi',\n 'x-mac-gujarati',\n 'Oriya',\n 'Bengali',\n 'Tamil',\n 'Telugu',\n 'Kannada',\n 'Malayalam',\n 'Sinhalese',\n 'Burmese',\n 'Khmer',\n 'iso-8859-11',\n 'Laotian',\n 'Georgian',\n 'Armenian',\n 'gbk',\n 'Tibetan',\n 'Mongolian',\n 'Geez',\n 'x-mac-ce',\n 'Vietnamese',\n 'Sindhi'\n ],\n // ISO (deprecated)\n [\n 'ascii',\n null,\n 'iso-8859-1'\n ],\n // windows\n // Docs here: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx\n [\n 'symbol',\n 'utf-16be',\n 'shift-jis',\n 'gb18030',\n 'big5',\n 'euc-kr',\n 'johab',\n null,\n null,\n null,\n 'utf-16be'\n ]\n];\nconst $e449ad78d50845fe$export$479e671907f486d1 = {\n 15: 'x-mac-icelandic',\n 17: 'x-mac-turkish',\n 18: 'x-mac-croatian',\n 24: 'x-mac-ce',\n 25: 'x-mac-ce',\n 26: 'x-mac-ce',\n 27: 'x-mac-ce',\n 28: 'x-mac-ce',\n 30: 'x-mac-icelandic',\n 37: 'x-mac-romanian',\n 38: 'x-mac-ce',\n 39: 'x-mac-ce',\n 40: 'x-mac-ce',\n 143: 'x-mac-inuit',\n 146: 'x-mac-gaelic'\n};\nconst $e449ad78d50845fe$export$2092376fd002e13 = [\n // unicode\n [],\n {\n 0: 'en',\n 30: 'fo',\n 60: 'ks',\n 90: 'rw',\n 1: 'fr',\n 31: 'fa',\n 61: 'ku',\n 91: 'rn',\n 2: 'de',\n 32: 'ru',\n 62: 'sd',\n 92: 'ny',\n 3: 'it',\n 33: 'zh',\n 63: 'bo',\n 93: 'mg',\n 4: 'nl',\n 34: 'nl-BE',\n 64: 'ne',\n 94: 'eo',\n 5: 'sv',\n 35: 'ga',\n 65: 'sa',\n 128: 'cy',\n 6: 'es',\n 36: 'sq',\n 66: 'mr',\n 129: 'eu',\n 7: 'da',\n 37: 'ro',\n 67: 'bn',\n 130: 'ca',\n 8: 'pt',\n 38: 'cz',\n 68: 'as',\n 131: 'la',\n 9: 'no',\n 39: 'sk',\n 69: 'gu',\n 132: 'qu',\n 10: 'he',\n 40: 'si',\n 70: 'pa',\n 133: 'gn',\n 11: 'ja',\n 41: 'yi',\n 71: 'or',\n 134: 'ay',\n 12: 'ar',\n 42: 'sr',\n 72: 'ml',\n 135: 'tt',\n 13: 'fi',\n 43: 'mk',\n 73: 'kn',\n 136: 'ug',\n 14: 'el',\n 44: 'bg',\n 74: 'ta',\n 137: 'dz',\n 15: 'is',\n 45: 'uk',\n 75: 'te',\n 138: 'jv',\n 16: 'mt',\n 46: 'be',\n 76: 'si',\n 139: 'su',\n 17: 'tr',\n 47: 'uz',\n 77: 'my',\n 140: 'gl',\n 18: 'hr',\n 48: 'kk',\n 78: 'km',\n 141: 'af',\n 19: 'zh-Hant',\n 49: 'az-Cyrl',\n 79: 'lo',\n 142: 'br',\n 20: 'ur',\n 50: 'az-Arab',\n 80: 'vi',\n 143: 'iu',\n 21: 'hi',\n 51: 'hy',\n 81: 'id',\n 144: 'gd',\n 22: 'th',\n 52: 'ka',\n 82: 'tl',\n 145: 'gv',\n 23: 'ko',\n 53: 'mo',\n 83: 'ms',\n 146: 'ga',\n 24: 'lt',\n 54: 'ky',\n 84: 'ms-Arab',\n 147: 'to',\n 25: 'pl',\n 55: 'tg',\n 85: 'am',\n 148: 'el-polyton',\n 26: 'hu',\n 56: 'tk',\n 86: 'ti',\n 149: 'kl',\n 27: 'es',\n 57: 'mn-CN',\n 87: 'om',\n 150: 'az',\n 28: 'lv',\n 58: 'mn',\n 88: 'so',\n 151: 'nn',\n 29: 'se',\n 59: 'ps',\n 89: 'sw'\n },\n // ISO (deprecated)\n [],\n {\n 0x0436: 'af',\n 0x4009: 'en-IN',\n 0x0487: 'rw',\n 0x0432: 'tn',\n 0x041C: 'sq',\n 0x1809: 'en-IE',\n 0x0441: 'sw',\n 0x045B: 'si',\n 0x0484: 'gsw',\n 0x2009: 'en-JM',\n 0x0457: 'kok',\n 0x041B: 'sk',\n 0x045E: 'am',\n 0x4409: 'en-MY',\n 0x0412: 'ko',\n 0x0424: 'sl',\n 0x1401: 'ar-DZ',\n 0x1409: 'en-NZ',\n 0x0440: 'ky',\n 0x2C0A: 'es-AR',\n 0x3C01: 'ar-BH',\n 0x3409: 'en-PH',\n 0x0454: 'lo',\n 0x400A: 'es-BO',\n 0x0C01: 'ar',\n 0x4809: 'en-SG',\n 0x0426: 'lv',\n 0x340A: 'es-CL',\n 0x0801: 'ar-IQ',\n 0x1C09: 'en-ZA',\n 0x0427: 'lt',\n 0x240A: 'es-CO',\n 0x2C01: 'ar-JO',\n 0x2C09: 'en-TT',\n 0x082E: 'dsb',\n 0x140A: 'es-CR',\n 0x3401: 'ar-KW',\n 0x0809: 'en-GB',\n 0x046E: 'lb',\n 0x1C0A: 'es-DO',\n 0x3001: 'ar-LB',\n 0x0409: 'en',\n 0x042F: 'mk',\n 0x300A: 'es-EC',\n 0x1001: 'ar-LY',\n 0x3009: 'en-ZW',\n 0x083E: 'ms-BN',\n 0x440A: 'es-SV',\n 0x1801: 'ary',\n 0x0425: 'et',\n 0x043E: 'ms',\n 0x100A: 'es-GT',\n 0x2001: 'ar-OM',\n 0x0438: 'fo',\n 0x044C: 'ml',\n 0x480A: 'es-HN',\n 0x4001: 'ar-QA',\n 0x0464: 'fil',\n 0x043A: 'mt',\n 0x080A: 'es-MX',\n 0x0401: 'ar-SA',\n 0x040B: 'fi',\n 0x0481: 'mi',\n 0x4C0A: 'es-NI',\n 0x2801: 'ar-SY',\n 0x080C: 'fr-BE',\n 0x047A: 'arn',\n 0x180A: 'es-PA',\n 0x1C01: 'aeb',\n 0x0C0C: 'fr-CA',\n 0x044E: 'mr',\n 0x3C0A: 'es-PY',\n 0x3801: 'ar-AE',\n 0x040C: 'fr',\n 0x047C: 'moh',\n 0x280A: 'es-PE',\n 0x2401: 'ar-YE',\n 0x140C: 'fr-LU',\n 0x0450: 'mn',\n 0x500A: 'es-PR',\n 0x042B: 'hy',\n 0x180C: 'fr-MC',\n 0x0850: 'mn-CN',\n 0x0C0A: 'es',\n 0x044D: 'as',\n 0x100C: 'fr-CH',\n 0x0461: 'ne',\n 0x040A: 'es',\n 0x082C: 'az-Cyrl',\n 0x0462: 'fy',\n 0x0414: 'nb',\n 0x540A: 'es-US',\n 0x042C: 'az',\n 0x0456: 'gl',\n 0x0814: 'nn',\n 0x380A: 'es-UY',\n 0x046D: 'ba',\n 0x0437: 'ka',\n 0x0482: 'oc',\n 0x200A: 'es-VE',\n 0x042D: 'eu',\n 0x0C07: 'de-AT',\n 0x0448: 'or',\n 0x081D: 'sv-FI',\n 0x0423: 'be',\n 0x0407: 'de',\n 0x0463: 'ps',\n 0x041D: 'sv',\n 0x0845: 'bn',\n 0x1407: 'de-LI',\n 0x0415: 'pl',\n 0x045A: 'syr',\n 0x0445: 'bn-IN',\n 0x1007: 'de-LU',\n 0x0416: 'pt',\n 0x0428: 'tg',\n 0x201A: 'bs-Cyrl',\n 0x0807: 'de-CH',\n 0x0816: 'pt-PT',\n 0x085F: 'tzm',\n 0x141A: 'bs',\n 0x0408: 'el',\n 0x0446: 'pa',\n 0x0449: 'ta',\n 0x047E: 'br',\n 0x046F: 'kl',\n 0x046B: 'qu-BO',\n 0x0444: 'tt',\n 0x0402: 'bg',\n 0x0447: 'gu',\n 0x086B: 'qu-EC',\n 0x044A: 'te',\n 0x0403: 'ca',\n 0x0468: 'ha',\n 0x0C6B: 'qu',\n 0x041E: 'th',\n 0x0C04: 'zh-HK',\n 0x040D: 'he',\n 0x0418: 'ro',\n 0x0451: 'bo',\n 0x1404: 'zh-MO',\n 0x0439: 'hi',\n 0x0417: 'rm',\n 0x041F: 'tr',\n 0x0804: 'zh',\n 0x040E: 'hu',\n 0x0419: 'ru',\n 0x0442: 'tk',\n 0x1004: 'zh-SG',\n 0x040F: 'is',\n 0x243B: 'smn',\n 0x0480: 'ug',\n 0x0404: 'zh-TW',\n 0x0470: 'ig',\n 0x103B: 'smj-NO',\n 0x0422: 'uk',\n 0x0483: 'co',\n 0x0421: 'id',\n 0x143B: 'smj',\n 0x042E: 'hsb',\n 0x041A: 'hr',\n 0x045D: 'iu',\n 0x0C3B: 'se-FI',\n 0x0420: 'ur',\n 0x101A: 'hr-BA',\n 0x085D: 'iu-Latn',\n 0x043B: 'se',\n 0x0843: 'uz-Cyrl',\n 0x0405: 'cs',\n 0x083C: 'ga',\n 0x083B: 'se-SE',\n 0x0443: 'uz',\n 0x0406: 'da',\n 0x0434: 'xh',\n 0x203B: 'sms',\n 0x042A: 'vi',\n 0x048C: 'prs',\n 0x0435: 'zu',\n 0x183B: 'sma-NO',\n 0x0452: 'cy',\n 0x0465: 'dv',\n 0x0410: 'it',\n 0x1C3B: 'sms',\n 0x0488: 'wo',\n 0x0813: 'nl-BE',\n 0x0810: 'it-CH',\n 0x044F: 'sa',\n 0x0485: 'sah',\n 0x0413: 'nl',\n 0x0411: 'ja',\n 0x1C1A: 'sr-Cyrl-BA',\n 0x0478: 'ii',\n 0x0C09: 'en-AU',\n 0x044B: 'kn',\n 0x0C1A: 'sr',\n 0x046A: 'yo',\n 0x2809: 'en-BZ',\n 0x043F: 'kk',\n 0x181A: 'sr-Latn-BA',\n 0x1009: 'en-CA',\n 0x0453: 'km',\n 0x081A: 'sr-Latn',\n 0x2409: 'en-029',\n 0x0486: 'quc',\n 0x046C: 'nso'\n }\n];\n\n\nlet $2bcf221753ec8e32$var$NameRecord = new $6uUbQ$Struct({\n platformID: $6uUbQ$uint16,\n encodingID: $6uUbQ$uint16,\n languageID: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16,\n length: $6uUbQ$uint16,\n string: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$String('length', (t)=>(0, $e449ad78d50845fe$export$badc544e0651b6b1)(t.platformID, t.encodingID, t.languageID)), {\n type: 'parent',\n relativeTo: (ctx)=>ctx.parent.stringOffset,\n allowNull: false\n })\n});\nlet $2bcf221753ec8e32$var$LangTagRecord = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n tag: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$String('length', 'utf16be'), {\n type: 'parent',\n relativeTo: (ctx)=>ctx.stringOffset\n })\n});\nvar $2bcf221753ec8e32$var$NameTable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n count: $6uUbQ$uint16,\n stringOffset: $6uUbQ$uint16,\n records: new $6uUbQ$Array($2bcf221753ec8e32$var$NameRecord, 'count')\n },\n 1: {\n count: $6uUbQ$uint16,\n stringOffset: $6uUbQ$uint16,\n records: new $6uUbQ$Array($2bcf221753ec8e32$var$NameRecord, 'count'),\n langTagCount: $6uUbQ$uint16,\n langTags: new $6uUbQ$Array($2bcf221753ec8e32$var$LangTagRecord, 'langTagCount')\n }\n});\nvar $2bcf221753ec8e32$export$2e2bcd8739ae039 = $2bcf221753ec8e32$var$NameTable;\nconst $2bcf221753ec8e32$var$NAMES = [\n 'copyright',\n 'fontFamily',\n 'fontSubfamily',\n 'uniqueSubfamily',\n 'fullName',\n 'version',\n 'postscriptName',\n 'trademark',\n 'manufacturer',\n 'designer',\n 'description',\n 'vendorURL',\n 'designerURL',\n 'license',\n 'licenseURL',\n null,\n 'preferredFamily',\n 'preferredSubfamily',\n 'compatibleFull',\n 'sampleText',\n 'postscriptCIDFontName',\n 'wwsFamilyName',\n 'wwsSubfamilyName'\n];\n$2bcf221753ec8e32$var$NameTable.process = function(stream) {\n var records = {};\n for (let record of this.records){\n // find out what language this is for\n let language = (0, $e449ad78d50845fe$export$2092376fd002e13)[record.platformID][record.languageID];\n if (language == null && this.langTags != null && record.languageID >= 0x8000) language = this.langTags[record.languageID - 0x8000].tag;\n if (language == null) language = record.platformID + '-' + record.languageID;\n // if the nameID is >= 256, it is a font feature record (AAT)\n let key = record.nameID >= 256 ? 'fontFeatures' : $2bcf221753ec8e32$var$NAMES[record.nameID] || record.nameID;\n if (records[key] == null) records[key] = {};\n let obj = records[key];\n if (record.nameID >= 256) obj = obj[record.nameID] || (obj[record.nameID] = {});\n if (typeof record.string === 'string' || typeof obj[language] !== 'string') obj[language] = record.string;\n }\n this.records = records;\n};\n$2bcf221753ec8e32$var$NameTable.preEncode = function() {\n if (Array.isArray(this.records)) return;\n this.version = 0;\n let records = [];\n for(let key in this.records){\n let val = this.records[key];\n if (key === 'fontFeatures') continue;\n records.push({\n platformID: 3,\n encodingID: 1,\n languageID: 0x409,\n nameID: $2bcf221753ec8e32$var$NAMES.indexOf(key),\n length: val.en.length * 2,\n string: val.en\n });\n if (key === 'postscriptName') records.push({\n platformID: 1,\n encodingID: 0,\n languageID: 0,\n nameID: $2bcf221753ec8e32$var$NAMES.indexOf(key),\n length: val.en.length,\n string: val.en\n });\n }\n this.records = records;\n this.count = records.length;\n this.stringOffset = $2bcf221753ec8e32$var$NameTable.size(this, null, false);\n};\n\n\n\nvar $84b272aa31b70606$var$OS2 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n xAvgCharWidth: $6uUbQ$int16,\n usWeightClass: $6uUbQ$uint16,\n usWidthClass: $6uUbQ$uint16,\n fsType: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n null,\n 'noEmbedding',\n 'viewOnly',\n 'editable',\n null,\n null,\n null,\n null,\n 'noSubsetting',\n 'bitmapOnly'\n ]),\n ySubscriptXSize: $6uUbQ$int16,\n ySubscriptYSize: $6uUbQ$int16,\n ySubscriptXOffset: $6uUbQ$int16,\n ySubscriptYOffset: $6uUbQ$int16,\n ySuperscriptXSize: $6uUbQ$int16,\n ySuperscriptYSize: $6uUbQ$int16,\n ySuperscriptXOffset: $6uUbQ$int16,\n ySuperscriptYOffset: $6uUbQ$int16,\n yStrikeoutSize: $6uUbQ$int16,\n yStrikeoutPosition: $6uUbQ$int16,\n sFamilyClass: $6uUbQ$int16,\n panose: new $6uUbQ$Array($6uUbQ$uint8, 10),\n ulCharRange: new $6uUbQ$Array($6uUbQ$uint32, 4),\n vendorID: new $6uUbQ$String(4),\n fsSelection: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'italic',\n 'underscore',\n 'negative',\n 'outlined',\n 'strikeout',\n 'bold',\n 'regular',\n 'useTypoMetrics',\n 'wws',\n 'oblique'\n ]),\n usFirstCharIndex: $6uUbQ$uint16,\n usLastCharIndex: $6uUbQ$uint16 // The maximum Unicode index in this font\n },\n // The Apple version of this table ends here, but the Microsoft one continues on...\n 0: {},\n 1: {\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2)\n },\n 2: {\n // these should be common with version 1 somehow\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2),\n xHeight: $6uUbQ$int16,\n capHeight: $6uUbQ$int16,\n defaultChar: $6uUbQ$uint16,\n breakChar: $6uUbQ$uint16,\n maxContent: $6uUbQ$uint16\n },\n 5: {\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2),\n xHeight: $6uUbQ$int16,\n capHeight: $6uUbQ$int16,\n defaultChar: $6uUbQ$uint16,\n breakChar: $6uUbQ$uint16,\n maxContent: $6uUbQ$uint16,\n usLowerOpticalPointSize: $6uUbQ$uint16,\n usUpperOpticalPointSize: $6uUbQ$uint16\n }\n});\nlet $84b272aa31b70606$var$versions = $84b272aa31b70606$var$OS2.versions;\n$84b272aa31b70606$var$versions[3] = $84b272aa31b70606$var$versions[4] = $84b272aa31b70606$var$versions[2];\nvar $84b272aa31b70606$export$2e2bcd8739ae039 = $84b272aa31b70606$var$OS2;\n\n\n\nvar // PostScript information\n$32d9e2eb9565d93c$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$fixed32, {\n header: {\n italicAngle: $6uUbQ$fixed32,\n underlinePosition: $6uUbQ$int16,\n underlineThickness: $6uUbQ$int16,\n isFixedPitch: $6uUbQ$uint32,\n minMemType42: $6uUbQ$uint32,\n maxMemType42: $6uUbQ$uint32,\n minMemType1: $6uUbQ$uint32,\n maxMemType1: $6uUbQ$uint32 // Maximum memory usage when a TrueType font is downloaded as a Type 1 font\n },\n 1: {},\n 2: {\n numberOfGlyphs: $6uUbQ$uint16,\n glyphNameIndex: new $6uUbQ$Array($6uUbQ$uint16, 'numberOfGlyphs'),\n names: new $6uUbQ$Array(new $6uUbQ$String($6uUbQ$uint8))\n },\n 2.5: {\n numberOfGlyphs: $6uUbQ$uint16,\n offsets: new $6uUbQ$Array($6uUbQ$uint8, 'numberOfGlyphs')\n },\n 3: {},\n 4: {\n map: new $6uUbQ$Array($6uUbQ$uint32, (t)=>t.parent.maxp.numGlyphs)\n }\n});\n\n\n\nvar // An array of predefined values accessible by instructions\n$5202bd9d9ad8eaac$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n controlValues: new $6uUbQ$Array($6uUbQ$int16)\n});\n\n\n\nvar // A list of instructions that are executed once when a font is first used.\n// These instructions are known as the font program. The main use of this table\n// is for the definition of functions that are used in many different glyph programs.\n$5c0f37ca5ffb1850$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n instructions: new $6uUbQ$Array($6uUbQ$uint8)\n});\n\n\n\nlet $2b2b260902b1c57e$var$loca = new $6uUbQ$VersionedStruct('head.indexToLocFormat', {\n 0: {\n offsets: new $6uUbQ$Array($6uUbQ$uint16)\n },\n 1: {\n offsets: new $6uUbQ$Array($6uUbQ$uint32)\n }\n});\n$2b2b260902b1c57e$var$loca.process = function() {\n if (this.version === 0 && !this._processed) {\n for(let i = 0; i < this.offsets.length; i++)this.offsets[i] <<= 1;\n this._processed = true;\n }\n};\n$2b2b260902b1c57e$var$loca.preEncode = function() {\n if (this.version === 0 && this._processed !== false) {\n for(let i = 0; i < this.offsets.length; i++)this.offsets[i] >>>= 1;\n this._processed = false;\n }\n};\nvar $2b2b260902b1c57e$export$2e2bcd8739ae039 = $2b2b260902b1c57e$var$loca;\n\n\n\nvar // Set of instructions executed whenever the point size or font transformation change\n$7afb878c7bea4f66$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n controlValueProgram: new $6uUbQ$Array($6uUbQ$uint8)\n});\n\n\n\nvar // only used for encoding\n$6c92b6371bce8bd9$export$2e2bcd8739ae039 = new $6uUbQ$Array(new $6uUbQ$Buffer);\n\n\n\n\nclass $43e9821ef3717eec$export$2e2bcd8739ae039 {\n getCFFVersion(ctx) {\n while(ctx && !ctx.hdrSize)ctx = ctx.parent;\n return ctx ? ctx.version : -1;\n }\n decode(stream, parent) {\n let version = this.getCFFVersion(parent);\n let count = version >= 2 ? stream.readUInt32BE() : stream.readUInt16BE();\n if (count === 0) return [];\n let offSize = stream.readUInt8();\n let offsetType;\n if (offSize === 1) offsetType = $6uUbQ$uint8;\n else if (offSize === 2) offsetType = $6uUbQ$uint16;\n else if (offSize === 3) offsetType = $6uUbQ$uint24;\n else if (offSize === 4) offsetType = $6uUbQ$uint32;\n else throw new Error(`Bad offset size in CFFIndex: ${offSize} ${stream.pos}`);\n let ret = [];\n let startPos = stream.pos + (count + 1) * offSize - 1;\n let start = offsetType.decode(stream);\n for(let i = 0; i < count; i++){\n let end = offsetType.decode(stream);\n if (this.type != null) {\n let pos = stream.pos;\n stream.pos = startPos + start;\n parent.length = end - start;\n ret.push(this.type.decode(stream, parent));\n stream.pos = pos;\n } else ret.push({\n offset: startPos + start,\n length: end - start\n });\n start = end;\n }\n stream.pos = startPos + start;\n return ret;\n }\n size(arr, parent) {\n let size = 2;\n if (arr.length === 0) return size;\n let type = this.type || new $6uUbQ$Buffer;\n // find maximum offset to detminine offset type\n let offset = 1;\n for(let i = 0; i < arr.length; i++){\n let item = arr[i];\n offset += type.size(item, parent);\n }\n let offsetType;\n if (offset <= 0xff) offsetType = $6uUbQ$uint8;\n else if (offset <= 0xffff) offsetType = $6uUbQ$uint16;\n else if (offset <= 0xffffff) offsetType = $6uUbQ$uint24;\n else if (offset <= 0xffffffff) offsetType = $6uUbQ$uint32;\n else throw new Error(\"Bad offset in CFFIndex\");\n size += 1 + offsetType.size() * (arr.length + 1);\n size += offset - 1;\n return size;\n }\n encode(stream, arr, parent) {\n stream.writeUInt16BE(arr.length);\n if (arr.length === 0) return;\n let type = this.type || new $6uUbQ$Buffer;\n // find maximum offset to detminine offset type\n let sizes = [];\n let offset = 1;\n for (let item of arr){\n let s = type.size(item, parent);\n sizes.push(s);\n offset += s;\n }\n let offsetType;\n if (offset <= 0xff) offsetType = $6uUbQ$uint8;\n else if (offset <= 0xffff) offsetType = $6uUbQ$uint16;\n else if (offset <= 0xffffff) offsetType = $6uUbQ$uint24;\n else if (offset <= 0xffffffff) offsetType = $6uUbQ$uint32;\n else throw new Error(\"Bad offset in CFFIndex\");\n // write offset size\n stream.writeUInt8(offsetType.size());\n // write elements\n offset = 1;\n offsetType.encode(stream, offset);\n for (let size of sizes){\n offset += size;\n offsetType.encode(stream, offset);\n }\n for (let item of arr)type.encode(stream, item, parent);\n return;\n }\n constructor(type){\n this.type = type;\n }\n}\n\n\n\n\n\nconst $c2d28e92708f99da$var$FLOAT_EOF = 0xf;\nconst $c2d28e92708f99da$var$FLOAT_LOOKUP = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n 'E',\n 'E-',\n null,\n '-'\n];\nconst $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP = {\n '.': 10,\n 'E': 11,\n 'E-': 12,\n '-': 14\n};\nclass $c2d28e92708f99da$export$2e2bcd8739ae039 {\n static decode(stream, value) {\n if (32 <= value && value <= 246) return value - 139;\n if (247 <= value && value <= 250) return (value - 247) * 256 + stream.readUInt8() + 108;\n if (251 <= value && value <= 254) return -(value - 251) * 256 - stream.readUInt8() - 108;\n if (value === 28) return stream.readInt16BE();\n if (value === 29) return stream.readInt32BE();\n if (value === 30) {\n let str = '';\n while(true){\n let b = stream.readUInt8();\n let n1 = b >> 4;\n if (n1 === $c2d28e92708f99da$var$FLOAT_EOF) break;\n str += $c2d28e92708f99da$var$FLOAT_LOOKUP[n1];\n let n2 = b & 15;\n if (n2 === $c2d28e92708f99da$var$FLOAT_EOF) break;\n str += $c2d28e92708f99da$var$FLOAT_LOOKUP[n2];\n }\n return parseFloat(str);\n }\n return null;\n }\n static size(value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, set to 32768\n if (value.forceLarge) value = 32768;\n if ((value | 0) !== value) {\n let str = '' + value;\n return 1 + Math.ceil((str.length + 1) / 2);\n } else if (-107 <= value && value <= 107) return 1;\n else if (108 <= value && value <= 1131 || -1131 <= value && value <= -108) return 2;\n else if (-32768 <= value && value <= 32767) return 3;\n else return 5;\n }\n static encode(stream, value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, save the old value and set to 32768\n let val = Number(value);\n if (value.forceLarge) {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n } else if ((val | 0) !== val) {\n stream.writeUInt8(30);\n let str = '' + val;\n for(let i = 0; i < str.length; i += 2){\n let c1 = str[i];\n let n1 = $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP[c1] || +c1;\n if (i === str.length - 1) var n2 = $c2d28e92708f99da$var$FLOAT_EOF;\n else {\n let c2 = str[i + 1];\n var n2 = $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP[c2] || +c2;\n }\n stream.writeUInt8(n1 << 4 | n2 & 15);\n }\n if (n2 !== $c2d28e92708f99da$var$FLOAT_EOF) return stream.writeUInt8($c2d28e92708f99da$var$FLOAT_EOF << 4);\n } else if (-107 <= val && val <= 107) return stream.writeUInt8(val + 139);\n else if (108 <= val && val <= 1131) {\n val -= 108;\n stream.writeUInt8((val >> 8) + 247);\n return stream.writeUInt8(val & 0xff);\n } else if (-1131 <= val && val <= -108) {\n val = -val - 108;\n stream.writeUInt8((val >> 8) + 251);\n return stream.writeUInt8(val & 0xff);\n } else if (-32768 <= val && val <= 32767) {\n stream.writeUInt8(28);\n return stream.writeInt16BE(val);\n } else {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n }\n }\n}\n\n\nclass $61aa549f16d58b9b$export$2e2bcd8739ae039 {\n decodeOperands(type, stream, ret, operands) {\n if (Array.isArray(type)) return operands.map((op, i)=>this.decodeOperands(type[i], stream, ret, [\n op\n ]));\n else if (type.decode != null) return type.decode(stream, ret, operands);\n else switch(type){\n case 'number':\n case 'offset':\n case 'sid':\n return operands[0];\n case 'boolean':\n return !!operands[0];\n default:\n return operands;\n }\n }\n encodeOperands(type, stream, ctx, operands) {\n if (Array.isArray(type)) return operands.map((op, i)=>this.encodeOperands(type[i], stream, ctx, op)[0]);\n else if (type.encode != null) return type.encode(stream, operands, ctx);\n else if (typeof operands === 'number') return [\n operands\n ];\n else if (typeof operands === 'boolean') return [\n +operands\n ];\n else if (Array.isArray(operands)) return operands;\n else return [\n operands\n ];\n }\n decode(stream, parent) {\n let end = stream.pos + parent.length;\n let ret = {};\n let operands = [];\n // define hidden properties\n Object.defineProperties(ret, {\n parent: {\n value: parent\n },\n _startOffset: {\n value: stream.pos\n }\n });\n // fill in defaults\n for(let key in this.fields){\n let field = this.fields[key];\n ret[field[1]] = field[3];\n }\n while(stream.pos < end){\n let b = stream.readUInt8();\n if (b < 28) {\n if (b === 12) b = b << 8 | stream.readUInt8();\n let field = this.fields[b];\n if (!field) throw new Error(`Unknown operator ${b}`);\n let val = this.decodeOperands(field[2], stream, ret, operands);\n if (val != null) {\n if (val instanceof (0, $6uUbQ$PropertyDescriptor)) Object.defineProperty(ret, field[1], val);\n else ret[field[1]] = val;\n }\n operands = [];\n } else operands.push((0, $c2d28e92708f99da$export$2e2bcd8739ae039).decode(stream, b));\n }\n return ret;\n }\n size(dict, parent, includePointers = true) {\n let ctx = {\n parent: parent,\n val: dict,\n pointerSize: 0,\n startOffset: parent.startOffset || 0\n };\n let len = 0;\n for(let k in this.fields){\n let field = this.fields[k];\n let val = dict[field[1]];\n if (val == null || (0, $6uUbQ$fastdeepequal)(val, field[3])) continue;\n let operands = this.encodeOperands(field[2], null, ctx, val);\n for (let op of operands)len += (0, $c2d28e92708f99da$export$2e2bcd8739ae039).size(op);\n let key = Array.isArray(field[0]) ? field[0] : [\n field[0]\n ];\n len += key.length;\n }\n if (includePointers) len += ctx.pointerSize;\n return len;\n }\n encode(stream, dict, parent) {\n let ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent: parent,\n val: dict,\n pointerSize: 0\n };\n ctx.pointerOffset = stream.pos + this.size(dict, ctx, false);\n for (let field of this.ops){\n let val = dict[field[1]];\n if (val == null || (0, $6uUbQ$fastdeepequal)(val, field[3])) continue;\n let operands = this.encodeOperands(field[2], stream, ctx, val);\n for (let op of operands)(0, $c2d28e92708f99da$export$2e2bcd8739ae039).encode(stream, op);\n let key = Array.isArray(field[0]) ? field[0] : [\n field[0]\n ];\n for (let op of key)stream.writeUInt8(op);\n }\n let i = 0;\n while(i < ctx.pointers.length){\n let ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n return;\n }\n constructor(ops = []){\n this.ops = ops;\n this.fields = {};\n for (let field of ops){\n let key = Array.isArray(field[0]) ? field[0][0] << 8 | field[0][1] : field[0];\n this.fields[key] = field;\n }\n }\n}\n\n\n\n\nclass $0e34a43d05bde82c$export$2e2bcd8739ae039 extends $6uUbQ$Pointer {\n decode(stream, parent, operands) {\n this.offsetType = {\n decode: ()=>operands[0]\n };\n return super.decode(stream, parent, operands);\n }\n encode(stream, value, ctx) {\n if (!stream) {\n // compute the size (so ctx.pointerSize is correct)\n this.offsetType = {\n size: ()=>0\n };\n this.size(value, ctx);\n return [\n new $0e34a43d05bde82c$var$Ptr(0)\n ];\n }\n let ptr = null;\n this.offsetType = {\n encode: (stream, val)=>ptr = val\n };\n super.encode(stream, value, ctx);\n return [\n new $0e34a43d05bde82c$var$Ptr(ptr)\n ];\n }\n constructor(type, options = {}){\n if (options.type == null) options.type = 'global';\n super(null, type, options);\n }\n}\nclass $0e34a43d05bde82c$var$Ptr {\n valueOf() {\n return this.val;\n }\n constructor(val){\n this.val = val;\n this.forceLarge = true;\n }\n}\n\n\n\n\n\nclass $6d59db2e29cc77b3$var$CFFBlendOp {\n static decode(stream, parent, operands) {\n let numBlends = operands.pop();\n // TODO: actually blend. For now just consume the deltas\n // since we don't use any of the values anyway.\n while(operands.length > numBlends)operands.pop();\n }\n}\nvar $6d59db2e29cc77b3$export$2e2bcd8739ae039 = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type default\n [\n 6,\n 'BlueValues',\n 'delta',\n null\n ],\n [\n 7,\n 'OtherBlues',\n 'delta',\n null\n ],\n [\n 8,\n 'FamilyBlues',\n 'delta',\n null\n ],\n [\n 9,\n 'FamilyOtherBlues',\n 'delta',\n null\n ],\n [\n [\n 12,\n 9\n ],\n 'BlueScale',\n 'number',\n 0.039625\n ],\n [\n [\n 12,\n 10\n ],\n 'BlueShift',\n 'number',\n 7\n ],\n [\n [\n 12,\n 11\n ],\n 'BlueFuzz',\n 'number',\n 1\n ],\n [\n 10,\n 'StdHW',\n 'number',\n null\n ],\n [\n 11,\n 'StdVW',\n 'number',\n null\n ],\n [\n [\n 12,\n 12\n ],\n 'StemSnapH',\n 'delta',\n null\n ],\n [\n [\n 12,\n 13\n ],\n 'StemSnapV',\n 'delta',\n null\n ],\n [\n [\n 12,\n 14\n ],\n 'ForceBold',\n 'boolean',\n false\n ],\n [\n [\n 12,\n 17\n ],\n 'LanguageGroup',\n 'number',\n 0\n ],\n [\n [\n 12,\n 18\n ],\n 'ExpansionFactor',\n 'number',\n 0.06\n ],\n [\n [\n 12,\n 19\n ],\n 'initialRandomSeed',\n 'number',\n 0\n ],\n [\n 20,\n 'defaultWidthX',\n 'number',\n 0\n ],\n [\n 21,\n 'nominalWidthX',\n 'number',\n 0\n ],\n [\n 22,\n 'vsindex',\n 'number',\n 0\n ],\n [\n 23,\n 'blend',\n $6d59db2e29cc77b3$var$CFFBlendOp,\n null\n ],\n [\n 19,\n 'Subrs',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039), {\n type: 'local'\n }),\n null\n ]\n]);\n\n\n// Automatically generated from Appendix A of the CFF specification; do\n// not edit. Length should be 391.\nvar $229224aec43783c5$export$2e2bcd8739ae039 = [\n \".notdef\",\n \"space\",\n \"exclam\",\n \"quotedbl\",\n \"numbersign\",\n \"dollar\",\n \"percent\",\n \"ampersand\",\n \"quoteright\",\n \"parenleft\",\n \"parenright\",\n \"asterisk\",\n \"plus\",\n \"comma\",\n \"hyphen\",\n \"period\",\n \"slash\",\n \"zero\",\n \"one\",\n \"two\",\n \"three\",\n \"four\",\n \"five\",\n \"six\",\n \"seven\",\n \"eight\",\n \"nine\",\n \"colon\",\n \"semicolon\",\n \"less\",\n \"equal\",\n \"greater\",\n \"question\",\n \"at\",\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 \"bracketleft\",\n \"backslash\",\n \"bracketright\",\n \"asciicircum\",\n \"underscore\",\n \"quoteleft\",\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 \"braceleft\",\n \"bar\",\n \"braceright\",\n \"asciitilde\",\n \"exclamdown\",\n \"cent\",\n \"sterling\",\n \"fraction\",\n \"yen\",\n \"florin\",\n \"section\",\n \"currency\",\n \"quotesingle\",\n \"quotedblleft\",\n \"guillemotleft\",\n \"guilsinglleft\",\n \"guilsinglright\",\n \"fi\",\n \"fl\",\n \"endash\",\n \"dagger\",\n \"daggerdbl\",\n \"periodcentered\",\n \"paragraph\",\n \"bullet\",\n \"quotesinglbase\",\n \"quotedblbase\",\n \"quotedblright\",\n \"guillemotright\",\n \"ellipsis\",\n \"perthousand\",\n \"questiondown\",\n \"grave\",\n \"acute\",\n \"circumflex\",\n \"tilde\",\n \"macron\",\n \"breve\",\n \"dotaccent\",\n \"dieresis\",\n \"ring\",\n \"cedilla\",\n \"hungarumlaut\",\n \"ogonek\",\n \"caron\",\n \"emdash\",\n \"AE\",\n \"ordfeminine\",\n \"Lslash\",\n \"Oslash\",\n \"OE\",\n \"ordmasculine\",\n \"ae\",\n \"dotlessi\",\n \"lslash\",\n \"oslash\",\n \"oe\",\n \"germandbls\",\n \"onesuperior\",\n \"logicalnot\",\n \"mu\",\n \"trademark\",\n \"Eth\",\n \"onehalf\",\n \"plusminus\",\n \"Thorn\",\n \"onequarter\",\n \"divide\",\n \"brokenbar\",\n \"degree\",\n \"thorn\",\n \"threequarters\",\n \"twosuperior\",\n \"registered\",\n \"minus\",\n \"eth\",\n \"multiply\",\n \"threesuperior\",\n \"copyright\",\n \"Aacute\",\n \"Acircumflex\",\n \"Adieresis\",\n \"Agrave\",\n \"Aring\",\n \"Atilde\",\n \"Ccedilla\",\n \"Eacute\",\n \"Ecircumflex\",\n \"Edieresis\",\n \"Egrave\",\n \"Iacute\",\n \"Icircumflex\",\n \"Idieresis\",\n \"Igrave\",\n \"Ntilde\",\n \"Oacute\",\n \"Ocircumflex\",\n \"Odieresis\",\n \"Ograve\",\n \"Otilde\",\n \"Scaron\",\n \"Uacute\",\n \"Ucircumflex\",\n \"Udieresis\",\n \"Ugrave\",\n \"Yacute\",\n \"Ydieresis\",\n \"Zcaron\",\n \"aacute\",\n \"acircumflex\",\n \"adieresis\",\n \"agrave\",\n \"aring\",\n \"atilde\",\n \"ccedilla\",\n \"eacute\",\n \"ecircumflex\",\n \"edieresis\",\n \"egrave\",\n \"iacute\",\n \"icircumflex\",\n \"idieresis\",\n \"igrave\",\n \"ntilde\",\n \"oacute\",\n \"ocircumflex\",\n \"odieresis\",\n \"ograve\",\n \"otilde\",\n \"scaron\",\n \"uacute\",\n \"ucircumflex\",\n \"udieresis\",\n \"ugrave\",\n \"yacute\",\n \"ydieresis\",\n \"zcaron\",\n \"exclamsmall\",\n \"Hungarumlautsmall\",\n \"dollaroldstyle\",\n \"dollarsuperior\",\n \"ampersandsmall\",\n \"Acutesmall\",\n \"parenleftsuperior\",\n \"parenrightsuperior\",\n \"twodotenleader\",\n \"onedotenleader\",\n \"zerooldstyle\",\n \"oneoldstyle\",\n \"twooldstyle\",\n \"threeoldstyle\",\n \"fouroldstyle\",\n \"fiveoldstyle\",\n \"sixoldstyle\",\n \"sevenoldstyle\",\n \"eightoldstyle\",\n \"nineoldstyle\",\n \"commasuperior\",\n \"threequartersemdash\",\n \"periodsuperior\",\n \"questionsmall\",\n \"asuperior\",\n \"bsuperior\",\n \"centsuperior\",\n \"dsuperior\",\n \"esuperior\",\n \"isuperior\",\n \"lsuperior\",\n \"msuperior\",\n \"nsuperior\",\n \"osuperior\",\n \"rsuperior\",\n \"ssuperior\",\n \"tsuperior\",\n \"ff\",\n \"ffi\",\n \"ffl\",\n \"parenleftinferior\",\n \"parenrightinferior\",\n \"Circumflexsmall\",\n \"hyphensuperior\",\n \"Gravesmall\",\n \"Asmall\",\n \"Bsmall\",\n \"Csmall\",\n \"Dsmall\",\n \"Esmall\",\n \"Fsmall\",\n \"Gsmall\",\n \"Hsmall\",\n \"Ismall\",\n \"Jsmall\",\n \"Ksmall\",\n \"Lsmall\",\n \"Msmall\",\n \"Nsmall\",\n \"Osmall\",\n \"Psmall\",\n \"Qsmall\",\n \"Rsmall\",\n \"Ssmall\",\n \"Tsmall\",\n \"Usmall\",\n \"Vsmall\",\n \"Wsmall\",\n \"Xsmall\",\n \"Ysmall\",\n \"Zsmall\",\n \"colonmonetary\",\n \"onefitted\",\n \"rupiah\",\n \"Tildesmall\",\n \"exclamdownsmall\",\n \"centoldstyle\",\n \"Lslashsmall\",\n \"Scaronsmall\",\n \"Zcaronsmall\",\n \"Dieresissmall\",\n \"Brevesmall\",\n \"Caronsmall\",\n \"Dotaccentsmall\",\n \"Macronsmall\",\n \"figuredash\",\n \"hypheninferior\",\n \"Ogoneksmall\",\n \"Ringsmall\",\n \"Cedillasmall\",\n \"questiondownsmall\",\n \"oneeighth\",\n \"threeeighths\",\n \"fiveeighths\",\n \"seveneighths\",\n \"onethird\",\n \"twothirds\",\n \"zerosuperior\",\n \"foursuperior\",\n \"fivesuperior\",\n \"sixsuperior\",\n \"sevensuperior\",\n \"eightsuperior\",\n \"ninesuperior\",\n \"zeroinferior\",\n \"oneinferior\",\n \"twoinferior\",\n \"threeinferior\",\n \"fourinferior\",\n \"fiveinferior\",\n \"sixinferior\",\n \"seveninferior\",\n \"eightinferior\",\n \"nineinferior\",\n \"centinferior\",\n \"dollarinferior\",\n \"periodinferior\",\n \"commainferior\",\n \"Agravesmall\",\n \"Aacutesmall\",\n \"Acircumflexsmall\",\n \"Atildesmall\",\n \"Adieresissmall\",\n \"Aringsmall\",\n \"AEsmall\",\n \"Ccedillasmall\",\n \"Egravesmall\",\n \"Eacutesmall\",\n \"Ecircumflexsmall\",\n \"Edieresissmall\",\n \"Igravesmall\",\n \"Iacutesmall\",\n \"Icircumflexsmall\",\n \"Idieresissmall\",\n \"Ethsmall\",\n \"Ntildesmall\",\n \"Ogravesmall\",\n \"Oacutesmall\",\n \"Ocircumflexsmall\",\n \"Otildesmall\",\n \"Odieresissmall\",\n \"OEsmall\",\n \"Oslashsmall\",\n \"Ugravesmall\",\n \"Uacutesmall\",\n \"Ucircumflexsmall\",\n \"Udieresissmall\",\n \"Yacutesmall\",\n \"Thornsmall\",\n \"Ydieresissmall\",\n \"001.000\",\n \"001.001\",\n \"001.002\",\n \"001.003\",\n \"Black\",\n \"Bold\",\n \"Book\",\n \"Light\",\n \"Medium\",\n \"Regular\",\n \"Roman\",\n \"Semibold\"\n];\n\n\nlet $bc0433d9b7e41f5f$export$dee0027060fa13bd = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\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 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\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 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n '',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n '',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n '',\n 'questiondown',\n '',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n '',\n 'ring',\n 'cedilla',\n '',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'AE',\n '',\n 'ordfeminine',\n '',\n '',\n '',\n '',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n '',\n '',\n '',\n '',\n '',\n 'ae',\n '',\n '',\n '',\n 'dotlessi',\n '',\n '',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls'\n];\nlet $bc0433d9b7e41f5f$export$4f58f497e14a53c3 = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclamsmall',\n 'Hungarumlautsmall',\n '',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n '',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n '',\n '',\n 'isuperior',\n '',\n '',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n '',\n '',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n '',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n '',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n '',\n '',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n '',\n 'Dotaccentsmall',\n '',\n '',\n 'Macronsmall',\n '',\n '',\n 'figuredash',\n 'hypheninferior',\n '',\n '',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n '',\n '',\n '',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n '',\n '',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall'\n];\n\n\nlet $ef658f5c9a1488b2$export$c33b50336c234f16 = [\n '.notdef',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\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 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\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 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n 'questiondown',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n 'ring',\n 'cedilla',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n 'AE',\n 'ordfeminine',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n 'ae',\n 'dotlessi',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls',\n 'onesuperior',\n 'logicalnot',\n 'mu',\n 'trademark',\n 'Eth',\n 'onehalf',\n 'plusminus',\n 'Thorn',\n 'onequarter',\n 'divide',\n 'brokenbar',\n 'degree',\n 'thorn',\n 'threequarters',\n 'twosuperior',\n 'registered',\n 'minus',\n 'eth',\n 'multiply',\n 'threesuperior',\n 'copyright',\n 'Aacute',\n 'Acircumflex',\n 'Adieresis',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Ccedilla',\n 'Eacute',\n 'Ecircumflex',\n 'Edieresis',\n 'Egrave',\n 'Iacute',\n 'Icircumflex',\n 'Idieresis',\n 'Igrave',\n 'Ntilde',\n 'Oacute',\n 'Ocircumflex',\n 'Odieresis',\n 'Ograve',\n 'Otilde',\n 'Scaron',\n 'Uacute',\n 'Ucircumflex',\n 'Udieresis',\n 'Ugrave',\n 'Yacute',\n 'Ydieresis',\n 'Zcaron',\n 'aacute',\n 'acircumflex',\n 'adieresis',\n 'agrave',\n 'aring',\n 'atilde',\n 'ccedilla',\n 'eacute',\n 'ecircumflex',\n 'edieresis',\n 'egrave',\n 'iacute',\n 'icircumflex',\n 'idieresis',\n 'igrave',\n 'ntilde',\n 'oacute',\n 'ocircumflex',\n 'odieresis',\n 'ograve',\n 'otilde',\n 'scaron',\n 'uacute',\n 'ucircumflex',\n 'udieresis',\n 'ugrave',\n 'yacute',\n 'ydieresis',\n 'zcaron'\n];\nlet $ef658f5c9a1488b2$export$3ed0f9e1fee8d489 = [\n '.notdef',\n 'space',\n 'exclamsmall',\n 'Hungarumlautsmall',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n 'isuperior',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n 'Dotaccentsmall',\n 'Macronsmall',\n 'figuredash',\n 'hypheninferior',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall'\n];\nlet $ef658f5c9a1488b2$export$dc28be11139d4120 = [\n '.notdef',\n 'space',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n 'isuperior',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n 'parenrightinferior',\n 'hyphensuperior',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'centoldstyle',\n 'figuredash',\n 'hypheninferior',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior'\n];\n\n\n\n//########################\n// Scripts and Languages #\n//########################\nlet $7cbbe4e24ef3cb75$var$LangSysTable = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n reqFeatureIndex: $6uUbQ$uint16,\n featureCount: $6uUbQ$uint16,\n featureIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'featureCount')\n});\nlet $7cbbe4e24ef3cb75$var$LangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n langSys: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$LangSysTable, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$var$Script = new $6uUbQ$Struct({\n defaultLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$LangSysTable),\n count: $6uUbQ$uint16,\n langSysRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LangSysRecord, 'count')\n});\nlet $7cbbe4e24ef3cb75$var$ScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$Script, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$export$3e15fc05ce864229 = new $6uUbQ$Array($7cbbe4e24ef3cb75$var$ScriptRecord, $6uUbQ$uint16);\n//#######################\n// Features and Lookups #\n//#######################\nlet $7cbbe4e24ef3cb75$var$FeatureParams = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$6e91cf7616333d5 = new $6uUbQ$Struct({\n featureParams: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$FeatureParams),\n lookupCount: $6uUbQ$uint16,\n lookupListIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$FeatureRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n feature: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$6e91cf7616333d5, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$export$aa18130def4b6cb4 = new $6uUbQ$Array($7cbbe4e24ef3cb75$var$FeatureRecord, $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$var$LookupFlags = new $6uUbQ$Struct({\n markAttachmentType: $6uUbQ$uint8,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'rightToLeft',\n 'ignoreBaseGlyphs',\n 'ignoreLigatures',\n 'ignoreMarks',\n 'useMarkFilteringSet'\n ])\n});\nfunction $7cbbe4e24ef3cb75$export$df0008c6ff2da22a(SubTable) {\n let Lookup = new $6uUbQ$Struct({\n lookupType: $6uUbQ$uint16,\n flags: $7cbbe4e24ef3cb75$var$LookupFlags,\n subTableCount: $6uUbQ$uint16,\n subTables: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, SubTable), 'subTableCount'),\n markFilteringSet: new $6uUbQ$Optional($6uUbQ$uint16, (t)=>t.flags.flags.useMarkFilteringSet)\n });\n return new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, Lookup), $6uUbQ$uint16);\n}\n//#################\n// Coverage Table #\n//#################\nlet $7cbbe4e24ef3cb75$var$RangeRecord = new $6uUbQ$Struct({\n start: $6uUbQ$uint16,\n end: $6uUbQ$uint16,\n startCoverageIndex: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$17608c3f81a6111 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n glyphCount: $6uUbQ$uint16,\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n },\n 2: {\n rangeCount: $6uUbQ$uint16,\n rangeRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$RangeRecord, 'rangeCount')\n }\n});\n//#########################\n// Class Definition Table #\n//#########################\nlet $7cbbe4e24ef3cb75$var$ClassRangeRecord = new $6uUbQ$Struct({\n start: $6uUbQ$uint16,\n end: $6uUbQ$uint16,\n class: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$843d551fbbafef71 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n startGlyph: $6uUbQ$uint16,\n glyphCount: $6uUbQ$uint16,\n classValueArray: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n },\n 2: {\n classRangeCount: $6uUbQ$uint16,\n classRangeRecord: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$ClassRangeRecord, 'classRangeCount')\n }\n});\nlet $7cbbe4e24ef3cb75$export$8215d14a63d9fb10 = new $6uUbQ$Struct({\n a: $6uUbQ$uint16,\n b: $6uUbQ$uint16,\n deltaFormat: $6uUbQ$uint16\n});\n//#############################################\n// Contextual Substitution/Positioning Tables #\n//#############################################\nlet $7cbbe4e24ef3cb75$var$LookupRecord = new $6uUbQ$Struct({\n sequenceIndex: $6uUbQ$uint16,\n lookupListIndex: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$var$Rule = new $6uUbQ$Struct({\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n input: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.glyphCount - 1),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$RuleSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$Rule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$var$ClassRule = new $6uUbQ$Struct({\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n classes: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.glyphCount - 1),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$ClassSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ClassRule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$export$841858b892ce1f4c = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n ruleSetCount: $6uUbQ$uint16,\n ruleSets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$RuleSet), 'ruleSetCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n classDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n classSetCnt: $6uUbQ$uint16,\n classSet: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ClassSet), 'classSetCnt')\n },\n 3: {\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n coverages: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'glyphCount'),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n }\n});\n//######################################################\n// Chaining Contextual Substitution/Positioning Tables #\n//######################################################\nlet $7cbbe4e24ef3cb75$var$ChainRule = new $6uUbQ$Struct({\n backtrackGlyphCount: $6uUbQ$uint16,\n backtrack: new $6uUbQ$Array($6uUbQ$uint16, 'backtrackGlyphCount'),\n inputGlyphCount: $6uUbQ$uint16,\n input: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.inputGlyphCount - 1),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookahead: new $6uUbQ$Array($6uUbQ$uint16, 'lookaheadGlyphCount'),\n lookupCount: $6uUbQ$uint16,\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$ChainRuleSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$export$5e6d09e6861162f6 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n chainCount: $6uUbQ$uint16,\n chainRuleSets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRuleSet), 'chainCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n backtrackClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n inputClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n lookaheadClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n chainCount: $6uUbQ$uint16,\n chainClassSet: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRuleSet), 'chainCount')\n },\n 3: {\n backtrackGlyphCount: $6uUbQ$uint16,\n backtrackCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'backtrackGlyphCount'),\n inputGlyphCount: $6uUbQ$uint16,\n inputCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'inputGlyphCount'),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookaheadCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'lookaheadGlyphCount'),\n lookupCount: $6uUbQ$uint16,\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n }\n});\n\n\n\n/*******************\n * Variation Store *\n *******************/ let $1a47b0c45c1c22fe$var$F2DOT14 = new $6uUbQ$Fixed(16, 'BE', 14);\nlet $1a47b0c45c1c22fe$var$RegionAxisCoordinates = new $6uUbQ$Struct({\n startCoord: $1a47b0c45c1c22fe$var$F2DOT14,\n peakCoord: $1a47b0c45c1c22fe$var$F2DOT14,\n endCoord: $1a47b0c45c1c22fe$var$F2DOT14\n});\nlet $1a47b0c45c1c22fe$var$VariationRegionList = new $6uUbQ$Struct({\n axisCount: $6uUbQ$uint16,\n regionCount: $6uUbQ$uint16,\n variationRegions: new $6uUbQ$Array(new $6uUbQ$Array($1a47b0c45c1c22fe$var$RegionAxisCoordinates, 'axisCount'), 'regionCount')\n});\nlet $1a47b0c45c1c22fe$var$DeltaSet = new $6uUbQ$Struct({\n shortDeltas: new $6uUbQ$Array($6uUbQ$int16, (t)=>t.parent.shortDeltaCount),\n regionDeltas: new $6uUbQ$Array($6uUbQ$int8, (t)=>t.parent.regionIndexCount - t.parent.shortDeltaCount),\n deltas: (t)=>t.shortDeltas.concat(t.regionDeltas)\n});\nlet $1a47b0c45c1c22fe$var$ItemVariationData = new $6uUbQ$Struct({\n itemCount: $6uUbQ$uint16,\n shortDeltaCount: $6uUbQ$uint16,\n regionIndexCount: $6uUbQ$uint16,\n regionIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'regionIndexCount'),\n deltaSets: new $6uUbQ$Array($1a47b0c45c1c22fe$var$DeltaSet, 'itemCount')\n});\nlet $1a47b0c45c1c22fe$export$fe1b122a2710f241 = new $6uUbQ$Struct({\n format: $6uUbQ$uint16,\n variationRegionList: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$VariationRegionList),\n variationDataCount: $6uUbQ$uint16,\n itemVariationData: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ItemVariationData), 'variationDataCount')\n});\n/**********************\n * Feature Variations *\n **********************/ let $1a47b0c45c1c22fe$var$ConditionTable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n axisIndex: $6uUbQ$uint16,\n axisIndex: $6uUbQ$uint16,\n filterRangeMinValue: $1a47b0c45c1c22fe$var$F2DOT14,\n filterRangeMaxValue: $1a47b0c45c1c22fe$var$F2DOT14\n }\n});\nlet $1a47b0c45c1c22fe$var$ConditionSet = new $6uUbQ$Struct({\n conditionCount: $6uUbQ$uint16,\n conditionTable: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ConditionTable), 'conditionCount')\n});\nlet $1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord = new $6uUbQ$Struct({\n featureIndex: $6uUbQ$uint16,\n alternateFeatureTable: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $7cbbe4e24ef3cb75$export$6e91cf7616333d5), {\n type: 'parent'\n })\n});\nlet $1a47b0c45c1c22fe$var$FeatureTableSubstitution = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n substitutionCount: $6uUbQ$uint16,\n substitutions: new $6uUbQ$Array($1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord, 'substitutionCount')\n});\nlet $1a47b0c45c1c22fe$var$FeatureVariationRecord = new $6uUbQ$Struct({\n conditionSet: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ConditionSet, {\n type: 'parent'\n }),\n featureTableSubstitution: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$FeatureTableSubstitution, {\n type: 'parent'\n })\n});\nlet $1a47b0c45c1c22fe$export$441b70b7971dd419 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n featureVariationRecordCount: $6uUbQ$uint32,\n featureVariationRecords: new $6uUbQ$Array($1a47b0c45c1c22fe$var$FeatureVariationRecord, 'featureVariationRecordCount')\n});\n\n\n// Checks if an operand is an index of a predefined value,\n// otherwise delegates to the provided type.\nclass $b84fd3dd9d8eddb2$var$PredefinedOp {\n decode(stream, parent, operands) {\n if (this.predefinedOps[operands[0]]) return this.predefinedOps[operands[0]];\n return this.type.decode(stream, parent, operands);\n }\n size(value, ctx) {\n return this.type.size(value, ctx);\n }\n encode(stream, value, ctx) {\n let index = this.predefinedOps.indexOf(value);\n if (index !== -1) return index;\n return this.type.encode(stream, value, ctx);\n }\n constructor(predefinedOps, type){\n this.predefinedOps = predefinedOps;\n this.type = type;\n }\n}\nclass $b84fd3dd9d8eddb2$var$CFFEncodingVersion extends $6uUbQ$Number {\n decode(stream) {\n return $6uUbQ$uint8.decode(stream) & 0x7f;\n }\n constructor(){\n super('UInt8');\n }\n}\nlet $b84fd3dd9d8eddb2$var$Range1 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n nLeft: $6uUbQ$uint8\n});\nlet $b84fd3dd9d8eddb2$var$Range2 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n nLeft: $6uUbQ$uint16\n});\nlet $b84fd3dd9d8eddb2$var$CFFCustomEncoding = new $6uUbQ$VersionedStruct(new $b84fd3dd9d8eddb2$var$CFFEncodingVersion(), {\n 0: {\n nCodes: $6uUbQ$uint8,\n codes: new $6uUbQ$Array($6uUbQ$uint8, 'nCodes')\n },\n 1: {\n nRanges: $6uUbQ$uint8,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$Range1, 'nRanges')\n }\n});\nlet $b84fd3dd9d8eddb2$var$CFFEncoding = new $b84fd3dd9d8eddb2$var$PredefinedOp([\n (0, $bc0433d9b7e41f5f$export$dee0027060fa13bd),\n (0, $bc0433d9b7e41f5f$export$4f58f497e14a53c3)\n], new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFCustomEncoding, {\n lazy: true\n}));\n// Decodes an array of ranges until the total\n// length is equal to the provided length.\nclass $b84fd3dd9d8eddb2$var$RangeArray extends $6uUbQ$Array {\n decode(stream, parent) {\n let length = (0, $6uUbQ$resolveLength)(this.length, stream, parent);\n let count = 0;\n let res = [];\n while(count < length){\n let range = this.type.decode(stream, parent);\n range.offset = count;\n count += range.nLeft + 1;\n res.push(range);\n }\n return res;\n }\n}\nlet $b84fd3dd9d8eddb2$var$CFFCustomCharset = new $6uUbQ$VersionedStruct($6uUbQ$uint8, {\n 0: {\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.parent.CharStrings.length - 1)\n },\n 1: {\n ranges: new $b84fd3dd9d8eddb2$var$RangeArray($b84fd3dd9d8eddb2$var$Range1, (t)=>t.parent.CharStrings.length - 1)\n },\n 2: {\n ranges: new $b84fd3dd9d8eddb2$var$RangeArray($b84fd3dd9d8eddb2$var$Range2, (t)=>t.parent.CharStrings.length - 1)\n }\n});\nlet $b84fd3dd9d8eddb2$var$CFFCharset = new $b84fd3dd9d8eddb2$var$PredefinedOp([\n (0, $ef658f5c9a1488b2$export$c33b50336c234f16),\n (0, $ef658f5c9a1488b2$export$3ed0f9e1fee8d489),\n (0, $ef658f5c9a1488b2$export$dc28be11139d4120)\n], new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFCustomCharset, {\n lazy: true\n}));\nlet $b84fd3dd9d8eddb2$var$FDRange3 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n fd: $6uUbQ$uint8\n});\nlet $b84fd3dd9d8eddb2$var$FDRange4 = new $6uUbQ$Struct({\n first: $6uUbQ$uint32,\n fd: $6uUbQ$uint16\n});\nlet $b84fd3dd9d8eddb2$var$FDSelect = new $6uUbQ$VersionedStruct($6uUbQ$uint8, {\n 0: {\n fds: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.parent.CharStrings.length)\n },\n 3: {\n nRanges: $6uUbQ$uint16,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$FDRange3, 'nRanges'),\n sentinel: $6uUbQ$uint16\n },\n 4: {\n nRanges: $6uUbQ$uint32,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$FDRange4, 'nRanges'),\n sentinel: $6uUbQ$uint32\n }\n});\nlet $b84fd3dd9d8eddb2$var$ptr = new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)((0, $6d59db2e29cc77b3$export$2e2bcd8739ae039));\nclass $b84fd3dd9d8eddb2$var$CFFPrivateOp {\n decode(stream, parent, operands) {\n parent.length = operands[0];\n return $b84fd3dd9d8eddb2$var$ptr.decode(stream, parent, [\n operands[1]\n ]);\n }\n size(dict, ctx) {\n return [\n (0, $6d59db2e29cc77b3$export$2e2bcd8739ae039).size(dict, ctx, false),\n $b84fd3dd9d8eddb2$var$ptr.size(dict, ctx)[0]\n ];\n }\n encode(stream, dict, ctx) {\n return [\n (0, $6d59db2e29cc77b3$export$2e2bcd8739ae039).size(dict, ctx, false),\n $b84fd3dd9d8eddb2$var$ptr.encode(stream, dict, ctx)[0]\n ];\n }\n}\nlet $b84fd3dd9d8eddb2$var$FontDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type(s) default\n [\n 18,\n 'Private',\n new $b84fd3dd9d8eddb2$var$CFFPrivateOp,\n null\n ],\n [\n [\n 12,\n 38\n ],\n 'FontName',\n 'sid',\n null\n ],\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n [\n 12,\n 5\n ],\n 'PaintType',\n 'number',\n 0\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$CFFTopDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type(s) default\n [\n [\n 12,\n 30\n ],\n 'ROS',\n [\n 'sid',\n 'sid',\n 'number'\n ],\n null\n ],\n [\n 0,\n 'version',\n 'sid',\n null\n ],\n [\n 1,\n 'Notice',\n 'sid',\n null\n ],\n [\n [\n 12,\n 0\n ],\n 'Copyright',\n 'sid',\n null\n ],\n [\n 2,\n 'FullName',\n 'sid',\n null\n ],\n [\n 3,\n 'FamilyName',\n 'sid',\n null\n ],\n [\n 4,\n 'Weight',\n 'sid',\n null\n ],\n [\n [\n 12,\n 1\n ],\n 'isFixedPitch',\n 'boolean',\n false\n ],\n [\n [\n 12,\n 2\n ],\n 'ItalicAngle',\n 'number',\n 0\n ],\n [\n [\n 12,\n 3\n ],\n 'UnderlinePosition',\n 'number',\n -100\n ],\n [\n [\n 12,\n 4\n ],\n 'UnderlineThickness',\n 'number',\n 50\n ],\n [\n [\n 12,\n 5\n ],\n 'PaintType',\n 'number',\n 0\n ],\n [\n [\n 12,\n 6\n ],\n 'CharstringType',\n 'number',\n 2\n ],\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n 13,\n 'UniqueID',\n 'number',\n null\n ],\n [\n 5,\n 'FontBBox',\n 'array',\n [\n 0,\n 0,\n 0,\n 0\n ]\n ],\n [\n [\n 12,\n 8\n ],\n 'StrokeWidth',\n 'number',\n 0\n ],\n [\n 14,\n 'XUID',\n 'array',\n null\n ],\n [\n 15,\n 'charset',\n $b84fd3dd9d8eddb2$var$CFFCharset,\n (0, $ef658f5c9a1488b2$export$c33b50336c234f16)\n ],\n [\n 16,\n 'Encoding',\n $b84fd3dd9d8eddb2$var$CFFEncoding,\n (0, $bc0433d9b7e41f5f$export$dee0027060fa13bd)\n ],\n [\n 17,\n 'CharStrings',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)),\n null\n ],\n [\n 18,\n 'Private',\n new $b84fd3dd9d8eddb2$var$CFFPrivateOp,\n null\n ],\n [\n [\n 12,\n 20\n ],\n 'SyntheticBase',\n 'number',\n null\n ],\n [\n [\n 12,\n 21\n ],\n 'PostScript',\n 'sid',\n null\n ],\n [\n [\n 12,\n 22\n ],\n 'BaseFontName',\n 'sid',\n null\n ],\n [\n [\n 12,\n 23\n ],\n 'BaseFontBlend',\n 'delta',\n null\n ],\n // CID font specific\n [\n [\n 12,\n 31\n ],\n 'CIDFontVersion',\n 'number',\n 0\n ],\n [\n [\n 12,\n 32\n ],\n 'CIDFontRevision',\n 'number',\n 0\n ],\n [\n [\n 12,\n 33\n ],\n 'CIDFontType',\n 'number',\n 0\n ],\n [\n [\n 12,\n 34\n ],\n 'CIDCount',\n 'number',\n 8720\n ],\n [\n [\n 12,\n 35\n ],\n 'UIDBase',\n 'number',\n null\n ],\n [\n [\n 12,\n 37\n ],\n 'FDSelect',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FDSelect),\n null\n ],\n [\n [\n 12,\n 36\n ],\n 'FDArray',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FontDict)),\n null\n ],\n [\n [\n 12,\n 38\n ],\n 'FontName',\n 'sid',\n null\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$VariationStore = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n itemVariationStore: (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241)\n});\nlet $b84fd3dd9d8eddb2$var$CFF2TopDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n 17,\n 'CharStrings',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)),\n null\n ],\n [\n [\n 12,\n 37\n ],\n 'FDSelect',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FDSelect),\n null\n ],\n [\n [\n 12,\n 36\n ],\n 'FDArray',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FontDict)),\n null\n ],\n [\n 24,\n 'vstore',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$VariationStore),\n null\n ],\n [\n 25,\n 'maxstack',\n 'number',\n 193\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$CFFTop = new $6uUbQ$VersionedStruct($6uUbQ$fixed16, {\n 1: {\n hdrSize: $6uUbQ$uint8,\n offSize: $6uUbQ$uint8,\n nameIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(new $6uUbQ$String('length')),\n topDictIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFTopDict),\n stringIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(new $6uUbQ$String('length')),\n globalSubrIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)\n },\n 2: {\n hdrSize: $6uUbQ$uint8,\n length: $6uUbQ$uint16,\n topDict: $b84fd3dd9d8eddb2$var$CFF2TopDict,\n globalSubrIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)\n }\n});\nvar $b84fd3dd9d8eddb2$export$2e2bcd8739ae039 = $b84fd3dd9d8eddb2$var$CFFTop;\n\n\n\n\nclass $822ac0d589e4e237$var$CFFFont {\n static decode(stream) {\n return new $822ac0d589e4e237$var$CFFFont(stream);\n }\n decode() {\n let start = this.stream.pos;\n let top = (0, $b84fd3dd9d8eddb2$export$2e2bcd8739ae039).decode(this.stream);\n for(let key in top){\n let val = top[key];\n this[key] = val;\n }\n if (this.version < 2) {\n if (this.topDictIndex.length !== 1) throw new Error(\"Only a single font is allowed in CFF\");\n this.topDict = this.topDictIndex[0];\n }\n this.isCIDFont = this.topDict.ROS != null;\n return this;\n }\n string(sid) {\n if (this.version >= 2) return null;\n if (sid < (0, $229224aec43783c5$export$2e2bcd8739ae039).length) return (0, $229224aec43783c5$export$2e2bcd8739ae039)[sid];\n return this.stringIndex[sid - (0, $229224aec43783c5$export$2e2bcd8739ae039).length];\n }\n get postscriptName() {\n if (this.version < 2) return this.nameIndex[0];\n return null;\n }\n get fullName() {\n return this.string(this.topDict.FullName);\n }\n get familyName() {\n return this.string(this.topDict.FamilyName);\n }\n getCharString(glyph) {\n this.stream.pos = this.topDict.CharStrings[glyph].offset;\n return this.stream.readBuffer(this.topDict.CharStrings[glyph].length);\n }\n getGlyphName(gid) {\n // CFF2 glyph names are in the post table.\n if (this.version >= 2) return null;\n // CID-keyed fonts don't have glyph names\n if (this.isCIDFont) return null;\n let { charset: charset } = this.topDict;\n if (Array.isArray(charset)) return charset[gid];\n if (gid === 0) return '.notdef';\n gid -= 1;\n switch(charset.version){\n case 0:\n return this.string(charset.glyphs[gid]);\n case 1:\n case 2:\n for(let i = 0; i < charset.ranges.length; i++){\n let range = charset.ranges[i];\n if (range.offset <= gid && gid <= range.offset + range.nLeft) return this.string(range.first + (gid - range.offset));\n }\n break;\n }\n return null;\n }\n fdForGlyph(gid) {\n if (!this.topDict.FDSelect) return null;\n switch(this.topDict.FDSelect.version){\n case 0:\n return this.topDict.FDSelect.fds[gid];\n case 3:\n case 4:\n let { ranges: ranges } = this.topDict.FDSelect;\n let low = 0;\n let high = ranges.length - 1;\n while(low <= high){\n let mid = low + high >> 1;\n if (gid < ranges[mid].first) high = mid - 1;\n else if (mid < high && gid >= ranges[mid + 1].first) low = mid + 1;\n else return ranges[mid].fd;\n }\n default:\n throw new Error(`Unknown FDSelect version: ${this.topDict.FDSelect.version}`);\n }\n }\n privateDictForGlyph(gid) {\n if (this.topDict.FDSelect) {\n let fd = this.fdForGlyph(gid);\n if (this.topDict.FDArray[fd]) return this.topDict.FDArray[fd].Private;\n return null;\n }\n if (this.version < 2) return this.topDict.Private;\n return this.topDict.FDArray[0].Private;\n }\n constructor(stream){\n this.stream = stream;\n this.decode();\n }\n}\nvar $822ac0d589e4e237$export$2e2bcd8739ae039 = $822ac0d589e4e237$var$CFFFont;\n\n\n\nlet $2bbf2bc1ce37cd8f$var$VerticalOrigin = new $6uUbQ$Struct({\n glyphIndex: $6uUbQ$uint16,\n vertOriginY: $6uUbQ$int16\n});\nvar $2bbf2bc1ce37cd8f$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n defaultVertOriginY: $6uUbQ$int16,\n numVertOriginYMetrics: $6uUbQ$uint16,\n metrics: new $6uUbQ$Array($2bbf2bc1ce37cd8f$var$VerticalOrigin, 'numVertOriginYMetrics')\n});\n\n\n\n\nlet $0941618dc22a946d$export$16b227cb15d716a0 = new $6uUbQ$Struct({\n height: $6uUbQ$uint8,\n width: $6uUbQ$uint8,\n horiBearingX: $6uUbQ$int8,\n horiBearingY: $6uUbQ$int8,\n horiAdvance: $6uUbQ$uint8,\n vertBearingX: $6uUbQ$int8,\n vertBearingY: $6uUbQ$int8,\n vertAdvance: $6uUbQ$uint8\n});\nlet $0941618dc22a946d$export$62c53e75f69bfe12 = new $6uUbQ$Struct({\n height: $6uUbQ$uint8,\n width: $6uUbQ$uint8,\n bearingX: $6uUbQ$int8,\n bearingY: $6uUbQ$int8,\n advance: $6uUbQ$uint8\n});\nlet $0941618dc22a946d$var$EBDTComponent = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n xOffset: $6uUbQ$int8,\n yOffset: $6uUbQ$int8\n});\nclass $0941618dc22a946d$var$ByteAligned {\n}\nclass $0941618dc22a946d$var$BitAligned {\n}\nlet $0941618dc22a946d$export$f1f5ddeb20d14f = new $6uUbQ$VersionedStruct('version', {\n 1: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n data: $0941618dc22a946d$var$ByteAligned\n },\n 2: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n data: $0941618dc22a946d$var$BitAligned\n },\n // format 3 is deprecated\n // format 4 is not supported by Microsoft\n 5: {\n data: $0941618dc22a946d$var$BitAligned\n },\n 6: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n data: $0941618dc22a946d$var$ByteAligned\n },\n 7: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n data: $0941618dc22a946d$var$BitAligned\n },\n 8: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n pad: new $6uUbQ$Reserved($6uUbQ$uint8),\n numComponents: $6uUbQ$uint16,\n components: new $6uUbQ$Array($0941618dc22a946d$var$EBDTComponent, 'numComponents')\n },\n 9: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n pad: new $6uUbQ$Reserved($6uUbQ$uint8),\n numComponents: $6uUbQ$uint16,\n components: new $6uUbQ$Array($0941618dc22a946d$var$EBDTComponent, 'numComponents')\n },\n 17: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n },\n 18: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n },\n 19: {\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n }\n});\n\n\nlet $9911c4c7201c13de$var$SBitLineMetrics = new $6uUbQ$Struct({\n ascender: $6uUbQ$int8,\n descender: $6uUbQ$int8,\n widthMax: $6uUbQ$uint8,\n caretSlopeNumerator: $6uUbQ$int8,\n caretSlopeDenominator: $6uUbQ$int8,\n caretOffset: $6uUbQ$int8,\n minOriginSB: $6uUbQ$int8,\n minAdvanceSB: $6uUbQ$int8,\n maxBeforeBL: $6uUbQ$int8,\n minAfterBL: $6uUbQ$int8,\n pad: new $6uUbQ$Reserved($6uUbQ$int8, 2)\n});\nlet $9911c4c7201c13de$var$CodeOffsetPair = new $6uUbQ$Struct({\n glyphCode: $6uUbQ$uint16,\n offset: $6uUbQ$uint16\n});\nlet $9911c4c7201c13de$var$IndexSubtable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n imageFormat: $6uUbQ$uint16,\n imageDataOffset: $6uUbQ$uint32\n },\n 1: {\n offsetArray: new $6uUbQ$Array($6uUbQ$uint32, (t)=>t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1)\n },\n 2: {\n imageSize: $6uUbQ$uint32,\n bigMetrics: (0, $0941618dc22a946d$export$16b227cb15d716a0)\n },\n 3: {\n offsetArray: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1)\n },\n 4: {\n numGlyphs: $6uUbQ$uint32,\n glyphArray: new $6uUbQ$Array($9911c4c7201c13de$var$CodeOffsetPair, (t)=>t.numGlyphs + 1)\n },\n 5: {\n imageSize: $6uUbQ$uint32,\n bigMetrics: (0, $0941618dc22a946d$export$16b227cb15d716a0),\n numGlyphs: $6uUbQ$uint32,\n glyphCodeArray: new $6uUbQ$Array($6uUbQ$uint16, 'numGlyphs')\n }\n});\nlet $9911c4c7201c13de$var$IndexSubtableArray = new $6uUbQ$Struct({\n firstGlyphIndex: $6uUbQ$uint16,\n lastGlyphIndex: $6uUbQ$uint16,\n subtable: new $6uUbQ$Pointer($6uUbQ$uint32, $9911c4c7201c13de$var$IndexSubtable)\n});\nlet $9911c4c7201c13de$var$BitmapSizeTable = new $6uUbQ$Struct({\n indexSubTableArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($9911c4c7201c13de$var$IndexSubtableArray, 1), {\n type: 'parent'\n }),\n indexTablesSize: $6uUbQ$uint32,\n numberOfIndexSubTables: $6uUbQ$uint32,\n colorRef: $6uUbQ$uint32,\n hori: $9911c4c7201c13de$var$SBitLineMetrics,\n vert: $9911c4c7201c13de$var$SBitLineMetrics,\n startGlyphIndex: $6uUbQ$uint16,\n endGlyphIndex: $6uUbQ$uint16,\n ppemX: $6uUbQ$uint8,\n ppemY: $6uUbQ$uint8,\n bitDepth: $6uUbQ$uint8,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'horizontal',\n 'vertical'\n ])\n});\nvar $9911c4c7201c13de$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n numSizes: $6uUbQ$uint32,\n sizes: new $6uUbQ$Array($9911c4c7201c13de$var$BitmapSizeTable, 'numSizes')\n});\n\n\n\nlet $abb847051efd51b1$var$ImageTable = new $6uUbQ$Struct({\n ppem: $6uUbQ$uint16,\n resolution: $6uUbQ$uint16,\n imageOffsets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, 'void'), (t)=>t.parent.parent.maxp.numGlyphs + 1)\n});\nvar // This is the Apple sbix table, used by the \"Apple Color Emoji\" font.\n// It includes several image tables with images for each bitmap glyph\n// of several different sizes.\n$abb847051efd51b1$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'renderOutlines'\n ]),\n numImgTables: $6uUbQ$uint32,\n imageTables: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $abb847051efd51b1$var$ImageTable), 'numImgTables')\n});\n\n\n\nlet $eb629188f3dfefdd$var$LayerRecord = new $6uUbQ$Struct({\n gid: $6uUbQ$uint16,\n paletteIndex: $6uUbQ$uint16 // Index value to use in the appropriate palette. This value must\n}); // be less than numPaletteEntries in the CPAL table, except for\n// the special case noted below. Each palette entry is 16 bits.\n// A palette index of 0xFFFF is a special case indicating that\n// the text foreground color should be used.\nlet $eb629188f3dfefdd$var$BaseGlyphRecord = new $6uUbQ$Struct({\n gid: $6uUbQ$uint16,\n // and is not rendered for color.\n firstLayerIndex: $6uUbQ$uint16,\n // There will be numLayers consecutive entries for this base glyph.\n numLayers: $6uUbQ$uint16\n});\nvar $eb629188f3dfefdd$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numBaseGlyphRecords: $6uUbQ$uint16,\n baseGlyphRecord: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($eb629188f3dfefdd$var$BaseGlyphRecord, 'numBaseGlyphRecords')),\n layerRecords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($eb629188f3dfefdd$var$LayerRecord, 'numLayerRecords'), {\n lazy: true\n }),\n numLayerRecords: $6uUbQ$uint16\n});\n\n\n\nlet $08734b8e7dc64587$var$ColorRecord = new $6uUbQ$Struct({\n blue: $6uUbQ$uint8,\n green: $6uUbQ$uint8,\n red: $6uUbQ$uint8,\n alpha: $6uUbQ$uint8\n});\nvar $08734b8e7dc64587$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n numPaletteEntries: $6uUbQ$uint16,\n numPalettes: $6uUbQ$uint16,\n numColorRecords: $6uUbQ$uint16,\n colorRecords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($08734b8e7dc64587$var$ColorRecord, 'numColorRecords')),\n colorRecordIndices: new $6uUbQ$Array($6uUbQ$uint16, 'numPalettes')\n },\n 0: {},\n 1: {\n offsetPaletteTypeArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint32, 'numPalettes')),\n offsetPaletteLabelArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint16, 'numPalettes')),\n offsetPaletteEntryLabelArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint16, 'numPaletteEntries'))\n }\n});\n\n\n\n\n\nlet $497cef411d884e34$var$BaseCoord = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coordinate: $6uUbQ$int16 // X or Y value, in design units\n },\n 2: {\n coordinate: $6uUbQ$int16,\n referenceGlyph: $6uUbQ$uint16,\n baseCoordPoint: $6uUbQ$uint16 // Index of contour point on the referenceGlyph\n },\n 3: {\n coordinate: $6uUbQ$int16,\n deviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10)) // Device table for X or Y value\n }\n});\nlet $497cef411d884e34$var$BaseValues = new $6uUbQ$Struct({\n defaultIndex: $6uUbQ$uint16,\n baseCoordCount: $6uUbQ$uint16,\n baseCoords: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord), 'baseCoordCount')\n});\nlet $497cef411d884e34$var$FeatMinMaxRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n minCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord, {\n type: 'parent'\n }),\n maxCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord, {\n type: 'parent'\n }) // May be NULL\n});\nlet $497cef411d884e34$var$MinMax = new $6uUbQ$Struct({\n minCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord),\n maxCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord),\n featMinMaxCount: $6uUbQ$uint16,\n featMinMaxRecords: new $6uUbQ$Array($497cef411d884e34$var$FeatMinMaxRecord, 'featMinMaxCount') // In alphabetical order\n});\nlet $497cef411d884e34$var$BaseLangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n minMax: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$MinMax, {\n type: 'parent'\n })\n});\nlet $497cef411d884e34$var$BaseScript = new $6uUbQ$Struct({\n baseValues: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseValues),\n defaultMinMax: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$MinMax),\n baseLangSysCount: $6uUbQ$uint16,\n baseLangSysRecords: new $6uUbQ$Array($497cef411d884e34$var$BaseLangSysRecord, 'baseLangSysCount') // in alphabetical order by BaseLangSysTag\n});\nlet $497cef411d884e34$var$BaseScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseScript, {\n type: 'parent'\n })\n});\nlet $497cef411d884e34$var$BaseScriptList = new $6uUbQ$Array($497cef411d884e34$var$BaseScriptRecord, $6uUbQ$uint16);\n// Array of 4-byte baseline identification tags-must be in alphabetical order\nlet $497cef411d884e34$var$BaseTagList = new $6uUbQ$Array(new $6uUbQ$String(4), $6uUbQ$uint16);\nlet $497cef411d884e34$var$Axis = new $6uUbQ$Struct({\n baseTagList: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseTagList),\n baseScriptList: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseScriptList)\n});\nvar $497cef411d884e34$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n horizAxis: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$Axis),\n vertAxis: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$Axis) // May be NULL\n },\n 0x00010000: {},\n 0x00010001: {\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241))\n }\n});\n\n\n\n\n\nlet $cf5f33c63ef209e6$var$AttachPoint = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $cf5f33c63ef209e6$var$AttachList = new $6uUbQ$Struct({\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n glyphCount: $6uUbQ$uint16,\n attachPoints: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$AttachPoint), 'glyphCount')\n});\nlet $cf5f33c63ef209e6$var$CaretValue = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coordinate: $6uUbQ$int16\n },\n 2: {\n caretValuePoint: $6uUbQ$uint16\n },\n 3: {\n coordinate: $6uUbQ$int16,\n deviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))\n }\n});\nlet $cf5f33c63ef209e6$var$LigGlyph = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$CaretValue), $6uUbQ$uint16);\nlet $cf5f33c63ef209e6$var$LigCaretList = new $6uUbQ$Struct({\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n ligGlyphCount: $6uUbQ$uint16,\n ligGlyphs: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$LigGlyph), 'ligGlyphCount')\n});\nlet $cf5f33c63ef209e6$var$MarkGlyphSetsDef = new $6uUbQ$Struct({\n markSetTableFormat: $6uUbQ$uint16,\n markSetCount: $6uUbQ$uint16,\n coverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'markSetCount')\n});\nvar $cf5f33c63ef209e6$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n glyphClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n attachList: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$AttachList),\n ligCaretList: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$LigCaretList),\n markAttachClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71))\n },\n 0x00010000: {},\n 0x00010002: {\n markGlyphSetsDef: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$MarkGlyphSetsDef)\n },\n 0x00010003: {\n markGlyphSetsDef: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$MarkGlyphSetsDef),\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241))\n }\n});\n\n\n\n\n\nlet $47e0e8ef515d9903$var$ValueFormat = new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'xPlacement',\n 'yPlacement',\n 'xAdvance',\n 'yAdvance',\n 'xPlaDevice',\n 'yPlaDevice',\n 'xAdvDevice',\n 'yAdvDevice'\n]);\nlet $47e0e8ef515d9903$var$types = {\n xPlacement: $6uUbQ$int16,\n yPlacement: $6uUbQ$int16,\n xAdvance: $6uUbQ$int16,\n yAdvance: $6uUbQ$int16,\n xPlaDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n yPlaDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n xAdvDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n yAdvDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n })\n};\nclass $47e0e8ef515d9903$var$ValueRecord {\n buildStruct(parent) {\n let struct = parent;\n while(!struct[this.key] && struct.parent)struct = struct.parent;\n if (!struct[this.key]) return;\n let fields = {};\n fields.rel = ()=>struct._startOffset;\n let format = struct[this.key];\n for(let key in format)if (format[key]) fields[key] = $47e0e8ef515d9903$var$types[key];\n return new $6uUbQ$Struct(fields);\n }\n size(val, ctx) {\n return this.buildStruct(ctx).size(val, ctx);\n }\n decode(stream, parent) {\n let res = this.buildStruct(parent).decode(stream, parent);\n delete res.rel;\n return res;\n }\n constructor(key = 'valueFormat'){\n this.key = key;\n }\n}\nlet $47e0e8ef515d9903$var$PairValueRecord = new $6uUbQ$Struct({\n secondGlyph: $6uUbQ$uint16,\n value1: new $47e0e8ef515d9903$var$ValueRecord('valueFormat1'),\n value2: new $47e0e8ef515d9903$var$ValueRecord('valueFormat2')\n});\nlet $47e0e8ef515d9903$var$PairSet = new $6uUbQ$Array($47e0e8ef515d9903$var$PairValueRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$Class2Record = new $6uUbQ$Struct({\n value1: new $47e0e8ef515d9903$var$ValueRecord('valueFormat1'),\n value2: new $47e0e8ef515d9903$var$ValueRecord('valueFormat2')\n});\nlet $47e0e8ef515d9903$var$Anchor = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16\n },\n 2: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16,\n anchorPoint: $6uUbQ$uint16\n },\n 3: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16,\n xDeviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10)),\n yDeviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))\n }\n});\nlet $47e0e8ef515d9903$var$EntryExitRecord = new $6uUbQ$Struct({\n entryAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n }),\n exitAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n })\n});\nlet $47e0e8ef515d9903$var$MarkRecord = new $6uUbQ$Struct({\n class: $6uUbQ$uint16,\n markAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n })\n});\nlet $47e0e8ef515d9903$var$MarkArray = new $6uUbQ$Array($47e0e8ef515d9903$var$MarkRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$BaseRecord = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor), (t)=>t.parent.classCount);\nlet $47e0e8ef515d9903$var$BaseArray = new $6uUbQ$Array($47e0e8ef515d9903$var$BaseRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$ComponentRecord = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor), (t)=>t.parent.parent.classCount);\nlet $47e0e8ef515d9903$var$LigatureAttach = new $6uUbQ$Array($47e0e8ef515d9903$var$ComponentRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$LigatureArray = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$LigatureAttach), $6uUbQ$uint16);\nlet $47e0e8ef515d9903$export$73a8cfb19cd43a0f = new $6uUbQ$VersionedStruct('lookupType', {\n 1: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat: $47e0e8ef515d9903$var$ValueFormat,\n value: new $47e0e8ef515d9903$var$ValueRecord()\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat: $47e0e8ef515d9903$var$ValueFormat,\n valueCount: $6uUbQ$uint16,\n values: new $6uUbQ$LazyArray(new $47e0e8ef515d9903$var$ValueRecord(), 'valueCount')\n }\n }),\n 2: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat1: $47e0e8ef515d9903$var$ValueFormat,\n valueFormat2: $47e0e8ef515d9903$var$ValueFormat,\n pairSetCount: $6uUbQ$uint16,\n pairSets: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$PairSet), 'pairSetCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat1: $47e0e8ef515d9903$var$ValueFormat,\n valueFormat2: $47e0e8ef515d9903$var$ValueFormat,\n classDef1: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n classDef2: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n class1Count: $6uUbQ$uint16,\n class2Count: $6uUbQ$uint16,\n classRecords: new $6uUbQ$LazyArray(new $6uUbQ$LazyArray($47e0e8ef515d9903$var$Class2Record, 'class2Count'), 'class1Count')\n }\n }),\n 3: {\n format: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n entryExitCount: $6uUbQ$uint16,\n entryExitRecords: new $6uUbQ$Array($47e0e8ef515d9903$var$EntryExitRecord, 'entryExitCount')\n },\n 4: {\n format: $6uUbQ$uint16,\n markCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n baseCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n markArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n baseArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$BaseArray)\n },\n 5: {\n format: $6uUbQ$uint16,\n markCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n ligatureCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n markArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n ligatureArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$LigatureArray)\n },\n 6: {\n format: $6uUbQ$uint16,\n mark1Coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n mark2Coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n mark1Array: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n mark2Array: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$BaseArray)\n },\n 7: (0, $7cbbe4e24ef3cb75$export$841858b892ce1f4c),\n 8: (0, $7cbbe4e24ef3cb75$export$5e6d09e6861162f6),\n 9: {\n posFormat: $6uUbQ$uint16,\n lookupType: $6uUbQ$uint16,\n extension: new $6uUbQ$Pointer($6uUbQ$uint32, null)\n }\n});\n// Fix circular reference\n$47e0e8ef515d9903$export$73a8cfb19cd43a0f.versions[9].extension.type = $47e0e8ef515d9903$export$73a8cfb19cd43a0f;\nvar $47e0e8ef515d9903$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n scriptList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$3e15fc05ce864229)),\n featureList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$aa18130def4b6cb4)),\n lookupList: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)($47e0e8ef515d9903$export$73a8cfb19cd43a0f))\n },\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$441b70b7971dd419))\n }\n});\n\n\n\n\n\nlet $d3f442064af66e06$var$Sequence = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $d3f442064af66e06$var$AlternateSet = $d3f442064af66e06$var$Sequence;\nlet $d3f442064af66e06$var$Ligature = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n compCount: $6uUbQ$uint16,\n components: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.compCount - 1)\n});\nlet $d3f442064af66e06$var$LigatureSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$Ligature), $6uUbQ$uint16);\nlet $d3f442064af66e06$var$GSUBLookup = new $6uUbQ$VersionedStruct('lookupType', {\n 1: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n deltaGlyphID: $6uUbQ$int16\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n glyphCount: $6uUbQ$uint16,\n substitute: new $6uUbQ$LazyArray($6uUbQ$uint16, 'glyphCount')\n }\n }),\n 2: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n sequences: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$Sequence), 'count')\n },\n 3: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n alternateSet: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$AlternateSet), 'count')\n },\n 4: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n ligatureSets: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$LigatureSet), 'count')\n },\n 5: (0, $7cbbe4e24ef3cb75$export$841858b892ce1f4c),\n 6: (0, $7cbbe4e24ef3cb75$export$5e6d09e6861162f6),\n 7: {\n substFormat: $6uUbQ$uint16,\n lookupType: $6uUbQ$uint16,\n extension: new $6uUbQ$Pointer($6uUbQ$uint32, null)\n },\n 8: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n backtrackCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'backtrackGlyphCount'),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookaheadCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'lookaheadGlyphCount'),\n glyphCount: $6uUbQ$uint16,\n substitutes: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n }\n});\n// Fix circular reference\n$d3f442064af66e06$var$GSUBLookup.versions[7].extension.type = $d3f442064af66e06$var$GSUBLookup;\nvar $d3f442064af66e06$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n scriptList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$3e15fc05ce864229)),\n featureList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$aa18130def4b6cb4)),\n lookupList: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)($d3f442064af66e06$var$GSUBLookup))\n },\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$441b70b7971dd419))\n }\n});\n\n\n\n\n\nlet $71cfb3c4767fbd0c$var$JstfGSUBModList = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $71cfb3c4767fbd0c$var$JstfPriority = new $6uUbQ$Struct({\n shrinkageEnableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageDisableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageEnableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageDisableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageJstfMax: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)((0, $47e0e8ef515d9903$export$73a8cfb19cd43a0f))),\n extensionEnableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionDisableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionEnableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionDisableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionJstfMax: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)((0, $47e0e8ef515d9903$export$73a8cfb19cd43a0f)))\n});\nlet $71cfb3c4767fbd0c$var$JstfLangSys = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfPriority), $6uUbQ$uint16);\nlet $71cfb3c4767fbd0c$var$JstfLangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n jstfLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfLangSys)\n});\nlet $71cfb3c4767fbd0c$var$JstfScript = new $6uUbQ$Struct({\n extenderGlyphs: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16)),\n defaultLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfLangSys),\n langSysCount: $6uUbQ$uint16,\n langSysRecords: new $6uUbQ$Array($71cfb3c4767fbd0c$var$JstfLangSysRecord, 'langSysCount')\n});\nlet $71cfb3c4767fbd0c$var$JstfScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfScript, {\n type: 'parent'\n })\n});\nvar $71cfb3c4767fbd0c$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n scriptCount: $6uUbQ$uint16,\n scriptList: new $6uUbQ$Array($71cfb3c4767fbd0c$var$JstfScriptRecord, 'scriptCount')\n});\n\n\n\n\n// TODO: add this to restructure\nclass $d059a6bd2d3b5b63$var$VariableSizeNumber {\n decode(stream, parent) {\n switch(this.size(0, parent)){\n case 1:\n return stream.readUInt8();\n case 2:\n return stream.readUInt16BE();\n case 3:\n return stream.readUInt24BE();\n case 4:\n return stream.readUInt32BE();\n }\n }\n size(val, parent) {\n return (0, $6uUbQ$resolveLength)(this._size, null, parent);\n }\n constructor(size){\n this._size = size;\n }\n}\nlet $d059a6bd2d3b5b63$var$MapDataEntry = new $6uUbQ$Struct({\n entry: new $d059a6bd2d3b5b63$var$VariableSizeNumber((t)=>((t.parent.entryFormat & 0x0030) >> 4) + 1),\n outerIndex: (t)=>t.entry >> (t.parent.entryFormat & 0x000F) + 1,\n innerIndex: (t)=>t.entry & (1 << (t.parent.entryFormat & 0x000F) + 1) - 1\n});\nlet $d059a6bd2d3b5b63$var$DeltaSetIndexMap = new $6uUbQ$Struct({\n entryFormat: $6uUbQ$uint16,\n mapCount: $6uUbQ$uint16,\n mapData: new $6uUbQ$Array($d059a6bd2d3b5b63$var$MapDataEntry, 'mapCount')\n});\nvar $d059a6bd2d3b5b63$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241)),\n advanceWidthMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap),\n LSBMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap),\n RSBMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap)\n});\n\n\n\nlet $dceeca3e1977ce30$var$Signature = new $6uUbQ$Struct({\n format: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n offset: $6uUbQ$uint32\n});\nlet $dceeca3e1977ce30$var$SignatureBlock = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16, 2),\n cbSignature: $6uUbQ$uint32,\n signature: new $6uUbQ$Buffer('cbSignature')\n});\nvar $dceeca3e1977ce30$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n ulVersion: $6uUbQ$uint32,\n usNumSigs: $6uUbQ$uint16,\n usFlag: $6uUbQ$uint16,\n signatures: new $6uUbQ$Array($dceeca3e1977ce30$var$Signature, 'usNumSigs'),\n signatureBlocks: new $6uUbQ$Array($dceeca3e1977ce30$var$SignatureBlock, 'usNumSigs')\n});\n\n\n\nlet $8acd740a9435aad0$var$GaspRange = new $6uUbQ$Struct({\n rangeMaxPPEM: $6uUbQ$uint16,\n rangeGaspBehavior: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'grayscale',\n 'gridfit',\n 'symmetricSmoothing',\n 'symmetricGridfit' // only in version 1, for ClearType\n ])\n});\nvar $8acd740a9435aad0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRanges: $6uUbQ$uint16,\n gaspRanges: new $6uUbQ$Array($8acd740a9435aad0$var$GaspRange, 'numRanges') // Sorted by ppem\n});\n\n\n\nlet $b5f380243c34d6a0$var$DeviceRecord = new $6uUbQ$Struct({\n pixelSize: $6uUbQ$uint8,\n maximumWidth: $6uUbQ$uint8,\n widths: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.parent.parent.maxp.numGlyphs)\n});\nvar // The Horizontal Device Metrics table stores integer advance widths scaled to particular pixel sizes\n$b5f380243c34d6a0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRecords: $6uUbQ$int16,\n sizeDeviceRecord: $6uUbQ$int32,\n records: new $6uUbQ$Array($b5f380243c34d6a0$var$DeviceRecord, 'numRecords')\n});\n\n\n\nlet $ca2df1256966e313$var$KernPair = new $6uUbQ$Struct({\n left: $6uUbQ$uint16,\n right: $6uUbQ$uint16,\n value: $6uUbQ$int16\n});\nlet $ca2df1256966e313$var$ClassTable = new $6uUbQ$Struct({\n firstGlyph: $6uUbQ$uint16,\n nGlyphs: $6uUbQ$uint16,\n offsets: new $6uUbQ$Array($6uUbQ$uint16, 'nGlyphs'),\n max: (t)=>t.offsets.length && Math.max.apply(Math, t.offsets)\n});\nlet $ca2df1256966e313$var$Kern2Array = new $6uUbQ$Struct({\n off: (t)=>t._startOffset - t.parent.parent._startOffset,\n len: (t)=>((t.parent.leftTable.max - t.off) / t.parent.rowWidth + 1) * (t.parent.rowWidth / 2),\n values: new $6uUbQ$LazyArray($6uUbQ$int16, 'len')\n});\nlet $ca2df1256966e313$var$KernSubtable = new $6uUbQ$VersionedStruct('format', {\n 0: {\n nPairs: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n pairs: new $6uUbQ$Array($ca2df1256966e313$var$KernPair, 'nPairs')\n },\n 2: {\n rowWidth: $6uUbQ$uint16,\n leftTable: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$ClassTable, {\n type: 'parent'\n }),\n rightTable: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$ClassTable, {\n type: 'parent'\n }),\n array: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$Kern2Array, {\n type: 'parent'\n })\n },\n 3: {\n glyphCount: $6uUbQ$uint16,\n kernValueCount: $6uUbQ$uint8,\n leftClassCount: $6uUbQ$uint8,\n rightClassCount: $6uUbQ$uint8,\n flags: $6uUbQ$uint8,\n kernValue: new $6uUbQ$Array($6uUbQ$int16, 'kernValueCount'),\n leftClass: new $6uUbQ$Array($6uUbQ$uint8, 'glyphCount'),\n rightClass: new $6uUbQ$Array($6uUbQ$uint8, 'glyphCount'),\n kernIndex: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.leftClassCount * t.rightClassCount)\n }\n});\nlet $ca2df1256966e313$var$KernTable = new $6uUbQ$VersionedStruct('version', {\n 0: {\n subVersion: $6uUbQ$uint16,\n length: $6uUbQ$uint16,\n format: $6uUbQ$uint8,\n coverage: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'horizontal',\n 'minimum',\n 'crossStream',\n 'override' // If set to 1 the value in this table replaces the accumulated value\n ]),\n subtable: $ca2df1256966e313$var$KernSubtable,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n },\n 1: {\n length: $6uUbQ$uint32,\n coverage: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n null,\n null,\n null,\n null,\n null,\n 'variation',\n 'crossStream',\n 'vertical' // Set if table has vertical kerning values\n ]),\n format: $6uUbQ$uint8,\n tupleIndex: $6uUbQ$uint16,\n subtable: $ca2df1256966e313$var$KernSubtable,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n }\n});\nvar $ca2df1256966e313$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n nTables: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($ca2df1256966e313$var$KernTable, 'nTables')\n },\n 1: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n nTables: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($ca2df1256966e313$var$KernTable, 'nTables')\n }\n});\n\n\n\nvar // Linear Threshold table\n// Records the ppem for each glyph at which the scaling becomes linear again,\n// despite instructions effecting the advance width\n$7a9f92b0c46ebe33$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numGlyphs: $6uUbQ$uint16,\n yPels: new $6uUbQ$Array($6uUbQ$uint8, 'numGlyphs')\n});\n\n\n\nvar // PCL 5 Table\n// NOTE: The PCLT table is strongly discouraged for OpenType fonts with TrueType outlines\n$2b2ccc419d152631$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n fontNumber: $6uUbQ$uint32,\n pitch: $6uUbQ$uint16,\n xHeight: $6uUbQ$uint16,\n style: $6uUbQ$uint16,\n typeFamily: $6uUbQ$uint16,\n capHeight: $6uUbQ$uint16,\n symbolSet: $6uUbQ$uint16,\n typeface: new $6uUbQ$String(16),\n characterComplement: new $6uUbQ$String(8),\n fileName: new $6uUbQ$String(6),\n strokeWeight: new $6uUbQ$String(1),\n widthType: new $6uUbQ$String(1),\n serifStyle: $6uUbQ$uint8,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint8)\n});\n\n\n\n// VDMX tables contain ascender/descender overrides for certain (usually small)\n// sizes. This is needed in order to match font metrics on Windows.\nlet $ca5b40b9bcda9c9b$var$Ratio = new $6uUbQ$Struct({\n bCharSet: $6uUbQ$uint8,\n xRatio: $6uUbQ$uint8,\n yStartRatio: $6uUbQ$uint8,\n yEndRatio: $6uUbQ$uint8 // Ending y-Ratio value\n});\nlet $ca5b40b9bcda9c9b$var$vTable = new $6uUbQ$Struct({\n yPelHeight: $6uUbQ$uint16,\n yMax: $6uUbQ$int16,\n yMin: $6uUbQ$int16 // Minimum value (in pels) for this yPelHeight\n});\nlet $ca5b40b9bcda9c9b$var$VdmxGroup = new $6uUbQ$Struct({\n recs: $6uUbQ$uint16,\n startsz: $6uUbQ$uint8,\n endsz: $6uUbQ$uint8,\n entries: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$vTable, 'recs') // The VDMX records\n});\nvar $ca5b40b9bcda9c9b$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRecs: $6uUbQ$uint16,\n numRatios: $6uUbQ$uint16,\n ratioRanges: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$Ratio, 'numRatios'),\n offsets: new $6uUbQ$Array($6uUbQ$uint16, 'numRatios'),\n groups: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$VdmxGroup, 'numRecs') // The actual VDMX groupings\n});\n\n\n\nvar // Vertical Header Table\n$69530a3c40755af0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n ascent: $6uUbQ$int16,\n descent: $6uUbQ$int16,\n lineGap: $6uUbQ$int16,\n advanceHeightMax: $6uUbQ$int16,\n minTopSideBearing: $6uUbQ$int16,\n minBottomSideBearing: $6uUbQ$int16,\n yMaxExtent: $6uUbQ$int16,\n caretSlopeRise: $6uUbQ$int16,\n caretSlopeRun: $6uUbQ$int16,\n caretOffset: $6uUbQ$int16,\n reserved: new $6uUbQ$Reserved($6uUbQ$int16, 4),\n metricDataFormat: $6uUbQ$int16,\n numberOfMetrics: $6uUbQ$uint16 // Number of advance heights in the Vertical Metrics table\n});\n\n\n\nlet $344073dd270f0e62$var$VmtxEntry = new $6uUbQ$Struct({\n advance: $6uUbQ$uint16,\n bearing: $6uUbQ$int16 // The top sidebearing of the glyph\n});\nvar // Vertical Metrics Table\n$344073dd270f0e62$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n metrics: new $6uUbQ$LazyArray($344073dd270f0e62$var$VmtxEntry, (t)=>t.parent.vhea.numberOfMetrics),\n bearings: new $6uUbQ$LazyArray($6uUbQ$int16, (t)=>t.parent.maxp.numGlyphs - t.parent.vhea.numberOfMetrics)\n});\n\n\n\nlet $3793b781918cfced$var$shortFrac = new $6uUbQ$Fixed(16, 'BE', 14);\nlet $3793b781918cfced$var$Correspondence = new $6uUbQ$Struct({\n fromCoord: $3793b781918cfced$var$shortFrac,\n toCoord: $3793b781918cfced$var$shortFrac\n});\nlet $3793b781918cfced$var$Segment = new $6uUbQ$Struct({\n pairCount: $6uUbQ$uint16,\n correspondence: new $6uUbQ$Array($3793b781918cfced$var$Correspondence, 'pairCount')\n});\nvar $3793b781918cfced$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n axisCount: $6uUbQ$uint32,\n segment: new $6uUbQ$Array($3793b781918cfced$var$Segment, 'axisCount')\n});\n\n\n\n\nclass $6cb7dd5f47d82580$var$UnboundedArrayAccessor {\n getItem(index) {\n if (this._items[index] == null) {\n let pos = this.stream.pos;\n this.stream.pos = this.base + this.type.size(null, this.parent) * index;\n this._items[index] = this.type.decode(this.stream, this.parent);\n this.stream.pos = pos;\n }\n return this._items[index];\n }\n inspect() {\n return `[UnboundedArray ${this.type.constructor.name}]`;\n }\n constructor(type, stream, parent){\n this.type = type;\n this.stream = stream;\n this.parent = parent;\n this.base = this.stream.pos;\n this._items = [];\n }\n}\nclass $6cb7dd5f47d82580$export$c5af1eebc882e39a extends $6uUbQ$Array {\n decode(stream, parent) {\n return new $6cb7dd5f47d82580$var$UnboundedArrayAccessor(this.type, stream, parent);\n }\n constructor(type){\n super(type, 0);\n }\n}\nlet $6cb7dd5f47d82580$export$8351f8c2ae2f103c = function(ValueType = $6uUbQ$uint16) {\n // Helper class that makes internal structures invisible to pointers\n class Shadow {\n decode(stream, ctx) {\n ctx = ctx.parent.parent;\n return this.type.decode(stream, ctx);\n }\n size(val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.size(val, ctx);\n }\n encode(stream, val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.encode(stream, val, ctx);\n }\n constructor(type){\n this.type = type;\n }\n }\n ValueType = new Shadow(ValueType);\n let BinarySearchHeader = new $6uUbQ$Struct({\n unitSize: $6uUbQ$uint16,\n nUnits: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16\n });\n let LookupSegmentSingle = new $6uUbQ$Struct({\n lastGlyph: $6uUbQ$uint16,\n firstGlyph: $6uUbQ$uint16,\n value: ValueType\n });\n let LookupSegmentArray = new $6uUbQ$Struct({\n lastGlyph: $6uUbQ$uint16,\n firstGlyph: $6uUbQ$uint16,\n values: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array(ValueType, (t)=>t.lastGlyph - t.firstGlyph + 1), {\n type: 'parent'\n })\n });\n let LookupSingle = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n value: ValueType\n });\n return new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n values: new $6cb7dd5f47d82580$export$c5af1eebc882e39a(ValueType) // length == number of glyphs maybe?\n },\n 2: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSegmentSingle, (t)=>t.binarySearchHeader.nUnits)\n },\n 4: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSegmentArray, (t)=>t.binarySearchHeader.nUnits)\n },\n 6: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSingle, (t)=>t.binarySearchHeader.nUnits)\n },\n 8: {\n firstGlyph: $6uUbQ$uint16,\n count: $6uUbQ$uint16,\n values: new $6uUbQ$Array(ValueType, 'count')\n }\n });\n};\nfunction $6cb7dd5f47d82580$export$79f7d93d790934ba(entryData = {}, lookupType = $6uUbQ$uint16) {\n let entry = Object.assign({\n newState: $6uUbQ$uint16,\n flags: $6uUbQ$uint16\n }, entryData);\n let Entry = new $6uUbQ$Struct(entry);\n let StateArray = new $6cb7dd5f47d82580$export$c5af1eebc882e39a(new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.nClasses));\n let StateHeader = new $6uUbQ$Struct({\n nClasses: $6uUbQ$uint32,\n classTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6cb7dd5f47d82580$export$8351f8c2ae2f103c(lookupType)),\n stateArray: new $6uUbQ$Pointer($6uUbQ$uint32, StateArray),\n entryTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6cb7dd5f47d82580$export$c5af1eebc882e39a(Entry))\n });\n return StateHeader;\n}\nfunction $6cb7dd5f47d82580$export$105027425199cc51(entryData = {}, lookupType = $6uUbQ$uint16) {\n let ClassLookupTable = new $6uUbQ$Struct({\n version () {\n return 8;\n },\n firstGlyph: $6uUbQ$uint16,\n values: new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16)\n });\n let entry = Object.assign({\n newStateOffset: $6uUbQ$uint16,\n // convert offset to stateArray index\n newState: (t)=>(t.newStateOffset - (t.parent.stateArray.base - t.parent._startOffset)) / t.parent.nClasses,\n flags: $6uUbQ$uint16\n }, entryData);\n let Entry = new $6uUbQ$Struct(entry);\n let StateArray = new $6cb7dd5f47d82580$export$c5af1eebc882e39a(new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.nClasses));\n let StateHeader1 = new $6uUbQ$Struct({\n nClasses: $6uUbQ$uint16,\n classTable: new $6uUbQ$Pointer($6uUbQ$uint16, ClassLookupTable),\n stateArray: new $6uUbQ$Pointer($6uUbQ$uint16, StateArray),\n entryTable: new $6uUbQ$Pointer($6uUbQ$uint16, new $6cb7dd5f47d82580$export$c5af1eebc882e39a(Entry))\n });\n return StateHeader1;\n}\n\n\nlet $6a3746e8c708f5a3$var$BslnSubtable = new $6uUbQ$VersionedStruct('format', {\n 0: {\n deltas: new $6uUbQ$Array($6uUbQ$int16, 32)\n },\n 1: {\n deltas: new $6uUbQ$Array($6uUbQ$int16, 32),\n mappingData: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($6uUbQ$uint16)\n },\n 2: {\n standardGlyph: $6uUbQ$uint16,\n controlPoints: new $6uUbQ$Array($6uUbQ$uint16, 32)\n },\n 3: {\n standardGlyph: $6uUbQ$uint16,\n controlPoints: new $6uUbQ$Array($6uUbQ$uint16, 32),\n mappingData: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($6uUbQ$uint16)\n }\n});\nvar $6a3746e8c708f5a3$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n format: $6uUbQ$uint16,\n defaultBaseline: $6uUbQ$uint16,\n subtable: $6a3746e8c708f5a3$var$BslnSubtable\n});\n\n\n\nlet $d0c76fac617b308a$var$Setting = new $6uUbQ$Struct({\n setting: $6uUbQ$uint16,\n nameIndex: $6uUbQ$int16,\n name: (t)=>t.parent.parent.parent.name.records.fontFeatures[t.nameIndex]\n});\nlet $d0c76fac617b308a$var$FeatureName = new $6uUbQ$Struct({\n feature: $6uUbQ$uint16,\n nSettings: $6uUbQ$uint16,\n settingTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($d0c76fac617b308a$var$Setting, 'nSettings'), {\n type: 'parent'\n }),\n featureFlags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n null,\n null,\n null,\n null,\n null,\n null,\n 'hasDefault',\n 'exclusive'\n ]),\n defaultSetting: $6uUbQ$uint8,\n nameIndex: $6uUbQ$int16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameIndex]\n});\nvar $d0c76fac617b308a$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n featureNameCount: $6uUbQ$uint16,\n reserved1: new $6uUbQ$Reserved($6uUbQ$uint16),\n reserved2: new $6uUbQ$Reserved($6uUbQ$uint32),\n featureNames: new $6uUbQ$Array($d0c76fac617b308a$var$FeatureName, 'featureNameCount')\n});\n\n\n\nlet $e83fd065f00fcd01$var$Axis = new $6uUbQ$Struct({\n axisTag: new $6uUbQ$String(4),\n minValue: $6uUbQ$fixed32,\n defaultValue: $6uUbQ$fixed32,\n maxValue: $6uUbQ$fixed32,\n flags: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameID]\n});\nlet $e83fd065f00fcd01$var$Instance = new $6uUbQ$Struct({\n nameID: $6uUbQ$uint16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameID],\n flags: $6uUbQ$uint16,\n coord: new $6uUbQ$Array($6uUbQ$fixed32, (t)=>t.parent.axisCount),\n postscriptNameID: new $6uUbQ$Optional($6uUbQ$uint16, (t)=>t.parent.instanceSize - t._currentOffset > 0)\n});\nvar $e83fd065f00fcd01$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n offsetToData: $6uUbQ$uint16,\n countSizePairs: $6uUbQ$uint16,\n axisCount: $6uUbQ$uint16,\n axisSize: $6uUbQ$uint16,\n instanceCount: $6uUbQ$uint16,\n instanceSize: $6uUbQ$uint16,\n axis: new $6uUbQ$Array($e83fd065f00fcd01$var$Axis, 'axisCount'),\n instance: new $6uUbQ$Array($e83fd065f00fcd01$var$Instance, 'instanceCount')\n});\n\n\n\nlet $dbe33c8d3a7f131c$var$shortFrac = new $6uUbQ$Fixed(16, 'BE', 14);\nclass $dbe33c8d3a7f131c$var$Offset {\n static decode(stream, parent) {\n // In short format, offsets are multiplied by 2.\n // This doesn't seem to be documented by Apple, but it\n // is implemented this way in Freetype.\n return parent.flags ? stream.readUInt32BE() : stream.readUInt16BE() * 2;\n }\n}\nlet $dbe33c8d3a7f131c$var$gvar = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n axisCount: $6uUbQ$uint16,\n globalCoordCount: $6uUbQ$uint16,\n globalCoords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array(new $6uUbQ$Array($dbe33c8d3a7f131c$var$shortFrac, 'axisCount'), 'globalCoordCount')),\n glyphCount: $6uUbQ$uint16,\n flags: $6uUbQ$uint16,\n offsetToData: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array(new $6uUbQ$Pointer($dbe33c8d3a7f131c$var$Offset, 'void', {\n relativeTo: (ctx)=>ctx.offsetToData,\n allowNull: false\n }), (t)=>t.glyphCount + 1)\n});\nvar $dbe33c8d3a7f131c$export$2e2bcd8739ae039 = $dbe33c8d3a7f131c$var$gvar;\n\n\n\n\nlet $05b01887df96c4ee$var$ClassTable = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n coverage: $6uUbQ$uint16,\n subFeatureFlags: $6uUbQ$uint32,\n stateTable: new (0, $6cb7dd5f47d82580$export$105027425199cc51)\n});\nlet $05b01887df96c4ee$var$WidthDeltaRecord = new $6uUbQ$Struct({\n justClass: $6uUbQ$uint32,\n beforeGrowLimit: $6uUbQ$fixed32,\n beforeShrinkLimit: $6uUbQ$fixed32,\n afterGrowLimit: $6uUbQ$fixed32,\n afterShrinkLimit: $6uUbQ$fixed32,\n growFlags: $6uUbQ$uint16,\n shrinkFlags: $6uUbQ$uint16\n});\nlet $05b01887df96c4ee$var$WidthDeltaCluster = new $6uUbQ$Array($05b01887df96c4ee$var$WidthDeltaRecord, $6uUbQ$uint32);\nlet $05b01887df96c4ee$var$ActionData = new $6uUbQ$VersionedStruct('actionType', {\n 0: {\n lowerLimit: $6uUbQ$fixed32,\n upperLimit: $6uUbQ$fixed32,\n order: $6uUbQ$uint16,\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16)\n },\n 1: {\n addGlyph: $6uUbQ$uint16\n },\n 2: {\n substThreshold: $6uUbQ$fixed32,\n addGlyph: $6uUbQ$uint16,\n substGlyph: $6uUbQ$uint16\n },\n 3: {},\n 4: {\n variationAxis: $6uUbQ$uint32,\n minimumLimit: $6uUbQ$fixed32,\n noStretchValue: $6uUbQ$fixed32,\n maximumLimit: $6uUbQ$fixed32\n },\n 5: {\n flags: $6uUbQ$uint16,\n glyph: $6uUbQ$uint16\n }\n});\nlet $05b01887df96c4ee$var$Action = new $6uUbQ$Struct({\n actionClass: $6uUbQ$uint16,\n actionType: $6uUbQ$uint16,\n actionLength: $6uUbQ$uint32,\n actionData: $05b01887df96c4ee$var$ActionData,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.actionLength - t._currentOffset)\n});\nlet $05b01887df96c4ee$var$PostcompensationAction = new $6uUbQ$Array($05b01887df96c4ee$var$Action, $6uUbQ$uint32);\nlet $05b01887df96c4ee$var$PostCompensationTable = new $6uUbQ$Struct({\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$PostcompensationAction))\n});\nlet $05b01887df96c4ee$var$JustificationTable = new $6uUbQ$Struct({\n classTable: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$ClassTable, {\n type: 'parent'\n }),\n wdcOffset: $6uUbQ$uint16,\n postCompensationTable: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$PostCompensationTable, {\n type: 'parent'\n }),\n widthDeltaClusters: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$WidthDeltaCluster, {\n type: 'parent',\n relativeTo: (ctx)=>ctx.wdcOffset\n }))\n});\nvar $05b01887df96c4ee$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n format: $6uUbQ$uint16,\n horizontal: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$JustificationTable),\n vertical: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$JustificationTable)\n});\n\n\n\n\nlet $03ee6ebd54db1053$var$LigatureData = {\n action: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$ContextualData = {\n markIndex: $6uUbQ$uint16,\n currentIndex: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$InsertionData = {\n currentInsertIndex: $6uUbQ$uint16,\n markedInsertIndex: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$SubstitutionTable = new $6uUbQ$Struct({\n items: new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)(new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)))\n});\nlet $03ee6ebd54db1053$var$SubtableData = new $6uUbQ$VersionedStruct('type', {\n 0: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)\n },\n 1: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$ContextualData),\n substitutionTable: new $6uUbQ$Pointer($6uUbQ$uint32, $03ee6ebd54db1053$var$SubstitutionTable)\n },\n 2: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$LigatureData),\n ligatureActions: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint32)),\n components: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16)),\n ligatureList: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16))\n },\n 4: {\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)\n },\n 5: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$InsertionData),\n insertionActions: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16))\n }\n});\nlet $03ee6ebd54db1053$var$Subtable = new $6uUbQ$Struct({\n length: $6uUbQ$uint32,\n coverage: $6uUbQ$uint24,\n type: $6uUbQ$uint8,\n subFeatureFlags: $6uUbQ$uint32,\n table: $03ee6ebd54db1053$var$SubtableData,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n});\nlet $03ee6ebd54db1053$var$FeatureEntry = new $6uUbQ$Struct({\n featureType: $6uUbQ$uint16,\n featureSetting: $6uUbQ$uint16,\n enableFlags: $6uUbQ$uint32,\n disableFlags: $6uUbQ$uint32\n});\nlet $03ee6ebd54db1053$var$MorxChain = new $6uUbQ$Struct({\n defaultFlags: $6uUbQ$uint32,\n chainLength: $6uUbQ$uint32,\n nFeatureEntries: $6uUbQ$uint32,\n nSubtables: $6uUbQ$uint32,\n features: new $6uUbQ$Array($03ee6ebd54db1053$var$FeatureEntry, 'nFeatureEntries'),\n subtables: new $6uUbQ$Array($03ee6ebd54db1053$var$Subtable, 'nSubtables')\n});\nvar $03ee6ebd54db1053$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n unused: new $6uUbQ$Reserved($6uUbQ$uint16),\n nChains: $6uUbQ$uint32,\n chains: new $6uUbQ$Array($03ee6ebd54db1053$var$MorxChain, 'nChains')\n});\n\n\n\n\nlet $b7492a80b0d1a056$var$OpticalBounds = new $6uUbQ$Struct({\n left: $6uUbQ$int16,\n top: $6uUbQ$int16,\n right: $6uUbQ$int16,\n bottom: $6uUbQ$int16\n});\nvar $b7492a80b0d1a056$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n format: $6uUbQ$uint16,\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($b7492a80b0d1a056$var$OpticalBounds)\n});\n\n\nlet $c3395722bea751e2$var$tables = {};\nvar $c3395722bea751e2$export$2e2bcd8739ae039 = $c3395722bea751e2$var$tables;\n$c3395722bea751e2$var$tables.cmap = (0, $26a62205ad06574e$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.head = (0, $f2612a29f92ac062$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hhea = (0, $2c179dd593583073$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hmtx = (0, $bdc9060542264b85$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.maxp = (0, $dbf51cb3d3fe409d$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.name = (0, $2bcf221753ec8e32$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['OS/2'] = (0, $84b272aa31b70606$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.post = (0, $32d9e2eb9565d93c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.fpgm = (0, $5c0f37ca5ffb1850$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.loca = (0, $2b2b260902b1c57e$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.prep = (0, $7afb878c7bea4f66$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['cvt '] = (0, $5202bd9d9ad8eaac$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.glyf = (0, $6c92b6371bce8bd9$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['CFF '] = (0, $822ac0d589e4e237$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['CFF2'] = (0, $822ac0d589e4e237$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.VORG = (0, $2bbf2bc1ce37cd8f$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.EBLC = (0, $9911c4c7201c13de$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.CBLC = $c3395722bea751e2$var$tables.EBLC;\n$c3395722bea751e2$var$tables.sbix = (0, $abb847051efd51b1$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.COLR = (0, $eb629188f3dfefdd$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.CPAL = (0, $08734b8e7dc64587$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.BASE = (0, $497cef411d884e34$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GDEF = (0, $cf5f33c63ef209e6$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GPOS = (0, $47e0e8ef515d9903$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GSUB = (0, $d3f442064af66e06$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.JSTF = (0, $71cfb3c4767fbd0c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.HVAR = (0, $d059a6bd2d3b5b63$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.DSIG = (0, $dceeca3e1977ce30$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.gasp = (0, $8acd740a9435aad0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hdmx = (0, $b5f380243c34d6a0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.kern = (0, $ca2df1256966e313$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.LTSH = (0, $7a9f92b0c46ebe33$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.PCLT = (0, $2b2ccc419d152631$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.VDMX = (0, $ca5b40b9bcda9c9b$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.vhea = (0, $69530a3c40755af0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.vmtx = (0, $344073dd270f0e62$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.avar = (0, $3793b781918cfced$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.bsln = (0, $6a3746e8c708f5a3$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.feat = (0, $d0c76fac617b308a$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.fvar = (0, $e83fd065f00fcd01$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.gvar = (0, $dbe33c8d3a7f131c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.just = (0, $05b01887df96c4ee$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.morx = (0, $03ee6ebd54db1053$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.opbd = (0, $b7492a80b0d1a056$export$2e2bcd8739ae039);\n\n\nlet $816c07a04b6dba87$var$TableEntry = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n checkSum: $6uUbQ$uint32,\n offset: new $6uUbQ$Pointer($6uUbQ$uint32, 'void', {\n type: 'global'\n }),\n length: $6uUbQ$uint32\n});\nlet $816c07a04b6dba87$var$Directory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n numTables: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($816c07a04b6dba87$var$TableEntry, 'numTables')\n});\n$816c07a04b6dba87$var$Directory.process = function() {\n let tables = {};\n for (let table of this.tables)tables[table.tag] = table;\n this.tables = tables;\n};\n$816c07a04b6dba87$var$Directory.preEncode = function() {\n if (!Array.isArray(this.tables)) {\n let tables = [];\n for(let tag in this.tables){\n let table = this.tables[tag];\n if (table) tables.push({\n tag: tag,\n checkSum: 0,\n offset: new $6uUbQ$VoidPointer((0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag], table),\n length: (0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag].size(table)\n });\n }\n this.tables = tables;\n }\n this.tag = 'true';\n this.numTables = this.tables.length;\n let maxExponentFor2 = Math.floor(Math.log(this.numTables) / Math.LN2);\n let maxPowerOf2 = Math.pow(2, maxExponentFor2);\n this.searchRange = maxPowerOf2 * 16;\n this.entrySelector = Math.log(maxPowerOf2) / Math.LN2;\n this.rangeShift = this.numTables * 16 - this.searchRange;\n};\nvar $816c07a04b6dba87$export$2e2bcd8739ae039 = $816c07a04b6dba87$var$Directory;\n\n\n\n\nfunction $12727730ddfc8bfe$export$2e0ae67339d5f1ac(arr, cmp) {\n let min = 0;\n let max = arr.length - 1;\n while(min <= max){\n let mid = min + max >> 1;\n let res = cmp(arr[mid]);\n if (res < 0) max = mid - 1;\n else if (res > 0) min = mid + 1;\n else return mid;\n }\n return -1;\n}\nfunction $12727730ddfc8bfe$export$d02631cccf789723(index, end) {\n let range = [];\n while(index < end)range.push(index++);\n return range;\n}\nconst $12727730ddfc8bfe$export$3d28c1996ced1f14 = new TextDecoder('ascii');\n// Based on https://github.com/niklasvh/base64-arraybuffer. MIT license.\nconst $12727730ddfc8bfe$var$CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst $12727730ddfc8bfe$var$LOOKUP = new Uint8Array(256);\nfor(let i = 0; i < $12727730ddfc8bfe$var$CHARS.length; i++)$12727730ddfc8bfe$var$LOOKUP[$12727730ddfc8bfe$var$CHARS.charCodeAt(i)] = i;\nfunction $12727730ddfc8bfe$export$94fdf11bafc8de6b(base64) {\n let bufferLength = base64.length * 0.75;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') bufferLength--;\n }\n let bytes = new Uint8Array(bufferLength);\n let p = 0;\n for(let i = 0, len = base64.length; i < len; i += 4){\n let encoded1 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i)];\n let encoded2 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 1)];\n let encoded3 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 2)];\n let encoded4 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return bytes;\n}\n\n\n\n\nclass $f08dd41ef10b694c$export$2e2bcd8739ae039 {\n findSubtable(cmapTable, pairs) {\n for (let [platformID, encodingID] of pairs)for (let cmap of cmapTable.tables){\n if (cmap.platformID === platformID && cmap.encodingID === encodingID) return cmap.table;\n }\n return null;\n }\n lookup(codepoint, variationSelector) {\n // If there is no Unicode cmap in this font, we need to re-encode\n // the codepoint in the encoding that the cmap supports.\n if (this.encoding) codepoint = this.encoding.get(codepoint) || codepoint;\n else if (variationSelector) {\n let gid = this.getVariationSelector(codepoint, variationSelector);\n if (gid) return gid;\n }\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n return cmap.codeMap.get(codepoint) || 0;\n case 4:\n {\n let min = 0;\n let max = cmap.segCount - 1;\n while(min <= max){\n let mid = min + max >> 1;\n if (codepoint < cmap.startCode.get(mid)) max = mid - 1;\n else if (codepoint > cmap.endCode.get(mid)) min = mid + 1;\n else {\n let rangeOffset = cmap.idRangeOffset.get(mid);\n let gid;\n if (rangeOffset === 0) gid = codepoint + cmap.idDelta.get(mid);\n else {\n let index = rangeOffset / 2 + (codepoint - cmap.startCode.get(mid)) - (cmap.segCount - mid);\n gid = cmap.glyphIndexArray.get(index) || 0;\n if (gid !== 0) gid += cmap.idDelta.get(mid);\n }\n return gid & 0xffff;\n }\n }\n return 0;\n }\n case 8:\n throw new Error('TODO: cmap format 8');\n case 6:\n case 10:\n return cmap.glyphIndices.get(codepoint - cmap.firstCode) || 0;\n case 12:\n case 13:\n {\n let min = 0;\n let max = cmap.nGroups - 1;\n while(min <= max){\n let mid = min + max >> 1;\n let group = cmap.groups.get(mid);\n if (codepoint < group.startCharCode) max = mid - 1;\n else if (codepoint > group.endCharCode) min = mid + 1;\n else {\n if (cmap.version === 12) return group.glyphID + (codepoint - group.startCharCode);\n else return group.glyphID;\n }\n }\n return 0;\n }\n case 14:\n throw new Error('TODO: cmap format 14');\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n getVariationSelector(codepoint, variationSelector) {\n if (!this.uvs) return 0;\n let selectors = this.uvs.varSelectors.toArray();\n let i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(selectors, (x)=>variationSelector - x.varSelector);\n let sel = selectors[i];\n if (i !== -1 && sel.defaultUVS) i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(sel.defaultUVS, (x)=>codepoint < x.startUnicodeValue ? -1 : codepoint > x.startUnicodeValue + x.additionalCount ? 1 : 0);\n if (i !== -1 && sel.nonDefaultUVS) {\n i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(sel.nonDefaultUVS, (x)=>codepoint - x.unicodeValue);\n if (i !== -1) return sel.nonDefaultUVS[i].glyphID;\n }\n return 0;\n }\n getCharacterSet() {\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n return (0, $12727730ddfc8bfe$export$d02631cccf789723)(0, cmap.codeMap.length);\n case 4:\n {\n let res = [];\n let endCodes = cmap.endCode.toArray();\n for(let i = 0; i < endCodes.length; i++){\n let tail = endCodes[i] + 1;\n let start = cmap.startCode.get(i);\n res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(start, tail));\n }\n return res;\n }\n case 8:\n throw new Error('TODO: cmap format 8');\n case 6:\n case 10:\n return (0, $12727730ddfc8bfe$export$d02631cccf789723)(cmap.firstCode, cmap.firstCode + cmap.glyphIndices.length);\n case 12:\n case 13:\n {\n let res = [];\n for (let group of cmap.groups.toArray())res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(group.startCharCode, group.endCharCode + 1));\n return res;\n }\n case 14:\n throw new Error('TODO: cmap format 14');\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n codePointsForGlyph(gid) {\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n {\n let res = [];\n for(let i = 0; i < 256; i++)if (cmap.codeMap.get(i) === gid) res.push(i);\n return res;\n }\n case 4:\n {\n let res = [];\n for(let i = 0; i < cmap.segCount; i++){\n let end = cmap.endCode.get(i);\n let start = cmap.startCode.get(i);\n let rangeOffset = cmap.idRangeOffset.get(i);\n let delta = cmap.idDelta.get(i);\n for(var c = start; c <= end; c++){\n let g = 0;\n if (rangeOffset === 0) g = c + delta;\n else {\n let index = rangeOffset / 2 + (c - start) - (cmap.segCount - i);\n g = cmap.glyphIndexArray.get(index) || 0;\n if (g !== 0) g += delta;\n }\n if (g === gid) res.push(c);\n }\n }\n return res;\n }\n case 12:\n {\n let res = [];\n for (let group of cmap.groups.toArray())if (gid >= group.glyphID && gid <= group.glyphID + (group.endCharCode - group.startCharCode)) res.push(group.startCharCode + (gid - group.glyphID));\n return res;\n }\n case 13:\n {\n let res = [];\n for (let group of cmap.groups.toArray())if (gid === group.glyphID) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(group.startCharCode, group.endCharCode + 1));\n return res;\n }\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n constructor(cmapTable){\n // Attempt to find a Unicode cmap first\n this.encoding = null;\n this.cmap = this.findSubtable(cmapTable, [\n // 32-bit subtables\n [\n 3,\n 10\n ],\n [\n 0,\n 6\n ],\n [\n 0,\n 4\n ],\n // 16-bit subtables\n [\n 3,\n 1\n ],\n [\n 0,\n 3\n ],\n [\n 0,\n 2\n ],\n [\n 0,\n 1\n ],\n [\n 0,\n 0\n ]\n ]);\n // If not unicode cmap was found, take the first table with a supported encoding.\n if (!this.cmap) for (let cmap of cmapTable.tables){\n let encoding = (0, $e449ad78d50845fe$export$badc544e0651b6b1)(cmap.platformID, cmap.encodingID, cmap.table.language - 1);\n let mapping = (0, $e449ad78d50845fe$export$1dceb3c14ed68bee)(encoding);\n if (mapping) {\n this.cmap = cmap.table;\n this.encoding = mapping;\n }\n }\n if (!this.cmap) throw new Error(\"Could not find a supported cmap table\");\n this.uvs = this.findSubtable(cmapTable, [\n [\n 0,\n 5\n ]\n ]);\n if (this.uvs && this.uvs.version !== 14) this.uvs = null;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f08dd41ef10b694c$export$2e2bcd8739ae039.prototype, \"getCharacterSet\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f08dd41ef10b694c$export$2e2bcd8739ae039.prototype, \"codePointsForGlyph\", null);\n\n\n\nclass $0bba3a9db57637f3$export$2e2bcd8739ae039 {\n process(glyphs, positions) {\n for(let glyphIndex = 0; glyphIndex < glyphs.length - 1; glyphIndex++){\n let left = glyphs[glyphIndex].id;\n let right = glyphs[glyphIndex + 1].id;\n positions[glyphIndex].xAdvance += this.getKerning(left, right);\n }\n }\n getKerning(left, right) {\n let res = 0;\n for (let table of this.kern.tables){\n if (table.coverage.crossStream) continue;\n switch(table.version){\n case 0:\n if (!table.coverage.horizontal) continue;\n break;\n case 1:\n if (table.coverage.vertical || table.coverage.variation) continue;\n break;\n default:\n throw new Error(`Unsupported kerning table version ${table.version}`);\n }\n let val = 0;\n let s = table.subtable;\n switch(table.format){\n case 0:\n let pairIdx = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(s.pairs, function(pair) {\n return left - pair.left || right - pair.right;\n });\n if (pairIdx >= 0) val = s.pairs[pairIdx].value;\n break;\n case 2:\n let leftOffset = 0, rightOffset = 0;\n if (left >= s.leftTable.firstGlyph && left < s.leftTable.firstGlyph + s.leftTable.nGlyphs) leftOffset = s.leftTable.offsets[left - s.leftTable.firstGlyph];\n else leftOffset = s.array.off;\n if (right >= s.rightTable.firstGlyph && right < s.rightTable.firstGlyph + s.rightTable.nGlyphs) rightOffset = s.rightTable.offsets[right - s.rightTable.firstGlyph];\n let index = (leftOffset + rightOffset - s.array.off) / 2;\n val = s.array.values.get(index);\n break;\n case 3:\n if (left >= s.glyphCount || right >= s.glyphCount) return 0;\n val = s.kernValue[s.kernIndex[s.leftClass[left] * s.rightClassCount + s.rightClass[right]]];\n break;\n default:\n throw new Error(`Unsupported kerning sub-table format ${table.format}`);\n }\n // Microsoft supports the override flag, which resets the result\n // Otherwise, the sum of the results from all subtables is returned\n if (table.coverage.override) res = val;\n else res += val;\n }\n return res;\n }\n constructor(font){\n this.kern = font.kern;\n }\n}\n\n\n\nclass $0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039 {\n positionGlyphs(glyphs, positions) {\n // find each base + mark cluster, and position the marks relative to the base\n let clusterStart = 0;\n let clusterEnd = 0;\n for(let index = 0; index < glyphs.length; index++){\n let glyph = glyphs[index];\n if (glyph.isMark) clusterEnd = index;\n else {\n if (clusterStart !== clusterEnd) this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n clusterStart = clusterEnd = index;\n }\n }\n if (clusterStart !== clusterEnd) this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n return positions;\n }\n positionCluster(glyphs, positions, clusterStart, clusterEnd) {\n let base = glyphs[clusterStart];\n let baseBox = base.cbox.copy();\n // adjust bounding box for ligature glyphs\n if (base.codePoints.length > 1) // LTR. TODO: RTL support.\n baseBox.minX += (base.codePoints.length - 1) * baseBox.width / base.codePoints.length;\n let xOffset = -positions[clusterStart].xAdvance;\n let yOffset = 0;\n let yGap = this.font.unitsPerEm / 16;\n // position each of the mark glyphs relative to the base glyph\n for(let index = clusterStart + 1; index <= clusterEnd; index++){\n let mark = glyphs[index];\n let markBox = mark.cbox;\n let position = positions[index];\n let combiningClass = this.getCombiningClass(mark.codePoints[0]);\n if (combiningClass !== 'Not_Reordered') {\n position.xOffset = position.yOffset = 0;\n // x positioning\n switch(combiningClass){\n case 'Double_Above':\n case 'Double_Below':\n // LTR. TODO: RTL support.\n position.xOffset += baseBox.minX - markBox.width / 2 - markBox.minX;\n break;\n case 'Attached_Below_Left':\n case 'Below_Left':\n case 'Above_Left':\n // left align\n position.xOffset += baseBox.minX - markBox.minX;\n break;\n case 'Attached_Above_Right':\n case 'Below_Right':\n case 'Above_Right':\n // right align\n position.xOffset += baseBox.maxX - markBox.width - markBox.minX;\n break;\n default:\n // center align\n position.xOffset += baseBox.minX + (baseBox.width - markBox.width) / 2 - markBox.minX;\n }\n // y positioning\n switch(combiningClass){\n case 'Double_Below':\n case 'Below_Left':\n case 'Below':\n case 'Below_Right':\n case 'Attached_Below_Left':\n case 'Attached_Below':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Below_Left' || combiningClass === 'Attached_Below') baseBox.minY += yGap;\n position.yOffset = -baseBox.minY - markBox.maxY;\n baseBox.minY += markBox.height;\n break;\n case 'Double_Above':\n case 'Above_Left':\n case 'Above':\n case 'Above_Right':\n case 'Attached_Above':\n case 'Attached_Above_Right':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Above' || combiningClass === 'Attached_Above_Right') baseBox.maxY += yGap;\n position.yOffset = baseBox.maxY - markBox.minY;\n baseBox.maxY += markBox.height;\n break;\n }\n position.xAdvance = position.yAdvance = 0;\n position.xOffset += xOffset;\n position.yOffset += yOffset;\n } else {\n xOffset -= position.xAdvance;\n yOffset -= position.yAdvance;\n }\n }\n return;\n }\n getCombiningClass(codePoint) {\n let combiningClass = (0, $6uUbQ$getCombiningClass)(codePoint);\n // Thai / Lao need some per-character work\n if ((codePoint & -256) === 0x0e00) {\n if (combiningClass === 'Not_Reordered') switch(codePoint){\n case 0x0e31:\n case 0x0e34:\n case 0x0e35:\n case 0x0e36:\n case 0x0e37:\n case 0x0e47:\n case 0x0e4c:\n case 0x0e3d:\n case 0x0e4e:\n return 'Above_Right';\n case 0x0eb1:\n case 0x0eb4:\n case 0x0eb5:\n case 0x0eb6:\n case 0x0eb7:\n case 0x0ebb:\n case 0x0ecc:\n case 0x0ecd:\n return 'Above';\n case 0x0ebc:\n return 'Below';\n }\n else if (codePoint === 0x0e3a) return 'Below_Right';\n }\n switch(combiningClass){\n // Hebrew\n case 'CCC10':\n case 'CCC11':\n case 'CCC12':\n case 'CCC13':\n case 'CCC14':\n case 'CCC15':\n case 'CCC16':\n case 'CCC17':\n case 'CCC18':\n case 'CCC20':\n case 'CCC22':\n return 'Below';\n case 'CCC23':\n return 'Attached_Above';\n case 'CCC24':\n return 'Above_Right';\n case 'CCC25':\n case 'CCC19':\n return 'Above_Left';\n case 'CCC26':\n return 'Above';\n case 'CCC21':\n break;\n // Arabic and Syriac\n case 'CCC27':\n case 'CCC28':\n case 'CCC30':\n case 'CCC31':\n case 'CCC33':\n case 'CCC34':\n case 'CCC35':\n case 'CCC36':\n return 'Above';\n case 'CCC29':\n case 'CCC32':\n return 'Below';\n // Thai\n case 'CCC103':\n return 'Below_Right';\n case 'CCC107':\n return 'Above_Right';\n // Lao\n case 'CCC118':\n return 'Below';\n case 'CCC122':\n return 'Above';\n // Tibetan\n case 'CCC129':\n case 'CCC132':\n return 'Below';\n case 'CCC130':\n return 'Above';\n }\n return combiningClass;\n }\n constructor(font){\n this.font = font;\n }\n}\n\n\n/**\n * Represents a glyph bounding box\n */ class $f34600ab9d7f70d8$export$2e2bcd8739ae039 {\n /**\n * The width of the bounding box\n * @type {number}\n */ get width() {\n return this.maxX - this.minX;\n }\n /**\n * The height of the bounding box\n * @type {number}\n */ get height() {\n return this.maxY - this.minY;\n }\n addPoint(x, y) {\n if (Math.abs(x) !== Infinity) {\n if (x < this.minX) this.minX = x;\n if (x > this.maxX) this.maxX = x;\n }\n if (Math.abs(y) !== Infinity) {\n if (y < this.minY) this.minY = y;\n if (y > this.maxY) this.maxY = y;\n }\n }\n copy() {\n return new $f34600ab9d7f70d8$export$2e2bcd8739ae039(this.minX, this.minY, this.maxX, this.maxY);\n }\n constructor(minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity){\n /**\n * The minimum X position in the bounding box\n * @type {number}\n */ this.minX = minX;\n /**\n * The minimum Y position in the bounding box\n * @type {number}\n */ this.minY = minY;\n /**\n * The maxmimum X position in the bounding box\n * @type {number}\n */ this.maxX = maxX;\n /**\n * The maxmimum Y position in the bounding box\n * @type {number}\n */ this.maxY = maxY;\n }\n}\n\n\n\n// This maps the Unicode Script property to an OpenType script tag\n// Data from http://www.microsoft.com/typography/otspec/scripttags.htm\n// and http://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt.\nconst $130d1a642ebcd2b7$var$UNICODE_SCRIPTS = {\n Caucasian_Albanian: 'aghb',\n Arabic: 'arab',\n Imperial_Aramaic: 'armi',\n Armenian: 'armn',\n Avestan: 'avst',\n Balinese: 'bali',\n Bamum: 'bamu',\n Bassa_Vah: 'bass',\n Batak: 'batk',\n Bengali: [\n 'bng2',\n 'beng'\n ],\n Bopomofo: 'bopo',\n Brahmi: 'brah',\n Braille: 'brai',\n Buginese: 'bugi',\n Buhid: 'buhd',\n Chakma: 'cakm',\n Canadian_Aboriginal: 'cans',\n Carian: 'cari',\n Cham: 'cham',\n Cherokee: 'cher',\n Coptic: 'copt',\n Cypriot: 'cprt',\n Cyrillic: 'cyrl',\n Devanagari: [\n 'dev2',\n 'deva'\n ],\n Deseret: 'dsrt',\n Duployan: 'dupl',\n Egyptian_Hieroglyphs: 'egyp',\n Elbasan: 'elba',\n Ethiopic: 'ethi',\n Georgian: 'geor',\n Glagolitic: 'glag',\n Gothic: 'goth',\n Grantha: 'gran',\n Greek: 'grek',\n Gujarati: [\n 'gjr2',\n 'gujr'\n ],\n Gurmukhi: [\n 'gur2',\n 'guru'\n ],\n Hangul: 'hang',\n Han: 'hani',\n Hanunoo: 'hano',\n Hebrew: 'hebr',\n Hiragana: 'hira',\n Pahawh_Hmong: 'hmng',\n Katakana_Or_Hiragana: 'hrkt',\n Old_Italic: 'ital',\n Javanese: 'java',\n Kayah_Li: 'kali',\n Katakana: 'kana',\n Kharoshthi: 'khar',\n Khmer: 'khmr',\n Khojki: 'khoj',\n Kannada: [\n 'knd2',\n 'knda'\n ],\n Kaithi: 'kthi',\n Tai_Tham: 'lana',\n Lao: 'lao ',\n Latin: 'latn',\n Lepcha: 'lepc',\n Limbu: 'limb',\n Linear_A: 'lina',\n Linear_B: 'linb',\n Lisu: 'lisu',\n Lycian: 'lyci',\n Lydian: 'lydi',\n Mahajani: 'mahj',\n Mandaic: 'mand',\n Manichaean: 'mani',\n Mende_Kikakui: 'mend',\n Meroitic_Cursive: 'merc',\n Meroitic_Hieroglyphs: 'mero',\n Malayalam: [\n 'mlm2',\n 'mlym'\n ],\n Modi: 'modi',\n Mongolian: 'mong',\n Mro: 'mroo',\n Meetei_Mayek: 'mtei',\n Myanmar: [\n 'mym2',\n 'mymr'\n ],\n Old_North_Arabian: 'narb',\n Nabataean: 'nbat',\n Nko: 'nko ',\n Ogham: 'ogam',\n Ol_Chiki: 'olck',\n Old_Turkic: 'orkh',\n Oriya: [\n 'ory2',\n 'orya'\n ],\n Osmanya: 'osma',\n Palmyrene: 'palm',\n Pau_Cin_Hau: 'pauc',\n Old_Permic: 'perm',\n Phags_Pa: 'phag',\n Inscriptional_Pahlavi: 'phli',\n Psalter_Pahlavi: 'phlp',\n Phoenician: 'phnx',\n Miao: 'plrd',\n Inscriptional_Parthian: 'prti',\n Rejang: 'rjng',\n Runic: 'runr',\n Samaritan: 'samr',\n Old_South_Arabian: 'sarb',\n Saurashtra: 'saur',\n Shavian: 'shaw',\n Sharada: 'shrd',\n Siddham: 'sidd',\n Khudawadi: 'sind',\n Sinhala: 'sinh',\n Sora_Sompeng: 'sora',\n Sundanese: 'sund',\n Syloti_Nagri: 'sylo',\n Syriac: 'syrc',\n Tagbanwa: 'tagb',\n Takri: 'takr',\n Tai_Le: 'tale',\n New_Tai_Lue: 'talu',\n Tamil: [\n 'tml2',\n 'taml'\n ],\n Tai_Viet: 'tavt',\n Telugu: [\n 'tel2',\n 'telu'\n ],\n Tifinagh: 'tfng',\n Tagalog: 'tglg',\n Thaana: 'thaa',\n Thai: 'thai',\n Tibetan: 'tibt',\n Tirhuta: 'tirh',\n Ugaritic: 'ugar',\n Vai: 'vai ',\n Warang_Citi: 'wara',\n Old_Persian: 'xpeo',\n Cuneiform: 'xsux',\n Yi: 'yi ',\n Inherited: 'zinh',\n Common: 'zyyy',\n Unknown: 'zzzz'\n};\nconst $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS = {};\nfor(let script in $130d1a642ebcd2b7$var$UNICODE_SCRIPTS){\n let tag = $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n if (Array.isArray(tag)) for (let t of tag)$130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[t] = script;\n else $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[tag] = script;\n}\nfunction $130d1a642ebcd2b7$export$b32f0b5f69d65e51(script) {\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n}\nfunction $130d1a642ebcd2b7$export$ce50e82f12a827a4(tag) {\n return $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[tag];\n}\nfunction $130d1a642ebcd2b7$export$e5cb25e204fb8450(string) {\n let len = string.length;\n let idx = 0;\n while(idx < len){\n let code = string.charCodeAt(idx++);\n // Check if this is a high surrogate\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n let next = string.charCodeAt(idx);\n // Check if this is a low surrogate\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3FF) << 10) + (next & 0x3FF) + 0x10000;\n }\n }\n let script = (0, $6uUbQ$getScript)(code);\n if (script !== 'Common' && script !== 'Inherited' && script !== 'Unknown') return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n }\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS.Unknown;\n}\nfunction $130d1a642ebcd2b7$export$16fab0757cfc223d(codePoints) {\n for(let i = 0; i < codePoints.length; i++){\n let codePoint = codePoints[i];\n let script = (0, $6uUbQ$getScript)(codePoint);\n if (script !== 'Common' && script !== 'Inherited' && script !== 'Unknown') return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n }\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS.Unknown;\n}\n// The scripts in this map are written from right to left\nconst $130d1a642ebcd2b7$var$RTL = {\n arab: true,\n hebr: true,\n syrc: true,\n thaa: true,\n cprt: true,\n khar: true,\n phnx: true,\n 'nko ': true,\n lydi: true,\n avst: true,\n armi: true,\n phli: true,\n prti: true,\n sarb: true,\n orkh: true,\n samr: true,\n mand: true,\n merc: true,\n mero: true,\n // Unicode 7.0 (not listed on http://www.microsoft.com/typography/otspec/scripttags.htm)\n mani: true,\n mend: true,\n nbat: true,\n narb: true,\n palm: true,\n phlp: true // Psalter Pahlavi\n};\nfunction $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script) {\n if ($130d1a642ebcd2b7$var$RTL[script]) return 'rtl';\n return 'ltr';\n}\n\n\nclass $be07b3e97a42687a$export$2e2bcd8739ae039 {\n /**\n * The total advance width of the run.\n * @type {number}\n */ get advanceWidth() {\n let width = 0;\n for (let position of this.positions)width += position.xAdvance;\n return width;\n }\n /**\n * The total advance height of the run.\n * @type {number}\n */ get advanceHeight() {\n let height = 0;\n for (let position of this.positions)height += position.yAdvance;\n return height;\n }\n /**\n * The bounding box containing all glyphs in the run.\n * @type {BBox}\n */ get bbox() {\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n let x = 0;\n let y = 0;\n for(let index = 0; index < this.glyphs.length; index++){\n let glyph = this.glyphs[index];\n let p = this.positions[index];\n let b = glyph.bbox;\n bbox.addPoint(b.minX + x + p.xOffset, b.minY + y + p.yOffset);\n bbox.addPoint(b.maxX + x + p.xOffset, b.maxY + y + p.yOffset);\n x += p.xAdvance;\n y += p.yAdvance;\n }\n return bbox;\n }\n constructor(glyphs, features, script, language, direction){\n /**\n * An array of Glyph objects in the run\n * @type {Glyph[]}\n */ this.glyphs = glyphs;\n /**\n * An array of GlyphPosition objects for each glyph in the run\n * @type {GlyphPosition[]}\n */ this.positions = null;\n /**\n * The script that was requested for shaping. This was either passed in or detected automatically.\n * @type {string}\n */ this.script = script;\n /**\n * The language requested for shaping, as passed in. If `null`, the default language for the\n * script was used.\n * @type {string}\n */ this.language = language || null;\n /**\n * The direction requested for shaping, as passed in (either ltr or rtl).\n * If `null`, the default direction of the script is used.\n * @type {string}\n */ this.direction = direction || $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script);\n /**\n * The features requested during shaping. This is a combination of user\n * specified features and features chosen by the shaper.\n * @type {object}\n */ this.features = {};\n // Convert features to an object\n if (Array.isArray(features)) for (let tag of features)this.features[tag] = true;\n else if (typeof features === 'object') this.features = features;\n }\n}\n\n\n/**\n * Represents positioning information for a glyph in a GlyphRun.\n */ class $1ac75d9a55b67f01$export$2e2bcd8739ae039 {\n constructor(xAdvance = 0, yAdvance = 0, xOffset = 0, yOffset = 0){\n /**\n * The amount to move the virtual pen in the X direction after rendering this glyph.\n * @type {number}\n */ this.xAdvance = xAdvance;\n /**\n * The amount to move the virtual pen in the Y direction after rendering this glyph.\n * @type {number}\n */ this.yAdvance = yAdvance;\n /**\n * The offset from the pen position in the X direction at which to render this glyph.\n * @type {number}\n */ this.xOffset = xOffset;\n /**\n * The offset from the pen position in the Y direction at which to render this glyph.\n * @type {number}\n */ this.yOffset = yOffset;\n }\n}\n\n\n\n// see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html\n// and /System/Library/Frameworks/CoreText.framework/Versions/A/Headers/SFNTLayoutTypes.h on a Mac\nconst $3b6302b64eccc32c$var$features = {\n allTypographicFeatures: {\n code: 0,\n exclusive: false,\n allTypeFeatures: 0\n },\n ligatures: {\n code: 1,\n exclusive: false,\n requiredLigatures: 0,\n commonLigatures: 2,\n rareLigatures: 4,\n // logos: 6\n rebusPictures: 8,\n diphthongLigatures: 10,\n squaredLigatures: 12,\n abbrevSquaredLigatures: 14,\n symbolLigatures: 16,\n contextualLigatures: 18,\n historicalLigatures: 20\n },\n cursiveConnection: {\n code: 2,\n exclusive: true,\n unconnected: 0,\n partiallyConnected: 1,\n cursive: 2\n },\n letterCase: {\n code: 3,\n exclusive: true\n },\n // upperAndLowerCase: 0 # deprecated\n // allCaps: 1 # deprecated\n // allLowerCase: 2 # deprecated\n // smallCaps: 3 # deprecated\n // initialCaps: 4 # deprecated\n // initialCapsAndSmallCaps: 5 # deprecated\n verticalSubstitution: {\n code: 4,\n exclusive: false,\n substituteVerticalForms: 0\n },\n linguisticRearrangement: {\n code: 5,\n exclusive: false,\n linguisticRearrangement: 0\n },\n numberSpacing: {\n code: 6,\n exclusive: true,\n monospacedNumbers: 0,\n proportionalNumbers: 1,\n thirdWidthNumbers: 2,\n quarterWidthNumbers: 3\n },\n smartSwash: {\n code: 8,\n exclusive: false,\n wordInitialSwashes: 0,\n wordFinalSwashes: 2,\n // lineInitialSwashes: 4\n // lineFinalSwashes: 6\n nonFinalSwashes: 8\n },\n diacritics: {\n code: 9,\n exclusive: true,\n showDiacritics: 0,\n hideDiacritics: 1,\n decomposeDiacritics: 2\n },\n verticalPosition: {\n code: 10,\n exclusive: true,\n normalPosition: 0,\n superiors: 1,\n inferiors: 2,\n ordinals: 3,\n scientificInferiors: 4\n },\n fractions: {\n code: 11,\n exclusive: true,\n noFractions: 0,\n verticalFractions: 1,\n diagonalFractions: 2\n },\n overlappingCharacters: {\n code: 13,\n exclusive: false,\n preventOverlap: 0\n },\n typographicExtras: {\n code: 14,\n exclusive: false,\n // hyphensToEmDash: 0\n // hyphenToEnDash: 2\n slashedZero: 4\n },\n // formInterrobang: 6\n // smartQuotes: 8\n // periodsToEllipsis: 10\n mathematicalExtras: {\n code: 15,\n exclusive: false,\n // hyphenToMinus: 0\n // asteristoMultiply: 2\n // slashToDivide: 4\n // inequalityLigatures: 6\n // exponents: 8\n mathematicalGreek: 10\n },\n ornamentSets: {\n code: 16,\n exclusive: true,\n noOrnaments: 0,\n dingbats: 1,\n piCharacters: 2,\n fleurons: 3,\n decorativeBorders: 4,\n internationalSymbols: 5,\n mathSymbols: 6\n },\n characterAlternatives: {\n code: 17,\n exclusive: true,\n noAlternates: 0\n },\n // user defined options\n designComplexity: {\n code: 18,\n exclusive: true,\n designLevel1: 0,\n designLevel2: 1,\n designLevel3: 2,\n designLevel4: 3,\n designLevel5: 4\n },\n styleOptions: {\n code: 19,\n exclusive: true,\n noStyleOptions: 0,\n displayText: 1,\n engravedText: 2,\n illuminatedCaps: 3,\n titlingCaps: 4,\n tallCaps: 5\n },\n characterShape: {\n code: 20,\n exclusive: true,\n traditionalCharacters: 0,\n simplifiedCharacters: 1,\n JIS1978Characters: 2,\n JIS1983Characters: 3,\n JIS1990Characters: 4,\n traditionalAltOne: 5,\n traditionalAltTwo: 6,\n traditionalAltThree: 7,\n traditionalAltFour: 8,\n traditionalAltFive: 9,\n expertCharacters: 10,\n JIS2004Characters: 11,\n hojoCharacters: 12,\n NLCCharacters: 13,\n traditionalNamesCharacters: 14\n },\n numberCase: {\n code: 21,\n exclusive: true,\n lowerCaseNumbers: 0,\n upperCaseNumbers: 1\n },\n textSpacing: {\n code: 22,\n exclusive: true,\n proportionalText: 0,\n monospacedText: 1,\n halfWidthText: 2,\n thirdWidthText: 3,\n quarterWidthText: 4,\n altProportionalText: 5,\n altHalfWidthText: 6\n },\n transliteration: {\n code: 23,\n exclusive: true,\n noTransliteration: 0\n },\n // hanjaToHangul: 1\n // hiraganaToKatakana: 2\n // katakanaToHiragana: 3\n // kanaToRomanization: 4\n // romanizationToHiragana: 5\n // romanizationToKatakana: 6\n // hanjaToHangulAltOne: 7\n // hanjaToHangulAltTwo: 8\n // hanjaToHangulAltThree: 9\n annotation: {\n code: 24,\n exclusive: true,\n noAnnotation: 0,\n boxAnnotation: 1,\n roundedBoxAnnotation: 2,\n circleAnnotation: 3,\n invertedCircleAnnotation: 4,\n parenthesisAnnotation: 5,\n periodAnnotation: 6,\n romanNumeralAnnotation: 7,\n diamondAnnotation: 8,\n invertedBoxAnnotation: 9,\n invertedRoundedBoxAnnotation: 10\n },\n kanaSpacing: {\n code: 25,\n exclusive: true,\n fullWidthKana: 0,\n proportionalKana: 1\n },\n ideographicSpacing: {\n code: 26,\n exclusive: true,\n fullWidthIdeographs: 0,\n proportionalIdeographs: 1,\n halfWidthIdeographs: 2\n },\n unicodeDecomposition: {\n code: 27,\n exclusive: false,\n canonicalComposition: 0,\n compatibilityComposition: 2,\n transcodingComposition: 4\n },\n rubyKana: {\n code: 28,\n exclusive: false,\n // noRubyKana: 0 # deprecated - use rubyKanaOff instead\n // rubyKana: 1 # deprecated - use rubyKanaOn instead\n rubyKana: 2\n },\n CJKSymbolAlternatives: {\n code: 29,\n exclusive: true,\n noCJKSymbolAlternatives: 0,\n CJKSymbolAltOne: 1,\n CJKSymbolAltTwo: 2,\n CJKSymbolAltThree: 3,\n CJKSymbolAltFour: 4,\n CJKSymbolAltFive: 5\n },\n ideographicAlternatives: {\n code: 30,\n exclusive: true,\n noIdeographicAlternatives: 0,\n ideographicAltOne: 1,\n ideographicAltTwo: 2,\n ideographicAltThree: 3,\n ideographicAltFour: 4,\n ideographicAltFive: 5\n },\n CJKVerticalRomanPlacement: {\n code: 31,\n exclusive: true,\n CJKVerticalRomanCentered: 0,\n CJKVerticalRomanHBaseline: 1\n },\n italicCJKRoman: {\n code: 32,\n exclusive: false,\n // noCJKItalicRoman: 0 # deprecated - use CJKItalicRomanOff instead\n // CJKItalicRoman: 1 # deprecated - use CJKItalicRomanOn instead\n CJKItalicRoman: 2\n },\n caseSensitiveLayout: {\n code: 33,\n exclusive: false,\n caseSensitiveLayout: 0,\n caseSensitiveSpacing: 2\n },\n alternateKana: {\n code: 34,\n exclusive: false,\n alternateHorizKana: 0,\n alternateVertKana: 2\n },\n stylisticAlternatives: {\n code: 35,\n exclusive: false,\n noStylisticAlternates: 0,\n stylisticAltOne: 2,\n stylisticAltTwo: 4,\n stylisticAltThree: 6,\n stylisticAltFour: 8,\n stylisticAltFive: 10,\n stylisticAltSix: 12,\n stylisticAltSeven: 14,\n stylisticAltEight: 16,\n stylisticAltNine: 18,\n stylisticAltTen: 20,\n stylisticAltEleven: 22,\n stylisticAltTwelve: 24,\n stylisticAltThirteen: 26,\n stylisticAltFourteen: 28,\n stylisticAltFifteen: 30,\n stylisticAltSixteen: 32,\n stylisticAltSeventeen: 34,\n stylisticAltEighteen: 36,\n stylisticAltNineteen: 38,\n stylisticAltTwenty: 40\n },\n contextualAlternates: {\n code: 36,\n exclusive: false,\n contextualAlternates: 0,\n swashAlternates: 2,\n contextualSwashAlternates: 4\n },\n lowerCase: {\n code: 37,\n exclusive: true,\n defaultLowerCase: 0,\n lowerCaseSmallCaps: 1,\n lowerCasePetiteCaps: 2\n },\n upperCase: {\n code: 38,\n exclusive: true,\n defaultUpperCase: 0,\n upperCaseSmallCaps: 1,\n upperCasePetiteCaps: 2\n },\n languageTag: {\n code: 39,\n exclusive: true\n },\n CJKRomanSpacing: {\n code: 103,\n exclusive: true,\n halfWidthCJKRoman: 0,\n proportionalCJKRoman: 1,\n defaultCJKRoman: 2,\n fullWidthCJKRoman: 3\n }\n};\nconst $3b6302b64eccc32c$var$feature = (name, selector)=>[\n $3b6302b64eccc32c$var$features[name].code,\n $3b6302b64eccc32c$var$features[name][selector]\n ];\nconst $3b6302b64eccc32c$var$OTMapping = {\n rlig: $3b6302b64eccc32c$var$feature('ligatures', 'requiredLigatures'),\n clig: $3b6302b64eccc32c$var$feature('ligatures', 'contextualLigatures'),\n dlig: $3b6302b64eccc32c$var$feature('ligatures', 'rareLigatures'),\n hlig: $3b6302b64eccc32c$var$feature('ligatures', 'historicalLigatures'),\n liga: $3b6302b64eccc32c$var$feature('ligatures', 'commonLigatures'),\n hist: $3b6302b64eccc32c$var$feature('ligatures', 'historicalLigatures'),\n smcp: $3b6302b64eccc32c$var$feature('lowerCase', 'lowerCaseSmallCaps'),\n pcap: $3b6302b64eccc32c$var$feature('lowerCase', 'lowerCasePetiteCaps'),\n frac: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n dnom: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n numr: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n afrc: $3b6302b64eccc32c$var$feature('fractions', 'verticalFractions'),\n // aalt\n // abvf, abvm, abvs, akhn, blwf, blwm, blws, cfar, cjct, cpsp, falt, isol, jalt, ljmo, mset?\n // ltra, ltrm, nukt, pref, pres, pstf, psts, rand, rkrf, rphf, rtla, rtlm, size, tjmo, tnum?\n // unic, vatu, vhal, vjmo, vpal, vrt2\n // dist -> trak table?\n // kern, vkrn -> kern table\n // lfbd + opbd + rtbd -> opbd table?\n // mark, mkmk -> acnt table?\n // locl -> languageTag + ltag table\n case: $3b6302b64eccc32c$var$feature('caseSensitiveLayout', 'caseSensitiveLayout'),\n ccmp: $3b6302b64eccc32c$var$feature('unicodeDecomposition', 'canonicalComposition'),\n cpct: $3b6302b64eccc32c$var$feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n valt: $3b6302b64eccc32c$var$feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n swsh: $3b6302b64eccc32c$var$feature('contextualAlternates', 'swashAlternates'),\n cswh: $3b6302b64eccc32c$var$feature('contextualAlternates', 'contextualSwashAlternates'),\n curs: $3b6302b64eccc32c$var$feature('cursiveConnection', 'cursive'),\n c2pc: $3b6302b64eccc32c$var$feature('upperCase', 'upperCasePetiteCaps'),\n c2sc: $3b6302b64eccc32c$var$feature('upperCase', 'upperCaseSmallCaps'),\n init: $3b6302b64eccc32c$var$feature('smartSwash', 'wordInitialSwashes'),\n fin2: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n medi: $3b6302b64eccc32c$var$feature('smartSwash', 'nonFinalSwashes'),\n med2: $3b6302b64eccc32c$var$feature('smartSwash', 'nonFinalSwashes'),\n fin3: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n fina: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n pkna: $3b6302b64eccc32c$var$feature('kanaSpacing', 'proportionalKana'),\n half: $3b6302b64eccc32c$var$feature('textSpacing', 'halfWidthText'),\n halt: $3b6302b64eccc32c$var$feature('textSpacing', 'altHalfWidthText'),\n hkna: $3b6302b64eccc32c$var$feature('alternateKana', 'alternateHorizKana'),\n vkna: $3b6302b64eccc32c$var$feature('alternateKana', 'alternateVertKana'),\n // hngl: feature 'transliteration', 'hanjaToHangulSelector' # deprecated\n ital: $3b6302b64eccc32c$var$feature('italicCJKRoman', 'CJKItalicRoman'),\n lnum: $3b6302b64eccc32c$var$feature('numberCase', 'upperCaseNumbers'),\n onum: $3b6302b64eccc32c$var$feature('numberCase', 'lowerCaseNumbers'),\n mgrk: $3b6302b64eccc32c$var$feature('mathematicalExtras', 'mathematicalGreek'),\n // nalt: not enough info. what type of annotation?\n // ornm: ditto, which ornament style?\n calt: $3b6302b64eccc32c$var$feature('contextualAlternates', 'contextualAlternates'),\n vrt2: $3b6302b64eccc32c$var$feature('verticalSubstitution', 'substituteVerticalForms'),\n vert: $3b6302b64eccc32c$var$feature('verticalSubstitution', 'substituteVerticalForms'),\n tnum: $3b6302b64eccc32c$var$feature('numberSpacing', 'monospacedNumbers'),\n pnum: $3b6302b64eccc32c$var$feature('numberSpacing', 'proportionalNumbers'),\n sups: $3b6302b64eccc32c$var$feature('verticalPosition', 'superiors'),\n subs: $3b6302b64eccc32c$var$feature('verticalPosition', 'inferiors'),\n ordn: $3b6302b64eccc32c$var$feature('verticalPosition', 'ordinals'),\n pwid: $3b6302b64eccc32c$var$feature('textSpacing', 'proportionalText'),\n hwid: $3b6302b64eccc32c$var$feature('textSpacing', 'halfWidthText'),\n qwid: $3b6302b64eccc32c$var$feature('textSpacing', 'quarterWidthText'),\n twid: $3b6302b64eccc32c$var$feature('textSpacing', 'thirdWidthText'),\n fwid: $3b6302b64eccc32c$var$feature('textSpacing', 'proportionalText'),\n palt: $3b6302b64eccc32c$var$feature('textSpacing', 'altProportionalText'),\n trad: $3b6302b64eccc32c$var$feature('characterShape', 'traditionalCharacters'),\n smpl: $3b6302b64eccc32c$var$feature('characterShape', 'simplifiedCharacters'),\n jp78: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1978Characters'),\n jp83: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1983Characters'),\n jp90: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1990Characters'),\n jp04: $3b6302b64eccc32c$var$feature('characterShape', 'JIS2004Characters'),\n expt: $3b6302b64eccc32c$var$feature('characterShape', 'expertCharacters'),\n hojo: $3b6302b64eccc32c$var$feature('characterShape', 'hojoCharacters'),\n nlck: $3b6302b64eccc32c$var$feature('characterShape', 'NLCCharacters'),\n tnam: $3b6302b64eccc32c$var$feature('characterShape', 'traditionalNamesCharacters'),\n ruby: $3b6302b64eccc32c$var$feature('rubyKana', 'rubyKana'),\n titl: $3b6302b64eccc32c$var$feature('styleOptions', 'titlingCaps'),\n zero: $3b6302b64eccc32c$var$feature('typographicExtras', 'slashedZero'),\n ss01: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltOne'),\n ss02: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwo'),\n ss03: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltThree'),\n ss04: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFour'),\n ss05: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFive'),\n ss06: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSix'),\n ss07: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSeven'),\n ss08: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEight'),\n ss09: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltNine'),\n ss10: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTen'),\n ss11: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEleven'),\n ss12: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwelve'),\n ss13: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltThirteen'),\n ss14: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFourteen'),\n ss15: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFifteen'),\n ss16: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSixteen'),\n ss17: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSeventeen'),\n ss18: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEighteen'),\n ss19: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltNineteen'),\n ss20: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwenty')\n};\n// salt: feature 'stylisticAlternatives', 'stylisticAltOne' # hmm, which one to choose\n// Add cv01-cv99 features\nfor(let i = 1; i <= 99; i++)$3b6302b64eccc32c$var$OTMapping[`cv${`00${i}`.slice(-2)}`] = [\n $3b6302b64eccc32c$var$features.characterAlternatives.code,\n i\n];\n// create inverse mapping\nlet $3b6302b64eccc32c$var$AATMapping = {};\nfor(let ot in $3b6302b64eccc32c$var$OTMapping){\n let aat = $3b6302b64eccc32c$var$OTMapping[ot];\n if ($3b6302b64eccc32c$var$AATMapping[aat[0]] == null) $3b6302b64eccc32c$var$AATMapping[aat[0]] = {};\n $3b6302b64eccc32c$var$AATMapping[aat[0]][aat[1]] = ot;\n}\nfunction $3b6302b64eccc32c$export$b813f7d2a1677c16(features) {\n let res = {};\n for(let k in features){\n let r;\n if (r = $3b6302b64eccc32c$var$OTMapping[k]) {\n if (res[r[0]] == null) res[r[0]] = {};\n res[r[0]][r[1]] = features[k];\n }\n }\n return res;\n}\n// Maps strings in a [featureType, featureSetting]\n// to their equivalent number codes\nfunction $3b6302b64eccc32c$var$mapFeatureStrings(f) {\n let [type, setting] = f;\n if (isNaN(type)) var typeCode = $3b6302b64eccc32c$var$features[type] && $3b6302b64eccc32c$var$features[type].code;\n else var typeCode = type;\n if (isNaN(setting)) var settingCode = $3b6302b64eccc32c$var$features[type] && $3b6302b64eccc32c$var$features[type][setting];\n else var settingCode = setting;\n return [\n typeCode,\n settingCode\n ];\n}\nfunction $3b6302b64eccc32c$export$bd6df347a4f391c4(features) {\n let res = {};\n if (Array.isArray(features)) for(let k = 0; k < features.length; k++){\n let r;\n let f = $3b6302b64eccc32c$var$mapFeatureStrings(features[k]);\n if (r = $3b6302b64eccc32c$var$AATMapping[f[0]] && $3b6302b64eccc32c$var$AATMapping[f[0]][f[1]]) res[r] = true;\n }\n else if (typeof features === 'object') for(let type in features){\n let feature = features[type];\n for(let setting in feature){\n let r;\n let f = $3b6302b64eccc32c$var$mapFeatureStrings([\n type,\n setting\n ]);\n if (feature[setting] && (r = $3b6302b64eccc32c$var$AATMapping[f[0]] && $3b6302b64eccc32c$var$AATMapping[f[0]][f[1]])) res[r] = true;\n }\n }\n return Object.keys(res);\n}\n\n\n\n\n\n\n\nclass $ff5ce077dae0f144$export$2e2bcd8739ae039 {\n lookup(glyph) {\n switch(this.table.version){\n case 0:\n return this.table.values.getItem(glyph);\n case 2:\n case 4:\n {\n let min = 0;\n let max = this.table.binarySearchHeader.nUnits - 1;\n while(min <= max){\n var mid = min + max >> 1;\n var seg = this.table.segments[mid];\n // special end of search value\n if (seg.firstGlyph === 0xffff) return null;\n if (glyph < seg.firstGlyph) max = mid - 1;\n else if (glyph > seg.lastGlyph) min = mid + 1;\n else {\n if (this.table.version === 2) return seg.value;\n else return seg.values[glyph - seg.firstGlyph];\n }\n }\n return null;\n }\n case 6:\n {\n let min = 0;\n let max = this.table.binarySearchHeader.nUnits - 1;\n while(min <= max){\n var mid = min + max >> 1;\n var seg = this.table.segments[mid];\n // special end of search value\n if (seg.glyph === 0xffff) return null;\n if (glyph < seg.glyph) max = mid - 1;\n else if (glyph > seg.glyph) min = mid + 1;\n else return seg.value;\n }\n return null;\n }\n case 8:\n return this.table.values[glyph - this.table.firstGlyph];\n default:\n throw new Error(`Unknown lookup table format: ${this.table.version}`);\n }\n }\n glyphsForValue(classValue) {\n let res = [];\n switch(this.table.version){\n case 2:\n case 4:\n for (let segment of this.table.segments)if (this.table.version === 2 && segment.value === classValue) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(segment.firstGlyph, segment.lastGlyph + 1));\n else {\n for(let index = 0; index < segment.values.length; index++)if (segment.values[index] === classValue) res.push(segment.firstGlyph + index);\n }\n break;\n case 6:\n for (let segment of this.table.segments)if (segment.value === classValue) res.push(segment.glyph);\n break;\n case 8:\n for(let i = 0; i < this.table.values.length; i++)if (this.table.values[i] === classValue) res.push(this.table.firstGlyph + i);\n break;\n default:\n throw new Error(`Unknown lookup table format: ${this.table.version}`);\n }\n return res;\n }\n constructor(table){\n this.table = table;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $ff5ce077dae0f144$export$2e2bcd8739ae039.prototype, \"glyphsForValue\", null);\n\n\nconst $50c7aac9316f2948$var$START_OF_TEXT_STATE = 0;\nconst $50c7aac9316f2948$var$START_OF_LINE_STATE = 1;\nconst $50c7aac9316f2948$var$END_OF_TEXT_CLASS = 0;\nconst $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS = 1;\nconst $50c7aac9316f2948$var$DELETED_GLYPH_CLASS = 2;\nconst $50c7aac9316f2948$var$END_OF_LINE_CLASS = 3;\nconst $50c7aac9316f2948$var$DONT_ADVANCE = 0x4000;\nclass $50c7aac9316f2948$export$2e2bcd8739ae039 {\n process(glyphs, reverse, processEntry) {\n let currentState = $50c7aac9316f2948$var$START_OF_TEXT_STATE; // START_OF_LINE_STATE is used for kashida glyph insertions sometimes I think?\n let index = reverse ? glyphs.length - 1 : 0;\n let dir = reverse ? -1 : 1;\n while(dir === 1 && index <= glyphs.length || dir === -1 && index >= -1){\n let glyph = null;\n let classCode = $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS;\n let shouldAdvance = true;\n if (index === glyphs.length || index === -1) classCode = $50c7aac9316f2948$var$END_OF_TEXT_CLASS;\n else {\n glyph = glyphs[index];\n if (glyph.id === 0xffff) classCode = $50c7aac9316f2948$var$DELETED_GLYPH_CLASS;\n else {\n classCode = this.lookupTable.lookup(glyph.id);\n if (classCode == null) classCode = $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS;\n }\n }\n let row = this.stateTable.stateArray.getItem(currentState);\n let entryIndex = row[classCode];\n let entry = this.stateTable.entryTable.getItem(entryIndex);\n if (classCode !== $50c7aac9316f2948$var$END_OF_TEXT_CLASS && classCode !== $50c7aac9316f2948$var$DELETED_GLYPH_CLASS) {\n processEntry(glyph, entry, index);\n shouldAdvance = !(entry.flags & $50c7aac9316f2948$var$DONT_ADVANCE);\n }\n currentState = entry.newState;\n if (shouldAdvance) index += dir;\n }\n return glyphs;\n }\n /**\n * Performs a depth-first traversal of the glyph strings\n * represented by the state machine.\n */ traverse(opts, state = 0, visited = new Set) {\n if (visited.has(state)) return;\n visited.add(state);\n let { nClasses: nClasses, stateArray: stateArray, entryTable: entryTable } = this.stateTable;\n let row = stateArray.getItem(state);\n // Skip predefined classes\n for(let classCode = 4; classCode < nClasses; classCode++){\n let entryIndex = row[classCode];\n let entry = entryTable.getItem(entryIndex);\n // Try all glyphs in the class\n for (let glyph of this.lookupTable.glyphsForValue(classCode)){\n if (opts.enter) opts.enter(glyph, entry);\n if (entry.newState !== 0) this.traverse(opts, entry.newState, visited);\n if (opts.exit) opts.exit(glyph, entry);\n }\n }\n }\n constructor(stateTable){\n this.stateTable = stateTable;\n this.lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(stateTable.classTable);\n }\n}\n\n\n\n\n// indic replacement flags\nconst $55f71433a605c87d$var$MARK_FIRST = 0x8000;\nconst $55f71433a605c87d$var$MARK_LAST = 0x2000;\nconst $55f71433a605c87d$var$VERB = 0x000F;\n// contextual substitution and glyph insertion flag\nconst $55f71433a605c87d$var$SET_MARK = 0x8000;\n// ligature entry flags\nconst $55f71433a605c87d$var$SET_COMPONENT = 0x8000;\nconst $55f71433a605c87d$var$PERFORM_ACTION = 0x2000;\n// ligature action masks\nconst $55f71433a605c87d$var$LAST_MASK = 0x80000000;\nconst $55f71433a605c87d$var$STORE_MASK = 0x40000000;\nconst $55f71433a605c87d$var$OFFSET_MASK = 0x3FFFFFFF;\nconst $55f71433a605c87d$var$VERTICAL_ONLY = 0x800000;\nconst $55f71433a605c87d$var$REVERSE_DIRECTION = 0x400000;\nconst $55f71433a605c87d$var$HORIZONTAL_AND_VERTICAL = 0x200000;\n// glyph insertion flags\nconst $55f71433a605c87d$var$CURRENT_IS_KASHIDA_LIKE = 0x2000;\nconst $55f71433a605c87d$var$MARKED_IS_KASHIDA_LIKE = 0x1000;\nconst $55f71433a605c87d$var$CURRENT_INSERT_BEFORE = 0x0800;\nconst $55f71433a605c87d$var$MARKED_INSERT_BEFORE = 0x0400;\nconst $55f71433a605c87d$var$CURRENT_INSERT_COUNT = 0x03E0;\nconst $55f71433a605c87d$var$MARKED_INSERT_COUNT = 0x001F;\nclass $55f71433a605c87d$export$2e2bcd8739ae039 {\n // Processes an array of glyphs and applies the specified features\n // Features should be in the form of {featureType:{featureSetting:boolean}}\n process(glyphs, features = {}) {\n for (let chain of this.morx.chains){\n let flags = chain.defaultFlags;\n // enable/disable the requested features\n for (let feature of chain.features){\n let f;\n if (f = features[feature.featureType]) {\n if (f[feature.featureSetting]) {\n flags &= feature.disableFlags;\n flags |= feature.enableFlags;\n } else if (f[feature.featureSetting] === false) {\n flags |= ~feature.disableFlags;\n flags &= ~feature.enableFlags;\n }\n }\n }\n for (let subtable of chain.subtables)if (subtable.subFeatureFlags & flags) this.processSubtable(subtable, glyphs);\n }\n // remove deleted glyphs\n let index = glyphs.length - 1;\n while(index >= 0){\n if (glyphs[index].id === 0xffff) glyphs.splice(index, 1);\n index--;\n }\n return glyphs;\n }\n processSubtable(subtable, glyphs) {\n this.subtable = subtable;\n this.glyphs = glyphs;\n if (this.subtable.type === 4) {\n this.processNoncontextualSubstitutions(this.subtable, this.glyphs);\n return;\n }\n this.ligatureStack = [];\n this.markedGlyph = null;\n this.firstGlyph = null;\n this.lastGlyph = null;\n this.markedIndex = null;\n let stateMachine = this.getStateMachine(subtable);\n let process = this.getProcessor();\n let reverse = !!(this.subtable.coverage & $55f71433a605c87d$var$REVERSE_DIRECTION);\n return stateMachine.process(this.glyphs, reverse, process);\n }\n getStateMachine(subtable) {\n return new (0, $50c7aac9316f2948$export$2e2bcd8739ae039)(subtable.table.stateTable);\n }\n getProcessor() {\n switch(this.subtable.type){\n case 0:\n return this.processIndicRearragement;\n case 1:\n return this.processContextualSubstitution;\n case 2:\n return this.processLigature;\n case 4:\n return this.processNoncontextualSubstitutions;\n case 5:\n return this.processGlyphInsertion;\n default:\n throw new Error(`Invalid morx subtable type: ${this.subtable.type}`);\n }\n }\n processIndicRearragement(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$MARK_FIRST) this.firstGlyph = index;\n if (entry.flags & $55f71433a605c87d$var$MARK_LAST) this.lastGlyph = index;\n $55f71433a605c87d$var$reorderGlyphs(this.glyphs, entry.flags & $55f71433a605c87d$var$VERB, this.firstGlyph, this.lastGlyph);\n }\n processContextualSubstitution(glyph, entry, index) {\n let subsitutions = this.subtable.table.substitutionTable.items;\n if (entry.markIndex !== 0xffff) {\n let lookup = subsitutions.getItem(entry.markIndex);\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(lookup);\n glyph = this.glyphs[this.markedGlyph];\n var gid = lookupTable.lookup(glyph.id);\n if (gid) this.glyphs[this.markedGlyph] = this.font.getGlyph(gid, glyph.codePoints);\n }\n if (entry.currentIndex !== 0xffff) {\n let lookup = subsitutions.getItem(entry.currentIndex);\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(lookup);\n glyph = this.glyphs[index];\n var gid = lookupTable.lookup(glyph.id);\n if (gid) this.glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n if (entry.flags & $55f71433a605c87d$var$SET_MARK) this.markedGlyph = index;\n }\n processLigature(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$SET_COMPONENT) this.ligatureStack.push(index);\n if (entry.flags & $55f71433a605c87d$var$PERFORM_ACTION) {\n let actions = this.subtable.table.ligatureActions;\n let components = this.subtable.table.components;\n let ligatureList = this.subtable.table.ligatureList;\n let actionIndex = entry.action;\n let last = false;\n let ligatureIndex = 0;\n let codePoints = [];\n let ligatureGlyphs = [];\n while(!last){\n let componentGlyph = this.ligatureStack.pop();\n codePoints.unshift(...this.glyphs[componentGlyph].codePoints);\n let action = actions.getItem(actionIndex++);\n last = !!(action & $55f71433a605c87d$var$LAST_MASK);\n let store = !!(action & $55f71433a605c87d$var$STORE_MASK);\n let offset = (action & $55f71433a605c87d$var$OFFSET_MASK) << 2 >> 2; // sign extend 30 to 32 bits\n offset += this.glyphs[componentGlyph].id;\n let component = components.getItem(offset);\n ligatureIndex += component;\n if (last || store) {\n let ligatureEntry = ligatureList.getItem(ligatureIndex);\n this.glyphs[componentGlyph] = this.font.getGlyph(ligatureEntry, codePoints);\n ligatureGlyphs.push(componentGlyph);\n ligatureIndex = 0;\n codePoints = [];\n } else this.glyphs[componentGlyph] = this.font.getGlyph(0xffff);\n }\n // Put ligature glyph indexes back on the stack\n this.ligatureStack.push(...ligatureGlyphs);\n }\n }\n processNoncontextualSubstitutions(subtable, glyphs, index) {\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(subtable.table.lookupTable);\n for(index = 0; index < glyphs.length; index++){\n let glyph = glyphs[index];\n if (glyph.id !== 0xffff) {\n let gid = lookupTable.lookup(glyph.id);\n if (gid) glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n }\n _insertGlyphs(glyphIndex, insertionActionIndex, count, isBefore) {\n let insertions = [];\n while(count--){\n let gid = this.subtable.table.insertionActions.getItem(insertionActionIndex++);\n insertions.push(this.font.getGlyph(gid));\n }\n if (!isBefore) glyphIndex++;\n this.glyphs.splice(glyphIndex, 0, ...insertions);\n }\n processGlyphInsertion(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$SET_MARK) this.markedIndex = index;\n if (entry.markedInsertIndex !== 0xffff) {\n let count = (entry.flags & $55f71433a605c87d$var$MARKED_INSERT_COUNT) >>> 5;\n let isBefore = !!(entry.flags & $55f71433a605c87d$var$MARKED_INSERT_BEFORE);\n this._insertGlyphs(this.markedIndex, entry.markedInsertIndex, count, isBefore);\n }\n if (entry.currentInsertIndex !== 0xffff) {\n let count = (entry.flags & $55f71433a605c87d$var$CURRENT_INSERT_COUNT) >>> 5;\n let isBefore = !!(entry.flags & $55f71433a605c87d$var$CURRENT_INSERT_BEFORE);\n this._insertGlyphs(index, entry.currentInsertIndex, count, isBefore);\n }\n }\n getSupportedFeatures() {\n let features = [];\n for (let chain of this.morx.chains)for (let feature of chain.features)features.push([\n feature.featureType,\n feature.featureSetting\n ]);\n return features;\n }\n generateInputs(gid) {\n if (!this.inputCache) this.generateInputCache();\n return this.inputCache[gid] || [];\n }\n generateInputCache() {\n this.inputCache = {};\n for (let chain of this.morx.chains){\n let flags = chain.defaultFlags;\n for (let subtable of chain.subtables)if (subtable.subFeatureFlags & flags) this.generateInputsForSubtable(subtable);\n }\n }\n generateInputsForSubtable(subtable) {\n // Currently, only supporting ligature subtables.\n if (subtable.type !== 2) return;\n let reverse = !!(subtable.coverage & $55f71433a605c87d$var$REVERSE_DIRECTION);\n if (reverse) throw new Error('Reverse subtable, not supported.');\n this.subtable = subtable;\n this.ligatureStack = [];\n let stateMachine = this.getStateMachine(subtable);\n let process = this.getProcessor();\n let input = [];\n let stack = [];\n this.glyphs = [];\n stateMachine.traverse({\n enter: (glyph, entry)=>{\n let glyphs = this.glyphs;\n stack.push({\n glyphs: glyphs.slice(),\n ligatureStack: this.ligatureStack.slice()\n });\n // Add glyph to input and glyphs to process.\n let g = this.font.getGlyph(glyph);\n input.push(g);\n glyphs.push(input[input.length - 1]);\n // Process ligature substitution\n process(glyphs[glyphs.length - 1], entry, glyphs.length - 1);\n // Add input to result if only one matching (non-deleted) glyph remains.\n let count = 0;\n let found = 0;\n for(let i = 0; i < glyphs.length && count <= 1; i++)if (glyphs[i].id !== 0xffff) {\n count++;\n found = glyphs[i].id;\n }\n if (count === 1) {\n let result = input.map((g)=>g.id);\n let cache = this.inputCache[found];\n if (cache) cache.push(result);\n else this.inputCache[found] = [\n result\n ];\n }\n },\n exit: ()=>{\n ({ glyphs: this.glyphs, ligatureStack: this.ligatureStack } = stack.pop());\n input.pop();\n }\n });\n }\n constructor(font){\n this.processIndicRearragement = this.processIndicRearragement.bind(this);\n this.processContextualSubstitution = this.processContextualSubstitution.bind(this);\n this.processLigature = this.processLigature.bind(this);\n this.processNoncontextualSubstitutions = this.processNoncontextualSubstitutions.bind(this);\n this.processGlyphInsertion = this.processGlyphInsertion.bind(this);\n this.font = font;\n this.morx = font.morx;\n this.inputCache = null;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $55f71433a605c87d$export$2e2bcd8739ae039.prototype, \"getStateMachine\", null);\n// swaps the glyphs in rangeA with those in rangeB\n// reverse the glyphs inside those ranges if specified\n// ranges are in [offset, length] format\nfunction $55f71433a605c87d$var$swap(glyphs, rangeA, rangeB, reverseA = false, reverseB = false) {\n let end = glyphs.splice(rangeB[0] - (rangeB[1] - 1), rangeB[1]);\n if (reverseB) end.reverse();\n let start = glyphs.splice(rangeA[0], rangeA[1], ...end);\n if (reverseA) start.reverse();\n glyphs.splice(rangeB[0] - (rangeA[1] - 1), 0, ...start);\n return glyphs;\n}\nfunction $55f71433a605c87d$var$reorderGlyphs(glyphs, verb, firstGlyph, lastGlyph) {\n let length = lastGlyph - firstGlyph + 1;\n switch(verb){\n case 0:\n return glyphs;\n case 1:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 0\n ]);\n case 2:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 1\n ]);\n case 3:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 1\n ]);\n case 4:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 0\n ]);\n case 5:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 0\n ], true, false);\n case 6:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 2\n ]);\n case 7:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 8:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 2\n ]);\n case 9:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 10:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 1\n ]);\n case 11:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 1\n ], true, false);\n case 12:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ]);\n case 13:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], true, false);\n case 14:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 15:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], true, true);\n default:\n throw new Error(`Unknown verb: ${verb}`);\n }\n}\n\n\nclass $ba6dd74203be8728$export$2e2bcd8739ae039 {\n substitute(glyphRun) {\n // AAT expects the glyphs to be in visual order prior to morx processing,\n // so reverse the glyphs if the script is right-to-left.\n if (glyphRun.direction === 'rtl') glyphRun.glyphs.reverse();\n this.morxProcessor.process(glyphRun.glyphs, $3b6302b64eccc32c$export$b813f7d2a1677c16(glyphRun.features));\n }\n getAvailableFeatures(script, language) {\n return $3b6302b64eccc32c$export$bd6df347a4f391c4(this.morxProcessor.getSupportedFeatures());\n }\n stringsForGlyph(gid) {\n let glyphStrings = this.morxProcessor.generateInputs(gid);\n let result = new Set;\n for (let glyphs of glyphStrings)this._addStrings(glyphs, 0, result, '');\n return result;\n }\n _addStrings(glyphs, index, strings, string) {\n let codePoints = this.font._cmapProcessor.codePointsForGlyph(glyphs[index]);\n for (let codePoint of codePoints){\n let s = string + String.fromCodePoint(codePoint);\n if (index < glyphs.length - 1) this._addStrings(glyphs, index + 1, strings, s);\n else strings.add(s);\n }\n }\n constructor(font){\n this.font = font;\n this.morxProcessor = new (0, $55f71433a605c87d$export$2e2bcd8739ae039)(font);\n this.fallbackPosition = false;\n }\n}\n\n\n\nclass $94d7a73bd2edfc9a$export$2e2bcd8739ae039 {\n /**\n * Adds the given features to the last stage.\n * Ignores features that have already been applied.\n */ _addFeatures(features, global) {\n let stageIndex = this.stages.length - 1;\n let stage = this.stages[stageIndex];\n for (let feature of features)if (this.allFeatures[feature] == null) {\n stage.push(feature);\n this.allFeatures[feature] = stageIndex;\n if (global) this.globalFeatures[feature] = true;\n }\n }\n /**\n * Add features to the last stage\n */ add(arg, global = true) {\n if (this.stages.length === 0) this.stages.push([]);\n if (typeof arg === 'string') arg = [\n arg\n ];\n if (Array.isArray(arg)) this._addFeatures(arg, global);\n else if (typeof arg === 'object') {\n this._addFeatures(arg.global || [], true);\n this._addFeatures(arg.local || [], false);\n } else throw new Error(\"Unsupported argument to ShapingPlan#add\");\n }\n /**\n * Add a new stage\n */ addStage(arg, global) {\n if (typeof arg === 'function') this.stages.push(arg, []);\n else {\n this.stages.push([]);\n this.add(arg, global);\n }\n }\n setFeatureOverrides(features) {\n if (Array.isArray(features)) this.add(features);\n else if (typeof features === 'object') for(let tag in features){\n if (features[tag]) this.add(tag);\n else if (this.allFeatures[tag] != null) {\n let stage = this.stages[this.allFeatures[tag]];\n stage.splice(stage.indexOf(tag), 1);\n delete this.allFeatures[tag];\n delete this.globalFeatures[tag];\n }\n }\n }\n /**\n * Assigns the global features to the given glyphs\n */ assignGlobalFeatures(glyphs) {\n for (let glyph of glyphs)for(let feature in this.globalFeatures)glyph.features[feature] = true;\n }\n /**\n * Executes the planned stages using the given OTProcessor\n */ process(processor, glyphs, positions) {\n for (let stage of this.stages){\n if (typeof stage === 'function') {\n if (!positions) stage(this.font, glyphs, this);\n } else if (stage.length > 0) processor.applyFeatures(stage, glyphs, positions);\n }\n }\n constructor(font, script, direction){\n this.font = font;\n this.script = script;\n this.direction = direction;\n this.stages = [];\n this.globalFeatures = {};\n this.allFeatures = {};\n }\n}\n\n\n\n\nconst $649970d87335b30f$var$VARIATION_FEATURES = [\n 'rvrn'\n];\nconst $649970d87335b30f$var$COMMON_FEATURES = [\n 'ccmp',\n 'locl',\n 'rlig',\n 'mark',\n 'mkmk'\n];\nconst $649970d87335b30f$var$FRACTIONAL_FEATURES = [\n 'frac',\n 'numr',\n 'dnom'\n];\nconst $649970d87335b30f$var$HORIZONTAL_FEATURES = [\n 'calt',\n 'clig',\n 'liga',\n 'rclt',\n 'curs',\n 'kern'\n];\nconst $649970d87335b30f$var$VERTICAL_FEATURES = [\n 'vert'\n];\nconst $649970d87335b30f$var$DIRECTIONAL_FEATURES = {\n ltr: [\n 'ltra',\n 'ltrm'\n ],\n rtl: [\n 'rtla',\n 'rtlm'\n ]\n};\nclass $649970d87335b30f$export$2e2bcd8739ae039 {\n static plan(plan, glyphs, features) {\n // Plan the features we want to apply\n this.planPreprocessing(plan);\n this.planFeatures(plan);\n this.planPostprocessing(plan, features);\n // Assign the global features to all the glyphs\n plan.assignGlobalFeatures(glyphs);\n // Assign local features to glyphs\n this.assignFeatures(plan, glyphs);\n }\n static planPreprocessing(plan) {\n plan.add({\n global: [\n ...$649970d87335b30f$var$VARIATION_FEATURES,\n ...$649970d87335b30f$var$DIRECTIONAL_FEATURES[plan.direction]\n ],\n local: $649970d87335b30f$var$FRACTIONAL_FEATURES\n });\n }\n static planFeatures(plan) {\n // Do nothing by default. Let subclasses override this.\n }\n static planPostprocessing(plan, userFeatures) {\n plan.add([\n ...$649970d87335b30f$var$COMMON_FEATURES,\n ...$649970d87335b30f$var$HORIZONTAL_FEATURES\n ]);\n plan.setFeatureOverrides(userFeatures);\n }\n static assignFeatures(plan, glyphs) {\n // Enable contextual fractions\n for(let i = 0; i < glyphs.length; i++){\n let glyph = glyphs[i];\n if (glyph.codePoints[0] === 0x2044) {\n let start = i;\n let end = i + 1;\n // Apply numerator\n while(start > 0 && (0, $6uUbQ$isDigit)(glyphs[start - 1].codePoints[0])){\n glyphs[start - 1].features.numr = true;\n glyphs[start - 1].features.frac = true;\n start--;\n }\n // Apply denominator\n while(end < glyphs.length && (0, $6uUbQ$isDigit)(glyphs[end].codePoints[0])){\n glyphs[end].features.dnom = true;\n glyphs[end].features.frac = true;\n end++;\n }\n // Apply fraction slash\n glyph.features.frac = true;\n i = end - 1;\n }\n }\n }\n}\n(0, $6uUbQ$_)($649970d87335b30f$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'AFTER_GPOS');\n\n\n\n\n\n\nconst $764eb544bbe1ccf0$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"APABAAAAAAAAOAAAAf0BAv7tmi1MxDAUx7vtvjhAgcDgkEgEAnmXEBIMCYaEcygEiqBQ4FAkCE4ikUgMiiBJSAgSiUQSDMn9L9eSl6bddddug9t7yS/trevre+3r27pcNxZiG+yCfdCVv/9LeQxOwRm4AJegD27ALbgD9+ABPJF+z+BN/h7yDj5k/VOWX6SdmU5+wLWknggxDxaS8u0qiiX4uiz9XamQ3wzDMAzDMAzDMAzDVI/h959V/v7BMAzDMAzDMLlyNTNiMSdewVxbiA44B4/guz1qW58VYlMI0WsJ0W+N6kXw0spvPtdwhtkwnGM6uLaV4Xyzg3v3PM9DPfQ/sOg4xPWjipy31P8LTqbU304c/cLCUmWJLNB2Uz2U1KTeRKNmKHVMfbJC+/0loTZRH/W5cvEvBJPMbREkWt3FD1NcqXZBSpuE2Ad0PBehPtNrPtIEdYP+hiRt/V1jIiE69X4NT/uVZI3PUHE9bm5M7ePGdZWy951v7Nn6j8v1WWKP3mt6ttnsigx6VN7Vc0VomSSGqW2mGNP1muZPl7LfjNUaKNFtDGVf2fvE9O7VlBS5j333c5p/eeoOqcs1R/hIqDWLJ7TTlksirVT1SI7l8k4Yp+g3jafGcrU1RM6l9th80XOpnlN97bDNY4i4s61B0Si/ipa0uHMl6zqEjlFfCZm/TM8KmzQDjmuTAQ==\"));\nconst $764eb544bbe1ccf0$var$FEATURES = [\n 'isol',\n 'fina',\n 'fin2',\n 'fin3',\n 'medi',\n 'med2',\n 'init'\n];\nconst $764eb544bbe1ccf0$var$ShapingClasses = {\n Non_Joining: 0,\n Left_Joining: 1,\n Right_Joining: 2,\n Dual_Joining: 3,\n Join_Causing: 3,\n ALAPH: 4,\n 'DALATH RISH': 5,\n Transparent: 6\n};\nconst $764eb544bbe1ccf0$var$ISOL = 'isol';\nconst $764eb544bbe1ccf0$var$FINA = 'fina';\nconst $764eb544bbe1ccf0$var$FIN2 = 'fin2';\nconst $764eb544bbe1ccf0$var$FIN3 = 'fin3';\nconst $764eb544bbe1ccf0$var$MEDI = 'medi';\nconst $764eb544bbe1ccf0$var$MED2 = 'med2';\nconst $764eb544bbe1ccf0$var$INIT = 'init';\nconst $764eb544bbe1ccf0$var$NONE = null;\n// Each entry is [prevAction, curAction, nextState]\nconst $764eb544bbe1ccf0$var$STATE_TABLE = [\n // Non_Joining, Left_Joining, Right_Joining, Dual_Joining, ALAPH, DALATH RISH\n // State 0: prev was U, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 1: prev was R or ISOL/ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 2: prev was D/L in ISOL form, willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 3\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 4\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 6\n ]\n ],\n // State 3: prev was D in FINA form, willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 3\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 4\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 6\n ]\n ],\n // State 4: prev was FINA ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 5: prev was FIN2/FIN3 ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 6: prev was DALATH/RISH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$FIN3,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ]\n];\nclass $764eb544bbe1ccf0$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.add([\n 'ccmp',\n 'locl'\n ]);\n for(let i = 0; i < $764eb544bbe1ccf0$var$FEATURES.length; i++){\n let feature = $764eb544bbe1ccf0$var$FEATURES[i];\n plan.addStage(feature, false);\n }\n plan.addStage('mset');\n }\n static assignFeatures(plan, glyphs) {\n super.assignFeatures(plan, glyphs);\n let prev = -1;\n let state = 0;\n let actions = [];\n // Apply the state machine to map glyphs to features\n for(let i = 0; i < glyphs.length; i++){\n let curAction, prevAction;\n var glyph = glyphs[i];\n let type = $764eb544bbe1ccf0$var$getShapingClass(glyph.codePoints[0]);\n if (type === $764eb544bbe1ccf0$var$ShapingClasses.Transparent) {\n actions[i] = $764eb544bbe1ccf0$var$NONE;\n continue;\n }\n [prevAction, curAction, state] = $764eb544bbe1ccf0$var$STATE_TABLE[state][type];\n if (prevAction !== $764eb544bbe1ccf0$var$NONE && prev !== -1) actions[prev] = prevAction;\n actions[i] = curAction;\n prev = i;\n }\n // Apply the chosen features to their respective glyphs\n for(let index = 0; index < glyphs.length; index++){\n let feature;\n var glyph = glyphs[index];\n if (feature = actions[index]) glyph.features[feature] = true;\n }\n }\n}\nfunction $764eb544bbe1ccf0$var$getShapingClass(codePoint) {\n let res = $764eb544bbe1ccf0$var$trie.get(codePoint);\n if (res) return res - 1;\n let category = (0, $6uUbQ$getCategory)(codePoint);\n if (category === 'Mn' || category === 'Me' || category === 'Cf') return $764eb544bbe1ccf0$var$ShapingClasses.Transparent;\n return $764eb544bbe1ccf0$var$ShapingClasses.Non_Joining;\n}\n\n\n\n\n\nclass $85d408632270248b$export$2e2bcd8739ae039 {\n reset(options = {}, index = 0) {\n this.options = options;\n this.flags = options.flags || {};\n this.markAttachmentType = options.markAttachmentType || 0;\n this.index = index;\n }\n get cur() {\n return this.glyphs[this.index] || null;\n }\n shouldIgnore(glyph) {\n return this.flags.ignoreMarks && glyph.isMark || this.flags.ignoreBaseGlyphs && glyph.isBase || this.flags.ignoreLigatures && glyph.isLigature || this.markAttachmentType && glyph.isMark && glyph.markAttachmentType !== this.markAttachmentType;\n }\n move(dir) {\n this.index += dir;\n while(0 <= this.index && this.index < this.glyphs.length && this.shouldIgnore(this.glyphs[this.index]))this.index += dir;\n if (0 > this.index || this.index >= this.glyphs.length) return null;\n return this.glyphs[this.index];\n }\n next() {\n return this.move(1);\n }\n prev() {\n return this.move(-1);\n }\n peek(count = 1) {\n let idx = this.index;\n let res = this.increment(count);\n this.index = idx;\n return res;\n }\n peekIndex(count = 1) {\n let idx = this.index;\n this.increment(count);\n let res = this.index;\n this.index = idx;\n return res;\n }\n increment(count = 1) {\n let dir = count < 0 ? -1 : 1;\n count = Math.abs(count);\n while(count--)this.move(dir);\n return this.glyphs[this.index];\n }\n constructor(glyphs, options){\n this.glyphs = glyphs;\n this.reset(options);\n }\n}\n\n\n\nconst $a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS = [\n 'DFLT',\n 'dflt',\n 'latn'\n];\nclass $a83b9c36aaa94fd3$export$2e2bcd8739ae039 {\n findScript(script) {\n if (this.table.scriptList == null) return null;\n if (!Array.isArray(script)) script = [\n script\n ];\n for (let s of script)for (let entry of this.table.scriptList){\n if (entry.tag === s) return entry;\n }\n return null;\n }\n selectScript(script, language, direction) {\n let changed = false;\n let entry;\n if (!this.script || script !== this.scriptTag) {\n entry = this.findScript(script);\n if (!entry) entry = this.findScript($a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS);\n if (!entry) return this.scriptTag;\n this.scriptTag = entry.tag;\n this.script = entry.script;\n this.language = null;\n this.languageTag = null;\n changed = true;\n }\n if (!direction || direction !== this.direction) this.direction = direction || $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script);\n if (language && language.length < 4) language += ' '.repeat(4 - language.length);\n if (!language || language !== this.languageTag) {\n this.language = null;\n for (let lang of this.script.langSysRecords)if (lang.tag === language) {\n this.language = lang.langSys;\n this.languageTag = lang.tag;\n break;\n }\n if (!this.language) {\n this.language = this.script.defaultLangSys;\n this.languageTag = null;\n }\n changed = true;\n }\n // Build a feature lookup table\n if (changed) {\n this.features = {};\n if (this.language) for (let featureIndex of this.language.featureIndexes){\n let record = this.table.featureList[featureIndex];\n let substituteFeature = this.substituteFeatureForVariations(featureIndex);\n this.features[record.tag] = substituteFeature || record.feature;\n }\n }\n return this.scriptTag;\n }\n lookupsForFeatures(userFeatures = [], exclude) {\n let lookups = [];\n for (let tag of userFeatures){\n let feature = this.features[tag];\n if (!feature) continue;\n for (let lookupIndex of feature.lookupListIndexes){\n if (exclude && exclude.indexOf(lookupIndex) !== -1) continue;\n lookups.push({\n feature: tag,\n index: lookupIndex,\n lookup: this.table.lookupList.get(lookupIndex)\n });\n }\n }\n lookups.sort((a, b)=>a.index - b.index);\n return lookups;\n }\n substituteFeatureForVariations(featureIndex) {\n if (this.variationsIndex === -1) return null;\n let record = this.table.featureVariations.featureVariationRecords[this.variationsIndex];\n let substitutions = record.featureTableSubstitution.substitutions;\n for (let substitution of substitutions){\n if (substitution.featureIndex === featureIndex) return substitution.alternateFeatureTable;\n }\n return null;\n }\n findVariationsIndex(coords) {\n let variations = this.table.featureVariations;\n if (!variations) return -1;\n let records = variations.featureVariationRecords;\n for(let i = 0; i < records.length; i++){\n let conditions = records[i].conditionSet.conditionTable;\n if (this.variationConditionsMatch(conditions, coords)) return i;\n }\n return -1;\n }\n variationConditionsMatch(conditions, coords) {\n return conditions.every((condition)=>{\n let coord = condition.axisIndex < coords.length ? coords[condition.axisIndex] : 0;\n return condition.filterRangeMinValue <= coord && coord <= condition.filterRangeMaxValue;\n });\n }\n applyFeatures(userFeatures, glyphs, advances) {\n let lookups = this.lookupsForFeatures(userFeatures);\n this.applyLookups(lookups, glyphs, advances);\n }\n applyLookups(lookups, glyphs, positions) {\n this.glyphs = glyphs;\n this.positions = positions;\n this.glyphIterator = new (0, $85d408632270248b$export$2e2bcd8739ae039)(glyphs);\n for (let { feature: feature, lookup: lookup } of lookups){\n this.currentFeature = feature;\n this.glyphIterator.reset(lookup.flags);\n while(this.glyphIterator.index < glyphs.length){\n if (!(feature in this.glyphIterator.cur.features)) {\n this.glyphIterator.next();\n continue;\n }\n for (let table of lookup.subTables){\n let res = this.applyLookup(lookup.lookupType, table);\n if (res) break;\n }\n this.glyphIterator.next();\n }\n }\n }\n applyLookup(lookup, table) {\n throw new Error(\"applyLookup must be implemented by subclasses\");\n }\n applyLookupList(lookupRecords) {\n let options = this.glyphIterator.options;\n let glyphIndex = this.glyphIterator.index;\n for (let lookupRecord of lookupRecords){\n // Reset flags and find glyph index for this lookup record\n this.glyphIterator.reset(options, glyphIndex);\n this.glyphIterator.increment(lookupRecord.sequenceIndex);\n // Get the lookup and setup flags for subtables\n let lookup = this.table.lookupList.get(lookupRecord.lookupListIndex);\n this.glyphIterator.reset(lookup.flags, this.glyphIterator.index);\n // Apply lookup subtables until one matches\n for (let table of lookup.subTables){\n if (this.applyLookup(lookup.lookupType, table)) break;\n }\n }\n this.glyphIterator.reset(options, glyphIndex);\n return true;\n }\n coverageIndex(coverage, glyph) {\n if (glyph == null) glyph = this.glyphIterator.cur.id;\n switch(coverage.version){\n case 1:\n return coverage.glyphs.indexOf(glyph);\n case 2:\n for (let range of coverage.rangeRecords){\n if (range.start <= glyph && glyph <= range.end) return range.startCoverageIndex + glyph - range.start;\n }\n break;\n }\n return -1;\n }\n match(sequenceIndex, sequence, fn, matched) {\n let pos = this.glyphIterator.index;\n let glyph = this.glyphIterator.increment(sequenceIndex);\n let idx = 0;\n while(idx < sequence.length && glyph && fn(sequence[idx], glyph)){\n if (matched) matched.push(this.glyphIterator.index);\n idx++;\n glyph = this.glyphIterator.next();\n }\n this.glyphIterator.index = pos;\n if (idx < sequence.length) return false;\n return matched || true;\n }\n sequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (component, glyph)=>component === glyph.id);\n }\n sequenceMatchIndices(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (component, glyph)=>{\n // If the current feature doesn't apply to this glyph,\n if (!(this.currentFeature in glyph.features)) return false;\n return component === glyph.id;\n }, []);\n }\n coverageSequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (coverage, glyph)=>this.coverageIndex(coverage, glyph.id) >= 0);\n }\n getClassID(glyph, classDef) {\n switch(classDef.version){\n case 1:\n let i = glyph - classDef.startGlyph;\n if (i >= 0 && i < classDef.classValueArray.length) return classDef.classValueArray[i];\n break;\n case 2:\n for (let range of classDef.classRangeRecord){\n if (range.start <= glyph && glyph <= range.end) return range.class;\n }\n break;\n }\n return 0;\n }\n classSequenceMatches(sequenceIndex, sequence, classDef) {\n return this.match(sequenceIndex, sequence, (classID, glyph)=>classID === this.getClassID(glyph.id, classDef));\n }\n applyContext(table) {\n let index, set;\n switch(table.version){\n case 1:\n index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n set = table.ruleSets[index];\n for (let rule of set){\n if (this.sequenceMatches(1, rule.input)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 2:\n if (this.coverageIndex(table.coverage) === -1) return false;\n index = this.getClassID(this.glyphIterator.cur.id, table.classDef);\n if (index === -1) return false;\n set = table.classSet[index];\n for (let rule of set){\n if (this.classSequenceMatches(1, rule.classes, table.classDef)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 3:\n if (this.coverageSequenceMatches(0, table.coverages)) return this.applyLookupList(table.lookupRecords);\n break;\n }\n return false;\n }\n applyChainingContext(table) {\n let index;\n switch(table.version){\n case 1:\n index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n let set = table.chainRuleSets[index];\n for (let rule of set){\n if (this.sequenceMatches(-rule.backtrack.length, rule.backtrack) && this.sequenceMatches(1, rule.input) && this.sequenceMatches(1 + rule.input.length, rule.lookahead)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 2:\n if (this.coverageIndex(table.coverage) === -1) return false;\n index = this.getClassID(this.glyphIterator.cur.id, table.inputClassDef);\n let rules = table.chainClassSet[index];\n if (!rules) return false;\n for (let rule of rules){\n if (this.classSequenceMatches(-rule.backtrack.length, rule.backtrack, table.backtrackClassDef) && this.classSequenceMatches(1, rule.input, table.inputClassDef) && this.classSequenceMatches(1 + rule.input.length, rule.lookahead, table.lookaheadClassDef)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 3:\n if (this.coverageSequenceMatches(-table.backtrackGlyphCount, table.backtrackCoverage) && this.coverageSequenceMatches(0, table.inputCoverage) && this.coverageSequenceMatches(table.inputGlyphCount, table.lookaheadCoverage)) return this.applyLookupList(table.lookupRecords);\n break;\n }\n return false;\n }\n constructor(font, table){\n this.font = font;\n this.table = table;\n this.script = null;\n this.scriptTag = null;\n this.language = null;\n this.languageTag = null;\n this.features = {};\n this.lookups = {};\n // Setup variation substitutions\n this.variationsIndex = font._variationProcessor ? this.findVariationsIndex(font._variationProcessor.normalizedCoords) : -1;\n // initialize to default script + language\n this.selectScript();\n // current context (set by applyFeatures)\n this.glyphs = [];\n this.positions = []; // only used by GPOS\n this.ligatureID = 1;\n this.currentFeature = null;\n }\n}\n\n\nclass $10e7b257e1a9a756$export$2e2bcd8739ae039 {\n get id() {\n return this._id;\n }\n set id(id) {\n this._id = id;\n this.substituted = true;\n let GDEF = this._font.GDEF;\n if (GDEF && GDEF.glyphClassDef) {\n // TODO: clean this up\n let classID = (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039).prototype.getClassID(id, GDEF.glyphClassDef);\n this.isBase = classID === 1;\n this.isLigature = classID === 2;\n this.isMark = classID === 3;\n this.markAttachmentType = GDEF.markAttachClassDef ? (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039).prototype.getClassID(id, GDEF.markAttachClassDef) : 0;\n } else {\n this.isMark = this.codePoints.length > 0 && this.codePoints.every((0, $6uUbQ$isMark));\n this.isBase = !this.isMark;\n this.isLigature = this.codePoints.length > 1;\n this.markAttachmentType = 0;\n }\n }\n copy() {\n return new $10e7b257e1a9a756$export$2e2bcd8739ae039(this._font, this.id, this.codePoints, this.features);\n }\n constructor(font, id, codePoints = [], features){\n this._font = font;\n this.codePoints = codePoints;\n this.id = id;\n this.features = {};\n if (Array.isArray(features)) for(let i = 0; i < features.length; i++){\n let feature = features[i];\n this.features[feature] = true;\n }\n else if (typeof features === 'object') Object.assign(this.features, features);\n this.ligatureID = null;\n this.ligatureComponent = null;\n this.isLigated = false;\n this.cursiveAttachment = null;\n this.markAttachment = null;\n this.shaperInfo = null;\n this.substituted = false;\n this.isMultiplied = false;\n }\n}\n\n\nclass $e1c6bbc8cb416f8c$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.add([\n 'ljmo',\n 'vjmo',\n 'tjmo'\n ], false);\n }\n static assignFeatures(plan, glyphs) {\n let state = 0;\n let i = 0;\n while(i < glyphs.length){\n let action;\n let glyph = glyphs[i];\n let code = glyph.codePoints[0];\n let type = $e1c6bbc8cb416f8c$var$getType(code);\n [action, state] = $e1c6bbc8cb416f8c$var$STATE_TABLE[state][type];\n switch(action){\n case $e1c6bbc8cb416f8c$var$DECOMPOSE:\n // Decompose the composed syllable if it is not supported by the font.\n if (!plan.font.hasGlyphForCodePoint(code)) i = $e1c6bbc8cb416f8c$var$decompose(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$COMPOSE:\n // Found a decomposed syllable. Try to compose if supported by the font.\n i = $e1c6bbc8cb416f8c$var$compose(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$TONE_MARK:\n // Got a valid syllable, followed by a tone mark. Move the tone mark to the beginning of the syllable.\n $e1c6bbc8cb416f8c$var$reorderToneMark(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$INVALID:\n // Tone mark has no valid syllable to attach to, so insert a dotted circle\n i = $e1c6bbc8cb416f8c$var$insertDottedCircle(glyphs, i, plan.font);\n break;\n }\n i++;\n }\n }\n}\n(0, $6uUbQ$_)($e1c6bbc8cb416f8c$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'NONE');\nconst $e1c6bbc8cb416f8c$var$HANGUL_BASE = 0xac00;\nconst $e1c6bbc8cb416f8c$var$HANGUL_END = 0xd7a4;\nconst $e1c6bbc8cb416f8c$var$HANGUL_COUNT = $e1c6bbc8cb416f8c$var$HANGUL_END - $e1c6bbc8cb416f8c$var$HANGUL_BASE + 1;\nconst $e1c6bbc8cb416f8c$var$L_BASE = 0x1100; // lead\nconst $e1c6bbc8cb416f8c$var$V_BASE = 0x1161; // vowel\nconst $e1c6bbc8cb416f8c$var$T_BASE = 0x11a7; // trail\nconst $e1c6bbc8cb416f8c$var$L_COUNT = 19;\nconst $e1c6bbc8cb416f8c$var$V_COUNT = 21;\nconst $e1c6bbc8cb416f8c$var$T_COUNT = 28;\nconst $e1c6bbc8cb416f8c$var$L_END = $e1c6bbc8cb416f8c$var$L_BASE + $e1c6bbc8cb416f8c$var$L_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$V_END = $e1c6bbc8cb416f8c$var$V_BASE + $e1c6bbc8cb416f8c$var$V_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$T_END = $e1c6bbc8cb416f8c$var$T_BASE + $e1c6bbc8cb416f8c$var$T_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$DOTTED_CIRCLE = 0x25cc;\nconst $e1c6bbc8cb416f8c$var$isL = (code)=>0x1100 <= code && code <= 0x115f || 0xa960 <= code && code <= 0xa97c;\nconst $e1c6bbc8cb416f8c$var$isV = (code)=>0x1160 <= code && code <= 0x11a7 || 0xd7b0 <= code && code <= 0xd7c6;\nconst $e1c6bbc8cb416f8c$var$isT = (code)=>0x11a8 <= code && code <= 0x11ff || 0xd7cb <= code && code <= 0xd7fb;\nconst $e1c6bbc8cb416f8c$var$isTone = (code)=>0x302e <= code && code <= 0x302f;\nconst $e1c6bbc8cb416f8c$var$isLVT = (code)=>$e1c6bbc8cb416f8c$var$HANGUL_BASE <= code && code <= $e1c6bbc8cb416f8c$var$HANGUL_END;\nconst $e1c6bbc8cb416f8c$var$isLV = (code)=>code - $e1c6bbc8cb416f8c$var$HANGUL_BASE < $e1c6bbc8cb416f8c$var$HANGUL_COUNT && (code - $e1c6bbc8cb416f8c$var$HANGUL_BASE) % $e1c6bbc8cb416f8c$var$T_COUNT === 0;\nconst $e1c6bbc8cb416f8c$var$isCombiningL = (code)=>$e1c6bbc8cb416f8c$var$L_BASE <= code && code <= $e1c6bbc8cb416f8c$var$L_END;\nconst $e1c6bbc8cb416f8c$var$isCombiningV = (code)=>$e1c6bbc8cb416f8c$var$V_BASE <= code && code <= $e1c6bbc8cb416f8c$var$V_END;\nconst $e1c6bbc8cb416f8c$var$isCombiningT = (code)=>$e1c6bbc8cb416f8c$var$T_BASE + 1 && 1 <= code && code <= $e1c6bbc8cb416f8c$var$T_END;\n// Character categories\nconst $e1c6bbc8cb416f8c$var$X = 0; // Other character\nconst $e1c6bbc8cb416f8c$var$L = 1; // Leading consonant\nconst $e1c6bbc8cb416f8c$var$V = 2; // Medial vowel\nconst $e1c6bbc8cb416f8c$var$T = 3; // Trailing consonant\nconst $e1c6bbc8cb416f8c$var$LV = 4; // Composed syllable\nconst $e1c6bbc8cb416f8c$var$LVT = 5; // Composed syllable\nconst $e1c6bbc8cb416f8c$var$M = 6; // Tone mark\n// This function classifies a character using the above categories.\nfunction $e1c6bbc8cb416f8c$var$getType(code) {\n if ($e1c6bbc8cb416f8c$var$isL(code)) return $e1c6bbc8cb416f8c$var$L;\n if ($e1c6bbc8cb416f8c$var$isV(code)) return $e1c6bbc8cb416f8c$var$V;\n if ($e1c6bbc8cb416f8c$var$isT(code)) return $e1c6bbc8cb416f8c$var$T;\n if ($e1c6bbc8cb416f8c$var$isLV(code)) return $e1c6bbc8cb416f8c$var$LV;\n if ($e1c6bbc8cb416f8c$var$isLVT(code)) return $e1c6bbc8cb416f8c$var$LVT;\n if ($e1c6bbc8cb416f8c$var$isTone(code)) return $e1c6bbc8cb416f8c$var$M;\n return $e1c6bbc8cb416f8c$var$X;\n}\n// State machine actions\nconst $e1c6bbc8cb416f8c$var$NO_ACTION = 0;\nconst $e1c6bbc8cb416f8c$var$DECOMPOSE = 1;\nconst $e1c6bbc8cb416f8c$var$COMPOSE = 2;\nconst $e1c6bbc8cb416f8c$var$TONE_MARK = 4;\nconst $e1c6bbc8cb416f8c$var$INVALID = 5;\n// Build a state machine that accepts valid syllables, and applies actions along the way.\n// The logic this is implementing is documented at the top of the file.\nconst $e1c6bbc8cb416f8c$var$STATE_TABLE = [\n // X L V T LV LVT M\n // State 0: start state\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$INVALID,\n 0\n ]\n ],\n // State 1: \n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$COMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$INVALID,\n 0\n ]\n ],\n // State 2: or \n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$COMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$TONE_MARK,\n 0\n ]\n ],\n // State 3: or \n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$TONE_MARK,\n 0\n ]\n ]\n];\nfunction $e1c6bbc8cb416f8c$var$getGlyph(font, code, features) {\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, font.glyphForCodePoint(code).id, [\n code\n ], features);\n}\nfunction $e1c6bbc8cb416f8c$var$decompose(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyph.codePoints[0];\n let s = code - $e1c6bbc8cb416f8c$var$HANGUL_BASE;\n let t = $e1c6bbc8cb416f8c$var$T_BASE + s % $e1c6bbc8cb416f8c$var$T_COUNT;\n s = s / $e1c6bbc8cb416f8c$var$T_COUNT | 0;\n let l = $e1c6bbc8cb416f8c$var$L_BASE + s / $e1c6bbc8cb416f8c$var$V_COUNT | 0;\n let v = $e1c6bbc8cb416f8c$var$V_BASE + s % $e1c6bbc8cb416f8c$var$V_COUNT;\n // Don't decompose if all of the components are not available\n if (!font.hasGlyphForCodePoint(l) || !font.hasGlyphForCodePoint(v) || t !== $e1c6bbc8cb416f8c$var$T_BASE && !font.hasGlyphForCodePoint(t)) return i;\n // Replace the current glyph with decomposed L, V, and T glyphs,\n // and apply the proper OpenType features to each component.\n let ljmo = $e1c6bbc8cb416f8c$var$getGlyph(font, l, glyph.features);\n ljmo.features.ljmo = true;\n let vjmo = $e1c6bbc8cb416f8c$var$getGlyph(font, v, glyph.features);\n vjmo.features.vjmo = true;\n let insert = [\n ljmo,\n vjmo\n ];\n if (t > $e1c6bbc8cb416f8c$var$T_BASE) {\n let tjmo = $e1c6bbc8cb416f8c$var$getGlyph(font, t, glyph.features);\n tjmo.features.tjmo = true;\n insert.push(tjmo);\n }\n glyphs.splice(i, 1, ...insert);\n return i + insert.length - 1;\n}\nfunction $e1c6bbc8cb416f8c$var$compose(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n let type = $e1c6bbc8cb416f8c$var$getType(code);\n let prev = glyphs[i - 1].codePoints[0];\n let prevType = $e1c6bbc8cb416f8c$var$getType(prev);\n // Figure out what type of syllable we're dealing with\n let lv, ljmo, vjmo, tjmo;\n if (prevType === $e1c6bbc8cb416f8c$var$LV && type === $e1c6bbc8cb416f8c$var$T) {\n // \n lv = prev;\n tjmo = glyph;\n } else {\n if (type === $e1c6bbc8cb416f8c$var$V) {\n // \n ljmo = glyphs[i - 1];\n vjmo = glyph;\n } else {\n // \n ljmo = glyphs[i - 2];\n vjmo = glyphs[i - 1];\n tjmo = glyph;\n }\n let l = ljmo.codePoints[0];\n let v = vjmo.codePoints[0];\n // Make sure L and V are combining characters\n if ($e1c6bbc8cb416f8c$var$isCombiningL(l) && $e1c6bbc8cb416f8c$var$isCombiningV(v)) lv = $e1c6bbc8cb416f8c$var$HANGUL_BASE + ((l - $e1c6bbc8cb416f8c$var$L_BASE) * $e1c6bbc8cb416f8c$var$V_COUNT + (v - $e1c6bbc8cb416f8c$var$V_BASE)) * $e1c6bbc8cb416f8c$var$T_COUNT;\n }\n let t = tjmo && tjmo.codePoints[0] || $e1c6bbc8cb416f8c$var$T_BASE;\n if (lv != null && (t === $e1c6bbc8cb416f8c$var$T_BASE || $e1c6bbc8cb416f8c$var$isCombiningT(t))) {\n let s = lv + (t - $e1c6bbc8cb416f8c$var$T_BASE);\n // Replace with a composed glyph if supported by the font,\n // otherwise apply the proper OpenType features to each component.\n if (font.hasGlyphForCodePoint(s)) {\n let del = prevType === $e1c6bbc8cb416f8c$var$V ? 3 : 2;\n glyphs.splice(i - del + 1, del, $e1c6bbc8cb416f8c$var$getGlyph(font, s, glyph.features));\n return i - del + 1;\n }\n }\n // Didn't compose (either a non-combining component or unsupported by font).\n if (ljmo) ljmo.features.ljmo = true;\n if (vjmo) vjmo.features.vjmo = true;\n if (tjmo) tjmo.features.tjmo = true;\n if (prevType === $e1c6bbc8cb416f8c$var$LV) {\n // Sequence was originally , which got combined earlier.\n // Either the T was non-combining, or the LVT glyph wasn't supported.\n // Decompose the glyph again and apply OT features.\n $e1c6bbc8cb416f8c$var$decompose(glyphs, i - 1, font);\n return i + 1;\n }\n return i;\n}\nfunction $e1c6bbc8cb416f8c$var$getLength(code) {\n switch($e1c6bbc8cb416f8c$var$getType(code)){\n case $e1c6bbc8cb416f8c$var$LV:\n case $e1c6bbc8cb416f8c$var$LVT:\n return 1;\n case $e1c6bbc8cb416f8c$var$V:\n return 2;\n case $e1c6bbc8cb416f8c$var$T:\n return 3;\n }\n}\nfunction $e1c6bbc8cb416f8c$var$reorderToneMark(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n // Move tone mark to the beginning of the previous syllable, unless it is zero width\n if (font.glyphForCodePoint(code).advanceWidth === 0) return;\n let prev = glyphs[i - 1].codePoints[0];\n let len = $e1c6bbc8cb416f8c$var$getLength(prev);\n glyphs.splice(i, 1);\n return glyphs.splice(i - len, 0, glyph);\n}\nfunction $e1c6bbc8cb416f8c$var$insertDottedCircle(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n if (font.hasGlyphForCodePoint($e1c6bbc8cb416f8c$var$DOTTED_CIRCLE)) {\n let dottedCircle = $e1c6bbc8cb416f8c$var$getGlyph(font, $e1c6bbc8cb416f8c$var$DOTTED_CIRCLE, glyph.features);\n // If the tone mark is zero width, insert the dotted circle before, otherwise after\n let idx = font.glyphForCodePoint(code).advanceWidth === 0 ? i : i + 1;\n glyphs.splice(idx, 0, dottedCircle);\n i++;\n }\n return i;\n}\n\n\n\n\n\n\n\n\n\nvar $4b0735ca6c692ea5$exports = {};\n$4b0735ca6c692ea5$exports = JSON.parse(\"{\\\"stateTable\\\":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],\\\"accepting\\\":[false,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,false,false,true,false,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,false,false,true,true,false,false,true,true,true,false,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,false,true,true,true,true,true,false,true,true,false,true,true,true],\\\"tags\\\":[[],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[],[\\\"broken_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[],[\\\"consonant_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[],[\\\"vowel_syllable\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[\\\"standalone_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"standalone_cluster\\\"]]}\");\n\n\nvar $aa333a9607471296$exports = {};\n$aa333a9607471296$exports = JSON.parse(\"{\\\"categories\\\":[\\\"O\\\",\\\"IND\\\",\\\"S\\\",\\\"GB\\\",\\\"B\\\",\\\"FM\\\",\\\"CGJ\\\",\\\"VMAbv\\\",\\\"VMPst\\\",\\\"VAbv\\\",\\\"VPst\\\",\\\"CMBlw\\\",\\\"VPre\\\",\\\"VBlw\\\",\\\"H\\\",\\\"VMBlw\\\",\\\"CMAbv\\\",\\\"MBlw\\\",\\\"CS\\\",\\\"R\\\",\\\"SUB\\\",\\\"MPst\\\",\\\"MPre\\\",\\\"FAbv\\\",\\\"FPst\\\",\\\"FBlw\\\",\\\"null\\\",\\\"SMAbv\\\",\\\"SMBlw\\\",\\\"VMPre\\\",\\\"ZWNJ\\\",\\\"ZWJ\\\",\\\"WJ\\\",\\\"M\\\",\\\"VS\\\",\\\"N\\\",\\\"HN\\\",\\\"MAbv\\\"],\\\"decompositions\\\":{\\\"2507\\\":[2503,2494],\\\"2508\\\":[2503,2519],\\\"2888\\\":[2887,2902],\\\"2891\\\":[2887,2878],\\\"2892\\\":[2887,2903],\\\"3018\\\":[3014,3006],\\\"3019\\\":[3015,3006],\\\"3020\\\":[3014,3031],\\\"3144\\\":[3142,3158],\\\"3264\\\":[3263,3285],\\\"3271\\\":[3270,3285],\\\"3272\\\":[3270,3286],\\\"3274\\\":[3270,3266],\\\"3275\\\":[3270,3266,3285],\\\"3402\\\":[3398,3390],\\\"3403\\\":[3399,3390],\\\"3404\\\":[3398,3415],\\\"3546\\\":[3545,3530],\\\"3548\\\":[3545,3535],\\\"3549\\\":[3545,3535,3530],\\\"3550\\\":[3545,3551],\\\"3635\\\":[3661,3634],\\\"3763\\\":[3789,3762],\\\"3955\\\":[3953,3954],\\\"3957\\\":[3953,3956],\\\"3958\\\":[4018,3968],\\\"3959\\\":[4018,3953,3968],\\\"3960\\\":[4019,3968],\\\"3961\\\":[4019,3953,3968],\\\"3969\\\":[3953,3968],\\\"6971\\\":[6970,6965],\\\"6973\\\":[6972,6965],\\\"6976\\\":[6974,6965],\\\"6977\\\":[6975,6965],\\\"6979\\\":[6978,6965],\\\"69934\\\":[69937,69927],\\\"69935\\\":[69938,69927],\\\"70475\\\":[70471,70462],\\\"70476\\\":[70471,70487],\\\"70843\\\":[70841,70842],\\\"70844\\\":[70841,70832],\\\"70846\\\":[70841,70845],\\\"71098\\\":[71096,71087],\\\"71099\\\":[71097,71087]},\\\"stateTable\\\":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],\\\"accepting\\\":[false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\\\"tags\\\":[[],[\\\"broken_cluster\\\"],[\\\"independent_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"numeral_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"independent_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"virama_terminated_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"numeral_cluster\\\"],[\\\"number_joiner_terminated_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"numeral_cluster\\\"]]}\");\n\n\n// Cateories used in the OpenType spec:\n// https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx\nconst $90a9d3398ee54fe5$export$a513ea61a7bee91c = {\n X: 1,\n C: 2,\n V: 4,\n N: 8,\n H: 16,\n ZWNJ: 32,\n ZWJ: 64,\n M: 128,\n SM: 256,\n VD: 512,\n A: 1024,\n Placeholder: 2048,\n Dotted_Circle: 4096,\n RS: 8192,\n Coeng: 16384,\n Repha: 32768,\n Ra: 65536,\n CM: 131072,\n Symbol: 262144 // Avagraha, etc that take marks (SM,A,VD).\n};\nconst $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0 = {\n Start: 1,\n Ra_To_Become_Reph: 2,\n Pre_M: 4,\n Pre_C: 8,\n Base_C: 16,\n After_Main: 32,\n Above_C: 64,\n Before_Sub: 128,\n Below_C: 256,\n After_Sub: 512,\n Before_Post: 1024,\n Post_C: 2048,\n After_Post: 4096,\n Final_C: 8192,\n SMVD: 16384,\n End: 32768\n};\nconst $90a9d3398ee54fe5$export$8519deaa7de2b07 = $90a9d3398ee54fe5$export$a513ea61a7bee91c.C | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Ra | $90a9d3398ee54fe5$export$a513ea61a7bee91c.CM | $90a9d3398ee54fe5$export$a513ea61a7bee91c.V | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Placeholder | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Dotted_Circle;\nconst $90a9d3398ee54fe5$export$bbcd928767338e0d = $90a9d3398ee54fe5$export$a513ea61a7bee91c.ZWJ | $90a9d3398ee54fe5$export$a513ea61a7bee91c.ZWNJ;\nconst $90a9d3398ee54fe5$export$ca9599b2a300afc = $90a9d3398ee54fe5$export$a513ea61a7bee91c.H | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Coeng;\nconst $90a9d3398ee54fe5$export$e99d119da76a0fc5 = {\n Default: {\n hasOldSpec: false,\n virama: 0,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Devanagari: {\n hasOldSpec: true,\n virama: 0x094D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Bengali: {\n hasOldSpec: true,\n virama: 0x09CD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Gurmukhi: {\n hasOldSpec: true,\n virama: 0x0A4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Gujarati: {\n hasOldSpec: true,\n virama: 0x0ACD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Oriya: {\n hasOldSpec: true,\n virama: 0x0B4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Main,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Tamil: {\n hasOldSpec: true,\n virama: 0x0BCD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Telugu: {\n hasOldSpec: true,\n virama: 0x0C4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Explicit',\n blwfMode: 'Post_Only'\n },\n Kannada: {\n hasOldSpec: true,\n virama: 0x0CCD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Post_Only'\n },\n Malayalam: {\n hasOldSpec: true,\n virama: 0x0D4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Main,\n rephMode: 'Log_Repha',\n blwfMode: 'Pre_And_Post'\n },\n // Handled by UniversalShaper\n // Sinhala: {\n // hasOldSpec: false,\n // virama: 0x0DCA,\n // basePos: 'Last_Sinhala',\n // rephPos: POSITIONS.After_Main,\n // rephMode: 'Explicit',\n // blwfMode: 'Pre_And_Post'\n // },\n Khmer: {\n hasOldSpec: false,\n virama: 0x17D2,\n basePos: 'First',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Ra_To_Become_Reph,\n rephMode: 'Vis_Repha',\n blwfMode: 'Pre_And_Post'\n }\n};\nconst $90a9d3398ee54fe5$export$f647c9cfdd77d95a = {\n // Khmer\n 0x17BE: [\n 0x17C1,\n 0x17BE\n ],\n 0x17BF: [\n 0x17C1,\n 0x17BF\n ],\n 0x17C0: [\n 0x17C1,\n 0x17C0\n ],\n 0x17C4: [\n 0x17C1,\n 0x17C4\n ],\n 0x17C5: [\n 0x17C1,\n 0x17C5\n ]\n};\n\n\n\nconst { decompositions: $7826f90f6f0cecc9$var$decompositions } = (0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports)));\nconst $7826f90f6f0cecc9$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"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\"));\nconst $7826f90f6f0cecc9$var$stateMachine = new (0, $6uUbQ$dfa)((0, (/*@__PURE__*/$parcel$interopDefault($4b0735ca6c692ea5$exports))));\nclass $7826f90f6f0cecc9$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.addStage($7826f90f6f0cecc9$var$setupSyllables);\n plan.addStage([\n 'locl',\n 'ccmp'\n ]);\n plan.addStage($7826f90f6f0cecc9$var$initialReordering);\n plan.addStage('nukt');\n plan.addStage('akhn');\n plan.addStage('rphf', false);\n plan.addStage('rkrf');\n plan.addStage('pref', false);\n plan.addStage('blwf', false);\n plan.addStage('abvf', false);\n plan.addStage('half', false);\n plan.addStage('pstf', false);\n plan.addStage('vatu');\n plan.addStage('cjct');\n plan.addStage('cfar', false);\n plan.addStage($7826f90f6f0cecc9$var$finalReordering);\n plan.addStage({\n local: [\n 'init'\n ],\n global: [\n 'pres',\n 'abvs',\n 'blws',\n 'psts',\n 'haln',\n 'dist',\n 'abvm',\n 'blwm',\n 'calt',\n 'clig'\n ]\n });\n // Setup the indic config for the selected script\n plan.unicodeScript = $130d1a642ebcd2b7$export$ce50e82f12a827a4(plan.script);\n plan.indicConfig = (0, $90a9d3398ee54fe5$export$e99d119da76a0fc5)[plan.unicodeScript] || (0, $90a9d3398ee54fe5$export$e99d119da76a0fc5).Default;\n plan.isOldSpec = plan.indicConfig.hasOldSpec && plan.script[plan.script.length - 1] !== '2';\n // TODO: turn off kern (Khmer) and liga features.\n }\n static assignFeatures(plan, glyphs) {\n // Decompose split matras\n // TODO: do this in a more general unicode normalizer\n for(let i = glyphs.length - 1; i >= 0; i--){\n let codepoint = glyphs[i].codePoints[0];\n let d = (0, $90a9d3398ee54fe5$export$f647c9cfdd77d95a)[codepoint] || $7826f90f6f0cecc9$var$decompositions[codepoint];\n if (d) {\n let decomposed = d.map((c)=>{\n let g = plan.font.glyphForCodePoint(c);\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(plan.font, g.id, [\n c\n ], glyphs[i].features);\n });\n glyphs.splice(i, 1, ...decomposed);\n }\n }\n }\n}\n(0, $6uUbQ$_)($7826f90f6f0cecc9$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'NONE');\nfunction $7826f90f6f0cecc9$var$indicCategory(glyph) {\n return $7826f90f6f0cecc9$var$trie.get(glyph.codePoints[0]) >> 8;\n}\nfunction $7826f90f6f0cecc9$var$indicPosition(glyph) {\n return 1 << ($7826f90f6f0cecc9$var$trie.get(glyph.codePoints[0]) & 0xff);\n}\nclass $7826f90f6f0cecc9$var$IndicInfo {\n constructor(category, position, syllableType, syllable){\n this.category = category;\n this.position = position;\n this.syllableType = syllableType;\n this.syllable = syllable;\n }\n}\nfunction $7826f90f6f0cecc9$var$setupSyllables(font, glyphs) {\n let syllable = 0;\n let last = 0;\n for (let [start, end, tags] of $7826f90f6f0cecc9$var$stateMachine.match(glyphs.map($7826f90f6f0cecc9$var$indicCategory))){\n if (start > last) {\n ++syllable;\n for(let i = last; i < start; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).X, (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).End, 'non_indic_cluster', syllable);\n }\n ++syllable;\n // Create shaper info\n for(let i = start; i <= end; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo(1 << $7826f90f6f0cecc9$var$indicCategory(glyphs[i]), $7826f90f6f0cecc9$var$indicPosition(glyphs[i]), tags[0], syllable);\n last = end + 1;\n }\n if (last < glyphs.length) {\n ++syllable;\n for(let i = last; i < glyphs.length; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).X, (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).End, 'non_indic_cluster', syllable);\n }\n}\nfunction $7826f90f6f0cecc9$var$isConsonant(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$8519deaa7de2b07);\n}\nfunction $7826f90f6f0cecc9$var$isJoiner(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$bbcd928767338e0d);\n}\nfunction $7826f90f6f0cecc9$var$isHalantOrCoeng(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$ca9599b2a300afc);\n}\nfunction $7826f90f6f0cecc9$var$wouldSubstitute(glyphs, feature) {\n for (let glyph of glyphs)glyph.features = {\n [feature]: true\n };\n let GSUB = glyphs[0]._font._layoutEngine.engine.GSUBProcessor;\n GSUB.applyFeatures([\n feature\n ], glyphs);\n return glyphs.length === 1;\n}\nfunction $7826f90f6f0cecc9$var$consonantPosition(font, consonant, virama) {\n let glyphs = [\n virama,\n consonant,\n virama\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'blwf') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'blwf')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C;\n else if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'pstf') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'pstf')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C;\n else if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'pref') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'pref')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C;\n return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n}\nfunction $7826f90f6f0cecc9$var$initialReordering(font, glyphs, plan) {\n let indicConfig = plan.indicConfig;\n let features = font._layoutEngine.engine.GSUBProcessor.features;\n let dottedCircle = font.glyphForCodePoint(0x25cc).id;\n let virama = font.glyphForCodePoint(indicConfig.virama).id;\n if (virama) {\n let info = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, virama, [\n indicConfig.virama\n ]);\n for(let i = 0; i < glyphs.length; i++)if (glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) glyphs[i].shaperInfo.position = $7826f90f6f0cecc9$var$consonantPosition(font, glyphs[i].copy(), info);\n }\n for(let start = 0, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, start)){\n let { category: category, syllableType: syllableType } = glyphs[start].shaperInfo;\n if (syllableType === 'symbol_cluster' || syllableType === 'non_indic_cluster') continue;\n if (syllableType === 'broken_cluster' && dottedCircle) {\n let g = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, dottedCircle, [\n 0x25cc\n ]);\n g.shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo(1 << $7826f90f6f0cecc9$var$indicCategory(g), $7826f90f6f0cecc9$var$indicPosition(g), glyphs[start].shaperInfo.syllableType, glyphs[start].shaperInfo.syllable);\n // Insert after possible Repha.\n let i = start;\n while(i < end && glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha)i++;\n glyphs.splice(i++, 0, g);\n end++;\n }\n // 1. Find base consonant:\n //\n // The shaping engine finds the base consonant of the syllable, using the\n // following algorithm: starting from the end of the syllable, move backwards\n // until a consonant is found that does not have a below-base or post-base\n // form (post-base forms have to follow below-base forms), or that is not a\n // pre-base reordering Ra, or arrive at the first consonant. The consonant\n // stopped at will be the base.\n let base = end;\n let limit = start;\n let hasReph = false;\n // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n if (indicConfig.rephPos !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph && features.rphf && start + 3 <= end && (indicConfig.rephMode === 'Implicit' && !$7826f90f6f0cecc9$var$isJoiner(glyphs[start + 2]) || indicConfig.rephMode === 'Explicit' && glyphs[start + 2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ)) {\n // See if it matches the 'rphf' feature.\n let g = [\n glyphs[start].copy(),\n glyphs[start + 1].copy(),\n glyphs[start + 2].copy()\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(g.slice(0, 2), 'rphf') || indicConfig.rephMode === 'Explicit' && $7826f90f6f0cecc9$var$wouldSubstitute(g, 'rphf')) {\n limit += 2;\n while(limit < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[limit]))limit++;\n base = start;\n hasReph = true;\n }\n } else if (indicConfig.rephMode === 'Log_Repha' && glyphs[start].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha) {\n limit++;\n while(limit < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[limit]))limit++;\n base = start;\n hasReph = true;\n }\n switch(indicConfig.basePos){\n case 'Last':\n {\n // starting from the end of the syllable, move backwards\n let i = end;\n let seenBelow = false;\n do {\n let info = glyphs[--i].shaperInfo;\n // until a consonant is found\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) {\n // that does not have a below-base or post-base form\n // (post-base forms have to follow below-base forms),\n if (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C && (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C || seenBelow)) {\n base = i;\n break;\n }\n // or that is not a pre-base reordering Ra,\n //\n // IMPLEMENTATION NOTES:\n //\n // Our pre-base reordering Ra's are marked POS_POST_C, so will be skipped\n // by the logic above already.\n //\n // or arrive at the first consonant. The consonant stopped at will\n // be the base.\n if (info.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C) seenBelow = true;\n base = i;\n } else if (start < i && info.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ && glyphs[i - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) break;\n }while (i > limit);\n break;\n }\n case 'First':\n // The first consonant is always the base.\n base = start;\n // Mark all subsequent consonants as below.\n for(let i = base + 1; i < end; i++)if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) glyphs[i].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C;\n }\n // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n //\n // Only do this for unforced Reph. (ie. not for Ra,H,ZWJ)\n if (hasReph && base === start && limit - base <= 2) hasReph = false;\n // 2. Decompose and reorder Matras:\n //\n // Each matra and any syllable modifier sign in the cluster are moved to the\n // appropriate position relative to the consonant(s) in the cluster. The\n // shaping engine decomposes two- or three-part matras into their constituent\n // parts before any repositioning. Matra characters are classified by which\n // consonant in a conjunct they have affinity for and are reordered to the\n // following positions:\n //\n // o Before first half form in the syllable\n // o After subjoined consonants\n // o After post-form consonant\n // o After main consonant (for above marks)\n //\n // IMPLEMENTATION NOTES:\n //\n // The normalize() routine has already decomposed matras for us, so we don't\n // need to worry about that.\n // 3. Reorder marks to canonical order:\n //\n // Adjacent nukta and halant or nukta and vedic sign are always repositioned\n // if necessary, so that the nukta is first.\n //\n // IMPLEMENTATION NOTES:\n //\n // We don't need to do this: the normalize() routine already did this for us.\n // Reorder characters\n for(let i = start; i < base; i++){\n let info = glyphs[i].shaperInfo;\n info.position = Math.min((0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_C, info.position);\n }\n if (base < end) glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n // Mark final consonants. A final consonant is one appearing after a matra,\n // like in Khmer.\n for(let i = base + 1; i < end; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n for(let j = i + 1; j < end; j++)if ($7826f90f6f0cecc9$var$isConsonant(glyphs[j])) {\n glyphs[j].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Final_C;\n break;\n }\n break;\n }\n // Handle beginning Ra\n if (hasReph) glyphs[start].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph;\n // For old-style Indic script tags, move the first post-base Halant after\n // last consonant.\n //\n // Reports suggest that in some scripts Uniscribe does this only if there\n // is *not* a Halant after last consonant already (eg. Kannada), while it\n // does it unconditionally in other scripts (eg. Malayalam). We don't\n // currently know about other scripts, so we single out Malayalam for now.\n //\n // Kannada test case:\n // U+0C9A,U+0CCD,U+0C9A,U+0CCD\n // With some versions of Lohit Kannada.\n // https://bugs.freedesktop.org/show_bug.cgi?id=59118\n //\n // Malayalam test case:\n // U+0D38,U+0D4D,U+0D31,U+0D4D,U+0D31,U+0D4D\n // With lohit-ttf-20121122/Lohit-Malayalam.ttf\n if (plan.isOldSpec) {\n let disallowDoubleHalants = plan.unicodeScript !== 'Malayalam';\n for(let i = base + 1; i < end; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) {\n let j;\n for(j = end - 1; j > i; j--){\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[j]) || disallowDoubleHalants && glyphs[j].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) break;\n }\n if (glyphs[j].shaperInfo.category !== (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && j > i) {\n // Move Halant to after last consonant.\n let t = glyphs[i];\n glyphs.splice(i, 0, ...glyphs.splice(i + 1, j - i));\n glyphs[j] = t;\n }\n break;\n }\n }\n // Attach misc marks to previous char to move with them.\n let lastPos = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Start;\n for(let i = start; i < end; i++){\n let info = glyphs[i].shaperInfo;\n if (info.category & ((0, $90a9d3398ee54fe5$export$bbcd928767338e0d) | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).N | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).RS | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).CM | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc) & info.category)) {\n info.position = lastPos;\n if (info.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && info.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n // Uniscribe doesn't move the Halant with Left Matra.\n // TEST: U+092B,U+093F,U+094DE\n // We follow. This is important for the Sinhala\n // U+0DDA split matra since it decomposes to U+0DD9,U+0DCA\n // where U+0DD9 is a left matra and U+0DCA is the virama.\n // We don't want to move the virama with the left matra.\n // TEST: U+0D9A,U+0DDA\n for(let j = i; j > start; j--)if (glyphs[j - 1].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n info.position = glyphs[j - 1].shaperInfo.position;\n break;\n }\n }\n } else if (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) lastPos = info.position;\n }\n // For post-base consonants let them own anything before them\n // since the last consonant or matra.\n let last = base;\n for(let i = base + 1; i < end; i++){\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) {\n for(let j = last + 1; j < i; j++)if (glyphs[j].shaperInfo.position < (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) glyphs[j].shaperInfo.position = glyphs[i].shaperInfo.position;\n last = i;\n } else if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) last = i;\n }\n let arr = glyphs.slice(start, end);\n arr.sort((a, b)=>a.shaperInfo.position - b.shaperInfo.position);\n glyphs.splice(start, arr.length, ...arr);\n // Find base again\n for(let i = start; i < end; i++)if (glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) {\n base = i;\n break;\n }\n // Setup features now\n // Reph\n for(let i = start; i < end && glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph; i++)glyphs[i].features.rphf = true;\n // Pre-base\n let blwf = !plan.isOldSpec && indicConfig.blwfMode === 'Pre_And_Post';\n for(let i = start; i < base; i++){\n glyphs[i].features.half = true;\n if (blwf) glyphs[i].features.blwf = true;\n }\n // Post-base\n for(let i = base + 1; i < end; i++){\n glyphs[i].features.abvf = true;\n glyphs[i].features.pstf = true;\n glyphs[i].features.blwf = true;\n }\n if (plan.isOldSpec && plan.unicodeScript === 'Devanagari') {\n // Old-spec eye-lash Ra needs special handling. From the\n // spec:\n //\n // \"The feature 'below-base form' is applied to consonants\n // having below-base forms and following the base consonant.\n // The exception is vattu, which may appear below half forms\n // as well as below the base glyph. The feature 'below-base\n // form' will be applied to all such occurrences of Ra as well.\"\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+0915\n // with Sanskrit 2003 font.\n //\n // However, note that Ra,Halant,ZWJ is the correct way to\n // request eyelash form of Ra, so we wouldbn't inhibit it\n // in that sequence.\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+200D,U+0915\n for(let i = start; i + 1 < base; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Ra && glyphs[i + 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && (i + 1 === base || glyphs[i + 2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ)) {\n glyphs[i].features.blwf = true;\n glyphs[i + 1].features.blwf = true;\n }\n }\n let prefLen = 2;\n if (features.pref && base + prefLen < end) // Find a Halant,Ra sequence and mark it for pre-base reordering processing.\n for(let i = base + 1; i + prefLen - 1 < end; i++){\n let g = [\n glyphs[i].copy(),\n glyphs[i + 1].copy()\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(g, 'pref')) {\n for(let j = 0; j < prefLen; j++)glyphs[i++].features.pref = true;\n // Mark the subsequent stuff with 'cfar'. Used in Khmer.\n // Read the feature spec.\n // This allows distinguishing the following cases with MS Khmer fonts:\n // U+1784,U+17D2,U+179A,U+17D2,U+1782\n // U+1784,U+17D2,U+1782,U+17D2,U+179A\n if (features.cfar) for(; i < end; i++)glyphs[i].features.cfar = true;\n break;\n }\n }\n // Apply ZWJ/ZWNJ effects\n for(let i = start + 1; i < end; i++)if ($7826f90f6f0cecc9$var$isJoiner(glyphs[i])) {\n let nonJoiner = glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWNJ;\n let j = i;\n do {\n j--;\n // ZWJ/ZWNJ should disable CJCT. They do that by simply\n // being there, since we don't skip them for the CJCT\n // feature (ie. F_MANUAL_ZWJ)\n // A ZWNJ disables HALF.\n if (nonJoiner) delete glyphs[j].features.half;\n }while (j > start && !$7826f90f6f0cecc9$var$isConsonant(glyphs[j]));\n }\n }\n}\nfunction $7826f90f6f0cecc9$var$finalReordering(font, glyphs, plan) {\n let indicConfig = plan.indicConfig;\n let features = font._layoutEngine.engine.GSUBProcessor.features;\n for(let start = 0, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, start)){\n // 4. Final reordering:\n //\n // After the localized forms and basic shaping forms GSUB features have been\n // applied (see below), the shaping engine performs some final glyph\n // reordering before applying all the remaining font features to the entire\n // cluster.\n let tryPref = !!features.pref;\n // Find base again\n let base = start;\n for(; base < end; base++)if (glyphs[base].shaperInfo.position >= (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) {\n if (tryPref && base + 1 < end) {\n for(let i = base + 1; i < end; i++)if (glyphs[i].features.pref) {\n if (!(glyphs[i].substituted && glyphs[i].isLigated && !glyphs[i].isMultiplied)) {\n // Ok, this was a 'pref' candidate but didn't form any.\n // Base is around here...\n base = i;\n while(base < end && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[base]))base++;\n glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).BASE_C;\n tryPref = false;\n }\n break;\n }\n }\n // For Malayalam, skip over unformed below- (but NOT post-) forms.\n if (plan.unicodeScript === 'Malayalam') for(let i = base + 1; i < end; i++){\n while(i < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[i]))i++;\n if (i === end || !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[i])) break;\n i++; // Skip halant.\n while(i < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[i]))i++;\n if (i < end && $7826f90f6f0cecc9$var$isConsonant(glyphs[i]) && glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C) {\n base = i;\n glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n }\n }\n if (start < base && glyphs[base].shaperInfo.position > (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) base--;\n break;\n }\n if (base === end && start < base && glyphs[base - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ) base--;\n if (base < end) while(start < base && glyphs[base].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).N | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc)))base--;\n // o Reorder matras:\n //\n // If a pre-base matra character had been reordered before applying basic\n // features, the glyph can be moved closer to the main consonant based on\n // whether half-forms had been formed. Actual position for the matra is\n // defined as “after last standalone halant glyph, after initial matra\n // position and before the main consonant”. If ZWJ or ZWNJ follow this\n // halant, position is moved after it.\n //\n if (start + 1 < end && start < base) {\n // If we lost track of base, alas, position before last thingy.\n let newPos = base === end ? base - 2 : base - 1;\n // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while(newPos > start && !(glyphs[newPos].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc))))newPos--;\n // If we found no Halant we are done.\n // Otherwise only proceed if the Halant does\n // not belong to the Matra itself!\n if ($7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newPos]) && glyphs[newPos].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) // If ZWJ or ZWNJ follow this halant, position is moved after it.\n {\n if (newPos + 1 < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[newPos + 1])) newPos++;\n } else newPos = start; // No move.\n }\n if (start < newPos && glyphs[newPos].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n // Now go see if there's actually any matras...\n for(let i = newPos; i > start; i--)if (glyphs[i - 1].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n let oldPos = i - 1;\n if (oldPos < base && base <= newPos) base--;\n let tmp = glyphs[oldPos];\n glyphs.splice(oldPos, 0, ...glyphs.splice(oldPos + 1, newPos - oldPos));\n glyphs[newPos] = tmp;\n newPos--;\n }\n }\n }\n // o Reorder reph:\n //\n // Reph’s original position is always at the beginning of the syllable,\n // (i.e. it is not reordered at the character reordering stage). However,\n // it will be reordered according to the basic-forms shaping results.\n // Possible positions for reph, depending on the script, are; after main,\n // before post-base consonant forms, and after post-base consonant forms.\n // Two cases:\n //\n // - If repha is encoded as a sequence of characters (Ra,H or Ra,H,ZWJ), then\n // we should only move it if the sequence ligated to the repha form.\n //\n // - If repha is encoded separately and in the logical position, we should only\n // move it if it did NOT ligate. If it ligated, it's probably the font trying\n // to make it work without the reordering.\n if (start + 1 < end && glyphs[start].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph && glyphs[start].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha !== (glyphs[start].isLigated && !glyphs[start].isMultiplied)) {\n let newRephPos;\n let rephPos = indicConfig.rephPos;\n let found = false;\n // 1. If reph should be positioned after post-base consonant forms,\n // proceed to step 5.\n if (rephPos !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Post) {\n // 2. If the reph repositioning class is not after post-base: target\n // position is after the first explicit halant glyph between the\n // first post-reph consonant and last main consonant. If ZWJ or ZWNJ\n // are following this halant, position is moved after it. If such\n // position is found, this is the target position. Otherwise,\n // proceed to the next step.\n //\n // Note: in old-implementation fonts, where classifications were\n // fixed in shaping engine, there was no case where reph position\n // will be found on this step.\n newRephPos = start + 1;\n while(newRephPos < base && !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos]))newRephPos++;\n if (newRephPos < base && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && $7826f90f6f0cecc9$var$isJoiner(glyphs[newRephPos + 1])) newRephPos++;\n found = true;\n }\n // 3. If reph should be repositioned after the main consonant: find the\n // first consonant not ligated with main, or find the first\n // consonant that is not a potential pre-base reordering Ra.\n if (!found && rephPos === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Main) {\n newRephPos = base;\n while(newRephPos + 1 < end && glyphs[newRephPos + 1].shaperInfo.position <= (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Main)newRephPos++;\n found = newRephPos < end;\n }\n // 4. If reph should be positioned before post-base consonant, find\n // first post-base classified consonant not ligated with main. If no\n // consonant is found, the target position should be before the\n // first matra, syllable modifier sign or vedic sign.\n //\n // This is our take on what step 4 is trying to say (and failing, BADLY).\n if (!found && rephPos === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Sub) {\n newRephPos = base;\n while(newRephPos + 1 < end && !(glyphs[newRephPos + 1].shaperInfo.position & ((0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C | (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Post | (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD)))newRephPos++;\n found = newRephPos < end;\n }\n }\n // 5. If no consonant is found in steps 3 or 4, move reph to a position\n // immediately before the first post-base matra, syllable modifier\n // sign or vedic sign that has a reordering class after the intended\n // reph position. For example, if the reordering position for reph\n // is post-main, it will skip above-base matras that also have a\n // post-main position.\n if (!found) {\n // Copied from step 2.\n newRephPos = start + 1;\n while(newRephPos < base && !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos]))newRephPos++;\n if (newRephPos < base && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && $7826f90f6f0cecc9$var$isJoiner(glyphs[newRephPos + 1])) newRephPos++;\n found = true;\n }\n }\n // 6. Otherwise, reorder reph to the end of the syllable.\n if (!found) {\n newRephPos = end - 1;\n while(newRephPos > start && glyphs[newRephPos].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD)newRephPos--;\n // If the Reph is to be ending up after a Matra,Halant sequence,\n // position it before that Halant so it can interact with the Matra.\n // However, if it's a plain Consonant,Halant we shouldn't do that.\n // Uniscribe doesn't do this.\n // TEST: U+0930,U+094D,U+0915,U+094B,U+094D\n if ($7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n for(let i = base + 1; i < newRephPos; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) newRephPos--;\n }\n }\n let reph = glyphs[start];\n glyphs.splice(start, 0, ...glyphs.splice(start + 1, newRephPos - start));\n glyphs[newRephPos] = reph;\n if (start < base && base <= newRephPos) base--;\n }\n // o Reorder pre-base reordering consonants:\n //\n // If a pre-base reordering consonant is found, reorder it according to\n // the following rules:\n if (tryPref && base + 1 < end) {\n for(let i = base + 1; i < end; i++)if (glyphs[i].features.pref) {\n // 1. Only reorder a glyph produced by substitution during application\n // of the feature. (Note that a font may shape a Ra consonant with\n // the feature generally but block it in certain contexts.)\n // Note: We just check that something got substituted. We don't check that\n // the feature actually did it...\n //\n // Reorder pref only if it ligated.\n if (glyphs[i].isLigated && !glyphs[i].isMultiplied) {\n // 2. Try to find a target position the same way as for pre-base matra.\n // If it is found, reorder pre-base consonant glyph.\n //\n // 3. If position is not found, reorder immediately before main\n // consonant.\n let newPos = base;\n // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while(newPos > start && !(glyphs[newPos - 1].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc))))newPos--;\n // In Khmer coeng model, a H,Ra can go *after* matras. If it goes after a\n // split matra, it should be reordered to *before* the left part of such matra.\n if (newPos > start && glyphs[newPos - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n let oldPos = i;\n for(let j = base + 1; j < oldPos; j++)if (glyphs[j].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n newPos--;\n break;\n }\n }\n }\n if (newPos > start && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newPos - 1])) // -> If ZWJ or ZWNJ follow this halant, position is moved after it.\n {\n if (newPos < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[newPos])) newPos++;\n }\n let oldPos = i;\n let tmp = glyphs[oldPos];\n glyphs.splice(newPos + 1, 0, ...glyphs.splice(newPos, oldPos - newPos));\n glyphs[newPos] = tmp;\n if (newPos <= base && base < oldPos) base++;\n }\n break;\n }\n }\n // Apply 'init' to the Left Matra if it's a word start.\n if (glyphs[start].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M && (!start || !/Cf|Mn/.test((0, $6uUbQ$getCategory)(glyphs[start - 1].codePoints[0])))) glyphs[start].features.init = true;\n }\n}\nfunction $7826f90f6f0cecc9$var$nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n let syllable = glyphs[start].shaperInfo.syllable;\n while(++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable);\n return start;\n}\n\n\n\n\n\n\n\n\n\nconst { categories: $7ab494fe977143c6$var$categories, decompositions: $7ab494fe977143c6$var$decompositions } = (0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports)));\nconst $7ab494fe977143c6$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"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\"));\nconst $7ab494fe977143c6$var$stateMachine = new (0, $6uUbQ$dfa)((0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports))));\nclass $7ab494fe977143c6$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.addStage($7ab494fe977143c6$var$setupSyllables);\n // Default glyph pre-processing group\n plan.addStage([\n 'locl',\n 'ccmp',\n 'nukt',\n 'akhn'\n ]);\n // Reordering group\n plan.addStage($7ab494fe977143c6$var$clearSubstitutionFlags);\n plan.addStage([\n 'rphf'\n ], false);\n plan.addStage($7ab494fe977143c6$var$recordRphf);\n plan.addStage($7ab494fe977143c6$var$clearSubstitutionFlags);\n plan.addStage([\n 'pref'\n ]);\n plan.addStage($7ab494fe977143c6$var$recordPref);\n // Orthographic unit shaping group\n plan.addStage([\n 'rkrf',\n 'abvf',\n 'blwf',\n 'half',\n 'pstf',\n 'vatu',\n 'cjct'\n ]);\n plan.addStage($7ab494fe977143c6$var$reorder);\n // Topographical features\n // Scripts that need this are handled by the Arabic shaper, not implemented here for now.\n // plan.addStage(['isol', 'init', 'medi', 'fina', 'med2', 'fin2', 'fin3'], false);\n // Standard topographic presentation and positional feature application\n plan.addStage([\n 'abvs',\n 'blws',\n 'pres',\n 'psts',\n 'dist',\n 'abvm',\n 'blwm'\n ]);\n }\n static assignFeatures(plan, glyphs) {\n // Decompose split vowels\n // TODO: do this in a more general unicode normalizer\n for(let i = glyphs.length - 1; i >= 0; i--){\n let codepoint = glyphs[i].codePoints[0];\n if ($7ab494fe977143c6$var$decompositions[codepoint]) {\n let decomposed = $7ab494fe977143c6$var$decompositions[codepoint].map((c)=>{\n let g = plan.font.glyphForCodePoint(c);\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(plan.font, g.id, [\n c\n ], glyphs[i].features);\n });\n glyphs.splice(i, 1, ...decomposed);\n }\n }\n }\n}\n(0, $6uUbQ$_)($7ab494fe977143c6$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'BEFORE_GPOS');\nfunction $7ab494fe977143c6$var$useCategory(glyph) {\n return $7ab494fe977143c6$var$trie.get(glyph.codePoints[0]);\n}\nclass $7ab494fe977143c6$var$USEInfo {\n constructor(category, syllableType, syllable){\n this.category = category;\n this.syllableType = syllableType;\n this.syllable = syllable;\n }\n}\nfunction $7ab494fe977143c6$var$setupSyllables(font, glyphs) {\n let syllable = 0;\n for (let [start, end, tags] of $7ab494fe977143c6$var$stateMachine.match(glyphs.map($7ab494fe977143c6$var$useCategory))){\n ++syllable;\n // Create shaper info\n for(let i = start; i <= end; i++)glyphs[i].shaperInfo = new $7ab494fe977143c6$var$USEInfo($7ab494fe977143c6$var$categories[$7ab494fe977143c6$var$useCategory(glyphs[i])], tags[0], syllable);\n // Assign rphf feature\n let limit = glyphs[start].shaperInfo.category === 'R' ? 1 : Math.min(3, end - start);\n for(let i = start; i < start + limit; i++)glyphs[i].features.rphf = true;\n }\n}\nfunction $7ab494fe977143c6$var$clearSubstitutionFlags(font, glyphs) {\n for (let glyph of glyphs)glyph.substituted = false;\n}\nfunction $7ab494fe977143c6$var$recordRphf(font, glyphs) {\n for (let glyph of glyphs)if (glyph.substituted && glyph.features.rphf) // Mark a substituted repha.\n glyph.shaperInfo.category = 'R';\n}\nfunction $7ab494fe977143c6$var$recordPref(font, glyphs) {\n for (let glyph of glyphs)if (glyph.substituted) // Mark a substituted pref as VPre, as they behave the same way.\n glyph.shaperInfo.category = 'VPre';\n}\nfunction $7ab494fe977143c6$var$reorder(font, glyphs) {\n let dottedCircle = font.glyphForCodePoint(0x25cc).id;\n for(let start = 0, end = $7ab494fe977143c6$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7ab494fe977143c6$var$nextSyllable(glyphs, start)){\n let i, j;\n let info = glyphs[start].shaperInfo;\n let type = info.syllableType;\n // Only a few syllable types need reordering.\n if (type !== 'virama_terminated_cluster' && type !== 'standard_cluster' && type !== 'broken_cluster') continue;\n // Insert a dotted circle glyph in broken clusters.\n if (type === 'broken_cluster' && dottedCircle) {\n let g = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, dottedCircle, [\n 0x25cc\n ]);\n g.shaperInfo = info;\n // Insert after possible Repha.\n for(i = start; i < end && glyphs[i].shaperInfo.category === 'R'; i++);\n glyphs.splice(++i, 0, g);\n end++;\n }\n // Move things forward.\n if (info.category === 'R' && end - start > 1) // Got a repha. Reorder it to after first base, before first halant.\n for(i = start + 1; i < end; i++){\n info = glyphs[i].shaperInfo;\n if ($7ab494fe977143c6$var$isBase(info) || $7ab494fe977143c6$var$isHalant(glyphs[i])) {\n // If we hit a halant, move before it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n if ($7ab494fe977143c6$var$isHalant(glyphs[i])) i--;\n glyphs.splice(start, 0, ...glyphs.splice(start + 1, i - start), glyphs[i]);\n break;\n }\n }\n // Move things back.\n for(i = start, j = end; i < end; i++){\n info = glyphs[i].shaperInfo;\n if ($7ab494fe977143c6$var$isBase(info) || $7ab494fe977143c6$var$isHalant(glyphs[i])) // If we hit a halant, move after it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n j = $7ab494fe977143c6$var$isHalant(glyphs[i]) ? i + 1 : i;\n else if ((info.category === 'VPre' || info.category === 'VMPre') && j < i) glyphs.splice(j, 1, glyphs[i], ...glyphs.splice(j, i - j));\n }\n }\n}\nfunction $7ab494fe977143c6$var$nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n let syllable = glyphs[start].shaperInfo.syllable;\n while(++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable);\n return start;\n}\nfunction $7ab494fe977143c6$var$isHalant(glyph) {\n return glyph.shaperInfo.category === 'H' && !glyph.isLigated;\n}\nfunction $7ab494fe977143c6$var$isBase(info) {\n return info.category === 'B' || info.category === 'GB';\n}\n\n\nconst $102b6fe50f1d50b4$var$SHAPERS = {\n arab: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mong: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n syrc: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n 'nko ': (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n phag: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mand: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mani: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n phlp: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n hang: (0, $e1c6bbc8cb416f8c$export$2e2bcd8739ae039),\n bng2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n beng: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n dev2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n deva: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gjr2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gujr: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n guru: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gur2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n knda: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n knd2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n mlm2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n mlym: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n ory2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n orya: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n taml: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n tml2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n telu: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n tel2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n khmr: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n bali: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n batk: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n brah: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n bugi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n buhd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n cakm: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n cham: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n dupl: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n egyp: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n gran: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n hano: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n java: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n kthi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n kali: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n khar: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n khoj: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sind: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n lepc: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n limb: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n mahj: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // mand: UniversalShaper, // Mandaic\n // mani: UniversalShaper, // Manichaean\n mtei: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n modi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // mong: UniversalShaper, // Mongolian\n // 'nko ': UniversalShaper, // N’Ko\n hmng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // phag: UniversalShaper, // Phags-pa\n // phlp: UniversalShaper, // Psalter Pahlavi\n rjng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n saur: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n shrd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sidd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sinh: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n sund: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sylo: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tglg: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tagb: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tale: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n lana: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tavt: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n takr: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tibt: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tfng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tirh: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n latn: (0, $649970d87335b30f$export$2e2bcd8739ae039),\n DFLT: (0, $649970d87335b30f$export$2e2bcd8739ae039 // Default\n )\n};\nfunction $102b6fe50f1d50b4$export$7877a478dd30fd3d(script) {\n if (!Array.isArray(script)) script = [\n script\n ];\n for (let s of script){\n let shaper = $102b6fe50f1d50b4$var$SHAPERS[s];\n if (shaper) return shaper;\n }\n return 0, $649970d87335b30f$export$2e2bcd8739ae039;\n}\n\n\n\n\n\nclass $0a876c45f1f7c41c$export$2e2bcd8739ae039 extends (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039) {\n applyLookup(lookupType, table) {\n switch(lookupType){\n case 1:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n let glyph = this.glyphIterator.cur;\n switch(table.version){\n case 1:\n glyph.id = glyph.id + table.deltaGlyphID & 0xffff;\n break;\n case 2:\n glyph.id = table.substitute.get(index);\n break;\n }\n return true;\n }\n case 2:\n {\n let index = this.coverageIndex(table.coverage);\n if (index !== -1) {\n let sequence = table.sequences.get(index);\n if (sequence.length === 0) {\n // If the sequence length is zero, delete the glyph.\n // The OpenType spec disallows this, but seems like Harfbuzz and Uniscribe allow it.\n this.glyphs.splice(this.glyphIterator.index, 1);\n return true;\n }\n this.glyphIterator.cur.id = sequence[0];\n this.glyphIterator.cur.ligatureComponent = 0;\n let features = this.glyphIterator.cur.features;\n let curGlyph = this.glyphIterator.cur;\n let replacement = sequence.slice(1).map((gid, i)=>{\n let glyph = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, gid, undefined, features);\n glyph.shaperInfo = curGlyph.shaperInfo;\n glyph.isLigated = curGlyph.isLigated;\n glyph.ligatureComponent = i + 1;\n glyph.substituted = true;\n glyph.isMultiplied = true;\n return glyph;\n });\n this.glyphs.splice(this.glyphIterator.index + 1, 0, ...replacement);\n return true;\n }\n return false;\n }\n case 3:\n {\n let index = this.coverageIndex(table.coverage);\n if (index !== -1) {\n let USER_INDEX = 0; // TODO\n this.glyphIterator.cur.id = table.alternateSet.get(index)[USER_INDEX];\n return true;\n }\n return false;\n }\n case 4:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n for (let ligature of table.ligatureSets.get(index)){\n let matched = this.sequenceMatchIndices(1, ligature.components);\n if (!matched) continue;\n let curGlyph = this.glyphIterator.cur;\n // Concatenate all of the characters the new ligature will represent\n let characters = curGlyph.codePoints.slice();\n for (let index of matched)characters.push(...this.glyphs[index].codePoints);\n // Create the replacement ligature glyph\n let ligatureGlyph = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, ligature.glyph, characters, curGlyph.features);\n ligatureGlyph.shaperInfo = curGlyph.shaperInfo;\n ligatureGlyph.isLigated = true;\n ligatureGlyph.substituted = true;\n // From Harfbuzz:\n // - If it *is* a mark ligature, we don't allocate a new ligature id, and leave\n // the ligature to keep its old ligature id. This will allow it to attach to\n // a base ligature in GPOS. Eg. if the sequence is: LAM,LAM,SHADDA,FATHA,HEH,\n // and LAM,LAM,HEH for a ligature, they will leave SHADDA and FATHA with a\n // ligature id and component value of 2. Then if SHADDA,FATHA form a ligature\n // later, we don't want them to lose their ligature id/component, otherwise\n // GPOS will fail to correctly position the mark ligature on top of the\n // LAM,LAM,HEH ligature. See https://bugzilla.gnome.org/show_bug.cgi?id=676343\n //\n // - If a ligature is formed of components that some of which are also ligatures\n // themselves, and those ligature components had marks attached to *their*\n // components, we have to attach the marks to the new ligature component\n // positions! Now *that*'s tricky! And these marks may be following the\n // last component of the whole sequence, so we should loop forward looking\n // for them and update them.\n //\n // Eg. the sequence is LAM,LAM,SHADDA,FATHA,HEH, and the font first forms a\n // 'calt' ligature of LAM,HEH, leaving the SHADDA and FATHA with a ligature\n // id and component == 1. Now, during 'liga', the LAM and the LAM-HEH ligature\n // form a LAM-LAM-HEH ligature. We need to reassign the SHADDA and FATHA to\n // the new ligature with a component value of 2.\n //\n // This in fact happened to a font... See https://bugzilla.gnome.org/show_bug.cgi?id=437633\n let isMarkLigature = curGlyph.isMark;\n for(let i = 0; i < matched.length && isMarkLigature; i++)isMarkLigature = this.glyphs[matched[i]].isMark;\n ligatureGlyph.ligatureID = isMarkLigature ? null : this.ligatureID++;\n let lastLigID = curGlyph.ligatureID;\n let lastNumComps = curGlyph.codePoints.length;\n let curComps = lastNumComps;\n let idx = this.glyphIterator.index + 1;\n // Set ligatureID and ligatureComponent on glyphs that were skipped in the matched sequence.\n // This allows GPOS to attach marks to the correct ligature components.\n for (let matchIndex of matched){\n // Don't assign new ligature components for mark ligatures (see above)\n if (isMarkLigature) idx = matchIndex;\n else while(idx < matchIndex){\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[idx].ligatureComponent || 1, lastNumComps);\n this.glyphs[idx].ligatureID = ligatureGlyph.ligatureID;\n this.glyphs[idx].ligatureComponent = ligatureComponent;\n idx++;\n }\n lastLigID = this.glyphs[idx].ligatureID;\n lastNumComps = this.glyphs[idx].codePoints.length;\n curComps += lastNumComps;\n idx++; // skip base glyph\n }\n // Adjust ligature components for any marks following\n if (lastLigID && !isMarkLigature) for(let i = idx; i < this.glyphs.length; i++){\n if (this.glyphs[i].ligatureID === lastLigID) {\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[i].ligatureComponent || 1, lastNumComps);\n this.glyphs[i].ligatureComponent = ligatureComponent;\n } else break;\n }\n // Delete the matched glyphs, and replace the current glyph with the ligature glyph\n for(let i = matched.length - 1; i >= 0; i--)this.glyphs.splice(matched[i], 1);\n this.glyphs[this.glyphIterator.index] = ligatureGlyph;\n return true;\n }\n return false;\n }\n case 5:\n return this.applyContext(table);\n case 6:\n return this.applyChainingContext(table);\n case 7:\n return this.applyLookup(table.lookupType, table.extension);\n default:\n throw new Error(`GSUB lookupType ${lookupType} is not supported`);\n }\n }\n}\n\n\n\nclass $c96c93587d49c14d$export$2e2bcd8739ae039 extends (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039) {\n applyPositionValue(sequenceIndex, value) {\n let position = this.positions[this.glyphIterator.peekIndex(sequenceIndex)];\n if (value.xAdvance != null) position.xAdvance += value.xAdvance;\n if (value.yAdvance != null) position.yAdvance += value.yAdvance;\n if (value.xPlacement != null) position.xOffset += value.xPlacement;\n if (value.yPlacement != null) position.yOffset += value.yPlacement;\n // Adjustments for font variations\n let variationProcessor = this.font._variationProcessor;\n let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n if (variationProcessor && variationStore) {\n if (value.xPlaDevice) position.xOffset += variationProcessor.getDelta(variationStore, value.xPlaDevice.a, value.xPlaDevice.b);\n if (value.yPlaDevice) position.yOffset += variationProcessor.getDelta(variationStore, value.yPlaDevice.a, value.yPlaDevice.b);\n if (value.xAdvDevice) position.xAdvance += variationProcessor.getDelta(variationStore, value.xAdvDevice.a, value.xAdvDevice.b);\n if (value.yAdvDevice) position.yAdvance += variationProcessor.getDelta(variationStore, value.yAdvDevice.a, value.yAdvDevice.b);\n }\n // TODO: device tables\n }\n applyLookup(lookupType, table) {\n switch(lookupType){\n case 1:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n switch(table.version){\n case 1:\n this.applyPositionValue(0, table.value);\n break;\n case 2:\n this.applyPositionValue(0, table.values.get(index));\n break;\n }\n return true;\n }\n case 2:\n {\n let nextGlyph = this.glyphIterator.peek();\n if (!nextGlyph) return false;\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n switch(table.version){\n case 1:\n let set = table.pairSets.get(index);\n for (let pair of set)if (pair.secondGlyph === nextGlyph.id) {\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n return false;\n case 2:\n let class1 = this.getClassID(this.glyphIterator.cur.id, table.classDef1);\n let class2 = this.getClassID(nextGlyph.id, table.classDef2);\n if (class1 === -1 || class2 === -1) return false;\n var pair = table.classRecords.get(class1).get(class2);\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n }\n case 3:\n {\n let nextIndex = this.glyphIterator.peekIndex();\n let nextGlyph = this.glyphs[nextIndex];\n if (!nextGlyph) return false;\n let curRecord = table.entryExitRecords[this.coverageIndex(table.coverage)];\n if (!curRecord || !curRecord.exitAnchor) return false;\n let nextRecord = table.entryExitRecords[this.coverageIndex(table.coverage, nextGlyph.id)];\n if (!nextRecord || !nextRecord.entryAnchor) return false;\n let entry = this.getAnchor(nextRecord.entryAnchor);\n let exit = this.getAnchor(curRecord.exitAnchor);\n let cur = this.positions[this.glyphIterator.index];\n let next = this.positions[nextIndex];\n let d;\n switch(this.direction){\n case 'ltr':\n cur.xAdvance = exit.x + cur.xOffset;\n d = entry.x + next.xOffset;\n next.xAdvance -= d;\n next.xOffset -= d;\n break;\n case 'rtl':\n d = exit.x + cur.xOffset;\n cur.xAdvance -= d;\n cur.xOffset -= d;\n next.xAdvance = entry.x + next.xOffset;\n break;\n }\n if (this.glyphIterator.flags.rightToLeft) {\n this.glyphIterator.cur.cursiveAttachment = nextIndex;\n cur.yOffset = entry.y - exit.y;\n } else {\n nextGlyph.cursiveAttachment = this.glyphIterator.index;\n cur.yOffset = exit.y - entry.y;\n }\n return true;\n }\n case 4:\n {\n let markIndex = this.coverageIndex(table.markCoverage);\n if (markIndex === -1) return false;\n // search backward for a base glyph\n let baseGlyphIndex = this.glyphIterator.index;\n while(--baseGlyphIndex >= 0 && (this.glyphs[baseGlyphIndex].isMark || this.glyphs[baseGlyphIndex].ligatureComponent > 0));\n if (baseGlyphIndex < 0) return false;\n let baseIndex = this.coverageIndex(table.baseCoverage, this.glyphs[baseGlyphIndex].id);\n if (baseIndex === -1) return false;\n let markRecord = table.markArray[markIndex];\n let baseAnchor = table.baseArray[baseIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n case 5:\n {\n let markIndex = this.coverageIndex(table.markCoverage);\n if (markIndex === -1) return false;\n // search backward for a base glyph\n let baseGlyphIndex = this.glyphIterator.index;\n while(--baseGlyphIndex >= 0 && this.glyphs[baseGlyphIndex].isMark);\n if (baseGlyphIndex < 0) return false;\n let ligIndex = this.coverageIndex(table.ligatureCoverage, this.glyphs[baseGlyphIndex].id);\n if (ligIndex === -1) return false;\n let ligAttach = table.ligatureArray[ligIndex];\n let markGlyph = this.glyphIterator.cur;\n let ligGlyph = this.glyphs[baseGlyphIndex];\n let compIndex = ligGlyph.ligatureID && ligGlyph.ligatureID === markGlyph.ligatureID && markGlyph.ligatureComponent > 0 ? Math.min(markGlyph.ligatureComponent, ligGlyph.codePoints.length) - 1 : ligGlyph.codePoints.length - 1;\n let markRecord = table.markArray[markIndex];\n let baseAnchor = ligAttach[compIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n case 6:\n {\n let mark1Index = this.coverageIndex(table.mark1Coverage);\n if (mark1Index === -1) return false;\n // get the previous mark to attach to\n let prevIndex = this.glyphIterator.peekIndex(-1);\n let prev = this.glyphs[prevIndex];\n if (!prev || !prev.isMark) return false;\n let cur = this.glyphIterator.cur;\n // The following logic was borrowed from Harfbuzz\n let good = false;\n if (cur.ligatureID === prev.ligatureID) {\n if (!cur.ligatureID) good = true;\n else if (cur.ligatureComponent === prev.ligatureComponent) good = true;\n } else // If ligature ids don't match, it may be the case that one of the marks\n // itself is a ligature, in which case match.\n if (cur.ligatureID && !cur.ligatureComponent || prev.ligatureID && !prev.ligatureComponent) good = true;\n if (!good) return false;\n let mark2Index = this.coverageIndex(table.mark2Coverage, prev.id);\n if (mark2Index === -1) return false;\n let markRecord = table.mark1Array[mark1Index];\n let baseAnchor = table.mark2Array[mark2Index][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, prevIndex);\n return true;\n }\n case 7:\n return this.applyContext(table);\n case 8:\n return this.applyChainingContext(table);\n case 9:\n return this.applyLookup(table.lookupType, table.extension);\n default:\n throw new Error(`Unsupported GPOS table: ${lookupType}`);\n }\n }\n applyAnchor(markRecord, baseAnchor, baseGlyphIndex) {\n let baseCoords = this.getAnchor(baseAnchor);\n let markCoords = this.getAnchor(markRecord.markAnchor);\n let basePos = this.positions[baseGlyphIndex];\n let markPos = this.positions[this.glyphIterator.index];\n markPos.xOffset = baseCoords.x - markCoords.x;\n markPos.yOffset = baseCoords.y - markCoords.y;\n this.glyphIterator.cur.markAttachment = baseGlyphIndex;\n }\n getAnchor(anchor) {\n // TODO: contour point, device tables\n let x = anchor.xCoordinate;\n let y = anchor.yCoordinate;\n // Adjustments for font variations\n let variationProcessor = this.font._variationProcessor;\n let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n if (variationProcessor && variationStore) {\n if (anchor.xDeviceTable) x += variationProcessor.getDelta(variationStore, anchor.xDeviceTable.a, anchor.xDeviceTable.b);\n if (anchor.yDeviceTable) y += variationProcessor.getDelta(variationStore, anchor.yDeviceTable.a, anchor.yDeviceTable.b);\n }\n return {\n x: x,\n y: y\n };\n }\n applyFeatures(userFeatures, glyphs, advances) {\n super.applyFeatures(userFeatures, glyphs, advances);\n for(var i = 0; i < this.glyphs.length; i++)this.fixCursiveAttachment(i);\n this.fixMarkAttachment();\n }\n fixCursiveAttachment(i) {\n let glyph = this.glyphs[i];\n if (glyph.cursiveAttachment != null) {\n let j = glyph.cursiveAttachment;\n glyph.cursiveAttachment = null;\n this.fixCursiveAttachment(j);\n this.positions[i].yOffset += this.positions[j].yOffset;\n }\n }\n fixMarkAttachment() {\n for(let i = 0; i < this.glyphs.length; i++){\n let glyph = this.glyphs[i];\n if (glyph.markAttachment != null) {\n let j = glyph.markAttachment;\n this.positions[i].xOffset += this.positions[j].xOffset;\n this.positions[i].yOffset += this.positions[j].yOffset;\n if (this.direction === 'ltr') for(let k = j; k < i; k++){\n this.positions[i].xOffset -= this.positions[k].xAdvance;\n this.positions[i].yOffset -= this.positions[k].yAdvance;\n }\n else for(let k = j + 1; k < i + 1; k++){\n this.positions[i].xOffset += this.positions[k].xAdvance;\n this.positions[i].yOffset += this.positions[k].yAdvance;\n }\n }\n }\n }\n}\n\n\nclass $a62492810de27e3d$export$2e2bcd8739ae039 {\n setup(glyphRun) {\n // Map glyphs to GlyphInfo objects so data can be passed between\n // GSUB and GPOS without mutating the real (shared) Glyph objects.\n this.glyphInfos = glyphRun.glyphs.map((glyph)=>new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, glyph.id, [\n ...glyph.codePoints\n ]));\n // Select a script based on what is available in GSUB/GPOS.\n let script = null;\n if (this.GPOSProcessor) script = this.GPOSProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n if (this.GSUBProcessor) script = this.GSUBProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n // Choose a shaper based on the script, and setup a shaping plan.\n // This determines which features to apply to which glyphs.\n this.shaper = $102b6fe50f1d50b4$export$7877a478dd30fd3d(script);\n this.plan = new (0, $94d7a73bd2edfc9a$export$2e2bcd8739ae039)(this.font, script, glyphRun.direction);\n this.shaper.plan(this.plan, this.glyphInfos, glyphRun.features);\n // Assign chosen features to output glyph run\n for(let key in this.plan.allFeatures)glyphRun.features[key] = true;\n }\n substitute(glyphRun) {\n if (this.GSUBProcessor) {\n this.plan.process(this.GSUBProcessor, this.glyphInfos);\n // Map glyph infos back to normal Glyph objects\n glyphRun.glyphs = this.glyphInfos.map((glyphInfo)=>this.font.getGlyph(glyphInfo.id, glyphInfo.codePoints));\n }\n }\n position(glyphRun) {\n if (this.shaper.zeroMarkWidths === 'BEFORE_GPOS') this.zeroMarkAdvances(glyphRun.positions);\n if (this.GPOSProcessor) this.plan.process(this.GPOSProcessor, this.glyphInfos, glyphRun.positions);\n if (this.shaper.zeroMarkWidths === 'AFTER_GPOS') this.zeroMarkAdvances(glyphRun.positions);\n // Reverse the glyphs and positions if the script is right-to-left\n if (glyphRun.direction === 'rtl') {\n glyphRun.glyphs.reverse();\n glyphRun.positions.reverse();\n }\n return this.GPOSProcessor && this.GPOSProcessor.features;\n }\n zeroMarkAdvances(positions) {\n for(let i = 0; i < this.glyphInfos.length; i++)if (this.glyphInfos[i].isMark) {\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n cleanup() {\n this.glyphInfos = null;\n this.plan = null;\n this.shaper = null;\n }\n getAvailableFeatures(script, language) {\n let features = [];\n if (this.GSUBProcessor) {\n this.GSUBProcessor.selectScript(script, language);\n features.push(...Object.keys(this.GSUBProcessor.features));\n }\n if (this.GPOSProcessor) {\n this.GPOSProcessor.selectScript(script, language);\n features.push(...Object.keys(this.GPOSProcessor.features));\n }\n return features;\n }\n constructor(font){\n this.font = font;\n this.glyphInfos = null;\n this.plan = null;\n this.GSUBProcessor = null;\n this.GPOSProcessor = null;\n this.fallbackPosition = true;\n if (font.GSUB) this.GSUBProcessor = new (0, $0a876c45f1f7c41c$export$2e2bcd8739ae039)(font, font.GSUB);\n if (font.GPOS) this.GPOSProcessor = new (0, $c96c93587d49c14d$export$2e2bcd8739ae039)(font, font.GPOS);\n }\n}\n\n\nclass $4c0a7fa5df7a9ab1$export$2e2bcd8739ae039 {\n layout(string, features, script, language, direction) {\n // Make the features parameter optional\n if (typeof features === 'string') {\n direction = language;\n language = script;\n script = features;\n features = [];\n }\n // Map string to glyphs if needed\n if (typeof string === 'string') {\n // Attempt to detect the script from the string if not provided.\n if (script == null) script = $130d1a642ebcd2b7$export$e5cb25e204fb8450(string);\n var glyphs = this.font.glyphsForString(string);\n } else {\n // Attempt to detect the script from the glyph code points if not provided.\n if (script == null) {\n let codePoints = [];\n for (let glyph of string)codePoints.push(...glyph.codePoints);\n script = $130d1a642ebcd2b7$export$16fab0757cfc223d(codePoints);\n }\n var glyphs = string;\n }\n let glyphRun = new (0, $be07b3e97a42687a$export$2e2bcd8739ae039)(glyphs, features, script, language, direction);\n // Return early if there are no glyphs\n if (glyphs.length === 0) {\n glyphRun.positions = [];\n return glyphRun;\n }\n // Setup the advanced layout engine\n if (this.engine && this.engine.setup) this.engine.setup(glyphRun);\n // Substitute and position the glyphs\n this.substitute(glyphRun);\n this.position(glyphRun);\n this.hideDefaultIgnorables(glyphRun.glyphs, glyphRun.positions);\n // Let the layout engine clean up any state it might have\n if (this.engine && this.engine.cleanup) this.engine.cleanup();\n return glyphRun;\n }\n substitute(glyphRun) {\n // Call the advanced layout engine to make substitutions\n if (this.engine && this.engine.substitute) this.engine.substitute(glyphRun);\n }\n position(glyphRun) {\n // Get initial glyph positions\n glyphRun.positions = glyphRun.glyphs.map((glyph)=>new (0, $1ac75d9a55b67f01$export$2e2bcd8739ae039)(glyph.advanceWidth));\n let positioned = null;\n // Call the advanced layout engine. Returns the features applied.\n if (this.engine && this.engine.position) positioned = this.engine.position(glyphRun);\n // if there is no GPOS table, use unicode properties to position marks.\n if (!positioned && (!this.engine || this.engine.fallbackPosition)) {\n if (!this.unicodeLayoutEngine) this.unicodeLayoutEngine = new (0, $0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039)(this.font);\n this.unicodeLayoutEngine.positionGlyphs(glyphRun.glyphs, glyphRun.positions);\n }\n // if kerning is not supported by GPOS, do kerning with the TrueType/AAT kern table\n if ((!positioned || !positioned.kern) && glyphRun.features.kern !== false && this.font.kern) {\n if (!this.kernProcessor) this.kernProcessor = new (0, $0bba3a9db57637f3$export$2e2bcd8739ae039)(this.font);\n this.kernProcessor.process(glyphRun.glyphs, glyphRun.positions);\n glyphRun.features.kern = true;\n }\n }\n hideDefaultIgnorables(glyphs, positions) {\n let space = this.font.glyphForCodePoint(0x20);\n for(let i = 0; i < glyphs.length; i++)if (this.isDefaultIgnorable(glyphs[i].codePoints[0])) {\n glyphs[i] = space;\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n isDefaultIgnorable(ch) {\n // From DerivedCoreProperties.txt in the Unicode database,\n // minus U+115F, U+1160, U+3164 and U+FFA0, which is what\n // Harfbuzz and Uniscribe do.\n let plane = ch >> 16;\n if (plane === 0) // BMP\n switch(ch >> 8){\n case 0x00:\n return ch === 0x00AD;\n case 0x03:\n return ch === 0x034F;\n case 0x06:\n return ch === 0x061C;\n case 0x17:\n return 0x17B4 <= ch && ch <= 0x17B5;\n case 0x18:\n return 0x180B <= ch && ch <= 0x180E;\n case 0x20:\n return 0x200B <= ch && ch <= 0x200F || 0x202A <= ch && ch <= 0x202E || 0x2060 <= ch && ch <= 0x206F;\n case 0xFE:\n return 0xFE00 <= ch && ch <= 0xFE0F || ch === 0xFEFF;\n case 0xFF:\n return 0xFFF0 <= ch && ch <= 0xFFF8;\n default:\n return false;\n }\n else // Other planes\n switch(plane){\n case 0x01:\n return 0x1BCA0 <= ch && ch <= 0x1BCA3 || 0x1D173 <= ch && ch <= 0x1D17A;\n case 0x0E:\n return 0xE0000 <= ch && ch <= 0xE0FFF;\n default:\n return false;\n }\n }\n getAvailableFeatures(script, language) {\n let features = [];\n if (this.engine) features.push(...this.engine.getAvailableFeatures(script, language));\n if (this.font.kern && features.indexOf('kern') === -1) features.push('kern');\n return features;\n }\n stringsForGlyph(gid) {\n let result = new Set;\n let codePoints = this.font._cmapProcessor.codePointsForGlyph(gid);\n for (let codePoint of codePoints)result.add(String.fromCodePoint(codePoint));\n if (this.engine && this.engine.stringsForGlyph) for (let string of this.engine.stringsForGlyph(gid))result.add(string);\n return Array.from(result);\n }\n constructor(font){\n this.font = font;\n this.unicodeLayoutEngine = null;\n this.kernProcessor = null;\n // Choose an advanced layout engine. We try the AAT morx table first since more\n // scripts are currently supported because the shaping logic is built into the font.\n if (this.font.morx) this.engine = new (0, $ba6dd74203be8728$export$2e2bcd8739ae039)(this.font);\n else if (this.font.GSUB || this.font.GPOS) this.engine = new (0, $a62492810de27e3d$export$2e2bcd8739ae039)(this.font);\n }\n}\n\n\n\n\n\n\nconst $f43aec954cdfdf21$var$SVG_COMMANDS = {\n moveTo: 'M',\n lineTo: 'L',\n quadraticCurveTo: 'Q',\n bezierCurveTo: 'C',\n closePath: 'Z'\n};\nclass $f43aec954cdfdf21$export$2e2bcd8739ae039 {\n /**\n * Compiles the path to a JavaScript function that can be applied with\n * a graphics context in order to render the path.\n * @return {string}\n */ toFunction() {\n return (ctx)=>{\n this.commands.forEach((c)=>{\n return ctx[c.command].apply(ctx, c.args);\n });\n };\n }\n /**\n * Converts the path to an SVG path data string\n * @return {string}\n */ toSVG() {\n let cmds = this.commands.map((c)=>{\n let args = c.args.map((arg)=>Math.round(arg * 100) / 100);\n return `${$f43aec954cdfdf21$var$SVG_COMMANDS[c.command]}${args.join(' ')}`;\n });\n return cmds.join('');\n }\n /**\n * Gets the \"control box\" of a path.\n * This is like the bounding box, but it includes all points including\n * control points of bezier segments and is much faster to compute than\n * the real bounding box.\n * @type {BBox}\n */ get cbox() {\n if (!this._cbox) {\n let cbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n for (let command of this.commands)for(let i = 0; i < command.args.length; i += 2)cbox.addPoint(command.args[i], command.args[i + 1]);\n this._cbox = Object.freeze(cbox);\n }\n return this._cbox;\n }\n /**\n * Gets the exact bounding box of the path by evaluating curve segments.\n * Slower to compute than the control box, but more accurate.\n * @type {BBox}\n */ get bbox() {\n if (this._bbox) return this._bbox;\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n let cx = 0, cy = 0;\n let f = (t)=>Math.pow(1 - t, 3) * p0[i] + 3 * Math.pow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * Math.pow(t, 2) * p2[i] + Math.pow(t, 3) * p3[i];\n for (let c of this.commands)switch(c.command){\n case 'moveTo':\n case 'lineTo':\n let [x, y] = c.args;\n bbox.addPoint(x, y);\n cx = x;\n cy = y;\n break;\n case 'quadraticCurveTo':\n case 'bezierCurveTo':\n if (c.command === 'quadraticCurveTo') {\n // http://fontforge.org/bezier.html\n var [qp1x, qp1y, p3x, p3y] = c.args;\n var cp1x = cx + 2 / 3 * (qp1x - cx); // CP1 = QP0 + 2/3 * (QP1-QP0)\n var cp1y = cy + 2 / 3 * (qp1y - cy);\n var cp2x = p3x + 2 / 3 * (qp1x - p3x); // CP2 = QP2 + 2/3 * (QP1-QP2)\n var cp2y = p3y + 2 / 3 * (qp1y - p3y);\n } else var [cp1x, cp1y, cp2x, cp2y, p3x, p3y] = c.args;\n // http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n bbox.addPoint(p3x, p3y);\n var p0 = [\n cx,\n cy\n ];\n var p1 = [\n cp1x,\n cp1y\n ];\n var p2 = [\n cp2x,\n cp2y\n ];\n var p3 = [\n p3x,\n p3y\n ];\n for(var i = 0; i <= 1; i++){\n let b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n let a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n if (a === 0) {\n if (b === 0) continue;\n let t = -c / b;\n if (0 < t && t < 1) {\n if (i === 0) bbox.addPoint(f(t), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t));\n }\n continue;\n }\n let b2ac = Math.pow(b, 2) - 4 * c * a;\n if (b2ac < 0) continue;\n let t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n if (0 < t1 && t1 < 1) {\n if (i === 0) bbox.addPoint(f(t1), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t1));\n }\n let t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n if (0 < t2 && t2 < 1) {\n if (i === 0) bbox.addPoint(f(t2), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t2));\n }\n }\n cx = p3x;\n cy = p3y;\n break;\n }\n return this._bbox = Object.freeze(bbox);\n }\n /**\n * Applies a mapping function to each point in the path.\n * @param {function} fn\n * @return {Path}\n */ mapPoints(fn) {\n let path = new $f43aec954cdfdf21$export$2e2bcd8739ae039;\n for (let c of this.commands){\n let args = [];\n for(let i = 0; i < c.args.length; i += 2){\n let [x, y] = fn(c.args[i], c.args[i + 1]);\n args.push(x, y);\n }\n path[c.command](...args);\n }\n return path;\n }\n /**\n * Transforms the path by the given matrix.\n */ transform(m0, m1, m2, m3, m4, m5) {\n return this.mapPoints((x, y)=>{\n const tx = m0 * x + m2 * y + m4;\n const ty = m1 * x + m3 * y + m5;\n return [\n tx,\n ty\n ];\n });\n }\n /**\n * Translates the path by the given offset.\n */ translate(x, y) {\n return this.transform(1, 0, 0, 1, x, y);\n }\n /**\n * Rotates the path by the given angle (in radians).\n */ rotate(angle) {\n let cos = Math.cos(angle);\n let sin = Math.sin(angle);\n return this.transform(cos, sin, -sin, cos, 0, 0);\n }\n /**\n * Scales the path.\n */ scale(scaleX, scaleY = scaleX) {\n return this.transform(scaleX, 0, 0, scaleY, 0, 0);\n }\n constructor(){\n this.commands = [];\n this._bbox = null;\n this._cbox = null;\n }\n}\nfor (let command of [\n 'moveTo',\n 'lineTo',\n 'quadraticCurveTo',\n 'bezierCurveTo',\n 'closePath'\n])$f43aec954cdfdf21$export$2e2bcd8739ae039.prototype[command] = function(...args) {\n this._bbox = this._cbox = null;\n this.commands.push({\n command: command,\n args: args\n });\n return this;\n};\n\n\n\nvar $7713b9b7b438dff8$export$2e2bcd8739ae039 = [\n '.notdef',\n '.null',\n 'nonmarkingreturn',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quotesingle',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\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 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'grave',\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 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n 'Adieresis',\n 'Aring',\n 'Ccedilla',\n 'Eacute',\n 'Ntilde',\n 'Odieresis',\n 'Udieresis',\n 'aacute',\n 'agrave',\n 'acircumflex',\n 'adieresis',\n 'atilde',\n 'aring',\n 'ccedilla',\n 'eacute',\n 'egrave',\n 'ecircumflex',\n 'edieresis',\n 'iacute',\n 'igrave',\n 'icircumflex',\n 'idieresis',\n 'ntilde',\n 'oacute',\n 'ograve',\n 'ocircumflex',\n 'odieresis',\n 'otilde',\n 'uacute',\n 'ugrave',\n 'ucircumflex',\n 'udieresis',\n 'dagger',\n 'degree',\n 'cent',\n 'sterling',\n 'section',\n 'bullet',\n 'paragraph',\n 'germandbls',\n 'registered',\n 'copyright',\n 'trademark',\n 'acute',\n 'dieresis',\n 'notequal',\n 'AE',\n 'Oslash',\n 'infinity',\n 'plusminus',\n 'lessequal',\n 'greaterequal',\n 'yen',\n 'mu',\n 'partialdiff',\n 'summation',\n 'product',\n 'pi',\n 'integral',\n 'ordfeminine',\n 'ordmasculine',\n 'Omega',\n 'ae',\n 'oslash',\n 'questiondown',\n 'exclamdown',\n 'logicalnot',\n 'radical',\n 'florin',\n 'approxequal',\n 'Delta',\n 'guillemotleft',\n 'guillemotright',\n 'ellipsis',\n 'nonbreakingspace',\n 'Agrave',\n 'Atilde',\n 'Otilde',\n 'OE',\n 'oe',\n 'endash',\n 'emdash',\n 'quotedblleft',\n 'quotedblright',\n 'quoteleft',\n 'quoteright',\n 'divide',\n 'lozenge',\n 'ydieresis',\n 'Ydieresis',\n 'fraction',\n 'currency',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n 'daggerdbl',\n 'periodcentered',\n 'quotesinglbase',\n 'quotedblbase',\n 'perthousand',\n 'Acircumflex',\n 'Ecircumflex',\n 'Aacute',\n 'Edieresis',\n 'Egrave',\n 'Iacute',\n 'Icircumflex',\n 'Idieresis',\n 'Igrave',\n 'Oacute',\n 'Ocircumflex',\n 'apple',\n 'Ograve',\n 'Uacute',\n 'Ucircumflex',\n 'Ugrave',\n 'dotlessi',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'ring',\n 'cedilla',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'Lslash',\n 'lslash',\n 'Scaron',\n 'scaron',\n 'Zcaron',\n 'zcaron',\n 'brokenbar',\n 'Eth',\n 'eth',\n 'Yacute',\n 'yacute',\n 'Thorn',\n 'thorn',\n 'minus',\n 'multiply',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'onehalf',\n 'onequarter',\n 'threequarters',\n 'franc',\n 'Gbreve',\n 'gbreve',\n 'Idotaccent',\n 'Scedilla',\n 'scedilla',\n 'Cacute',\n 'cacute',\n 'Ccaron',\n 'ccaron',\n 'dcroat'\n];\n\n\nclass $f92906be28e61769$export$2e2bcd8739ae039 {\n _getPath() {\n return new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039)();\n }\n _getCBox() {\n return this.path.cbox;\n }\n _getBBox() {\n return this.path.bbox;\n }\n _getTableMetrics(table) {\n if (this.id < table.metrics.length) return table.metrics.get(this.id);\n let metric = table.metrics.get(table.metrics.length - 1);\n let res = {\n advance: metric ? metric.advance : 0,\n bearing: table.bearings.get(this.id - table.metrics.length) || 0\n };\n return res;\n }\n _getMetrics(cbox) {\n if (this._metrics) return this._metrics;\n let { advance: advanceWidth, bearing: leftBearing } = this._getTableMetrics(this._font.hmtx);\n // For vertical metrics, use vmtx if available, or fall back to global data from OS/2 or hhea\n if (this._font.vmtx) var { advance: advanceHeight, bearing: topBearing } = this._getTableMetrics(this._font.vmtx);\n else {\n let os2;\n if (typeof cbox === 'undefined' || cbox === null) ({ cbox: cbox } = this);\n if ((os2 = this._font['OS/2']) && os2.version > 0) {\n var advanceHeight = Math.abs(os2.typoAscender - os2.typoDescender);\n var topBearing = os2.typoAscender - cbox.maxY;\n } else {\n let { hhea: hhea } = this._font;\n var advanceHeight = Math.abs(hhea.ascent - hhea.descent);\n var topBearing = hhea.ascent - cbox.maxY;\n }\n }\n if (this._font._variationProcessor && this._font.HVAR) advanceWidth += this._font._variationProcessor.getAdvanceAdjustment(this.id, this._font.HVAR);\n return this._metrics = {\n advanceWidth: advanceWidth,\n advanceHeight: advanceHeight,\n leftBearing: leftBearing,\n topBearing: topBearing\n };\n }\n /**\n * The glyph’s control box.\n * This is often the same as the bounding box, but is faster to compute.\n * Because of the way bezier curves are defined, some of the control points\n * can be outside of the bounding box. Where `bbox` takes this into account,\n * `cbox` does not. Thus, cbox is less accurate, but faster to compute.\n * See [here](http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html#section-2)\n * for a more detailed description.\n *\n * @type {BBox}\n */ get cbox() {\n return this._getCBox();\n }\n /**\n * The glyph’s bounding box, i.e. the rectangle that encloses the\n * glyph outline as tightly as possible.\n * @type {BBox}\n */ get bbox() {\n return this._getBBox();\n }\n /**\n * A vector Path object representing the glyph outline.\n * @type {Path}\n */ get path() {\n // Cache the path so we only decode it once\n // Decoding is actually performed by subclasses\n return this._getPath();\n }\n /**\n * Returns a path scaled to the given font size.\n * @param {number} size\n * @return {Path}\n */ getScaledPath(size) {\n let scale = 1 / this._font.unitsPerEm * size;\n return this.path.scale(scale);\n }\n /**\n * The glyph's advance width.\n * @type {number}\n */ get advanceWidth() {\n return this._getMetrics().advanceWidth;\n }\n /**\n * The glyph's advance height.\n * @type {number}\n */ get advanceHeight() {\n return this._getMetrics().advanceHeight;\n }\n get ligatureCaretPositions() {}\n _getName() {\n let { post: post } = this._font;\n if (!post) return null;\n switch(post.version){\n case 1:\n return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[this.id];\n case 2:\n let id = post.glyphNameIndex[this.id];\n if (id < (0, $7713b9b7b438dff8$export$2e2bcd8739ae039).length) return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[id];\n return post.names[id - (0, $7713b9b7b438dff8$export$2e2bcd8739ae039).length];\n case 2.5:\n return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[this.id + post.offsets[this.id]];\n case 4:\n return String.fromCharCode(post.map[this.id]);\n }\n }\n /**\n * The glyph's name\n * @type {string}\n */ get name() {\n return this._getName();\n }\n /**\n * Renders the glyph to the given graphics context, at the specified font size.\n * @param {CanvasRenderingContext2d} ctx\n * @param {number} size\n */ render(ctx, size) {\n ctx.save();\n let scale = 1 / this._font.head.unitsPerEm * size;\n ctx.scale(scale, scale);\n let fn = this.path.toFunction();\n fn(ctx);\n ctx.fill();\n ctx.restore();\n }\n constructor(id, codePoints, font){\n /**\n * The glyph id in the font\n * @type {number}\n */ this.id = id;\n /**\n * An array of unicode code points that are represented by this glyph.\n * There can be multiple code points in the case of ligatures and other glyphs\n * that represent multiple visual characters.\n * @type {number[]}\n */ this.codePoints = codePoints;\n this._font = font;\n // TODO: get this info from GDEF if available\n this.isMark = this.codePoints.length > 0 && this.codePoints.every((0, $6uUbQ$isMark));\n this.isLigature = this.codePoints.length > 1;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"cbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"bbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"path\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"advanceWidth\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"advanceHeight\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"name\", null);\n\n\n\n\n\n// The header for both simple and composite glyphs\nlet $69aac16029968692$var$GlyfHeader = new $6uUbQ$Struct({\n numberOfContours: $6uUbQ$int16,\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16\n});\n// Flags for simple glyphs\nconst $69aac16029968692$var$ON_CURVE = 1;\nconst $69aac16029968692$var$X_SHORT_VECTOR = 2;\nconst $69aac16029968692$var$Y_SHORT_VECTOR = 4;\nconst $69aac16029968692$var$REPEAT = 8;\nconst $69aac16029968692$var$SAME_X = 16;\nconst $69aac16029968692$var$SAME_Y = 32;\n// Flags for composite glyphs\nconst $69aac16029968692$var$ARG_1_AND_2_ARE_WORDS = 1;\nconst $69aac16029968692$var$ARGS_ARE_XY_VALUES = 2;\nconst $69aac16029968692$var$ROUND_XY_TO_GRID = 4;\nconst $69aac16029968692$var$WE_HAVE_A_SCALE = 8;\nconst $69aac16029968692$var$MORE_COMPONENTS = 32;\nconst $69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE = 64;\nconst $69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO = 128;\nconst $69aac16029968692$var$WE_HAVE_INSTRUCTIONS = 256;\nconst $69aac16029968692$var$USE_MY_METRICS = 512;\nconst $69aac16029968692$var$OVERLAP_COMPOUND = 1024;\nconst $69aac16029968692$var$SCALED_COMPONENT_OFFSET = 2048;\nconst $69aac16029968692$var$UNSCALED_COMPONENT_OFFSET = 4096;\nclass $69aac16029968692$export$baf26146a414f24a {\n copy() {\n return new $69aac16029968692$export$baf26146a414f24a(this.onCurve, this.endContour, this.x, this.y);\n }\n constructor(onCurve, endContour, x = 0, y = 0){\n this.onCurve = onCurve;\n this.endContour = endContour;\n this.x = x;\n this.y = y;\n }\n}\n// Represents a component in a composite glyph\nclass $69aac16029968692$var$Component {\n constructor(glyphID, dx, dy){\n this.glyphID = glyphID;\n this.dx = dx;\n this.dy = dy;\n this.pos = 0;\n this.scaleX = this.scaleY = 1;\n this.scale01 = this.scale10 = 0;\n }\n}\nclass $69aac16029968692$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n // Parses just the glyph header and returns the bounding box\n _getCBox(internal) {\n // We need to decode the glyph if variation processing is requested,\n // so it's easier just to recompute the path's cbox after decoding.\n if (this._font._variationProcessor && !internal) return this.path.cbox;\n let stream = this._font._getTableStream('glyf');\n stream.pos += this._font.loca.offsets[this.id];\n let glyph = $69aac16029968692$var$GlyfHeader.decode(stream);\n let cbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)(glyph.xMin, glyph.yMin, glyph.xMax, glyph.yMax);\n return Object.freeze(cbox);\n }\n // Parses a single glyph coordinate\n _parseGlyphCoord(stream, prev, short, same) {\n if (short) {\n var val = stream.readUInt8();\n if (!same) val = -val;\n val += prev;\n } else if (same) var val = prev;\n else var val = prev + stream.readInt16BE();\n return val;\n }\n // Decodes the glyph data into points for simple glyphs,\n // or components for composite glyphs\n _decode() {\n let glyfPos = this._font.loca.offsets[this.id];\n let nextPos = this._font.loca.offsets[this.id + 1];\n // Nothing to do if there is no data for this glyph\n if (glyfPos === nextPos) return null;\n let stream = this._font._getTableStream('glyf');\n stream.pos += glyfPos;\n let startPos = stream.pos;\n let glyph = $69aac16029968692$var$GlyfHeader.decode(stream);\n if (glyph.numberOfContours > 0) this._decodeSimple(glyph, stream);\n else if (glyph.numberOfContours < 0) this._decodeComposite(glyph, stream, startPos);\n return glyph;\n }\n _decodeSimple(glyph, stream) {\n // this is a simple glyph\n glyph.points = [];\n let endPtsOfContours = new $6uUbQ$Array($6uUbQ$uint16, glyph.numberOfContours).decode(stream);\n glyph.instructions = new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16).decode(stream);\n let flags = [];\n let numCoords = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n while(flags.length < numCoords){\n var flag = stream.readUInt8();\n flags.push(flag);\n // check for repeat flag\n if (flag & $69aac16029968692$var$REPEAT) {\n let count = stream.readUInt8();\n for(let j = 0; j < count; j++)flags.push(flag);\n }\n }\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n let point = new $69aac16029968692$export$baf26146a414f24a(!!(flag & $69aac16029968692$var$ON_CURVE), endPtsOfContours.indexOf(i) >= 0, 0, 0);\n glyph.points.push(point);\n }\n let px = 0;\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n glyph.points[i].x = px = this._parseGlyphCoord(stream, px, flag & $69aac16029968692$var$X_SHORT_VECTOR, flag & $69aac16029968692$var$SAME_X);\n }\n let py = 0;\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n glyph.points[i].y = py = this._parseGlyphCoord(stream, py, flag & $69aac16029968692$var$Y_SHORT_VECTOR, flag & $69aac16029968692$var$SAME_Y);\n }\n if (this._font._variationProcessor) {\n let points = glyph.points.slice();\n points.push(...this._getPhantomPoints(glyph));\n this._font._variationProcessor.transformPoints(this.id, points);\n glyph.phantomPoints = points.slice(-4);\n }\n return;\n }\n _decodeComposite(glyph, stream, offset = 0) {\n // this is a composite glyph\n glyph.components = [];\n let haveInstructions = false;\n let flags = $69aac16029968692$var$MORE_COMPONENTS;\n while(flags & $69aac16029968692$var$MORE_COMPONENTS){\n flags = stream.readUInt16BE();\n let gPos = stream.pos - offset;\n let glyphID = stream.readUInt16BE();\n if (!haveInstructions) haveInstructions = (flags & $69aac16029968692$var$WE_HAVE_INSTRUCTIONS) !== 0;\n if (flags & $69aac16029968692$var$ARG_1_AND_2_ARE_WORDS) {\n var dx = stream.readInt16BE();\n var dy = stream.readInt16BE();\n } else {\n var dx = stream.readInt8();\n var dy = stream.readInt8();\n }\n var component = new $69aac16029968692$var$Component(glyphID, dx, dy);\n component.pos = gPos;\n if (flags & $69aac16029968692$var$WE_HAVE_A_SCALE) // fixed number with 14 bits of fraction\n component.scaleX = component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n else if (flags & $69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE) {\n component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n } else if (flags & $69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO) {\n component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scale01 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scale10 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n }\n glyph.components.push(component);\n }\n if (this._font._variationProcessor) {\n let points = [];\n for(let j = 0; j < glyph.components.length; j++){\n var component = glyph.components[j];\n points.push(new $69aac16029968692$export$baf26146a414f24a(true, true, component.dx, component.dy));\n }\n points.push(...this._getPhantomPoints(glyph));\n this._font._variationProcessor.transformPoints(this.id, points);\n glyph.phantomPoints = points.splice(-4, 4);\n for(let i = 0; i < points.length; i++){\n let point = points[i];\n glyph.components[i].dx = point.x;\n glyph.components[i].dy = point.y;\n }\n }\n return haveInstructions;\n }\n _getPhantomPoints(glyph) {\n let cbox = this._getCBox(true);\n if (this._metrics == null) this._metrics = (0, $f92906be28e61769$export$2e2bcd8739ae039).prototype._getMetrics.call(this, cbox);\n let { advanceWidth: advanceWidth, advanceHeight: advanceHeight, leftBearing: leftBearing, topBearing: topBearing } = this._metrics;\n return [\n new $69aac16029968692$export$baf26146a414f24a(false, true, glyph.xMin - leftBearing, 0),\n new $69aac16029968692$export$baf26146a414f24a(false, true, glyph.xMin - leftBearing + advanceWidth, 0),\n new $69aac16029968692$export$baf26146a414f24a(false, true, 0, glyph.yMax + topBearing),\n new $69aac16029968692$export$baf26146a414f24a(false, true, 0, glyph.yMax + topBearing + advanceHeight)\n ];\n }\n // Decodes font data, resolves composite glyphs, and returns an array of contours\n _getContours() {\n let glyph = this._decode();\n if (!glyph) return [];\n let points = [];\n if (glyph.numberOfContours < 0) // resolve composite glyphs\n for (let component of glyph.components){\n let contours = this._font.getGlyph(component.glyphID)._getContours();\n for(let i = 0; i < contours.length; i++){\n let contour = contours[i];\n for(let j = 0; j < contour.length; j++){\n let point = contour[j];\n let x = point.x * component.scaleX + point.y * component.scale01 + component.dx;\n let y = point.y * component.scaleY + point.x * component.scale10 + component.dy;\n points.push(new $69aac16029968692$export$baf26146a414f24a(point.onCurve, point.endContour, x, y));\n }\n }\n }\n else points = glyph.points || [];\n // Recompute and cache metrics if we performed variation processing, and don't have an HVAR table\n if (glyph.phantomPoints && !this._font.directory.tables.HVAR) {\n this._metrics.advanceWidth = glyph.phantomPoints[1].x - glyph.phantomPoints[0].x;\n this._metrics.advanceHeight = glyph.phantomPoints[3].y - glyph.phantomPoints[2].y;\n this._metrics.leftBearing = glyph.xMin - glyph.phantomPoints[0].x;\n this._metrics.topBearing = glyph.phantomPoints[2].y - glyph.yMax;\n }\n let contours = [];\n let cur = [];\n for(let k = 0; k < points.length; k++){\n var point = points[k];\n cur.push(point);\n if (point.endContour) {\n contours.push(cur);\n cur = [];\n }\n }\n return contours;\n }\n _getMetrics() {\n if (this._metrics) return this._metrics;\n let cbox = this._getCBox(true);\n super._getMetrics(cbox);\n if (this._font._variationProcessor && !this._font.HVAR) // No HVAR table, decode the glyph. This triggers recomputation of metrics.\n this.path;\n return this._metrics;\n }\n // Converts contours to a Path object that can be rendered\n _getPath() {\n let contours = this._getContours();\n let path = new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039);\n for(let i = 0; i < contours.length; i++){\n let contour = contours[i];\n let firstPt = contour[0];\n let lastPt = contour[contour.length - 1];\n let start = 0;\n if (firstPt.onCurve) {\n // The first point will be consumed by the moveTo command, so skip in the loop\n var curvePt = null;\n start = 1;\n } else {\n if (lastPt.onCurve) // Start at the last point if the first point is off curve and the last point is on curve\n firstPt = lastPt;\n else // Start at the middle if both the first and last points are off curve\n firstPt = new $69aac16029968692$export$baf26146a414f24a(false, false, (firstPt.x + lastPt.x) / 2, (firstPt.y + lastPt.y) / 2);\n var curvePt = firstPt;\n }\n path.moveTo(firstPt.x, firstPt.y);\n for(let j = start; j < contour.length; j++){\n let pt = contour[j];\n let prevPt = j === 0 ? firstPt : contour[j - 1];\n if (prevPt.onCurve && pt.onCurve) path.lineTo(pt.x, pt.y);\n else if (prevPt.onCurve && !pt.onCurve) var curvePt = pt;\n else if (!prevPt.onCurve && !pt.onCurve) {\n let midX = (prevPt.x + pt.x) / 2;\n let midY = (prevPt.y + pt.y) / 2;\n path.quadraticCurveTo(prevPt.x, prevPt.y, midX, midY);\n var curvePt = pt;\n } else if (!prevPt.onCurve && pt.onCurve) {\n path.quadraticCurveTo(curvePt.x, curvePt.y, pt.x, pt.y);\n var curvePt = null;\n } else throw new Error(\"Unknown TTF path state\");\n }\n // Connect the first and last points\n if (curvePt) path.quadraticCurveTo(curvePt.x, curvePt.y, firstPt.x, firstPt.y);\n path.closePath();\n }\n return path;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'TTF');\n }\n}\n\n\n\n\n\nclass $62cc5109c6101893$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n _getName() {\n if (this._font.CFF2) return super._getName();\n return this._font['CFF '].getGlyphName(this.id);\n }\n bias(s) {\n if (s.length < 1240) return 107;\n else if (s.length < 33900) return 1131;\n else return 32768;\n }\n _getPath() {\n let cff = this._font.CFF2 || this._font['CFF '];\n let { stream: stream } = cff;\n let str = cff.topDict.CharStrings[this.id];\n let end = str.offset + str.length;\n stream.pos = str.offset;\n let path = new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039);\n let stack = [];\n let trans = [];\n let width = null;\n let nStems = 0;\n let x = 0, y = 0;\n let usedGsubrs;\n let usedSubrs;\n let open = false;\n this._usedGsubrs = usedGsubrs = {};\n this._usedSubrs = usedSubrs = {};\n let gsubrs = cff.globalSubrIndex || [];\n let gsubrsBias = this.bias(gsubrs);\n let privateDict = cff.privateDictForGlyph(this.id) || {};\n let subrs = privateDict.Subrs || [];\n let subrsBias = this.bias(subrs);\n let vstore = cff.topDict.vstore && cff.topDict.vstore.itemVariationStore;\n let vsindex = privateDict.vsindex;\n let variationProcessor = this._font._variationProcessor;\n function checkWidth() {\n if (width == null) width = stack.shift() + privateDict.nominalWidthX;\n }\n function parseStems() {\n if (stack.length % 2 !== 0) checkWidth();\n nStems += stack.length >> 1;\n return stack.length = 0;\n }\n function moveTo(x, y) {\n if (open) path.closePath();\n path.moveTo(x, y);\n open = true;\n }\n let parse = function() {\n while(stream.pos < end){\n let op = stream.readUInt8();\n if (op < 32) {\n let index, subr, phase;\n let c1x, c1y, c2x, c2y, c3x, c3y;\n let c4x, c4y, c5x, c5y, c6x, c6y;\n let pts;\n switch(op){\n case 1:\n case 3:\n case 18:\n case 23:\n parseStems();\n break;\n case 4:\n if (stack.length > 1) checkWidth();\n y += stack.shift();\n moveTo(x, y);\n break;\n case 5:\n while(stack.length >= 2){\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n break;\n case 6:\n case 7:\n phase = op === 6;\n while(stack.length >= 1){\n if (phase) x += stack.shift();\n else y += stack.shift();\n path.lineTo(x, y);\n phase = !phase;\n }\n break;\n case 8:\n while(stack.length > 0){\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 10:\n index = stack.pop() + subrsBias;\n subr = subrs[index];\n if (subr) {\n usedSubrs[index] = true;\n let p = stream.pos;\n let e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n break;\n case 11:\n if (cff.version >= 2) break;\n return;\n case 14:\n if (cff.version >= 2) break;\n if (stack.length > 0) checkWidth();\n if (open) {\n path.closePath();\n open = false;\n }\n break;\n case 15:\n if (cff.version < 2) throw new Error('vsindex operator not supported in CFF v1');\n vsindex = stack.pop();\n break;\n case 16:\n {\n if (cff.version < 2) throw new Error('blend operator not supported in CFF v1');\n if (!variationProcessor) throw new Error('blend operator in non-variation font');\n let blendVector = variationProcessor.getBlendVector(vstore, vsindex);\n let numBlends = stack.pop();\n let numOperands = numBlends * blendVector.length;\n let delta = stack.length - numOperands;\n let base = delta - numBlends;\n for(let i = 0; i < numBlends; i++){\n let sum = stack[base + i];\n for(let j = 0; j < blendVector.length; j++)sum += blendVector[j] * stack[delta++];\n stack[base + i] = sum;\n }\n while(numOperands--)stack.pop();\n break;\n }\n case 19:\n case 20:\n parseStems();\n stream.pos += nStems + 7 >> 3;\n break;\n case 21:\n if (stack.length > 2) checkWidth();\n x += stack.shift();\n y += stack.shift();\n moveTo(x, y);\n break;\n case 22:\n if (stack.length > 1) checkWidth();\n x += stack.shift();\n moveTo(x, y);\n break;\n case 24:\n while(stack.length >= 8){\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n break;\n case 25:\n while(stack.length >= 8){\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n break;\n case 26:\n if (stack.length % 2) x += stack.shift();\n while(stack.length >= 4){\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x;\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 27:\n if (stack.length % 2) y += stack.shift();\n while(stack.length >= 4){\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 28:\n stack.push(stream.readInt16BE());\n break;\n case 29:\n index = stack.pop() + gsubrsBias;\n subr = gsubrs[index];\n if (subr) {\n usedGsubrs[index] = true;\n let p = stream.pos;\n let e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n break;\n case 30:\n case 31:\n phase = op === 31;\n while(stack.length >= 4){\n if (phase) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n } else {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n }\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n phase = !phase;\n }\n break;\n case 12:\n op = stream.readUInt8();\n switch(op){\n case 3:\n let a = stack.pop();\n let b = stack.pop();\n stack.push(a && b ? 1 : 0);\n break;\n case 4:\n a = stack.pop();\n b = stack.pop();\n stack.push(a || b ? 1 : 0);\n break;\n case 5:\n a = stack.pop();\n stack.push(a ? 0 : 1);\n break;\n case 9:\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case 10:\n a = stack.pop();\n b = stack.pop();\n stack.push(a + b);\n break;\n case 11:\n a = stack.pop();\n b = stack.pop();\n stack.push(a - b);\n break;\n case 12:\n a = stack.pop();\n b = stack.pop();\n stack.push(a / b);\n break;\n case 14:\n a = stack.pop();\n stack.push(-a);\n break;\n case 15:\n a = stack.pop();\n b = stack.pop();\n stack.push(a === b ? 1 : 0);\n break;\n case 18:\n stack.pop();\n break;\n case 20:\n let val = stack.pop();\n let idx = stack.pop();\n trans[idx] = val;\n break;\n case 21:\n idx = stack.pop();\n stack.push(trans[idx] || 0);\n break;\n case 22:\n let s1 = stack.pop();\n let s2 = stack.pop();\n let v1 = stack.pop();\n let v2 = stack.pop();\n stack.push(v1 <= v2 ? s1 : s2);\n break;\n case 23:\n stack.push(Math.random());\n break;\n case 24:\n a = stack.pop();\n b = stack.pop();\n stack.push(a * b);\n break;\n case 26:\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case 27:\n a = stack.pop();\n stack.push(a, a);\n break;\n case 28:\n a = stack.pop();\n b = stack.pop();\n stack.push(b, a);\n break;\n case 29:\n idx = stack.pop();\n if (idx < 0) idx = 0;\n else if (idx > stack.length - 1) idx = stack.length - 1;\n stack.push(stack[idx]);\n break;\n case 30:\n let n = stack.pop();\n let j = stack.pop();\n if (j >= 0) while(j > 0){\n var t = stack[n - 1];\n for(let i = n - 2; i >= 0; i--)stack[i + 1] = stack[i];\n stack[0] = t;\n j--;\n }\n else while(j < 0){\n var t = stack[0];\n for(let i = 0; i <= n; i++)stack[i] = stack[i + 1];\n stack[n - 1] = t;\n j++;\n }\n break;\n case 34:\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y;\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n case 35:\n pts = [];\n for(let i = 0; i <= 5; i++){\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n path.bezierCurveTo(...pts.slice(0, 6));\n path.bezierCurveTo(...pts.slice(6));\n stack.shift(); // fd\n break;\n case 36:\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y + stack.shift();\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n case 37:\n let startx = x;\n let starty = y;\n pts = [];\n for(let i = 0; i <= 4; i++){\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n if (Math.abs(x - startx) > Math.abs(y - starty)) {\n x += stack.shift();\n y = starty;\n } else {\n x = startx;\n y += stack.shift();\n }\n pts.push(x, y);\n path.bezierCurveTo(...pts.slice(0, 6));\n path.bezierCurveTo(...pts.slice(6));\n break;\n default:\n throw new Error(`Unknown op: 12 ${op}`);\n }\n break;\n default:\n throw new Error(`Unknown op: ${op}`);\n }\n } else if (op < 247) stack.push(op - 139);\n else if (op < 251) {\n var b1 = stream.readUInt8();\n stack.push((op - 247) * 256 + b1 + 108);\n } else if (op < 255) {\n var b1 = stream.readUInt8();\n stack.push(-(op - 251) * 256 - b1 - 108);\n } else stack.push(stream.readInt32BE() / 65536);\n }\n };\n parse();\n if (open) path.closePath();\n return path;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'CFF');\n }\n}\n\n\n\n\n\nlet $25d8f049c222084c$var$SBIXImage = new $6uUbQ$Struct({\n originX: $6uUbQ$uint16,\n originY: $6uUbQ$uint16,\n type: new $6uUbQ$String(4),\n data: new $6uUbQ$Buffer((t)=>t.parent.buflen - t._currentOffset)\n});\nclass $25d8f049c222084c$export$2e2bcd8739ae039 extends (0, $69aac16029968692$export$2e2bcd8739ae039) {\n /**\n * Returns an object representing a glyph image at the given point size.\n * The object has a data property with a Buffer containing the actual image data,\n * along with the image type, and origin.\n *\n * @param {number} size\n * @return {object}\n */ getImageForSize(size) {\n for(let i = 0; i < this._font.sbix.imageTables.length; i++){\n var table = this._font.sbix.imageTables[i];\n if (table.ppem >= size) break;\n }\n let offsets = table.imageOffsets;\n let start = offsets[this.id];\n let end = offsets[this.id + 1];\n if (start === end) return null;\n this._font.stream.pos = start;\n return $25d8f049c222084c$var$SBIXImage.decode(this._font.stream, {\n buflen: end - start\n });\n }\n render(ctx, size) {\n let img = this.getImageForSize(size);\n if (img != null) {\n let scale = size / this._font.unitsPerEm;\n ctx.image(img.data, {\n height: size,\n x: img.originX,\n y: (this.bbox.minY - img.originY) * scale\n });\n }\n if (this._font.sbix.flags.renderOutlines) super.render(ctx, size);\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'SBIX');\n }\n}\n\n\n\n\n\nclass $0d411f0165859681$var$COLRLayer {\n constructor(glyph, color){\n this.glyph = glyph;\n this.color = color;\n }\n}\nclass $0d411f0165859681$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n _getBBox() {\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n for(let i = 0; i < this.layers.length; i++){\n let layer = this.layers[i];\n let b = layer.glyph.bbox;\n bbox.addPoint(b.minX, b.minY);\n bbox.addPoint(b.maxX, b.maxY);\n }\n return bbox;\n }\n /**\n * Returns an array of objects containing the glyph and color for\n * each layer in the composite color glyph.\n * @type {object[]}\n */ get layers() {\n let cpal = this._font.CPAL;\n let colr = this._font.COLR;\n let low = 0;\n let high = colr.baseGlyphRecord.length - 1;\n while(low <= high){\n let mid = low + high >> 1;\n var rec = colr.baseGlyphRecord[mid];\n if (this.id < rec.gid) high = mid - 1;\n else if (this.id > rec.gid) low = mid + 1;\n else {\n var baseLayer = rec;\n break;\n }\n }\n // if base glyph not found in COLR table,\n // default to normal glyph from glyf or CFF\n if (baseLayer == null) {\n var g = this._font._getBaseGlyph(this.id);\n var color = {\n red: 0,\n green: 0,\n blue: 0,\n alpha: 255\n };\n return [\n new $0d411f0165859681$var$COLRLayer(g, color)\n ];\n }\n // otherwise, return an array of all the layers\n let layers = [];\n for(let i = baseLayer.firstLayerIndex; i < baseLayer.firstLayerIndex + baseLayer.numLayers; i++){\n var rec = colr.layerRecords[i];\n var color = cpal.colorRecords[rec.paletteIndex];\n var g = this._font._getBaseGlyph(rec.gid);\n layers.push(new $0d411f0165859681$var$COLRLayer(g, color));\n }\n return layers;\n }\n render(ctx, size) {\n for (let { glyph: glyph, color: color } of this.layers){\n ctx.fillColor([\n color.red,\n color.green,\n color.blue\n ], color.alpha / 255 * 100);\n glyph.render(ctx, size);\n }\n return;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'COLR');\n }\n}\n\n\nconst $0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS = 0x8000;\nconst $0bb840cac04e911b$var$TUPLE_COUNT_MASK = 0x0fff;\nconst $0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD = 0x8000;\nconst $0bb840cac04e911b$var$INTERMEDIATE_TUPLE = 0x4000;\nconst $0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS = 0x2000;\nconst $0bb840cac04e911b$var$TUPLE_INDEX_MASK = 0x0fff;\nconst $0bb840cac04e911b$var$POINTS_ARE_WORDS = 0x80;\nconst $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK = 0x7f;\nconst $0bb840cac04e911b$var$DELTAS_ARE_ZERO = 0x80;\nconst $0bb840cac04e911b$var$DELTAS_ARE_WORDS = 0x40;\nconst $0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK = 0x3f;\nclass $0bb840cac04e911b$export$2e2bcd8739ae039 {\n normalizeCoords(coords) {\n // the default mapping is linear along each axis, in two segments:\n // from the minValue to defaultValue, and from defaultValue to maxValue.\n let normalized = [];\n for(var i = 0; i < this.font.fvar.axis.length; i++){\n let axis = this.font.fvar.axis[i];\n if (coords[i] < axis.defaultValue) normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.defaultValue - axis.minValue + Number.EPSILON));\n else normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.maxValue - axis.defaultValue + Number.EPSILON));\n }\n // if there is an avar table, the normalized value is calculated\n // by interpolating between the two nearest mapped values.\n if (this.font.avar) for(var i = 0; i < this.font.avar.segment.length; i++){\n let segment = this.font.avar.segment[i];\n for(let j = 0; j < segment.correspondence.length; j++){\n let pair = segment.correspondence[j];\n if (j >= 1 && normalized[i] < pair.fromCoord) {\n let prev = segment.correspondence[j - 1];\n normalized[i] = ((normalized[i] - prev.fromCoord) * (pair.toCoord - prev.toCoord) + Number.EPSILON) / (pair.fromCoord - prev.fromCoord + Number.EPSILON) + prev.toCoord;\n break;\n }\n }\n }\n return normalized;\n }\n transformPoints(gid, glyphPoints) {\n if (!this.font.fvar || !this.font.gvar) return;\n let { gvar: gvar } = this.font;\n if (gid >= gvar.glyphCount) return;\n let offset = gvar.offsets[gid];\n if (offset === gvar.offsets[gid + 1]) return;\n // Read the gvar data for this glyph\n let { stream: stream } = this.font;\n stream.pos = offset;\n if (stream.pos >= stream.length) return;\n let tupleCount = stream.readUInt16BE();\n let offsetToData = offset + stream.readUInt16BE();\n if (tupleCount & $0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS) {\n var here = stream.pos;\n stream.pos = offsetToData;\n var sharedPoints = this.decodePoints();\n offsetToData = stream.pos;\n stream.pos = here;\n }\n let origPoints = glyphPoints.map((pt)=>pt.copy());\n tupleCount &= $0bb840cac04e911b$var$TUPLE_COUNT_MASK;\n for(let i = 0; i < tupleCount; i++){\n let tupleDataSize = stream.readUInt16BE();\n let tupleIndex = stream.readUInt16BE();\n if (tupleIndex & $0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD) {\n var tupleCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)tupleCoords.push(stream.readInt16BE() / 16384);\n } else {\n if ((tupleIndex & $0bb840cac04e911b$var$TUPLE_INDEX_MASK) >= gvar.globalCoordCount) throw new Error('Invalid gvar table');\n var tupleCoords = gvar.globalCoords[tupleIndex & $0bb840cac04e911b$var$TUPLE_INDEX_MASK];\n }\n if (tupleIndex & $0bb840cac04e911b$var$INTERMEDIATE_TUPLE) {\n var startCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)startCoords.push(stream.readInt16BE() / 16384);\n var endCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)endCoords.push(stream.readInt16BE() / 16384);\n }\n // Get the factor at which to apply this tuple\n let factor = this.tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords);\n if (factor === 0) {\n offsetToData += tupleDataSize;\n continue;\n }\n var here = stream.pos;\n stream.pos = offsetToData;\n if (tupleIndex & $0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS) var points = this.decodePoints();\n else var points = sharedPoints;\n // points.length = 0 means there are deltas for all points\n let nPoints = points.length === 0 ? glyphPoints.length : points.length;\n let xDeltas = this.decodeDeltas(nPoints);\n let yDeltas = this.decodeDeltas(nPoints);\n if (points.length === 0) for(let i = 0; i < glyphPoints.length; i++){\n var point = glyphPoints[i];\n point.x += Math.round(xDeltas[i] * factor);\n point.y += Math.round(yDeltas[i] * factor);\n }\n else {\n let outPoints = origPoints.map((pt)=>pt.copy());\n let hasDelta = glyphPoints.map(()=>false);\n for(let i = 0; i < points.length; i++){\n let idx = points[i];\n if (idx < glyphPoints.length) {\n let point = outPoints[idx];\n hasDelta[idx] = true;\n point.x += xDeltas[i] * factor;\n point.y += yDeltas[i] * factor;\n }\n }\n this.interpolateMissingDeltas(outPoints, origPoints, hasDelta);\n for(let i = 0; i < glyphPoints.length; i++){\n let deltaX = outPoints[i].x - origPoints[i].x;\n let deltaY = outPoints[i].y - origPoints[i].y;\n glyphPoints[i].x = Math.round(glyphPoints[i].x + deltaX);\n glyphPoints[i].y = Math.round(glyphPoints[i].y + deltaY);\n }\n }\n offsetToData += tupleDataSize;\n stream.pos = here;\n }\n }\n decodePoints() {\n let stream = this.font.stream;\n let count = stream.readUInt8();\n if (count & $0bb840cac04e911b$var$POINTS_ARE_WORDS) count = (count & $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK) << 8 | stream.readUInt8();\n let points = new Uint16Array(count);\n let i = 0;\n let point = 0;\n while(i < count){\n let run = stream.readUInt8();\n let runCount = (run & $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK) + 1;\n let fn = run & $0bb840cac04e911b$var$POINTS_ARE_WORDS ? stream.readUInt16 : stream.readUInt8;\n for(let j = 0; j < runCount && i < count; j++){\n point += fn.call(stream);\n points[i++] = point;\n }\n }\n return points;\n }\n decodeDeltas(count) {\n let stream = this.font.stream;\n let i = 0;\n let deltas = new Int16Array(count);\n while(i < count){\n let run = stream.readUInt8();\n let runCount = (run & $0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK) + 1;\n if (run & $0bb840cac04e911b$var$DELTAS_ARE_ZERO) i += runCount;\n else {\n let fn = run & $0bb840cac04e911b$var$DELTAS_ARE_WORDS ? stream.readInt16BE : stream.readInt8;\n for(let j = 0; j < runCount && i < count; j++)deltas[i++] = fn.call(stream);\n }\n }\n return deltas;\n }\n tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords) {\n let normalized = this.normalizedCoords;\n let { gvar: gvar } = this.font;\n let factor = 1;\n for(let i = 0; i < gvar.axisCount; i++){\n if (tupleCoords[i] === 0) continue;\n if (normalized[i] === 0) return 0;\n if ((tupleIndex & $0bb840cac04e911b$var$INTERMEDIATE_TUPLE) === 0) {\n if (normalized[i] < Math.min(0, tupleCoords[i]) || normalized[i] > Math.max(0, tupleCoords[i])) return 0;\n factor = (factor * normalized[i] + Number.EPSILON) / (tupleCoords[i] + Number.EPSILON);\n } else {\n if (normalized[i] < startCoords[i] || normalized[i] > endCoords[i]) return 0;\n else if (normalized[i] < tupleCoords[i]) factor = factor * (normalized[i] - startCoords[i] + Number.EPSILON) / (tupleCoords[i] - startCoords[i] + Number.EPSILON);\n else factor = factor * (endCoords[i] - normalized[i] + Number.EPSILON) / (endCoords[i] - tupleCoords[i] + Number.EPSILON);\n }\n }\n return factor;\n }\n // Interpolates points without delta values.\n // Needed for the Ø and Q glyphs in Skia.\n // Algorithm from Freetype.\n interpolateMissingDeltas(points, inPoints, hasDelta) {\n if (points.length === 0) return;\n let point = 0;\n while(point < points.length){\n let firstPoint = point;\n // find the end point of the contour\n let endPoint = point;\n let pt = points[endPoint];\n while(!pt.endContour)pt = points[++endPoint];\n // find the first point that has a delta\n while(point <= endPoint && !hasDelta[point])point++;\n if (point > endPoint) continue;\n let firstDelta = point;\n let curDelta = point;\n point++;\n while(point <= endPoint){\n // find the next point with a delta, and interpolate intermediate points\n if (hasDelta[point]) {\n this.deltaInterpolate(curDelta + 1, point - 1, curDelta, point, inPoints, points);\n curDelta = point;\n }\n point++;\n }\n // shift contour if we only have a single delta\n if (curDelta === firstDelta) this.deltaShift(firstPoint, endPoint, curDelta, inPoints, points);\n else {\n // otherwise, handle the remaining points at the end and beginning of the contour\n this.deltaInterpolate(curDelta + 1, endPoint, curDelta, firstDelta, inPoints, points);\n if (firstDelta > 0) this.deltaInterpolate(firstPoint, firstDelta - 1, curDelta, firstDelta, inPoints, points);\n }\n point = endPoint + 1;\n }\n }\n deltaInterpolate(p1, p2, ref1, ref2, inPoints, outPoints) {\n if (p1 > p2) return;\n let iterable = [\n 'x',\n 'y'\n ];\n for(let i = 0; i < iterable.length; i++){\n let k = iterable[i];\n if (inPoints[ref1][k] > inPoints[ref2][k]) {\n var p = ref1;\n ref1 = ref2;\n ref2 = p;\n }\n let in1 = inPoints[ref1][k];\n let in2 = inPoints[ref2][k];\n let out1 = outPoints[ref1][k];\n let out2 = outPoints[ref2][k];\n // If the reference points have the same coordinate but different\n // delta, inferred delta is zero. Otherwise interpolate.\n if (in1 !== in2 || out1 === out2) {\n let scale = in1 === in2 ? 0 : (out2 - out1) / (in2 - in1);\n for(let p = p1; p <= p2; p++){\n let out = inPoints[p][k];\n if (out <= in1) out += out1 - in1;\n else if (out >= in2) out += out2 - in2;\n else out = out1 + (out - in1) * scale;\n outPoints[p][k] = out;\n }\n }\n }\n }\n deltaShift(p1, p2, ref, inPoints, outPoints) {\n let deltaX = outPoints[ref].x - inPoints[ref].x;\n let deltaY = outPoints[ref].y - inPoints[ref].y;\n if (deltaX === 0 && deltaY === 0) return;\n for(let p = p1; p <= p2; p++)if (p !== ref) {\n outPoints[p].x += deltaX;\n outPoints[p].y += deltaY;\n }\n }\n getAdvanceAdjustment(gid, table) {\n let outerIndex, innerIndex;\n if (table.advanceWidthMapping) {\n let idx = gid;\n if (idx >= table.advanceWidthMapping.mapCount) idx = table.advanceWidthMapping.mapCount - 1;\n let entryFormat = table.advanceWidthMapping.entryFormat;\n ({ outerIndex: outerIndex, innerIndex: innerIndex } = table.advanceWidthMapping.mapData[idx]);\n } else {\n outerIndex = 0;\n innerIndex = gid;\n }\n return this.getDelta(table.itemVariationStore, outerIndex, innerIndex);\n }\n // See pseudo code from `Font Variations Overview'\n // in the OpenType specification.\n getDelta(itemStore, outerIndex, innerIndex) {\n if (outerIndex >= itemStore.itemVariationData.length) return 0;\n let varData = itemStore.itemVariationData[outerIndex];\n if (innerIndex >= varData.deltaSets.length) return 0;\n let deltaSet = varData.deltaSets[innerIndex];\n let blendVector = this.getBlendVector(itemStore, outerIndex);\n let netAdjustment = 0;\n for(let master = 0; master < varData.regionIndexCount; master++)netAdjustment += deltaSet.deltas[master] * blendVector[master];\n return netAdjustment;\n }\n getBlendVector(itemStore, outerIndex) {\n let varData = itemStore.itemVariationData[outerIndex];\n if (this.blendVectors.has(varData)) return this.blendVectors.get(varData);\n let normalizedCoords = this.normalizedCoords;\n let blendVector = [];\n // outer loop steps through master designs to be blended\n for(let master = 0; master < varData.regionIndexCount; master++){\n let scalar = 1;\n let regionIndex = varData.regionIndexes[master];\n let axes = itemStore.variationRegionList.variationRegions[regionIndex];\n // inner loop steps through axes in this region\n for(let j = 0; j < axes.length; j++){\n let axis = axes[j];\n let axisScalar;\n // compute the scalar contribution of this axis\n // ignore invalid ranges\n if (axis.startCoord > axis.peakCoord || axis.peakCoord > axis.endCoord) axisScalar = 1;\n else if (axis.startCoord < 0 && axis.endCoord > 0 && axis.peakCoord !== 0) axisScalar = 1;\n else if (axis.peakCoord === 0) axisScalar = 1;\n else if (normalizedCoords[j] < axis.startCoord || normalizedCoords[j] > axis.endCoord) axisScalar = 0;\n else {\n if (normalizedCoords[j] === axis.peakCoord) axisScalar = 1;\n else if (normalizedCoords[j] < axis.peakCoord) axisScalar = (normalizedCoords[j] - axis.startCoord + Number.EPSILON) / (axis.peakCoord - axis.startCoord + Number.EPSILON);\n else axisScalar = (axis.endCoord - normalizedCoords[j] + Number.EPSILON) / (axis.endCoord - axis.peakCoord + Number.EPSILON);\n }\n // take product of all the axis scalars\n scalar *= axisScalar;\n }\n blendVector[master] = scalar;\n }\n this.blendVectors.set(varData, blendVector);\n return blendVector;\n }\n constructor(font, coords){\n this.font = font;\n this.normalizedCoords = this.normalizeCoords(coords);\n this.blendVectors = new Map;\n }\n}\n\n\n\n\nconst $5cc7476da92df375$var$resolved = Promise.resolve();\nclass $5cc7476da92df375$export$2e2bcd8739ae039 {\n includeGlyph(glyph) {\n if (typeof glyph === 'object') glyph = glyph.id;\n if (this.mapping[glyph] == null) {\n this.glyphs.push(glyph);\n this.mapping[glyph] = this.glyphs.length - 1;\n }\n return this.mapping[glyph];\n }\n constructor(font){\n this.font = font;\n this.glyphs = [];\n this.mapping = {};\n // always include the missing glyph\n this.includeGlyph(0);\n }\n}\n\n\n\n\n\n// Flags for simple glyphs\nconst $807e58506be70005$var$ON_CURVE = 1;\nconst $807e58506be70005$var$X_SHORT_VECTOR = 2;\nconst $807e58506be70005$var$Y_SHORT_VECTOR = 4;\nconst $807e58506be70005$var$REPEAT = 8;\nconst $807e58506be70005$var$SAME_X = 16;\nconst $807e58506be70005$var$SAME_Y = 32;\nclass $807e58506be70005$var$Point {\n static size(val) {\n return val >= 0 && val <= 255 ? 1 : 2;\n }\n static encode(stream, value) {\n if (value >= 0 && value <= 255) stream.writeUInt8(value);\n else stream.writeInt16BE(value);\n }\n}\nlet $807e58506be70005$var$Glyf = new $6uUbQ$Struct({\n numberOfContours: $6uUbQ$int16,\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16,\n endPtsOfContours: new $6uUbQ$Array($6uUbQ$uint16, 'numberOfContours'),\n instructions: new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16),\n flags: new $6uUbQ$Array($6uUbQ$uint8, 0),\n xPoints: new $6uUbQ$Array($807e58506be70005$var$Point, 0),\n yPoints: new $6uUbQ$Array($807e58506be70005$var$Point, 0)\n});\nclass $807e58506be70005$export$2e2bcd8739ae039 {\n encodeSimple(path, instructions = []) {\n let endPtsOfContours = [];\n let xPoints = [];\n let yPoints = [];\n let flags = [];\n let same = 0;\n let lastX = 0, lastY = 0, lastFlag = 0;\n let pointCount = 0;\n for(let i = 0; i < path.commands.length; i++){\n let c = path.commands[i];\n for(let j = 0; j < c.args.length; j += 2){\n let x = c.args[j];\n let y = c.args[j + 1];\n let flag = 0;\n // If the ending point of a quadratic curve is the midpoint\n // between the control point and the control point of the next\n // quadratic curve, we can omit the ending point.\n if (c.command === 'quadraticCurveTo' && j === 2) {\n let next = path.commands[i + 1];\n if (next && next.command === 'quadraticCurveTo') {\n let midX = (lastX + next.args[0]) / 2;\n let midY = (lastY + next.args[1]) / 2;\n if (x === midX && y === midY) continue;\n }\n }\n // All points except control points are on curve.\n if (!(c.command === 'quadraticCurveTo' && j === 0)) flag |= $807e58506be70005$var$ON_CURVE;\n flag = this._encodePoint(x, lastX, xPoints, flag, $807e58506be70005$var$X_SHORT_VECTOR, $807e58506be70005$var$SAME_X);\n flag = this._encodePoint(y, lastY, yPoints, flag, $807e58506be70005$var$Y_SHORT_VECTOR, $807e58506be70005$var$SAME_Y);\n if (flag === lastFlag && same < 255) {\n flags[flags.length - 1] |= $807e58506be70005$var$REPEAT;\n same++;\n } else {\n if (same > 0) {\n flags.push(same);\n same = 0;\n }\n flags.push(flag);\n lastFlag = flag;\n }\n lastX = x;\n lastY = y;\n pointCount++;\n }\n if (c.command === 'closePath') endPtsOfContours.push(pointCount - 1);\n }\n // Close the path if the last command didn't already\n if (path.commands.length > 1 && path.commands[path.commands.length - 1].command !== 'closePath') endPtsOfContours.push(pointCount - 1);\n let bbox = path.bbox;\n let glyf = {\n numberOfContours: endPtsOfContours.length,\n xMin: bbox.minX,\n yMin: bbox.minY,\n xMax: bbox.maxX,\n yMax: bbox.maxY,\n endPtsOfContours: endPtsOfContours,\n instructions: instructions,\n flags: flags,\n xPoints: xPoints,\n yPoints: yPoints\n };\n let size = $807e58506be70005$var$Glyf.size(glyf);\n let tail = 4 - size % 4;\n let stream = new $6uUbQ$EncodeStream(size + tail);\n $807e58506be70005$var$Glyf.encode(stream, glyf);\n // Align to 4-byte length\n if (tail !== 0) stream.fill(0, tail);\n return stream.buffer;\n }\n _encodePoint(value, last, points, flag, shortFlag, sameFlag) {\n let diff = value - last;\n if (value === last) flag |= sameFlag;\n else {\n if (-255 <= diff && diff <= 255) {\n flag |= shortFlag;\n if (diff < 0) diff = -diff;\n else flag |= sameFlag;\n }\n points.push(diff);\n }\n return flag;\n }\n}\n\n\nclass $4abbb6a5dbdc441a$export$2e2bcd8739ae039 extends (0, $5cc7476da92df375$export$2e2bcd8739ae039) {\n _addGlyph(gid) {\n let glyph = this.font.getGlyph(gid);\n let glyf = glyph._decode();\n // get the offset to the glyph from the loca table\n let curOffset = this.font.loca.offsets[gid];\n let nextOffset = this.font.loca.offsets[gid + 1];\n let stream = this.font._getTableStream('glyf');\n stream.pos += curOffset;\n let buffer = stream.readBuffer(nextOffset - curOffset);\n // if it is a compound glyph, include its components\n if (glyf && glyf.numberOfContours < 0) {\n buffer = new Uint8Array(buffer);\n let view = new DataView(buffer.buffer);\n for (let component of glyf.components){\n gid = this.includeGlyph(component.glyphID);\n view.setUint16(component.pos, gid);\n }\n } else if (glyf && this.font._variationProcessor) // If this is a TrueType variation glyph, re-encode the path\n buffer = this.glyphEncoder.encodeSimple(glyph.path, glyf.instructions);\n this.glyf.push(buffer);\n this.loca.offsets.push(this.offset);\n this.hmtx.metrics.push({\n advance: glyph.advanceWidth,\n bearing: glyph._getMetrics().leftBearing\n });\n this.offset += buffer.length;\n return this.glyf.length - 1;\n }\n encode() {\n // tables required by PDF spec:\n // head, hhea, loca, maxp, cvt , prep, glyf, hmtx, fpgm\n //\n // additional tables required for standalone fonts:\n // name, cmap, OS/2, post\n this.glyf = [];\n this.offset = 0;\n this.loca = {\n offsets: [],\n version: this.font.loca.version\n };\n this.hmtx = {\n metrics: [],\n bearings: []\n };\n // include all the glyphs\n // not using a for loop because we need to support adding more\n // glyphs to the array as we go, and CoffeeScript caches the length.\n let i = 0;\n while(i < this.glyphs.length)this._addGlyph(this.glyphs[i++]);\n let maxp = (0, $6uUbQ$clone)(this.font.maxp);\n maxp.numGlyphs = this.glyf.length;\n this.loca.offsets.push(this.offset);\n let head = (0, $6uUbQ$clone)(this.font.head);\n head.indexToLocFormat = this.loca.version;\n let hhea = (0, $6uUbQ$clone)(this.font.hhea);\n hhea.numberOfMetrics = this.hmtx.metrics.length;\n // map = []\n // for index in [0...256]\n // if index < @numGlyphs\n // map[index] = index\n // else\n // map[index] = 0\n //\n // cmapTable =\n // version: 0\n // length: 262\n // language: 0\n // codeMap: map\n //\n // cmap =\n // version: 0\n // numSubtables: 1\n // tables: [\n // platformID: 1\n // encodingID: 0\n // table: cmapTable\n // ]\n // TODO: subset prep, cvt, fpgm?\n return (0, $816c07a04b6dba87$export$2e2bcd8739ae039).toBuffer({\n tables: {\n head: head,\n hhea: hhea,\n loca: this.loca,\n maxp: maxp,\n 'cvt ': this.font['cvt '],\n prep: this.font.prep,\n glyf: this.glyf,\n hmtx: this.hmtx,\n fpgm: this.font.fpgm\n }\n });\n }\n constructor(font){\n super(font);\n this.glyphEncoder = new (0, $807e58506be70005$export$2e2bcd8739ae039);\n }\n}\n\n\n\n\n\n\nclass $001d739428a71d5a$export$2e2bcd8739ae039 extends (0, $5cc7476da92df375$export$2e2bcd8739ae039) {\n subsetCharstrings() {\n this.charstrings = [];\n let gsubrs = {};\n for (let gid of this.glyphs){\n this.charstrings.push(this.cff.getCharString(gid));\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedGsubrs)gsubrs[subr] = true;\n }\n this.gsubrs = this.subsetSubrs(this.cff.globalSubrIndex, gsubrs);\n }\n subsetSubrs(subrs, used) {\n let res = [];\n for(let i = 0; i < subrs.length; i++){\n let subr = subrs[i];\n if (used[i]) {\n this.cff.stream.pos = subr.offset;\n res.push(this.cff.stream.readBuffer(subr.length));\n } else res.push(new Uint8Array([\n 11\n ])); // return\n }\n return res;\n }\n subsetFontdict(topDict) {\n topDict.FDArray = [];\n topDict.FDSelect = {\n version: 0,\n fds: []\n };\n let used_fds = {};\n let used_subrs = [];\n let fd_select = {};\n for (let gid of this.glyphs){\n let fd = this.cff.fdForGlyph(gid);\n if (fd == null) continue;\n if (!used_fds[fd]) {\n topDict.FDArray.push(Object.assign({}, this.cff.topDict.FDArray[fd]));\n used_subrs.push({});\n fd_select[fd] = topDict.FDArray.length - 1;\n }\n used_fds[fd] = true;\n topDict.FDSelect.fds.push(fd_select[fd]);\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedSubrs)used_subrs[fd_select[fd]][subr] = true;\n }\n for(let i = 0; i < topDict.FDArray.length; i++){\n let dict = topDict.FDArray[i];\n delete dict.FontName;\n if (dict.Private && dict.Private.Subrs) {\n dict.Private = Object.assign({}, dict.Private);\n dict.Private.Subrs = this.subsetSubrs(dict.Private.Subrs, used_subrs[i]);\n }\n }\n return;\n }\n createCIDFontdict(topDict) {\n let used_subrs = {};\n for (let gid of this.glyphs){\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedSubrs)used_subrs[subr] = true;\n }\n let privateDict = Object.assign({}, this.cff.topDict.Private);\n if (this.cff.topDict.Private && this.cff.topDict.Private.Subrs) privateDict.Subrs = this.subsetSubrs(this.cff.topDict.Private.Subrs, used_subrs);\n topDict.FDArray = [\n {\n Private: privateDict\n }\n ];\n return topDict.FDSelect = {\n version: 3,\n nRanges: 1,\n ranges: [\n {\n first: 0,\n fd: 0\n }\n ],\n sentinel: this.charstrings.length\n };\n }\n addString(string) {\n if (!string) return null;\n if (!this.strings) this.strings = [];\n this.strings.push(string);\n return (0, $229224aec43783c5$export$2e2bcd8739ae039).length + this.strings.length - 1;\n }\n encode() {\n this.subsetCharstrings();\n let charset = {\n version: this.charstrings.length > 255 ? 2 : 1,\n ranges: [\n {\n first: 1,\n nLeft: this.charstrings.length - 2\n }\n ]\n };\n let topDict = Object.assign({}, this.cff.topDict);\n topDict.Private = null;\n topDict.charset = charset;\n topDict.Encoding = null;\n topDict.CharStrings = this.charstrings;\n for (let key of [\n 'version',\n 'Notice',\n 'Copyright',\n 'FullName',\n 'FamilyName',\n 'Weight',\n 'PostScript',\n 'BaseFontName',\n 'FontName'\n ])topDict[key] = this.addString(this.cff.string(topDict[key]));\n topDict.ROS = [\n this.addString('Adobe'),\n this.addString('Identity'),\n 0\n ];\n topDict.CIDCount = this.charstrings.length;\n if (this.cff.isCIDFont) this.subsetFontdict(topDict);\n else this.createCIDFontdict(topDict);\n let top = {\n version: 1,\n hdrSize: this.cff.hdrSize,\n offSize: 4,\n header: this.cff.header,\n nameIndex: [\n this.cff.postscriptName\n ],\n topDictIndex: [\n topDict\n ],\n stringIndex: this.strings,\n globalSubrIndex: this.gsubrs\n };\n return (0, $b84fd3dd9d8eddb2$export$2e2bcd8739ae039).toBuffer(top);\n }\n constructor(font){\n super(font);\n this.cff = this.font['CFF '];\n if (!this.cff) throw new Error('Not a CFF Font');\n }\n}\n\n\n\n\nclass $4c1709dee528ea76$export$2e2bcd8739ae039 {\n static probe(buffer) {\n let format = (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4));\n return format === 'true' || format === 'OTTO' || format === String.fromCharCode(0, 1, 0, 0);\n }\n setDefaultLanguage(lang = null) {\n this.defaultLanguage = lang;\n }\n _getTable(table) {\n if (!(table.tag in this._tables)) try {\n this._tables[table.tag] = this._decodeTable(table);\n } catch (e) {\n if ($d636bc798e7178db$export$bd5c5d8b8dcafd78) {\n console.error(`Error decoding table ${table.tag}`);\n console.error(e.stack);\n }\n }\n return this._tables[table.tag];\n }\n _getTableStream(tag) {\n let table = this.directory.tables[tag];\n if (table) {\n this.stream.pos = table.offset;\n return this.stream;\n }\n return null;\n }\n _decodeDirectory() {\n return this.directory = (0, $816c07a04b6dba87$export$2e2bcd8739ae039).decode(this.stream, {\n _startOffset: 0\n });\n }\n _decodeTable(table) {\n let pos = this.stream.pos;\n let stream = this._getTableStream(table.tag);\n let result = (0, $c3395722bea751e2$export$2e2bcd8739ae039)[table.tag].decode(stream, this, table.length);\n this.stream.pos = pos;\n return result;\n }\n /**\n * Gets a string from the font's `name` table\n * `lang` is a BCP-47 language code.\n * @return {string}\n */ getName(key, lang = this.defaultLanguage || $d636bc798e7178db$export$42940898df819940) {\n let record = this.name && this.name.records[key];\n if (record) // Attempt to retrieve the entry, depending on which translation is available:\n return record[lang] || record[this.defaultLanguage] || record[$d636bc798e7178db$export$42940898df819940] || record['en'] || record[Object.keys(record)[0]] // Seriously, ANY language would be fine\n || null;\n return null;\n }\n /**\n * The unique PostScript name for this font, e.g. \"Helvetica-Bold\"\n * @type {string}\n */ get postscriptName() {\n return this.getName('postscriptName');\n }\n /**\n * The font's full name, e.g. \"Helvetica Bold\"\n * @type {string}\n */ get fullName() {\n return this.getName('fullName');\n }\n /**\n * The font's family name, e.g. \"Helvetica\"\n * @type {string}\n */ get familyName() {\n return this.getName('fontFamily');\n }\n /**\n * The font's sub-family, e.g. \"Bold\".\n * @type {string}\n */ get subfamilyName() {\n return this.getName('fontSubfamily');\n }\n /**\n * The font's copyright information\n * @type {string}\n */ get copyright() {\n return this.getName('copyright');\n }\n /**\n * The font's version number\n * @type {string}\n */ get version() {\n return this.getName('version');\n }\n /**\n * The font’s [ascender](https://en.wikipedia.org/wiki/Ascender_(typography))\n * @type {number}\n */ get ascent() {\n return this.hhea.ascent;\n }\n /**\n * The font’s [descender](https://en.wikipedia.org/wiki/Descender)\n * @type {number}\n */ get descent() {\n return this.hhea.descent;\n }\n /**\n * The amount of space that should be included between lines\n * @type {number}\n */ get lineGap() {\n return this.hhea.lineGap;\n }\n /**\n * The offset from the normal underline position that should be used\n * @type {number}\n */ get underlinePosition() {\n return this.post.underlinePosition;\n }\n /**\n * The weight of the underline that should be used\n * @type {number}\n */ get underlineThickness() {\n return this.post.underlineThickness;\n }\n /**\n * If this is an italic font, the angle the cursor should be drawn at to match the font design\n * @type {number}\n */ get italicAngle() {\n return this.post.italicAngle;\n }\n /**\n * The height of capital letters above the baseline.\n * See [here](https://en.wikipedia.org/wiki/Cap_height) for more details.\n * @type {number}\n */ get capHeight() {\n let os2 = this['OS/2'];\n return os2 ? os2.capHeight : this.ascent;\n }\n /**\n * The height of lower case letters in the font.\n * See [here](https://en.wikipedia.org/wiki/X-height) for more details.\n * @type {number}\n */ get xHeight() {\n let os2 = this['OS/2'];\n return os2 ? os2.xHeight : 0;\n }\n /**\n * The number of glyphs in the font.\n * @type {number}\n */ get numGlyphs() {\n return this.maxp.numGlyphs;\n }\n /**\n * The size of the font’s internal coordinate grid\n * @type {number}\n */ get unitsPerEm() {\n return this.head.unitsPerEm;\n }\n /**\n * The font’s bounding box, i.e. the box that encloses all glyphs in the font.\n * @type {BBox}\n */ get bbox() {\n return Object.freeze(new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)(this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax));\n }\n get _cmapProcessor() {\n return new (0, $f08dd41ef10b694c$export$2e2bcd8739ae039)(this.cmap);\n }\n /**\n * An array of all of the unicode code points supported by the font.\n * @type {number[]}\n */ get characterSet() {\n return this._cmapProcessor.getCharacterSet();\n }\n /**\n * Returns whether there is glyph in the font for the given unicode code point.\n *\n * @param {number} codePoint\n * @return {boolean}\n */ hasGlyphForCodePoint(codePoint) {\n return !!this._cmapProcessor.lookup(codePoint);\n }\n /**\n * Maps a single unicode code point to a Glyph object.\n * Does not perform any advanced substitutions (there is no context to do so).\n *\n * @param {number} codePoint\n * @return {Glyph}\n */ glyphForCodePoint(codePoint) {\n return this.getGlyph(this._cmapProcessor.lookup(codePoint), [\n codePoint\n ]);\n }\n /**\n * Returns an array of Glyph objects for the given string.\n * This is only a one-to-one mapping from characters to glyphs.\n * For most uses, you should use font.layout (described below), which\n * provides a much more advanced mapping supporting AAT and OpenType shaping.\n *\n * @param {string} string\n * @return {Glyph[]}\n */ glyphsForString(string) {\n let glyphs = [];\n let len = string.length;\n let idx = 0;\n let last = -1;\n let state = -1;\n while(idx <= len){\n let code = 0;\n let nextState = 0;\n if (idx < len) {\n // Decode the next codepoint from UTF 16\n code = string.charCodeAt(idx++);\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n let next = string.charCodeAt(idx);\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3ff) << 10) + (next & 0x3ff) + 0x10000;\n }\n }\n // Compute the next state: 1 if the next codepoint is a variation selector, 0 otherwise.\n nextState = 0xfe00 <= code && code <= 0xfe0f || 0xe0100 <= code && code <= 0xe01ef ? 1 : 0;\n } else idx++;\n if (state === 0 && nextState === 1) // Variation selector following normal codepoint.\n glyphs.push(this.getGlyph(this._cmapProcessor.lookup(last, code), [\n last,\n code\n ]));\n else if (state === 0 && nextState === 0) // Normal codepoint following normal codepoint.\n glyphs.push(this.glyphForCodePoint(last));\n last = code;\n state = nextState;\n }\n return glyphs;\n }\n get _layoutEngine() {\n return new (0, $4c0a7fa5df7a9ab1$export$2e2bcd8739ae039)(this);\n }\n /**\n * Returns a GlyphRun object, which includes an array of Glyphs and GlyphPositions for the given string.\n *\n * @param {string} string\n * @param {string[]} [userFeatures]\n * @param {string} [script]\n * @param {string} [language]\n * @param {string} [direction]\n * @return {GlyphRun}\n */ layout(string, userFeatures, script, language, direction) {\n return this._layoutEngine.layout(string, userFeatures, script, language, direction);\n }\n /**\n * Returns an array of strings that map to the given glyph id.\n * @param {number} gid - glyph id\n */ stringsForGlyph(gid) {\n return this._layoutEngine.stringsForGlyph(gid);\n }\n /**\n * An array of all [OpenType feature tags](https://www.microsoft.com/typography/otspec/featuretags.htm)\n * (or mapped AAT tags) supported by the font.\n * The features parameter is an array of OpenType feature tags to be applied in addition to the default set.\n * If this is an AAT font, the OpenType feature tags are mapped to AAT features.\n *\n * @type {string[]}\n */ get availableFeatures() {\n return this._layoutEngine.getAvailableFeatures();\n }\n getAvailableFeatures(script, language) {\n return this._layoutEngine.getAvailableFeatures(script, language);\n }\n _getBaseGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf) this._glyphs[glyph] = new (0, $69aac16029968692$export$2e2bcd8739ae039)(glyph, characters, this);\n else if (this.directory.tables['CFF '] || this.directory.tables.CFF2) this._glyphs[glyph] = new (0, $62cc5109c6101893$export$2e2bcd8739ae039)(glyph, characters, this);\n }\n return this._glyphs[glyph] || null;\n }\n /**\n * Returns a glyph object for the given glyph id.\n * You can pass the array of code points this glyph represents for\n * your use later, and it will be stored in the glyph object.\n *\n * @param {number} glyph\n * @param {number[]} characters\n * @return {Glyph}\n */ getGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.sbix) this._glyphs[glyph] = new (0, $25d8f049c222084c$export$2e2bcd8739ae039)(glyph, characters, this);\n else if (this.directory.tables.COLR && this.directory.tables.CPAL) this._glyphs[glyph] = new (0, $0d411f0165859681$export$2e2bcd8739ae039)(glyph, characters, this);\n else this._getBaseGlyph(glyph, characters);\n }\n return this._glyphs[glyph] || null;\n }\n /**\n * Returns a Subset for this font.\n * @return {Subset}\n */ createSubset() {\n if (this.directory.tables['CFF ']) return new (0, $001d739428a71d5a$export$2e2bcd8739ae039)(this);\n return new (0, $4abbb6a5dbdc441a$export$2e2bcd8739ae039)(this);\n }\n /**\n * Returns an object describing the available variation axes\n * that this font supports. Keys are setting tags, and values\n * contain the axis name, range, and default value.\n *\n * @type {object}\n */ get variationAxes() {\n let res = {};\n if (!this.fvar) return res;\n for (let axis of this.fvar.axis)res[axis.axisTag.trim()] = {\n name: axis.name.en,\n min: axis.minValue,\n default: axis.defaultValue,\n max: axis.maxValue\n };\n return res;\n }\n /**\n * Returns an object describing the named variation instances\n * that the font designer has specified. Keys are variation names\n * and values are the variation settings for this instance.\n *\n * @type {object}\n */ get namedVariations() {\n let res = {};\n if (!this.fvar) return res;\n for (let instance of this.fvar.instance){\n let settings = {};\n for(let i = 0; i < this.fvar.axis.length; i++){\n let axis = this.fvar.axis[i];\n settings[axis.axisTag.trim()] = instance.coord[i];\n }\n res[instance.name.en] = settings;\n }\n return res;\n }\n /**\n * Returns a new font with the given variation settings applied.\n * Settings can either be an instance name, or an object containing\n * variation tags as specified by the `variationAxes` property.\n *\n * @param {object} settings\n * @return {TTFFont}\n */ getVariation(settings) {\n if (!(this.directory.tables.fvar && (this.directory.tables.gvar && this.directory.tables.glyf || this.directory.tables.CFF2))) throw new Error('Variations require a font with the fvar, gvar and glyf, or CFF2 tables.');\n if (typeof settings === 'string') settings = this.namedVariations[settings];\n if (typeof settings !== 'object') throw new Error('Variation settings must be either a variation name or settings object.');\n // normalize the coordinates\n let coords = this.fvar.axis.map((axis, i)=>{\n let axisTag = axis.axisTag.trim();\n if (axisTag in settings) return Math.max(axis.minValue, Math.min(axis.maxValue, settings[axisTag]));\n else return axis.defaultValue;\n });\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = this._directoryPos;\n let font = new $4c1709dee528ea76$export$2e2bcd8739ae039(stream, coords);\n font._tables = this._tables;\n return font;\n }\n get _variationProcessor() {\n if (!this.fvar) return null;\n let variationCoords = this.variationCoords;\n // Ignore if no variation coords and not CFF2\n if (!variationCoords && !this.CFF2) return null;\n if (!variationCoords) variationCoords = this.fvar.axis.map((axis)=>axis.defaultValue);\n return new (0, $0bb840cac04e911b$export$2e2bcd8739ae039)(this, variationCoords);\n }\n // Standardized format plugin API\n getFont(name) {\n return this.getVariation(name);\n }\n constructor(stream, variationCoords = null){\n (0, $6uUbQ$_)(this, \"type\", 'TTF');\n this.defaultLanguage = null;\n this.stream = stream;\n this.variationCoords = variationCoords;\n this._directoryPos = this.stream.pos;\n this._tables = {};\n this._glyphs = {};\n this._decodeDirectory();\n // define properties for each table to lazily parse\n for(let tag in this.directory.tables){\n let table = this.directory.tables[tag];\n if ((0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag] && table.length > 0) Object.defineProperty(this, tag, {\n get: this._getTable.bind(this, table)\n });\n }\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"bbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_cmapProcessor\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"characterSet\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_layoutEngine\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"variationAxes\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"namedVariations\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_variationProcessor\", null);\n\n\n\n\n\n\nlet $c1726355ecc5b889$var$WOFFDirectoryEntry = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n offset: new $6uUbQ$Pointer($6uUbQ$uint32, 'void', {\n type: 'global'\n }),\n compLength: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n origChecksum: $6uUbQ$uint32\n});\nlet $c1726355ecc5b889$var$WOFFDirectory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n flavor: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n numTables: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n totalSfntSize: $6uUbQ$uint32,\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n metaOffset: $6uUbQ$uint32,\n metaLength: $6uUbQ$uint32,\n metaOrigLength: $6uUbQ$uint32,\n privOffset: $6uUbQ$uint32,\n privLength: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($c1726355ecc5b889$var$WOFFDirectoryEntry, 'numTables')\n});\n$c1726355ecc5b889$var$WOFFDirectory.process = function() {\n let tables = {};\n for (let table of this.tables)tables[table.tag] = table;\n this.tables = tables;\n};\nvar $c1726355ecc5b889$export$2e2bcd8739ae039 = $c1726355ecc5b889$var$WOFFDirectory;\n\n\n\n\n\n\nclass $760785214b9fc52c$export$2e2bcd8739ae039 extends (0, $4c1709dee528ea76$export$2e2bcd8739ae039) {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'wOFF';\n }\n _decodeDirectory() {\n this.directory = (0, $c1726355ecc5b889$export$2e2bcd8739ae039).decode(this.stream, {\n _startOffset: 0\n });\n }\n _getTableStream(tag) {\n let table = this.directory.tables[tag];\n if (table) {\n this.stream.pos = table.offset;\n if (table.compLength < table.length) {\n this.stream.pos += 2; // skip deflate header\n let outBuffer = new Uint8Array(table.length);\n let buf = (0, $6uUbQ$tinyinflate)(this.stream.readBuffer(table.compLength - 2), outBuffer);\n return new $6uUbQ$DecodeStream(buf);\n } else return this.stream;\n }\n return null;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF');\n }\n}\n\n\n\n\n\n\n\n\n\nclass $8046190c9f1ad19e$export$2e2bcd8739ae039 extends (0, $69aac16029968692$export$2e2bcd8739ae039) {\n _decode() {\n // We have to decode in advance (in WOFF2Font), so just return the pre-decoded data.\n return this._font._transformedGlyphs[this.id];\n }\n _getCBox() {\n return this.path.bbox;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF2');\n }\n}\n\n\n\nconst $c28ec7bbb3b8de3a$var$Base128 = {\n decode (stream) {\n let result = 0;\n let iterable = [\n 0,\n 1,\n 2,\n 3,\n 4\n ];\n for(let j = 0; j < iterable.length; j++){\n let i = iterable[j];\n let code = stream.readUInt8();\n // If any of the top seven bits are set then we're about to overflow.\n if (result & 0xe0000000) throw new Error('Overflow');\n result = result << 7 | code & 0x7f;\n if ((code & 0x80) === 0) return result;\n }\n throw new Error('Bad base 128 number');\n }\n};\nlet $c28ec7bbb3b8de3a$var$knownTags = [\n 'cmap',\n 'head',\n 'hhea',\n 'hmtx',\n 'maxp',\n 'name',\n 'OS/2',\n 'post',\n 'cvt ',\n 'fpgm',\n 'glyf',\n 'loca',\n 'prep',\n 'CFF ',\n 'VORG',\n 'EBDT',\n 'EBLC',\n 'gasp',\n 'hdmx',\n 'kern',\n 'LTSH',\n 'PCLT',\n 'VDMX',\n 'vhea',\n 'vmtx',\n 'BASE',\n 'GDEF',\n 'GPOS',\n 'GSUB',\n 'EBSC',\n 'JSTF',\n 'MATH',\n 'CBDT',\n 'CBLC',\n 'COLR',\n 'CPAL',\n 'SVG ',\n 'sbix',\n 'acnt',\n 'avar',\n 'bdat',\n 'bloc',\n 'bsln',\n 'cvar',\n 'fdsc',\n 'feat',\n 'fmtx',\n 'fvar',\n 'gvar',\n 'hsty',\n 'just',\n 'lcar',\n 'mort',\n 'morx',\n 'opbd',\n 'prop',\n 'trak',\n 'Zapf',\n 'Silf',\n 'Glat',\n 'Gloc',\n 'Feat',\n 'Sill'\n];\nlet $c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry = new $6uUbQ$Struct({\n flags: $6uUbQ$uint8,\n customTag: new $6uUbQ$Optional(new $6uUbQ$String(4), (t)=>(t.flags & 0x3f) === 0x3f),\n tag: (t)=>t.customTag || $c28ec7bbb3b8de3a$var$knownTags[t.flags & 0x3f],\n length: $c28ec7bbb3b8de3a$var$Base128,\n transformVersion: (t)=>t.flags >>> 6 & 0x03,\n transformed: (t)=>t.tag === 'glyf' || t.tag === 'loca' ? t.transformVersion === 0 : t.transformVersion !== 0,\n transformLength: new $6uUbQ$Optional($c28ec7bbb3b8de3a$var$Base128, (t)=>t.transformed)\n});\nlet $c28ec7bbb3b8de3a$var$WOFF2Directory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n flavor: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n numTables: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n totalSfntSize: $6uUbQ$uint32,\n totalCompressedSize: $6uUbQ$uint32,\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n metaOffset: $6uUbQ$uint32,\n metaLength: $6uUbQ$uint32,\n metaOrigLength: $6uUbQ$uint32,\n privOffset: $6uUbQ$uint32,\n privLength: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry, 'numTables')\n});\n$c28ec7bbb3b8de3a$var$WOFF2Directory.process = function() {\n let tables = {};\n for(let i = 0; i < this.tables.length; i++){\n let table = this.tables[i];\n tables[table.tag] = table;\n }\n return this.tables = tables;\n};\nvar $c28ec7bbb3b8de3a$export$2e2bcd8739ae039 = $c28ec7bbb3b8de3a$var$WOFF2Directory;\n\n\n\nclass $21ee218f84ac7f32$export$2e2bcd8739ae039 extends (0, $4c1709dee528ea76$export$2e2bcd8739ae039) {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'wOF2';\n }\n _decodeDirectory() {\n this.directory = (0, $c28ec7bbb3b8de3a$export$2e2bcd8739ae039).decode(this.stream);\n this._dataPos = this.stream.pos;\n }\n _decompress() {\n // decompress data and setup table offsets if we haven't already\n if (!this._decompressed) {\n this.stream.pos = this._dataPos;\n let buffer = this.stream.readBuffer(this.directory.totalCompressedSize);\n let decompressedSize = 0;\n for(let tag in this.directory.tables){\n let entry = this.directory.tables[tag];\n entry.offset = decompressedSize;\n decompressedSize += entry.transformLength != null ? entry.transformLength : entry.length;\n }\n let decompressed = (0, $6uUbQ$brotlidecompressjs)(buffer, decompressedSize);\n if (!decompressed) throw new Error('Error decoding compressed data in WOFF2');\n this.stream = new $6uUbQ$DecodeStream(decompressed);\n this._decompressed = true;\n }\n }\n _decodeTable(table) {\n this._decompress();\n return super._decodeTable(table);\n }\n // Override this method to get a glyph and return our\n // custom subclass if there is a glyf table.\n _getBaseGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf && this.directory.tables.glyf.transformed) {\n if (!this._transformedGlyphs) this._transformGlyfTable();\n return this._glyphs[glyph] = new (0, $8046190c9f1ad19e$export$2e2bcd8739ae039)(glyph, characters, this);\n } else return super._getBaseGlyph(glyph, characters);\n }\n }\n _transformGlyfTable() {\n this._decompress();\n this.stream.pos = this.directory.tables.glyf.offset;\n let table = $21ee218f84ac7f32$var$GlyfTable.decode(this.stream);\n let glyphs = [];\n for(let index = 0; index < table.numGlyphs; index++){\n let glyph = {};\n let nContours = table.nContours.readInt16BE();\n glyph.numberOfContours = nContours;\n if (nContours > 0) {\n let nPoints = [];\n let totalPoints = 0;\n for(let i = 0; i < nContours; i++){\n let r = $21ee218f84ac7f32$var$read255UInt16(table.nPoints);\n totalPoints += r;\n nPoints.push(totalPoints);\n }\n glyph.points = $21ee218f84ac7f32$var$decodeTriplet(table.flags, table.glyphs, totalPoints);\n for(let i = 0; i < nContours; i++)glyph.points[nPoints[i] - 1].endContour = true;\n var instructionSize = $21ee218f84ac7f32$var$read255UInt16(table.glyphs);\n } else if (nContours < 0) {\n let haveInstructions = (0, $69aac16029968692$export$2e2bcd8739ae039).prototype._decodeComposite.call({\n _font: this\n }, glyph, table.composites);\n if (haveInstructions) var instructionSize = $21ee218f84ac7f32$var$read255UInt16(table.glyphs);\n }\n glyphs.push(glyph);\n }\n this._transformedGlyphs = glyphs;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF2');\n }\n}\n// Special class that accepts a length and returns a sub-stream for that data\nclass $21ee218f84ac7f32$var$Substream {\n decode(stream, parent) {\n return new $6uUbQ$DecodeStream(this._buf.decode(stream, parent));\n }\n constructor(length){\n this.length = length;\n this._buf = new $6uUbQ$Buffer(length);\n }\n}\n// This struct represents the entire glyf table\nlet $21ee218f84ac7f32$var$GlyfTable = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n numGlyphs: $6uUbQ$uint16,\n indexFormat: $6uUbQ$uint16,\n nContourStreamSize: $6uUbQ$uint32,\n nPointsStreamSize: $6uUbQ$uint32,\n flagStreamSize: $6uUbQ$uint32,\n glyphStreamSize: $6uUbQ$uint32,\n compositeStreamSize: $6uUbQ$uint32,\n bboxStreamSize: $6uUbQ$uint32,\n instructionStreamSize: $6uUbQ$uint32,\n nContours: new $21ee218f84ac7f32$var$Substream('nContourStreamSize'),\n nPoints: new $21ee218f84ac7f32$var$Substream('nPointsStreamSize'),\n flags: new $21ee218f84ac7f32$var$Substream('flagStreamSize'),\n glyphs: new $21ee218f84ac7f32$var$Substream('glyphStreamSize'),\n composites: new $21ee218f84ac7f32$var$Substream('compositeStreamSize'),\n bboxes: new $21ee218f84ac7f32$var$Substream('bboxStreamSize'),\n instructions: new $21ee218f84ac7f32$var$Substream('instructionStreamSize')\n});\nconst $21ee218f84ac7f32$var$WORD_CODE = 253;\nconst $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2 = 254;\nconst $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1 = 255;\nconst $21ee218f84ac7f32$var$LOWEST_U_CODE = 253;\nfunction $21ee218f84ac7f32$var$read255UInt16(stream) {\n let code = stream.readUInt8();\n if (code === $21ee218f84ac7f32$var$WORD_CODE) return stream.readUInt16BE();\n if (code === $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1) return stream.readUInt8() + $21ee218f84ac7f32$var$LOWEST_U_CODE;\n if (code === $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2) return stream.readUInt8() + $21ee218f84ac7f32$var$LOWEST_U_CODE * 2;\n return code;\n}\nfunction $21ee218f84ac7f32$var$withSign(flag, baseval) {\n return flag & 1 ? baseval : -baseval;\n}\nfunction $21ee218f84ac7f32$var$decodeTriplet(flags, glyphs, nPoints) {\n let y;\n let x = y = 0;\n let res = [];\n for(let i = 0; i < nPoints; i++){\n let dx = 0, dy = 0;\n let flag = flags.readUInt8();\n let onCurve = !(flag >> 7);\n flag &= 0x7f;\n if (flag < 10) {\n dx = 0;\n dy = $21ee218f84ac7f32$var$withSign(flag, ((flag & 14) << 7) + glyphs.readUInt8());\n } else if (flag < 20) {\n dx = $21ee218f84ac7f32$var$withSign(flag, ((flag - 10 & 14) << 7) + glyphs.readUInt8());\n dy = 0;\n } else if (flag < 84) {\n var b0 = flag - 20;\n var b1 = glyphs.readUInt8();\n dx = $21ee218f84ac7f32$var$withSign(flag, 1 + (b0 & 0x30) + (b1 >> 4));\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, 1 + ((b0 & 0x0c) << 2) + (b1 & 0x0f));\n } else if (flag < 120) {\n var b0 = flag - 84;\n dx = $21ee218f84ac7f32$var$withSign(flag, 1 + (b0 / 12 << 8) + glyphs.readUInt8());\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, 1 + (b0 % 12 >> 2 << 8) + glyphs.readUInt8());\n } else if (flag < 124) {\n var b1 = glyphs.readUInt8();\n let b2 = glyphs.readUInt8();\n dx = $21ee218f84ac7f32$var$withSign(flag, (b1 << 4) + (b2 >> 4));\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, ((b2 & 0x0f) << 8) + glyphs.readUInt8());\n } else {\n dx = $21ee218f84ac7f32$var$withSign(flag, glyphs.readUInt16BE());\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, glyphs.readUInt16BE());\n }\n x += dx;\n y += dy;\n res.push(new (0, $69aac16029968692$export$baf26146a414f24a)(onCurve, false, x, y));\n }\n return res;\n}\n\n\n\n\n\n\n\n\nlet $cd5853a56c68fec7$var$TTCHeader = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n 0x00010000: {\n numFonts: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array($6uUbQ$uint32, 'numFonts')\n },\n 0x00020000: {\n numFonts: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array($6uUbQ$uint32, 'numFonts'),\n dsigTag: $6uUbQ$uint32,\n dsigLength: $6uUbQ$uint32,\n dsigOffset: $6uUbQ$uint32\n }\n});\nclass $cd5853a56c68fec7$export$2e2bcd8739ae039 {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'ttcf';\n }\n getFont(name) {\n for (let offset of this.header.offsets){\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = offset;\n let font = new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream);\n if (font.postscriptName === name || font.postscriptName instanceof Uint8Array && name instanceof Uint8Array && font.postscriptName.every((v, i)=>name[i] === v)) return font;\n }\n return null;\n }\n get fonts() {\n let fonts = [];\n for (let offset of this.header.offsets){\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = offset;\n fonts.push(new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream));\n }\n return fonts;\n }\n constructor(stream){\n (0, $6uUbQ$_)(this, \"type\", 'TTC');\n this.stream = stream;\n if (stream.readString(4) !== 'ttcf') throw new Error('Not a TrueType collection');\n this.header = $cd5853a56c68fec7$var$TTCHeader.decode(stream);\n }\n}\n\n\n\n\n\nlet $05f49f930186144e$var$DFontName = new $6uUbQ$String($6uUbQ$uint8);\nlet $05f49f930186144e$var$DFontData = new $6uUbQ$Struct({\n len: $6uUbQ$uint32,\n buf: new $6uUbQ$Buffer('len')\n});\nlet $05f49f930186144e$var$Ref = new $6uUbQ$Struct({\n id: $6uUbQ$uint16,\n nameOffset: $6uUbQ$int16,\n attr: $6uUbQ$uint8,\n dataOffset: $6uUbQ$uint24,\n handle: $6uUbQ$uint32\n});\nlet $05f49f930186144e$var$Type = new $6uUbQ$Struct({\n name: new $6uUbQ$String(4),\n maxTypeIndex: $6uUbQ$uint16,\n refList: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array($05f49f930186144e$var$Ref, (t)=>t.maxTypeIndex + 1), {\n type: 'parent'\n })\n});\nlet $05f49f930186144e$var$TypeList = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n types: new $6uUbQ$Array($05f49f930186144e$var$Type, (t)=>t.length + 1)\n});\nlet $05f49f930186144e$var$DFontMap = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint8, 24),\n typeList: new $6uUbQ$Pointer($6uUbQ$uint16, $05f49f930186144e$var$TypeList),\n nameListOffset: new $6uUbQ$Pointer($6uUbQ$uint16, 'void')\n});\nlet $05f49f930186144e$var$DFontHeader = new $6uUbQ$Struct({\n dataOffset: $6uUbQ$uint32,\n map: new $6uUbQ$Pointer($6uUbQ$uint32, $05f49f930186144e$var$DFontMap),\n dataLength: $6uUbQ$uint32,\n mapLength: $6uUbQ$uint32\n});\nclass $05f49f930186144e$export$2e2bcd8739ae039 {\n static probe(buffer) {\n let stream = new $6uUbQ$DecodeStream(buffer);\n try {\n var header = $05f49f930186144e$var$DFontHeader.decode(stream);\n } catch (e) {\n return false;\n }\n for (let type of header.map.typeList.types){\n if (type.name === 'sfnt') return true;\n }\n return false;\n }\n getFont(name) {\n if (!this.sfnt) return null;\n for (let ref of this.sfnt.refList){\n let pos = this.header.dataOffset + ref.dataOffset + 4;\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer.slice(pos));\n let font = new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream);\n if (font.postscriptName === name || font.postscriptName instanceof Uint8Array && name instanceof Uint8Array && font.postscriptName.every((v, i)=>name[i] === v)) return font;\n }\n return null;\n }\n get fonts() {\n let fonts = [];\n for (let ref of this.sfnt.refList){\n let pos = this.header.dataOffset + ref.dataOffset + 4;\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer.slice(pos));\n fonts.push(new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream));\n }\n return fonts;\n }\n constructor(stream){\n (0, $6uUbQ$_)(this, \"type\", 'DFont');\n this.stream = stream;\n this.header = $05f49f930186144e$var$DFontHeader.decode(this.stream);\n for (let type of this.header.map.typeList.types){\n for (let ref of type.refList)if (ref.nameOffset >= 0) {\n this.stream.pos = ref.nameOffset + this.header.map.nameListOffset;\n ref.name = $05f49f930186144e$var$DFontName.decode(this.stream);\n } else ref.name = null;\n if (type.name === 'sfnt') this.sfnt = type;\n }\n }\n}\n\n\n// Register font formats\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $4c1709dee528ea76$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $760785214b9fc52c$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $21ee218f84ac7f32$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $cd5853a56c68fec7$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $05f49f930186144e$export$2e2bcd8739ae039));\n\n\nexport {$d636bc798e7178db$export$bd5c5d8b8dcafd78 as logErrors, $d636bc798e7178db$export$36b2f24e97d43be as registerFormat, $d636bc798e7178db$export$185802fd694ee1f5 as create, $d636bc798e7178db$export$42940898df819940 as defaultLanguage, $d636bc798e7178db$export$5157e7780d44cc36 as setDefaultLanguage};\n//# sourceMappingURL=browser-module.mjs.map\n"],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$interopDefault","a","__esModule","default","$d636bc798e7178db$exports","$d636bc798e7178db$export$bd5c5d8b8dcafd78","$d636bc798e7178db$export$36b2f24e97d43be","$d636bc798e7178db$export$185802fd694ee1f5","$d636bc798e7178db$export$42940898df819940","$d636bc798e7178db$export$5157e7780d44cc36","$d636bc798e7178db$var$formats","format","push","buffer","postscriptName","i","length","probe","font","getFont","Error","lang","$e71565f2ce09cb6b$export$69a3209f1a06c04d","target","key","descriptor","value","call","this","fn","cache","Map","memoized","args","has","result","apply","$26a62205ad06574e$var$SubHeader","firstCode","entryCount","idDelta","idRangeOffset","$26a62205ad06574e$var$CmapGroup","startCharCode","endCharCode","glyphID","$26a62205ad06574e$var$UnicodeValueRange","startUnicodeValue","additionalCount","$26a62205ad06574e$var$UVSMapping","unicodeValue","$26a62205ad06574e$var$DefaultUVS","$26a62205ad06574e$var$NonDefaultUVS","$26a62205ad06574e$var$VarSelectorRecord","varSelector","defaultUVS","type","nonDefaultUVS","$26a62205ad06574e$var$CmapSubtable","language","codeMap","subHeaderKeys","subHeaderCount","t","Math","max","subHeaders","glyphIndexArray","segCountX2","segCount","searchRange","entrySelector","rangeShift","endCode","reservedPad","startCode","_currentOffset","glyphIndices","reserved","is32","nGroups","groups","numRecords","varSelectors","$26a62205ad06574e$var$CmapEntry","platformID","encodingID","table","lazy","$26a62205ad06574e$export$2e2bcd8739ae039","version","numSubtables","tables","$f2612a29f92ac062$export$2e2bcd8739ae039","revision","checkSumAdjustment","magicNumber","flags","unitsPerEm","created","modified","xMin","yMin","xMax","yMax","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","$2c179dd593583073$export$2e2bcd8739ae039","ascent","descent","lineGap","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","$bdc9060542264b85$var$HmtxEntry","advance","bearing","$bdc9060542264b85$export$2e2bcd8739ae039","metrics","parent","hhea","bearings","maxp","numGlyphs","$dbf51cb3d3fe409d$export$2e2bcd8739ae039","maxPoints","maxContours","maxComponentPoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","$e449ad78d50845fe$export$badc544e0651b6b1","languageID","$e449ad78d50845fe$export$479e671907f486d1","$e449ad78d50845fe$export$6fef87b7618bdf0b","$e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS","Set","$e449ad78d50845fe$var$MAC_ENCODINGS","$e449ad78d50845fe$var$encodingCache","$e449ad78d50845fe$export$1dceb3c14ed68bee","encoding","cached","mapping","res","charCodeAt","decoder","TextDecoder","Uint8Array","decode","$e449ad78d50845fe$export$2092376fd002e13","$2bcf221753ec8e32$var$NameRecord","nameID","string","relativeTo","ctx","stringOffset","allowNull","$2bcf221753ec8e32$var$LangTagRecord","tag","$2bcf221753ec8e32$var$NameTable","count","records","langTagCount","langTags","$2bcf221753ec8e32$export$2e2bcd8739ae039","$2bcf221753ec8e32$var$NAMES","process","stream","record","obj","preEncode","Array","isArray","val","indexOf","en","size","$84b272aa31b70606$var$OS2","header","xAvgCharWidth","usWeightClass","usWidthClass","fsType","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","sFamilyClass","panose","ulCharRange","vendorID","fsSelection","usFirstCharIndex","usLastCharIndex","typoAscender","typoDescender","typoLineGap","winAscent","winDescent","codePageRange","xHeight","capHeight","defaultChar","breakChar","maxContent","usLowerOpticalPointSize","usUpperOpticalPointSize","$84b272aa31b70606$var$versions","versions","$84b272aa31b70606$export$2e2bcd8739ae039","$32d9e2eb9565d93c$export$2e2bcd8739ae039","italicAngle","underlinePosition","underlineThickness","isFixedPitch","minMemType42","maxMemType42","minMemType1","maxMemType1","numberOfGlyphs","glyphNameIndex","names","offsets","map","$5202bd9d9ad8eaac$export$2e2bcd8739ae039","controlValues","$5c0f37ca5ffb1850$export$2e2bcd8739ae039","instructions","$2b2b260902b1c57e$var$loca","_processed","$2b2b260902b1c57e$export$2e2bcd8739ae039","$7afb878c7bea4f66$export$2e2bcd8739ae039","controlValueProgram","$6c92b6371bce8bd9$export$2e2bcd8739ae039","$43e9821ef3717eec$export$2e2bcd8739ae039","getCFFVersion","hdrSize","readUInt32BE","readUInt16BE","offsetType","offSize","readUInt8","pos","ret","startPos","start","end","offset","arr","item","encode","writeUInt16BE","sizes","writeUInt8","constructor","$c2d28e92708f99da$var$FLOAT_LOOKUP","$c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP","$c2d28e92708f99da$export$2e2bcd8739ae039","readInt16BE","readInt32BE","str","b","n1","n2","parseFloat","forceLarge","ceil","Number","writeInt32BE","writeInt16BE","c1","c2","$c2d28e92708f99da$var$FLOAT_EOF","$61aa549f16d58b9b$export$2e2bcd8739ae039","decodeOperands","operands","op","encodeOperands","defineProperties","_startOffset","fields","field","dict","includePointers","pointerSize","startOffset","len","k","pointers","pointerOffset","ops","ptr","$0e34a43d05bde82c$export$2e2bcd8739ae039","super","$0e34a43d05bde82c$var$Ptr","options","valueOf","$6d59db2e29cc77b3$export$2e2bcd8739ae039","numBlends","pop","$229224aec43783c5$export$2e2bcd8739ae039","$bc0433d9b7e41f5f$export$dee0027060fa13bd","$ef658f5c9a1488b2$export$c33b50336c234f16","$7cbbe4e24ef3cb75$var$LangSysTable","reqFeatureIndex","featureCount","featureIndexes","$7cbbe4e24ef3cb75$var$LangSysRecord","langSys","$7cbbe4e24ef3cb75$var$Script","defaultLangSys","langSysRecords","$7cbbe4e24ef3cb75$var$ScriptRecord","script","$7cbbe4e24ef3cb75$export$3e15fc05ce864229","$7cbbe4e24ef3cb75$var$FeatureParams","$7cbbe4e24ef3cb75$export$6e91cf7616333d5","featureParams","lookupCount","lookupListIndexes","$7cbbe4e24ef3cb75$var$FeatureRecord","feature","$7cbbe4e24ef3cb75$export$aa18130def4b6cb4","$7cbbe4e24ef3cb75$var$LookupFlags","markAttachmentType","$7cbbe4e24ef3cb75$export$df0008c6ff2da22a","SubTable","Lookup","lookupType","subTableCount","subTables","markFilteringSet","useMarkFilteringSet","$7cbbe4e24ef3cb75$var$RangeRecord","startCoverageIndex","$7cbbe4e24ef3cb75$export$17608c3f81a6111","glyphCount","glyphs","rangeCount","rangeRecords","$7cbbe4e24ef3cb75$var$ClassRangeRecord","class","$7cbbe4e24ef3cb75$export$843d551fbbafef71","startGlyph","classValueArray","classRangeCount","classRangeRecord","$7cbbe4e24ef3cb75$export$8215d14a63d9fb10","deltaFormat","$7cbbe4e24ef3cb75$var$LookupRecord","sequenceIndex","lookupListIndex","$7cbbe4e24ef3cb75$var$Rule","input","lookupRecords","$7cbbe4e24ef3cb75$var$RuleSet","$7cbbe4e24ef3cb75$var$ClassRule","classes","$7cbbe4e24ef3cb75$var$ClassSet","$7cbbe4e24ef3cb75$export$841858b892ce1f4c","coverage","ruleSetCount","ruleSets","classDef","classSetCnt","classSet","coverages","$7cbbe4e24ef3cb75$var$ChainRule","backtrackGlyphCount","backtrack","inputGlyphCount","lookaheadGlyphCount","lookahead","$7cbbe4e24ef3cb75$var$ChainRuleSet","$7cbbe4e24ef3cb75$export$5e6d09e6861162f6","chainCount","chainRuleSets","backtrackClassDef","inputClassDef","lookaheadClassDef","chainClassSet","backtrackCoverage","inputCoverage","lookaheadCoverage","$1a47b0c45c1c22fe$var$F2DOT14","$1a47b0c45c1c22fe$var$RegionAxisCoordinates","startCoord","peakCoord","endCoord","$1a47b0c45c1c22fe$var$VariationRegionList","axisCount","regionCount","variationRegions","$1a47b0c45c1c22fe$var$DeltaSet","shortDeltas","shortDeltaCount","regionDeltas","regionIndexCount","deltas","concat","$1a47b0c45c1c22fe$var$ItemVariationData","itemCount","regionIndexes","deltaSets","$1a47b0c45c1c22fe$export$fe1b122a2710f241","variationRegionList","variationDataCount","itemVariationData","$1a47b0c45c1c22fe$var$ConditionTable","axisIndex","filterRangeMinValue","filterRangeMaxValue","$1a47b0c45c1c22fe$var$ConditionSet","conditionCount","conditionTable","$1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord","featureIndex","alternateFeatureTable","$1a47b0c45c1c22fe$var$FeatureTableSubstitution","substitutionCount","substitutions","$1a47b0c45c1c22fe$var$FeatureVariationRecord","conditionSet","featureTableSubstitution","$1a47b0c45c1c22fe$export$441b70b7971dd419","majorVersion","minorVersion","featureVariationRecordCount","featureVariationRecords","$b84fd3dd9d8eddb2$var$PredefinedOp","predefinedOps","index","$b84fd3dd9d8eddb2$var$CFFEncodingVersion","$b84fd3dd9d8eddb2$var$Range1","first","nLeft","$b84fd3dd9d8eddb2$var$Range2","$b84fd3dd9d8eddb2$var$CFFEncoding","nCodes","codes","nRanges","ranges","$b84fd3dd9d8eddb2$var$RangeArray","range","$b84fd3dd9d8eddb2$var$CFFCharset","CharStrings","$b84fd3dd9d8eddb2$var$FDRange3","fd","$b84fd3dd9d8eddb2$var$FDRange4","$b84fd3dd9d8eddb2$var$FDSelect","fds","sentinel","$b84fd3dd9d8eddb2$var$ptr","$b84fd3dd9d8eddb2$var$CFFPrivateOp","$b84fd3dd9d8eddb2$var$FontDict","$b84fd3dd9d8eddb2$var$CFFTopDict","$b84fd3dd9d8eddb2$var$VariationStore","itemVariationStore","$b84fd3dd9d8eddb2$var$CFF2TopDict","$b84fd3dd9d8eddb2$export$2e2bcd8739ae039","nameIndex","topDictIndex","stringIndex","globalSubrIndex","topDict","$822ac0d589e4e237$var$CFFFont","top","isCIDFont","ROS","sid","fullName","FullName","familyName","FamilyName","getCharString","glyph","readBuffer","getGlyphName","gid","charset","fdForGlyph","FDSelect","low","high","mid","privateDictForGlyph","FDArray","Private","$822ac0d589e4e237$export$2e2bcd8739ae039","$2bbf2bc1ce37cd8f$var$VerticalOrigin","glyphIndex","vertOriginY","$2bbf2bc1ce37cd8f$export$2e2bcd8739ae039","defaultVertOriginY","numVertOriginYMetrics","$0941618dc22a946d$export$16b227cb15d716a0","height","width","horiBearingX","horiBearingY","horiAdvance","vertBearingX","vertBearingY","vertAdvance","$0941618dc22a946d$export$62c53e75f69bfe12","bearingX","bearingY","$0941618dc22a946d$var$EBDTComponent","xOffset","yOffset","$0941618dc22a946d$var$ByteAligned","$0941618dc22a946d$var$BitAligned","data","pad","numComponents","components","dataLen","$9911c4c7201c13de$var$SBitLineMetrics","ascender","descender","widthMax","caretSlopeNumerator","caretSlopeDenominator","minOriginSB","minAdvanceSB","maxBeforeBL","minAfterBL","$9911c4c7201c13de$var$CodeOffsetPair","glyphCode","$9911c4c7201c13de$var$IndexSubtable","imageFormat","imageDataOffset","offsetArray","lastGlyphIndex","firstGlyphIndex","imageSize","bigMetrics","glyphArray","glyphCodeArray","$9911c4c7201c13de$var$IndexSubtableArray","subtable","$9911c4c7201c13de$var$BitmapSizeTable","indexSubTableArray","indexTablesSize","numberOfIndexSubTables","colorRef","hori","vert","startGlyphIndex","endGlyphIndex","ppemX","ppemY","bitDepth","$9911c4c7201c13de$export$2e2bcd8739ae039","numSizes","$abb847051efd51b1$var$ImageTable","ppem","resolution","imageOffsets","$abb847051efd51b1$export$2e2bcd8739ae039","numImgTables","imageTables","$eb629188f3dfefdd$var$LayerRecord","paletteIndex","$eb629188f3dfefdd$var$BaseGlyphRecord","firstLayerIndex","numLayers","$eb629188f3dfefdd$export$2e2bcd8739ae039","numBaseGlyphRecords","baseGlyphRecord","layerRecords","numLayerRecords","$08734b8e7dc64587$var$ColorRecord","blue","green","red","alpha","$08734b8e7dc64587$export$2e2bcd8739ae039","numPaletteEntries","numPalettes","numColorRecords","colorRecords","colorRecordIndices","offsetPaletteTypeArray","offsetPaletteLabelArray","offsetPaletteEntryLabelArray","$497cef411d884e34$var$BaseCoord","coordinate","referenceGlyph","baseCoordPoint","deviceTable","$497cef411d884e34$var$BaseValues","defaultIndex","baseCoordCount","baseCoords","$497cef411d884e34$var$FeatMinMaxRecord","minCoord","maxCoord","$497cef411d884e34$var$MinMax","featMinMaxCount","featMinMaxRecords","$497cef411d884e34$var$BaseLangSysRecord","minMax","$497cef411d884e34$var$BaseScript","baseValues","defaultMinMax","baseLangSysCount","baseLangSysRecords","$497cef411d884e34$var$BaseScriptRecord","$497cef411d884e34$var$BaseScriptList","$497cef411d884e34$var$BaseTagList","$497cef411d884e34$var$Axis","baseTagList","baseScriptList","$497cef411d884e34$export$2e2bcd8739ae039","horizAxis","vertAxis","$cf5f33c63ef209e6$var$AttachPoint","$cf5f33c63ef209e6$var$AttachList","attachPoints","$cf5f33c63ef209e6$var$CaretValue","caretValuePoint","$cf5f33c63ef209e6$var$LigGlyph","$cf5f33c63ef209e6$var$LigCaretList","ligGlyphCount","ligGlyphs","$cf5f33c63ef209e6$var$MarkGlyphSetsDef","markSetTableFormat","markSetCount","$cf5f33c63ef209e6$export$2e2bcd8739ae039","glyphClassDef","attachList","ligCaretList","markAttachClassDef","markGlyphSetsDef","$47e0e8ef515d9903$var$ValueFormat","$47e0e8ef515d9903$var$types","xPlacement","yPlacement","xAdvance","yAdvance","xPlaDevice","rel","yPlaDevice","xAdvDevice","yAdvDevice","$47e0e8ef515d9903$var$ValueRecord","buildStruct","struct","$47e0e8ef515d9903$var$PairValueRecord","secondGlyph","value1","value2","$47e0e8ef515d9903$var$PairSet","$47e0e8ef515d9903$var$Class2Record","$47e0e8ef515d9903$var$Anchor","xCoordinate","yCoordinate","anchorPoint","xDeviceTable","yDeviceTable","$47e0e8ef515d9903$var$EntryExitRecord","entryAnchor","exitAnchor","$47e0e8ef515d9903$var$MarkRecord","markAnchor","$47e0e8ef515d9903$var$MarkArray","$47e0e8ef515d9903$var$BaseRecord","classCount","$47e0e8ef515d9903$var$BaseArray","$47e0e8ef515d9903$var$ComponentRecord","$47e0e8ef515d9903$var$LigatureAttach","$47e0e8ef515d9903$var$LigatureArray","$47e0e8ef515d9903$export$73a8cfb19cd43a0f","valueFormat","valueCount","values","valueFormat1","valueFormat2","pairSetCount","pairSets","classDef1","classDef2","class1Count","class2Count","classRecords","entryExitCount","entryExitRecords","markCoverage","baseCoverage","markArray","baseArray","ligatureCoverage","ligatureArray","mark1Coverage","mark2Coverage","mark1Array","mark2Array","posFormat","extension","$47e0e8ef515d9903$export$2e2bcd8739ae039","scriptList","featureList","lookupList","featureVariations","$d3f442064af66e06$var$Sequence","$d3f442064af66e06$var$AlternateSet","$d3f442064af66e06$var$Ligature","compCount","$d3f442064af66e06$var$LigatureSet","$d3f442064af66e06$var$GSUBLookup","deltaGlyphID","substitute","substFormat","sequences","alternateSet","ligatureSets","substitutes","$d3f442064af66e06$export$2e2bcd8739ae039","$71cfb3c4767fbd0c$var$JstfGSUBModList","$71cfb3c4767fbd0c$var$JstfPriority","shrinkageEnableGSUB","shrinkageDisableGSUB","shrinkageEnableGPOS","shrinkageDisableGPOS","shrinkageJstfMax","extensionEnableGSUB","extensionDisableGSUB","extensionEnableGPOS","extensionDisableGPOS","extensionJstfMax","$71cfb3c4767fbd0c$var$JstfLangSys","$71cfb3c4767fbd0c$var$JstfLangSysRecord","jstfLangSys","$71cfb3c4767fbd0c$var$JstfScript","extenderGlyphs","langSysCount","$71cfb3c4767fbd0c$var$JstfScriptRecord","$71cfb3c4767fbd0c$export$2e2bcd8739ae039","scriptCount","$d059a6bd2d3b5b63$var$MapDataEntry","entry","readUInt24BE","_size","entryFormat","outerIndex","innerIndex","$d059a6bd2d3b5b63$var$DeltaSetIndexMap","mapCount","mapData","$d059a6bd2d3b5b63$export$2e2bcd8739ae039","advanceWidthMapping","LSBMapping","RSBMapping","$dceeca3e1977ce30$var$Signature","$dceeca3e1977ce30$var$SignatureBlock","cbSignature","signature","$dceeca3e1977ce30$export$2e2bcd8739ae039","ulVersion","usNumSigs","usFlag","signatures","signatureBlocks","$8acd740a9435aad0$var$GaspRange","rangeMaxPPEM","rangeGaspBehavior","$8acd740a9435aad0$export$2e2bcd8739ae039","numRanges","gaspRanges","$b5f380243c34d6a0$var$DeviceRecord","pixelSize","maximumWidth","widths","$b5f380243c34d6a0$export$2e2bcd8739ae039","sizeDeviceRecord","$ca2df1256966e313$var$KernPair","left","right","$ca2df1256966e313$var$ClassTable","firstGlyph","nGlyphs","$ca2df1256966e313$var$Kern2Array","off","leftTable","rowWidth","$ca2df1256966e313$var$KernSubtable","nPairs","pairs","rightTable","array","kernValueCount","leftClassCount","rightClassCount","kernValue","leftClass","rightClass","kernIndex","$ca2df1256966e313$var$KernTable","subVersion","padding","tupleIndex","$ca2df1256966e313$export$2e2bcd8739ae039","nTables","$7a9f92b0c46ebe33$export$2e2bcd8739ae039","yPels","$2b2ccc419d152631$export$2e2bcd8739ae039","fontNumber","pitch","style","typeFamily","symbolSet","typeface","characterComplement","fileName","strokeWeight","widthType","serifStyle","$ca5b40b9bcda9c9b$var$Ratio","bCharSet","xRatio","yStartRatio","yEndRatio","$ca5b40b9bcda9c9b$var$vTable","yPelHeight","$ca5b40b9bcda9c9b$var$VdmxGroup","recs","startsz","endsz","entries","$ca5b40b9bcda9c9b$export$2e2bcd8739ae039","numRecs","numRatios","ratioRanges","$69530a3c40755af0$export$2e2bcd8739ae039","advanceHeightMax","minTopSideBearing","minBottomSideBearing","yMaxExtent","$344073dd270f0e62$var$VmtxEntry","$344073dd270f0e62$export$2e2bcd8739ae039","vhea","$3793b781918cfced$var$shortFrac","$3793b781918cfced$var$Correspondence","fromCoord","toCoord","$3793b781918cfced$var$Segment","pairCount","correspondence","$3793b781918cfced$export$2e2bcd8739ae039","segment","$6cb7dd5f47d82580$var$UnboundedArrayAccessor","getItem","_items","base","inspect","name","$6cb7dd5f47d82580$export$c5af1eebc882e39a","$6cb7dd5f47d82580$export$8351f8c2ae2f103c","ValueType","BinarySearchHeader","unitSize","nUnits","LookupSegmentSingle","lastGlyph","LookupSegmentArray","LookupSingle","binarySearchHeader","segments","$6cb7dd5f47d82580$export$79f7d93d790934ba","entryData","assign","newState","Entry","StateArray","nClasses","classTable","stateArray","entryTable","$6a3746e8c708f5a3$var$BslnSubtable","mappingData","standardGlyph","controlPoints","$6a3746e8c708f5a3$export$2e2bcd8739ae039","defaultBaseline","$d0c76fac617b308a$var$Setting","setting","fontFeatures","$d0c76fac617b308a$var$FeatureName","nSettings","settingTable","featureFlags","defaultSetting","$d0c76fac617b308a$export$2e2bcd8739ae039","featureNameCount","reserved1","reserved2","featureNames","$e83fd065f00fcd01$var$Axis","axisTag","minValue","defaultValue","maxValue","$e83fd065f00fcd01$var$Instance","coord","postscriptNameID","instanceSize","$e83fd065f00fcd01$export$2e2bcd8739ae039","offsetToData","countSizePairs","axisSize","instanceCount","axis","instance","$dbe33c8d3a7f131c$var$shortFrac","$dbe33c8d3a7f131c$export$2e2bcd8739ae039","globalCoordCount","globalCoords","$05b01887df96c4ee$var$ClassTable","subFeatureFlags","stateTable","ClassLookupTable","newStateOffset","$05b01887df96c4ee$var$WidthDeltaRecord","justClass","beforeGrowLimit","beforeShrinkLimit","afterGrowLimit","afterShrinkLimit","growFlags","shrinkFlags","$05b01887df96c4ee$var$WidthDeltaCluster","$05b01887df96c4ee$var$ActionData","lowerLimit","upperLimit","order","addGlyph","substThreshold","substGlyph","variationAxis","minimumLimit","noStretchValue","maximumLimit","$05b01887df96c4ee$var$Action","actionClass","actionType","actionLength","actionData","$05b01887df96c4ee$var$PostcompensationAction","$05b01887df96c4ee$var$PostCompensationTable","lookupTable","$05b01887df96c4ee$var$JustificationTable","wdcOffset","postCompensationTable","widthDeltaClusters","$05b01887df96c4ee$export$2e2bcd8739ae039","horizontal","vertical","$03ee6ebd54db1053$var$LigatureData","action","$03ee6ebd54db1053$var$ContextualData","markIndex","currentIndex","$03ee6ebd54db1053$var$InsertionData","currentInsertIndex","markedInsertIndex","$03ee6ebd54db1053$var$SubstitutionTable","items","$03ee6ebd54db1053$var$SubtableData","substitutionTable","ligatureActions","ligatureList","insertionActions","$03ee6ebd54db1053$var$Subtable","$03ee6ebd54db1053$var$FeatureEntry","featureType","featureSetting","enableFlags","disableFlags","$03ee6ebd54db1053$var$MorxChain","defaultFlags","chainLength","nFeatureEntries","nSubtables","features","subtables","$03ee6ebd54db1053$export$2e2bcd8739ae039","unused","nChains","chains","$b7492a80b0d1a056$var$OpticalBounds","bottom","$b7492a80b0d1a056$export$2e2bcd8739ae039","$c3395722bea751e2$var$tables","$c3395722bea751e2$export$2e2bcd8739ae039","cmap","head","hmtx","post","fpgm","loca","prep","glyf","VORG","EBLC","CBLC","sbix","COLR","CPAL","BASE","GDEF","GPOS","GSUB","JSTF","HVAR","DSIG","gasp","hdmx","kern","LTSH","PCLT","VDMX","vmtx","avar","bsln","feat","fvar","gvar","just","morx","opbd","$816c07a04b6dba87$var$TableEntry","checkSum","$816c07a04b6dba87$var$Directory","numTables","maxExponentFor2","floor","log","LN2","maxPowerOf2","pow","$816c07a04b6dba87$export$2e2bcd8739ae039","$12727730ddfc8bfe$export$2e0ae67339d5f1ac","cmp","min","$12727730ddfc8bfe$export$d02631cccf789723","$12727730ddfc8bfe$export$3d28c1996ced1f14","$12727730ddfc8bfe$var$CHARS","$12727730ddfc8bfe$var$LOOKUP","$12727730ddfc8bfe$export$94fdf11bafc8de6b","base64","bufferLength","bytes","p","encoded1","encoded2","encoded3","encoded4","$f08dd41ef10b694c$export$2e2bcd8739ae039","findSubtable","cmapTable","lookup","codepoint","variationSelector","getVariationSelector","rangeOffset","group","uvs","selectors","toArray","x","sel","getCharacterSet","endCodes","tail","codePointsForGlyph","delta","c","g","prototype","$0bba3a9db57637f3$export$2e2bcd8739ae039","positions","id","getKerning","crossStream","variation","pairIdx","pair","leftOffset","rightOffset","override","$0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039","positionGlyphs","clusterStart","clusterEnd","isMark","positionCluster","baseBox","cbox","copy","codePoints","minX","yGap","mark","markBox","position","combiningClass","getCombiningClass","maxX","minY","maxY","codePoint","$f34600ab9d7f70d8$export$2e2bcd8739ae039","addPoint","y","abs","Infinity","$130d1a642ebcd2b7$var$UNICODE_SCRIPTS","Caucasian_Albanian","Arabic","Imperial_Aramaic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bopomofo","Brahmi","Braille","Buginese","Buhid","Chakma","Canadian_Aboriginal","Carian","Cham","Cherokee","Coptic","Cypriot","Cyrillic","Devanagari","Deseret","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gurmukhi","Hangul","Han","Hanunoo","Hebrew","Hiragana","Pahawh_Hmong","Katakana_Or_Hiragana","Old_Italic","Javanese","Kayah_Li","Katakana","Kharoshthi","Khmer","Khojki","Kannada","Kaithi","Tai_Tham","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Mandaic","Manichaean","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Malayalam","Modi","Mongolian","Mro","Meetei_Mayek","Myanmar","Old_North_Arabian","Nabataean","Nko","Ogham","Ol_Chiki","Old_Turkic","Oriya","Osmanya","Palmyrene","Pau_Cin_Hau","Old_Permic","Phags_Pa","Inscriptional_Pahlavi","Psalter_Pahlavi","Phoenician","Miao","Inscriptional_Parthian","Rejang","Runic","Samaritan","Old_South_Arabian","Saurashtra","Shavian","Sharada","Siddham","Khudawadi","Sinhala","Sora_Sompeng","Sundanese","Syloti_Nagri","Syriac","Tagbanwa","Takri","Tai_Le","New_Tai_Lue","Tamil","Tai_Viet","Telugu","Tifinagh","Tagalog","Thaana","Thai","Tibetan","Tirhuta","Ugaritic","Vai","Warang_Citi","Old_Persian","Cuneiform","Yi","Inherited","Common","Unknown","$130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS","$130d1a642ebcd2b7$var$RTL","arab","hebr","syrc","thaa","cprt","khar","phnx","lydi","avst","armi","phli","prti","sarb","orkh","samr","mand","merc","mero","mani","mend","nbat","narb","palm","phlp","$130d1a642ebcd2b7$export$9fddb9d0dd7d8a54","$be07b3e97a42687a$export$2e2bcd8739ae039","advanceWidth","advanceHeight","bbox","direction","$1ac75d9a55b67f01$export$2e2bcd8739ae039","$3b6302b64eccc32c$var$features","allTypographicFeatures","code","exclusive","allTypeFeatures","ligatures","requiredLigatures","commonLigatures","rareLigatures","rebusPictures","diphthongLigatures","squaredLigatures","abbrevSquaredLigatures","symbolLigatures","contextualLigatures","historicalLigatures","cursiveConnection","unconnected","partiallyConnected","cursive","letterCase","verticalSubstitution","substituteVerticalForms","linguisticRearrangement","numberSpacing","monospacedNumbers","proportionalNumbers","thirdWidthNumbers","quarterWidthNumbers","smartSwash","wordInitialSwashes","wordFinalSwashes","nonFinalSwashes","diacritics","showDiacritics","hideDiacritics","decomposeDiacritics","verticalPosition","normalPosition","superiors","inferiors","ordinals","scientificInferiors","fractions","noFractions","verticalFractions","diagonalFractions","overlappingCharacters","preventOverlap","typographicExtras","slashedZero","mathematicalExtras","mathematicalGreek","ornamentSets","noOrnaments","dingbats","piCharacters","fleurons","decorativeBorders","internationalSymbols","mathSymbols","characterAlternatives","noAlternates","designComplexity","designLevel1","designLevel2","designLevel3","designLevel4","designLevel5","styleOptions","noStyleOptions","displayText","engravedText","illuminatedCaps","titlingCaps","tallCaps","characterShape","traditionalCharacters","simplifiedCharacters","JIS1978Characters","JIS1983Characters","JIS1990Characters","traditionalAltOne","traditionalAltTwo","traditionalAltThree","traditionalAltFour","traditionalAltFive","expertCharacters","JIS2004Characters","hojoCharacters","NLCCharacters","traditionalNamesCharacters","numberCase","lowerCaseNumbers","upperCaseNumbers","textSpacing","proportionalText","monospacedText","halfWidthText","thirdWidthText","quarterWidthText","altProportionalText","altHalfWidthText","transliteration","noTransliteration","annotation","noAnnotation","boxAnnotation","roundedBoxAnnotation","circleAnnotation","invertedCircleAnnotation","parenthesisAnnotation","periodAnnotation","romanNumeralAnnotation","diamondAnnotation","invertedBoxAnnotation","invertedRoundedBoxAnnotation","kanaSpacing","fullWidthKana","proportionalKana","ideographicSpacing","fullWidthIdeographs","proportionalIdeographs","halfWidthIdeographs","unicodeDecomposition","canonicalComposition","compatibilityComposition","transcodingComposition","rubyKana","CJKSymbolAlternatives","noCJKSymbolAlternatives","CJKSymbolAltOne","CJKSymbolAltTwo","CJKSymbolAltThree","CJKSymbolAltFour","CJKSymbolAltFive","ideographicAlternatives","noIdeographicAlternatives","ideographicAltOne","ideographicAltTwo","ideographicAltThree","ideographicAltFour","ideographicAltFive","CJKVerticalRomanPlacement","CJKVerticalRomanCentered","CJKVerticalRomanHBaseline","italicCJKRoman","CJKItalicRoman","caseSensitiveLayout","caseSensitiveSpacing","alternateKana","alternateHorizKana","alternateVertKana","stylisticAlternatives","noStylisticAlternates","stylisticAltOne","stylisticAltTwo","stylisticAltThree","stylisticAltFour","stylisticAltFive","stylisticAltSix","stylisticAltSeven","stylisticAltEight","stylisticAltNine","stylisticAltTen","stylisticAltEleven","stylisticAltTwelve","stylisticAltThirteen","stylisticAltFourteen","stylisticAltFifteen","stylisticAltSixteen","stylisticAltSeventeen","stylisticAltEighteen","stylisticAltNineteen","stylisticAltTwenty","contextualAlternates","swashAlternates","contextualSwashAlternates","lowerCase","defaultLowerCase","lowerCaseSmallCaps","lowerCasePetiteCaps","upperCase","defaultUpperCase","upperCaseSmallCaps","upperCasePetiteCaps","languageTag","CJKRomanSpacing","halfWidthCJKRoman","proportionalCJKRoman","defaultCJKRoman","fullWidthCJKRoman","$3b6302b64eccc32c$var$feature","selector","$3b6302b64eccc32c$var$OTMapping","rlig","clig","dlig","hlig","liga","hist","smcp","pcap","frac","dnom","numr","afrc","case","ccmp","cpct","valt","swsh","cswh","curs","c2pc","c2sc","init","fin2","medi","med2","fin3","fina","pkna","half","halt","hkna","vkna","ital","lnum","onum","mgrk","calt","vrt2","tnum","pnum","sups","subs","ordn","pwid","hwid","qwid","twid","fwid","palt","trad","smpl","jp78","jp83","jp90","jp04","expt","hojo","nlck","tnam","ruby","titl","zero","ss01","ss02","ss03","ss04","ss05","ss06","ss07","ss08","ss09","ss10","ss11","ss12","ss13","ss14","ss15","ss16","ss17","ss18","ss19","ss20","slice","$3b6302b64eccc32c$var$AATMapping","ot","aat","$3b6302b64eccc32c$var$mapFeatureStrings","f","isNaN","typeCode","settingCode","$ff5ce077dae0f144$export$2e2bcd8739ae039","seg","glyphsForValue","classValue","$50c7aac9316f2948$export$2e2bcd8739ae039","reverse","processEntry","currentState","dir","classCode","shouldAdvance","entryIndex","traverse","opts","state","visited","add","row","enter","exit","$55f71433a605c87d$var$REVERSE_DIRECTION","$55f71433a605c87d$export$2e2bcd8739ae039","chain","processSubtable","splice","processNoncontextualSubstitutions","ligatureStack","markedGlyph","markedIndex","stateMachine","getStateMachine","getProcessor","processIndicRearragement","processContextualSubstitution","processLigature","processGlyphInsertion","verb","$55f71433a605c87d$var$swap","$55f71433a605c87d$var$reorderGlyphs","subsitutions","getGlyph","actions","actionIndex","last","ligatureIndex","ligatureGlyphs","componentGlyph","unshift","store","ligatureEntry","_insertGlyphs","insertionActionIndex","isBefore","insertions","getSupportedFeatures","generateInputs","inputCache","generateInputCache","generateInputsForSubtable","stack","found","bind","rangeA","rangeB","reverseA","reverseB","$ba6dd74203be8728$export$2e2bcd8739ae039","glyphRun","morxProcessor","r","$3b6302b64eccc32c$export$b813f7d2a1677c16","getAvailableFeatures","keys","$3b6302b64eccc32c$export$bd6df347a4f391c4","stringsForGlyph","glyphStrings","_addStrings","strings","_cmapProcessor","String","fromCodePoint","fallbackPosition","$94d7a73bd2edfc9a$export$2e2bcd8739ae039","_addFeatures","global","stageIndex","stages","stage","allFeatures","globalFeatures","arg","local","addStage","setFeatureOverrides","assignGlobalFeatures","processor","applyFeatures","$649970d87335b30f$var$VARIATION_FEATURES","$649970d87335b30f$var$COMMON_FEATURES","$649970d87335b30f$var$FRACTIONAL_FEATURES","$649970d87335b30f$var$HORIZONTAL_FEATURES","$649970d87335b30f$var$DIRECTIONAL_FEATURES","ltr","rtl","$649970d87335b30f$export$2e2bcd8739ae039","plan","planPreprocessing","planFeatures","planPostprocessing","assignFeatures","userFeatures","$764eb544bbe1ccf0$var$trie","$764eb544bbe1ccf0$var$FEATURES","$764eb544bbe1ccf0$var$ShapingClasses","$764eb544bbe1ccf0$var$ISOL","$764eb544bbe1ccf0$var$FINA","$764eb544bbe1ccf0$var$FIN2","$764eb544bbe1ccf0$var$MEDI","$764eb544bbe1ccf0$var$MED2","$764eb544bbe1ccf0$var$INIT","$764eb544bbe1ccf0$var$NONE","$764eb544bbe1ccf0$var$STATE_TABLE","$764eb544bbe1ccf0$export$2e2bcd8739ae039","prev","curAction","prevAction","$764eb544bbe1ccf0$var$getShapingClass","category","$85d408632270248b$export$2e2bcd8739ae039","reset","cur","shouldIgnore","ignoreMarks","ignoreBaseGlyphs","isBase","ignoreLigatures","isLigature","move","next","peek","idx","increment","peekIndex","$a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS","$a83b9c36aaa94fd3$export$2e2bcd8739ae039","findScript","selectScript","changed","scriptTag","repeat","substituteFeature","substituteFeatureForVariations","lookupsForFeatures","exclude","lookups","lookupIndex","sort","variationsIndex","substitution","findVariationsIndex","coords","variations","conditions","variationConditionsMatch","every","condition","advances","applyLookups","glyphIterator","currentFeature","applyLookup","applyLookupList","lookupRecord","coverageIndex","match","sequence","matched","sequenceMatches","component","sequenceMatchIndices","coverageSequenceMatches","getClassID","classSequenceMatches","classID","applyContext","rule","applyChainingContext","rules","_variationProcessor","normalizedCoords","ligatureID","$10e7b257e1a9a756$export$2e2bcd8739ae039","_id","substituted","_font","ligatureComponent","isLigated","cursiveAttachment","markAttachment","shaperInfo","isMultiplied","$e1c6bbc8cb416f8c$export$2e2bcd8739ae039","$e1c6bbc8cb416f8c$var$getType","$e1c6bbc8cb416f8c$var$STATE_TABLE","$e1c6bbc8cb416f8c$var$DECOMPOSE","hasGlyphForCodePoint","$e1c6bbc8cb416f8c$var$decompose","$e1c6bbc8cb416f8c$var$COMPOSE","$e1c6bbc8cb416f8c$var$compose","$e1c6bbc8cb416f8c$var$TONE_MARK","$e1c6bbc8cb416f8c$var$reorderToneMark","$e1c6bbc8cb416f8c$var$INVALID","$e1c6bbc8cb416f8c$var$insertDottedCircle","$e1c6bbc8cb416f8c$var$HANGUL_BASE","$e1c6bbc8cb416f8c$var$HANGUL_COUNT","$e1c6bbc8cb416f8c$var$L_BASE","$e1c6bbc8cb416f8c$var$V_BASE","$e1c6bbc8cb416f8c$var$T_BASE","$e1c6bbc8cb416f8c$var$V_COUNT","$e1c6bbc8cb416f8c$var$T_COUNT","$e1c6bbc8cb416f8c$var$L_END","$e1c6bbc8cb416f8c$var$V_END","$e1c6bbc8cb416f8c$var$T_END","$e1c6bbc8cb416f8c$var$DOTTED_CIRCLE","$e1c6bbc8cb416f8c$var$isL","$e1c6bbc8cb416f8c$var$isV","$e1c6bbc8cb416f8c$var$isT","$e1c6bbc8cb416f8c$var$isTone","$e1c6bbc8cb416f8c$var$isLVT","$e1c6bbc8cb416f8c$var$isLV","$e1c6bbc8cb416f8c$var$isCombiningL","$e1c6bbc8cb416f8c$var$isCombiningV","$e1c6bbc8cb416f8c$var$isCombiningT","$e1c6bbc8cb416f8c$var$X","$e1c6bbc8cb416f8c$var$L","$e1c6bbc8cb416f8c$var$V","$e1c6bbc8cb416f8c$var$T","$e1c6bbc8cb416f8c$var$LV","$e1c6bbc8cb416f8c$var$LVT","$e1c6bbc8cb416f8c$var$M","$e1c6bbc8cb416f8c$var$getGlyph","glyphForCodePoint","l","ljmo","vjmo","insert","tjmo","lv","prevType","del","$e1c6bbc8cb416f8c$var$getLength","dottedCircle","$4b0735ca6c692ea5$exports","JSON","parse","$aa333a9607471296$exports","$90a9d3398ee54fe5$export$a513ea61a7bee91c","X","C","V","N","H","ZWNJ","ZWJ","M","SM","VD","A","Placeholder","Dotted_Circle","RS","Coeng","Repha","Ra","CM","Symbol","$90a9d3398ee54fe5$export$1a1f61c9c4dd9df0","Start","Ra_To_Become_Reph","Pre_M","Pre_C","Base_C","After_Main","Above_C","Before_Sub","Below_C","After_Sub","Before_Post","Post_C","After_Post","Final_C","SMVD","End","$90a9d3398ee54fe5$export$8519deaa7de2b07","$90a9d3398ee54fe5$export$bbcd928767338e0d","$90a9d3398ee54fe5$export$ca9599b2a300afc","$90a9d3398ee54fe5$export$e99d119da76a0fc5","Default","hasOldSpec","virama","basePos","rephPos","rephMode","blwfMode","$90a9d3398ee54fe5$export$f647c9cfdd77d95a","decompositions","$7826f90f6f0cecc9$var$decompositions","$7826f90f6f0cecc9$var$trie","$7826f90f6f0cecc9$var$stateMachine","$7826f90f6f0cecc9$export$2e2bcd8739ae039","$7826f90f6f0cecc9$var$setupSyllables","$7826f90f6f0cecc9$var$initialReordering","$7826f90f6f0cecc9$var$finalReordering","unicodeScript","indicConfig","isOldSpec","d","decomposed","$7826f90f6f0cecc9$var$indicCategory","$7826f90f6f0cecc9$var$indicPosition","$7826f90f6f0cecc9$var$IndicInfo","syllableType","syllable","tags","$7826f90f6f0cecc9$var$isConsonant","$7826f90f6f0cecc9$var$isJoiner","$7826f90f6f0cecc9$var$isHalantOrCoeng","$7826f90f6f0cecc9$var$wouldSubstitute","_layoutEngine","engine","GSUBProcessor","$7826f90f6f0cecc9$var$consonantPosition","consonant","info","$7826f90f6f0cecc9$var$nextSyllable","limit","hasReph","rphf","seenBelow","j","disallowDoubleHalants","lastPos","blwf","abvf","pstf","prefLen","pref","cfar","nonJoiner","tryPref","BASE_C","newPos","oldPos","tmp","newRephPos","reph","test","categories","$7ab494fe977143c6$var$categories","$7ab494fe977143c6$var$decompositions","$7ab494fe977143c6$var$trie","$7ab494fe977143c6$var$stateMachine","$7ab494fe977143c6$export$2e2bcd8739ae039","$7ab494fe977143c6$var$setupSyllables","$7ab494fe977143c6$var$clearSubstitutionFlags","$7ab494fe977143c6$var$recordRphf","$7ab494fe977143c6$var$recordPref","$7ab494fe977143c6$var$reorder","$7ab494fe977143c6$var$useCategory","$7ab494fe977143c6$var$USEInfo","$7ab494fe977143c6$var$nextSyllable","$7ab494fe977143c6$var$isBase","$7ab494fe977143c6$var$isHalant","$102b6fe50f1d50b4$var$SHAPERS","mong","phag","hang","bng2","beng","dev2","deva","gjr2","gujr","guru","gur2","knda","knd2","mlm2","mlym","ory2","orya","taml","tml2","telu","tel2","khmr","bali","batk","brah","bugi","buhd","cakm","cham","dupl","egyp","gran","hano","java","kthi","kali","khoj","sind","lepc","limb","mahj","mtei","modi","hmng","rjng","saur","shrd","sidd","sinh","sund","sylo","tglg","tagb","tale","lana","tavt","takr","tibt","tfng","tirh","latn","DFLT","$0a876c45f1f7c41c$export$2e2bcd8739ae039","curGlyph","replacement","undefined","USER_INDEX","ligature","characters","ligatureGlyph","isMarkLigature","lastLigID","lastNumComps","curComps","matchIndex","$c96c93587d49c14d$export$2e2bcd8739ae039","applyPositionValue","variationProcessor","variationStore","getDelta","nextGlyph","class1","class2","nextIndex","curRecord","nextRecord","getAnchor","rightToLeft","baseGlyphIndex","baseIndex","markRecord","baseAnchor","applyAnchor","ligIndex","ligAttach","markGlyph","ligGlyph","compIndex","mark1Index","prevIndex","good","mark2Index","markCoords","markPos","anchor","fixCursiveAttachment","fixMarkAttachment","$a62492810de27e3d$export$2e2bcd8739ae039","setup","glyphInfos","GPOSProcessor","shaper","$102b6fe50f1d50b4$export$7877a478dd30fd3d","glyphInfo","zeroMarkWidths","zeroMarkAdvances","cleanup","$4c0a7fa5df7a9ab1$export$2e2bcd8739ae039","layout","$130d1a642ebcd2b7$export$e5cb25e204fb8450","glyphsForString","$130d1a642ebcd2b7$export$16fab0757cfc223d","hideDefaultIgnorables","positioned","unicodeLayoutEngine","kernProcessor","space","isDefaultIgnorable","ch","plane","from","$f43aec954cdfdf21$var$SVG_COMMANDS","moveTo","lineTo","quadraticCurveTo","bezierCurveTo","closePath","$f43aec954cdfdf21$export$2e2bcd8739ae039","toFunction","commands","forEach","command","toSVG","round","join","_cbox","freeze","_bbox","cx","cy","p0","p1","p2","p3","qp1x","qp1y","p3x","p3y","cp1x","cp1y","cp2x","cp2y","b2ac","t1","sqrt","t2","mapPoints","path","transform","m0","m1","m2","m3","m4","m5","translate","rotate","angle","cos","sin","scale","scaleX","scaleY","$7713b9b7b438dff8$export$2e2bcd8739ae039","$f92906be28e61769$export$2e2bcd8739ae039","_getPath","_getCBox","_getBBox","_getTableMetrics","metric","_getMetrics","_metrics","leftBearing","topBearing","os2","getAdvanceAdjustment","getScaledPath","ligatureCaretPositions","_getName","fromCharCode","render","save","fill","restore","$69aac16029968692$var$GlyfHeader","numberOfContours","$69aac16029968692$export$baf26146a414f24a","onCurve","endContour","$69aac16029968692$var$Component","dx","dy","scale01","scale10","$69aac16029968692$export$2e2bcd8739ae039","internal","_getTableStream","_parseGlyphCoord","short","same","_decode","glyfPos","_decodeSimple","_decodeComposite","points","endPtsOfContours","numCoords","flag","point","px","py","_getPhantomPoints","transformPoints","phantomPoints","haveInstructions","gPos","readInt8","_getContours","contours","contour","directory","firstPt","lastPt","curvePt","pt","prevPt","midX","midY","$62cc5109c6101893$export$2e2bcd8739ae039","CFF2","bias","cff","usedGsubrs","usedSubrs","trans","nStems","open","_usedGsubrs","_usedSubrs","gsubrs","gsubrsBias","privateDict","subrs","Subrs","subrsBias","vstore","vsindex","checkWidth","shift","nominalWidthX","parseStems","subr","phase","c1x","c1y","c2x","c2y","c3x","c3y","c4x","c4y","c5x","c5y","c6x","c6y","pts","blendVector","getBlendVector","numOperands","sum","s1","s2","v1","v2","random","startx","starty","b1","$25d8f049c222084c$var$SBIXImage","originX","originY","buflen","$25d8f049c222084c$export$2e2bcd8739ae039","getImageForSize","img","image","renderOutlines","$0d411f0165859681$var$COLRLayer","color","$0d411f0165859681$export$2e2bcd8739ae039","layers","cpal","colr","rec","baseLayer","_getBaseGlyph","fillColor","$0bb840cac04e911b$export$2e2bcd8739ae039","normalizeCoords","normalized","EPSILON","glyphPoints","tupleCount","here","sharedPoints","decodePoints","origPoints","tupleDataSize","tupleCoords","startCoords","endCoords","factor","tupleFactor","nPoints","xDeltas","decodeDeltas","yDeltas","outPoints","hasDelta","interpolateMissingDeltas","deltaX","deltaY","Uint16Array","run","runCount","readUInt16","Int16Array","inPoints","firstPoint","endPoint","firstDelta","curDelta","deltaInterpolate","deltaShift","ref1","ref2","iterable","in1","in2","out1","out2","out","ref","itemStore","varData","deltaSet","netAdjustment","master","blendVectors","scalar","regionIndex","axes","axisScalar","Promise","resolve","$5cc7476da92df375$export$2e2bcd8739ae039","includeGlyph","$807e58506be70005$var$Point","$807e58506be70005$var$Glyf","xPoints","yPoints","$807e58506be70005$export$2e2bcd8739ae039","encodeSimple","lastX","lastY","lastFlag","pointCount","_encodePoint","shortFlag","sameFlag","diff","$4abbb6a5dbdc441a$export$2e2bcd8739ae039","_addGlyph","curOffset","nextOffset","view","DataView","setUint16","glyphEncoder","toBuffer","$001d739428a71d5a$export$2e2bcd8739ae039","subsetCharstrings","charstrings","subsetSubrs","used","subsetFontdict","used_fds","used_subrs","fd_select","FontName","createCIDFontdict","addString","Encoding","CIDCount","$4c1709dee528ea76$export$2e2bcd8739ae039","setDefaultLanguage","defaultLanguage","_getTable","_tables","_decodeTable","console","error","_decodeDirectory","getName","subfamilyName","copyright","characterSet","nextState","availableFeatures","_glyphs","createSubset","variationAxes","trim","namedVariations","settings","getVariation","_directoryPos","variationCoords","$c1726355ecc5b889$var$WOFFDirectoryEntry","compLength","origChecksum","$c1726355ecc5b889$var$WOFFDirectory","flavor","totalSfntSize","metaOffset","metaLength","metaOrigLength","privOffset","privLength","$c1726355ecc5b889$export$2e2bcd8739ae039","$8046190c9f1ad19e$export$2e2bcd8739ae039","_transformedGlyphs","$c28ec7bbb3b8de3a$var$Base128","$c28ec7bbb3b8de3a$var$knownTags","$c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry","customTag","transformVersion","transformed","transformLength","$c28ec7bbb3b8de3a$var$WOFF2Directory","totalCompressedSize","$c28ec7bbb3b8de3a$export$2e2bcd8739ae039","$21ee218f84ac7f32$var$Substream","_buf","$21ee218f84ac7f32$var$GlyfTable","indexFormat","nContourStreamSize","nPointsStreamSize","flagStreamSize","glyphStreamSize","compositeStreamSize","bboxStreamSize","instructionStreamSize","nContours","composites","bboxes","$21ee218f84ac7f32$var$WORD_CODE","$21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2","$21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1","$21ee218f84ac7f32$var$LOWEST_U_CODE","$21ee218f84ac7f32$var$read255UInt16","$21ee218f84ac7f32$var$withSign","baseval","$21ee218f84ac7f32$var$decodeTriplet","b0","b2","$cd5853a56c68fec7$var$TTCHeader","numFonts","dsigTag","dsigLength","dsigOffset","$05f49f930186144e$var$DFontName","$05f49f930186144e$var$Ref","buf","nameOffset","attr","dataOffset","handle","$05f49f930186144e$var$Type","maxTypeIndex","refList","$05f49f930186144e$var$TypeList","types","$05f49f930186144e$var$DFontMap","typeList","nameListOffset","$05f49f930186144e$var$DFontHeader","dataLength","mapLength","outBuffer","_dataPos","_decompress","_decompressed","decompressedSize","decompressed","_transformGlyfTable","totalPoints","fonts","readString","sfnt"],"sourceRoot":""}