{"mappings":";AAAA,OAAS,cAAAA,MAAkB,2CAC3B,OAAS,wBAAAC,EAAsB,WAAAC,EAAS,YAAYC,GAAY,SAAAC,OAAa,oDAC7E,WAAc,2CAEd,SAASC,GAAyBC,EAAOC,EAAS,CACjD,IAAMC,EAAe,OAAOF,GAAU,SAAW,CAAC,EAAI,CAAE,GAAGA,EAAM,iBAAkB,EAC7EG,EAAY,OAAOH,GAAU,SAAWA,EAAQA,EAAM,KAC5D,OAAW,CAACI,EAAKC,CAAK,IAAK,OAAO,QAAQJ,GAAS,mBAAqB,CAAC,CAAC,EAAO,OAAOI,GAAU,SAAUH,EAAaE,CAAG,EAAIC,EACvHD,IAAQD,GAAW,OAAO,OAAOD,EAAcG,CAAK,EAC7D,OAAOH,CACR,CACA,SAASI,GAAuBC,EAAOL,EAAc,CACpD,OAAKK,IACEL,IAAeK,GAAO,YAAY,CAAC,GAAKA,EAChD,CAGA,SAASC,GAAQC,EAAG,CACnB,OAAO,MAAM,QAAQA,CAAC,EAAIA,EAAI,CAACA,CAAC,CACjC,CAIA,eAAeC,EAAgBC,EAAG,CACjC,OAAO,QAAQ,QAAQ,OAAOA,GAAM,WAAaA,EAAE,EAAIA,CAAC,EAAE,KAAMC,GAAMA,EAAE,SAAWA,CAAC,CACrF,CAMA,SAASC,EAAYC,EAAM,CAC1B,MAAO,CAACA,GAAQ,CACf,YACA,MACA,OACA,OACD,EAAE,SAASA,CAAI,CAChB,CAMA,SAASC,GAAcD,EAAM,CAC5B,OAAOA,IAAS,QAAUD,EAAYC,CAAI,CAC3C,CAMA,SAASE,EAAYhB,EAAO,CAC3B,OAAOA,IAAU,MAClB,CAMA,SAASiB,GAAejB,EAAO,CAC9B,OAAOgB,EAAYhB,CAAK,CACzB,CAmBA,IAAMkB,GAAa,WACnB,SAASC,EAAWC,EAAMC,EAAiB,GAAO,CACjD,GAAID,EAAK,SAAW,EAAG,MAAO,CAAC,CAAC,GAAI,CAAC,CAAC,EACtC,IAAME,EAAQF,EAAK,MAAMF,EAAU,EAC/BK,EAAQ,EACNC,EAAQ,CAAC,EACf,QAASC,EAAI,EAAGA,EAAIH,EAAM,OAAQG,GAAK,EAAG,CACzC,IAAMC,EAAOL,EAAiBC,EAAMG,CAAC,GAAKH,EAAMG,EAAI,CAAC,GAAK,IAAMH,EAAMG,CAAC,EACvED,EAAM,KAAK,CAACE,EAAMH,CAAK,CAAC,EACxBA,GAASD,EAAMG,CAAC,EAAE,OAClBF,GAASD,EAAMG,EAAI,CAAC,GAAG,QAAU,CAClC,CACA,OAAOD,CACR,CAMA,IAAMG,EAA4B,CACjC,MAAO,UACP,KAAM,SACP,EACMC,EAA4B,CACjC,MAAO,UACP,KAAM,SACP,EACMC,EAAe,mBAIrB,SAASC,EAAeC,EAAU,CACjC,GAAIA,IAAWF,CAAY,EAAG,OAAOE,EACrC,IAAM/B,EAAQ,CAAE,GAAG+B,CAAS,EACxB/B,EAAM,aAAe,CAACA,EAAM,WAC/BA,EAAM,SAAWA,EAAM,YACvB,OAAOA,EAAM,aAEdA,EAAM,OAAS,OACfA,EAAM,kBAAoB,CAAE,GAAGA,EAAM,iBAAkB,EACvDA,EAAM,WAAa,CAAC,EACpB,GAAI,CAAE,GAAAgC,EAAI,GAAAC,CAAG,EAAIjC,EACjB,GAAI,CAACgC,GAAM,CAACC,EAAI,CAMf,IAAMC,EAAgBlC,EAAM,SAAWA,EAAM,SAAS,KAAMmC,GAAM,CAACA,EAAE,MAAQ,CAACA,EAAE,KAAK,EAAI,OACrFD,GAAe,UAAU,aAAYD,EAAKC,EAAc,SAAS,YACjEA,GAAe,UAAU,aAAYF,EAAKE,EAAc,SAAS,YAMjE,CAACD,GAAMjC,GAAO,SAAS,mBAAmB,IAAGiC,EAAKjC,EAAM,OAAO,mBAAmB,GAClF,CAACgC,GAAMhC,GAAO,SAAS,mBAAmB,IAAGgC,EAAKhC,EAAM,OAAO,mBAAmB,GAKjFiC,IAAIA,EAAKjC,EAAM,OAAS,QAAU2B,EAA0B,MAAQA,EAA0B,MAC9FK,IAAIA,EAAKhC,EAAM,OAAS,QAAU4B,EAA0B,MAAQA,EAA0B,MACnG5B,EAAM,GAAKiC,EACXjC,EAAM,GAAKgC,CACZ,CACMhC,EAAM,SAAS,CAAC,GAAKA,EAAM,SAAS,CAAC,EAAE,UAAY,CAACA,EAAM,SAAS,CAAC,EAAE,OAAQA,EAAM,SAAS,QAAQ,CAAE,SAAU,CACtH,WAAYA,EAAM,GAClB,WAAYA,EAAM,EACnB,CAAE,CAAC,EACH,IAAIoC,EAAmB,EACjBC,EAAiC,IAAI,IAC3C,SAASC,EAAoBjC,EAAO,CACnC,GAAIgC,EAAe,IAAIhC,CAAK,EAAG,OAAOgC,EAAe,IAAIhC,CAAK,EAC9D+B,GAAoB,EACpB,IAAMG,EAAM,IAAIH,EAAiB,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,EAAE,YAAY,CAAC,GAC5E,OAAIpC,EAAM,oBAAoB,IAAIuC,CAAG,EAAE,EAAUD,EAAoBjC,CAAK,GAC1EgC,EAAe,IAAIhC,EAAOkC,CAAG,EACtBA,EACR,CACAvC,EAAM,SAAWA,EAAM,SAAS,IAAKwC,GAAY,CAChD,IAAMC,EAAYD,EAAQ,UAAU,YAAc,CAACA,EAAQ,SAAS,WAAW,WAAW,GAAG,EACvFE,EAAYF,EAAQ,UAAU,YAAc,CAACA,EAAQ,SAAS,WAAW,WAAW,GAAG,EAC7F,GAAI,CAACC,GAAa,CAACC,EAAW,OAAOF,EACrC,IAAMG,EAAQ,CACb,GAAGH,EACH,SAAU,CAAE,GAAGA,EAAQ,QAAS,CACjC,EACA,GAAIC,EAAW,CACd,IAAMG,EAAcN,EAAoBE,EAAQ,SAAS,UAAU,EACnExC,EAAM,kBAAkB4C,CAAW,EAAIJ,EAAQ,SAAS,WACxDG,EAAM,SAAS,WAAaC,CAC7B,CACA,GAAIF,EAAW,CACd,IAAME,EAAcN,EAAoBE,EAAQ,SAAS,UAAU,EACnExC,EAAM,kBAAkB4C,CAAW,EAAIJ,EAAQ,SAAS,WACxDG,EAAM,SAAS,WAAaC,CAC7B,CACA,OAAOD,CACR,CAAC,EACD,QAAWvC,KAAO,OAAO,KAAKJ,EAAM,QAAU,CAAC,CAAC,EAAG,IAAII,IAAQ,qBAAuBA,IAAQ,qBAAuBA,EAAI,WAAW,eAAe,IAC9I,CAACJ,EAAM,OAAOI,CAAG,GAAG,WAAW,GAAG,EAAG,CACxC,IAAMwC,EAAcN,EAAoBtC,EAAM,OAAOI,CAAG,CAAC,EACzDJ,EAAM,kBAAkB4C,CAAW,EAAI5C,EAAM,OAAOI,CAAG,EACvDJ,EAAM,OAAOI,CAAG,EAAIwC,CACrB,CAED,cAAO,eAAe5C,EAAO6B,EAAc,CAC1C,WAAY,GACZ,SAAU,GACV,MAAO,EACR,CAAC,EACM7B,CACR,CAMA,eAAe6C,EAAaC,EAAO,CAClC,MAAO,CAAC,GAAG,IAAI,KAAK,MAAM,QAAQ,IAAIA,EAAM,OAAQC,GAAM,CAAChC,GAAcgC,CAAC,CAAC,EAAE,IAAI,MAAOjC,GAAS,MAAMJ,EAAgBI,CAAI,EAAE,KAAMF,GAAM,MAAM,QAAQA,CAAC,EAAIA,EAAI,CAACA,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAChL,CACA,eAAeoC,EAAcC,EAAQ,CACpC,OAAQ,MAAM,QAAQ,IAAIA,EAAO,IAAI,MAAOjD,GAAUiB,GAAejB,CAAK,EAAI,KAAO8B,EAAe,MAAMpB,EAAgBV,CAAK,CAAC,CAAC,CAAC,GAAG,OAAQyB,GAAM,CAAC,CAACA,CAAC,CACvJ,CAGA,SAASyB,EAAiBC,EAAMC,EAAO,CACtC,GAAI,CAACA,EAAO,OAAOD,EACnB,GAAIC,EAAMD,CAAI,EAAG,CAChB,IAAME,EAA2B,IAAI,IAAI,CAACF,CAAI,CAAC,EAC/C,KAAOC,EAAMD,CAAI,GAAG,CAEnB,GADAA,EAAOC,EAAMD,CAAI,EACbE,EAAS,IAAIF,CAAI,EAAG,MAAM,IAAIzD,EAAW,oBAAoB,CAAC,GAAG2D,CAAQ,EAAE,KAAK,MAAM,CAAC,OAAOF,CAAI,IAAI,EAC1GE,EAAS,IAAIF,CAAI,CAClB,CACD,CACA,OAAOA,CACR,CAGA,IAAIG,GAAW,cAAczD,EAAW,CACvC,UACA,QACA,OACA,OACA,gBAAkC,IAAI,IACtC,kBAAoC,IAAI,IACxC,SAA2B,IAAI,IAC/B,WAA6B,IAAI,IACjC,oBAAsC,IAAI,QAC1C,mBAAqB,KACrB,sBAAwB,KACxB,YAAY0D,EAAWC,EAASC,EAAQC,EAAS,CAAC,EAAG,CACpD,MAAMH,CAAS,EACf,KAAK,UAAYA,EACjB,KAAK,QAAUC,EACf,KAAK,OAASC,EACd,KAAK,OAASC,EACd,KAAK,QAAQ,IAAKC,GAAM,KAAK,UAAUA,CAAC,CAAC,EACzC,KAAK,cAAc,KAAK,MAAM,CAC/B,CACA,SAAS3D,EAAO,CACf,OAAI,OAAOA,GAAU,SAAiB,KAAK,gBAAgB,IAAIA,CAAK,EACxD,KAAK,UAAUA,CAAK,CACjC,CACA,UAAUA,EAAO,CAChB,IAAM4D,EAAS9B,EAAe9B,CAAK,EACnC,OAAI4D,EAAO,OACV,KAAK,gBAAgB,IAAIA,EAAO,KAAMA,CAAM,EAC5C,KAAK,mBAAqB,MAEpBA,CACR,CACA,iBAAkB,CACjB,OAAK,KAAK,qBAAoB,KAAK,mBAAqB,CAAC,GAAG,KAAK,gBAAgB,KAAK,CAAC,GAChF,KAAK,kBACb,CACA,SAAS5D,EAAO,CACf,IAAI6D,EAAgB,KAAK,oBAAoB,IAAI7D,CAAK,EACjD6D,IACJA,EAAgB/D,GAAM,mBAAmBE,CAAK,EAC9C,KAAK,oBAAoB,IAAIA,EAAO6D,CAAa,GAElD,KAAK,cAAc,SAASA,CAAa,CAC1C,CACA,WAAWV,EAAM,CAChB,OAAAA,EAAOD,EAAiBC,EAAM,KAAK,MAAM,EAClC,KAAK,kBAAkB,IAAIA,CAAI,CACvC,CACA,aAAarC,EAAM,CAClB,GAAI,KAAK,WAAWA,EAAK,IAAI,EAAG,OAChC,IAAMgD,EAAmB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,OAAO,CAAC,EAAE,OAAQrC,GAAMA,EAAE,mBAAmB,SAASX,EAAK,IAAI,CAAC,CAAC,EACpH,KAAK,UAAU,YAAYA,CAAI,EAC/B,IAAMiD,EAAgB,CACrB,yBAA0BjD,EAAK,0BAA4B,CAAC,GAAG,EAC/D,2BAA4BA,EAAK,4BAA8B,CAAC,CACjE,EACA,KAAK,cAAc,aAAa,IAAIA,EAAK,UAAWA,CAAI,EACxD,IAAMkD,EAAI,KAAK,6BAA6BlD,EAAK,UAAW,EAAGiD,CAAa,EAO5E,GANAC,EAAE,KAAOlD,EAAK,KACd,KAAK,kBAAkB,IAAIA,EAAK,KAAMkD,CAAC,EACnClD,EAAK,SAASA,EAAK,QAAQ,QAASsC,GAAU,CACjD,KAAK,OAAOA,CAAK,EAAItC,EAAK,IAC3B,CAAC,EACD,KAAK,sBAAwB,KACzBgD,EAAiB,KAAM,QAAWG,KAAKH,EAC1C,KAAK,kBAAkB,OAAOG,EAAE,IAAI,EACpC,KAAK,sBAAwB,KAC7B,KAAK,eAAe,oBAAoB,OAAOA,EAAE,SAAS,EAC1D,KAAK,eAAe,WAAW,OAAOA,EAAE,SAAS,EACjD,KAAK,aAAa,KAAK,SAAS,IAAIA,EAAE,IAAI,CAAC,CAE7C,CACA,SAAU,CACT,MAAM,QAAQ,EACd,KAAK,gBAAgB,MAAM,EAC3B,KAAK,kBAAkB,MAAM,EAC7B,KAAK,SAAS,MAAM,EACpB,KAAK,WAAW,MAAM,EACtB,KAAK,mBAAqB,IAC3B,CACA,cAAcnB,EAAO,CACpB,QAAWhC,KAAQgC,EAAO,KAAK,yBAAyBhC,CAAI,EAC5D,IAAMoD,EAAkB,CAAC,GAAG,KAAK,WAAW,QAAQ,CAAC,EAC/CC,EAAeD,EAAgB,OAAO,CAAC,CAACE,EAAGtD,CAAI,IAAM,CAACA,CAAI,EAChE,GAAIqD,EAAa,OAAQ,CACxB,IAAME,EAAaH,EAAgB,OAAO,CAAC,CAACE,EAAGtD,CAAI,IAC7CA,GACGA,EAAK,mBAAqBA,EAAK,gBAAgB,KAAM,GAAMqD,EAAa,IAAI,CAAC,CAAChB,CAAI,IAAMA,CAAI,EAAE,SAAS,CAAC,CAAC,EAD/F,EAElB,EAAE,OAAQrC,GAAS,CAACqD,EAAa,SAASrD,CAAI,CAAC,EAChD,MAAM,IAAIpB,EAAW,qBAAqByE,EAAa,IAAI,CAAC,CAAChB,CAAI,IAAM,KAAKA,CAAI,IAAI,EAAE,KAAK,IAAI,CAAC,iBAAiBkB,EAAW,IAAI,CAAC,CAAClB,CAAI,IAAM,KAAKA,CAAI,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,CACxK,CACA,OAAW,CAACiB,EAAGtD,CAAI,IAAKoD,EAAiB,KAAK,UAAU,YAAYpD,CAAI,EACxE,OAAW,CAACsD,EAAGtD,CAAI,IAAKoD,EAAiB,KAAK,aAAapD,CAAI,CAChE,CACA,oBAAqB,CACpB,OAAK,KAAK,wBAAuB,KAAK,sBAAwB,CAAC,GAAmB,IAAI,IAAI,CAAC,GAAG,KAAK,kBAAkB,KAAK,EAAG,GAAG,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,GACnJ,KAAK,qBACb,CACA,yBAAyBA,EAAM,CAC9B,KAAK,SAAS,IAAIA,EAAK,KAAMA,CAAI,EACjC,KAAK,WAAW,IAAIA,EAAK,KAAMA,CAAI,EACnC,IAAMwD,EAAWxD,EAAK,mBAAqBA,EAAK,cAChD,GAAIwD,EAAU,QAAWC,KAAgBD,EAAU,KAAK,WAAW,IAAIC,EAAc,KAAK,SAAS,IAAIA,CAAY,CAAC,CACrH,CACD,EAGIC,GAAW,KAAM,CACpB,OAAyB,IAAI,IAC7B,aAA+B,IAAI,IACnC,YAA8B,IAAI,IAClC,SACA,YAAYC,EAAQ3B,EAAO,CAC1B,KAAK,SAAW,CACf,kBAAoB4B,GAAaD,EAAO,cAAcC,CAAQ,EAC9D,iBAAmBvC,GAAMsC,EAAO,aAAatC,CAAC,CAC/C,EACAW,EAAM,QAASrB,GAAM,KAAK,YAAYA,CAAC,CAAC,CACzC,CACA,IAAI,SAAU,CACb,OAAO,KAAK,QACb,CACA,oBAAoBkD,EAAe,CAClC,OAAO,KAAK,OAAO,IAAIA,CAAa,CACrC,CACA,YAAYC,EAAW,CACtB,OAAO,KAAK,aAAa,IAAIA,CAAS,CACvC,CACA,YAAY7B,EAAG,CACd,KAAK,OAAO,IAAIA,EAAE,KAAMA,CAAC,EACrBA,EAAE,SAASA,EAAE,QAAQ,QAAS8B,GAAM,CACvC,KAAK,OAAO,IAAIA,EAAG9B,CAAC,CACrB,CAAC,EACD,KAAK,aAAa,IAAIA,EAAE,UAAWA,CAAC,EAChCA,EAAE,UAAUA,EAAE,SAAS,QAAStB,GAAM,CACpC,KAAK,YAAY,IAAIA,CAAC,GAAG,KAAK,YAAY,IAAIA,EAAG,CAAC,CAAC,EACxD,KAAK,YAAY,IAAIA,CAAC,EAAE,KAAKsB,EAAE,SAAS,CACzC,CAAC,CACF,CACA,cAAc6B,EAAW,CACxB,IAAME,EAAaF,EAAU,MAAM,GAAG,EAClCG,EAAa,CAAC,EAClB,QAAStD,EAAI,EAAGA,GAAKqD,EAAW,OAAQrD,IAAK,CAC5C,IAAMuD,EAAeF,EAAW,MAAM,EAAGrD,CAAC,EAAE,KAAK,GAAG,EACpDsD,EAAa,CAAC,GAAGA,EAAY,GAAG,KAAK,YAAY,IAAIC,CAAY,GAAK,CAAC,CAAC,CACzE,CACA,OAAOD,CACR,CACD,EAGIE,EAAiB,EAMrB,SAASC,EAAqBjF,EAAS,CACtCgF,GAAkB,EACdhF,EAAQ,WAAa,IAASgF,GAAkB,IAAMA,EAAiB,KAAO,GAAG,QAAQ,KAAK,WAAWA,CAAc,8MAA8M,EACzU,IAAIE,EAAa,GACjB,GAAI,CAAClF,EAAQ,OAAQ,MAAM,IAAIP,EAAW,kDAAkD,EAC5F,IAAMoD,GAAS7C,EAAQ,OAAS,CAAC,GAAG,KAAK,CAAC,EACpCgD,GAAUhD,EAAQ,QAAU,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI6B,CAAc,EAC1DsD,EAAY,IAAI9B,GAAS,IAAIkB,GAASvE,EAAQ,OAAQ6C,CAAK,EAAGG,EAAQH,EAAO7C,EAAQ,SAAS,EAChGoF,EACJ,SAASC,EAAmBnC,EAAM,CACjC,OAAOD,EAAiBC,EAAMlD,EAAQ,SAAS,CAChD,CACA,SAASsF,EAAYpC,EAAM,CAC1BqC,EAAkB,EAClB,IAAMC,EAAQL,EAAU,WAAW,OAAOjC,GAAS,SAAWA,EAAOA,EAAK,IAAI,EAC9E,GAAI,CAACsC,EAAO,MAAM,IAAI/F,EAAW,cAAcyD,CAAI,6CAA6C,EAChG,OAAOsC,CACR,CACA,SAASC,EAASvC,EAAM,CACvB,GAAIA,IAAS,OAAQ,MAAO,CAC3B,GAAI,GACJ,GAAI,GACJ,KAAM,OACN,SAAU,CAAC,EACX,KAAM,MACP,EACAqC,EAAkB,EAClB,IAAM5B,EAASwB,EAAU,SAASjC,CAAI,EACtC,GAAI,CAACS,EAAQ,MAAM,IAAIlE,EAAW,WAAWyD,CAAI,6CAA6C,EAC9F,OAAOS,CACR,CACA,SAAS+B,EAASxC,EAAM,CACvBqC,EAAkB,EAClB,IAAMxF,EAAQ0F,EAASvC,CAAI,EAC3B,OAAIkC,IAAelC,IAClBiC,EAAU,SAASpF,CAAK,EACxBqF,EAAalC,GAEP,CACN,MAAAnD,EACA,SAAUoF,EAAU,YAAY,CACjC,CACD,CACA,SAASQ,GAAkB,CAC1B,OAAAJ,EAAkB,EACXJ,EAAU,gBAAgB,CAClC,CACA,SAASS,GAAqB,CAC7B,OAAAL,EAAkB,EACXJ,EAAU,mBAAmB,CACrC,CACA,SAASU,KAAoBhD,EAAO,CACnC0C,EAAkB,EAClBJ,EAAU,cAActC,EAAM,KAAK,CAAC,CAAC,CACtC,CACA,eAAeiD,KAAgBjD,EAAO,CACrC,OAAOgD,EAAiB,MAAMjD,EAAaC,CAAK,CAAC,CAClD,CACA,SAASkD,KAAiB/C,EAAQ,CACjCuC,EAAkB,EAClB,QAAWxF,KAASiD,EAAO,KAAK,CAAC,EAAGmC,EAAU,UAAUpF,CAAK,CAC9D,CACA,eAAeiG,KAAahD,EAAQ,CACnC,OAAAuC,EAAkB,EACXQ,EAAc,MAAMhD,EAAcC,CAAM,CAAC,CACjD,CACA,SAASuC,GAAoB,CAC5B,GAAIL,EAAY,MAAM,IAAIzF,EAAW,kCAAkC,CACxE,CACA,SAASwG,GAAU,CACdf,IACJA,EAAa,GACbC,EAAU,QAAQ,EAClBH,GAAkB,EACnB,CACA,MAAO,CACN,SAAAU,EACA,SAAAD,EACA,YAAAH,EACA,gBAAAK,EACA,mBAAAC,EACA,iBAAkBP,EAClB,aAAAS,EACA,iBAAAD,EACA,UAAAG,EACA,cAAAD,EACA,QAAAE,EACA,CAAC,OAAO,OAAO,EAAGA,CACnB,CACD,CAIA,IAAMC,GAA0BjB,EAMhC,eAAekB,GAA0BnG,EAAS,CAC5CA,EAAQ,QAAQ,QAAQ,KAAK,gHAAgH,EAClJ,GAAM,CAACgD,EAAQH,EAAO2B,CAAM,EAAI,MAAM,QAAQ,IAAI,CACjDzB,EAAc/C,EAAQ,QAAU,CAAC,CAAC,EAClC4C,EAAa5C,EAAQ,OAAS,CAAC,CAAC,EAChCA,EAAQ,MACT,CAAC,EACD,OAAOiF,EAAqB,CAC3B,GAAGjF,EACH,OAAAgD,EACA,MAAAH,EACA,OAAA2B,CACD,CAAC,CACF,CAIA,IAAM4B,GAAsBD,GAGtBE,EAAmC,IAAI,QAC7C,SAASC,EAAyBC,EAAMC,EAAO,CAC9CH,EAAiB,IAAIE,EAAMC,CAAK,CACjC,CACA,SAASC,EAA2BF,EAAM,CACzC,OAAOF,EAAiB,IAAIE,CAAI,CACjC,CAMA,IAAIG,EAAe,MAAMA,EAAa,CAIrC,QAAU,CAAC,EACX,KACA,IAAI,QAAS,CACZ,OAAO,OAAO,KAAK,KAAK,OAAO,CAChC,CACA,IAAI,OAAQ,CACX,OAAO,KAAK,OAAO,CAAC,CACrB,CACA,IAAI,QAAS,CACZ,OAAO,KAAK,QAAQ,KAAK,KAAK,CAC/B,CAIA,OAAO,QAAQ7F,EAAMmC,EAAQ,CAC5B,OAAO,IAAI0D,GAAa,OAAO,YAAYnG,GAAQyC,CAAM,EAAE,IAAKjD,GAAU,CAACA,EAAOJ,CAAO,CAAC,CAAC,EAAGkB,CAAI,CACnG,CACA,eAAe8F,EAAM,CACpB,GAAIA,EAAK,SAAW,EAAG,CACtB,GAAM,CAACC,EAAW/F,CAAI,EAAI8F,EAC1B,KAAK,KAAO9F,EACZ,KAAK,QAAU+F,CAChB,KAAO,CACN,GAAM,CAACC,EAAOhG,EAAMd,CAAK,EAAI4G,EAC7B,KAAK,KAAO9F,EACZ,KAAK,QAAU,CAAE,CAACd,CAAK,EAAG8G,CAAM,CACjC,CACD,CAKA,iBAAiB9G,EAAQ,KAAK,MAAO,CACpC,OAAO,KAAK,QAAQA,CAAK,CAC1B,CACA,UAAUA,EAAQ,KAAK,MAAO,CAC7B,OAAO+G,GAAU,KAAK,QAAQ/G,CAAK,CAAC,CACrC,CACA,QAAS,CACR,MAAO,CACN,KAAM,KAAK,KACX,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,OAAQ,KAAK,UAAU,CACxB,CACD,CACD,EACA,SAAS+G,GAAUD,EAAO,CACzB,IAAME,EAAS,CAAC,EACVC,EAA0B,IAAI,IACpC,SAASC,EAAUJ,EAAO,CACzB,GAAIG,EAAQ,IAAIH,CAAK,EAAG,OACxBG,EAAQ,IAAIH,CAAK,EACjB,IAAM3D,EAAO2D,GAAO,gBAAgB,UAChC3D,GAAM6D,EAAO,KAAK7D,CAAI,EACtB2D,EAAM,QAAQI,EAAUJ,EAAM,MAAM,CACzC,CACA,OAAAI,EAAUJ,CAAK,EACRE,CACR,CACA,SAASG,GAAgBV,EAAOzG,EAAO,CACtC,GAAI,EAAEyG,aAAiBE,GAAe,MAAM,IAAIjH,EAAW,uBAAuB,EAClF,OAAO+G,EAAM,iBAAiBzG,CAAK,CACpC,CAGA,IAAMoH,GAAW,IACXC,GAAW,IAIjB,SAASC,GAAiBC,EAAWnG,EAAMnB,EAAU,CAAC,EAAG,CACxD,GAAM,CAAE,MAAOE,EAAYoH,EAAU,gBAAgB,EAAE,CAAC,CAAE,EAAItH,EAC9D,GAAIY,EAAY0G,EAAU,iBAAiBtH,EAAQ,MAAQ,MAAM,CAAC,GAAKe,EAAYb,CAAS,EAAG,OAAOgB,EAAWC,CAAI,EAAE,IAAKM,GAAS,CAAC,CACrI,QAASA,EAAK,CAAC,EACf,OAAQA,EAAK,CAAC,CACf,CAAC,CAAC,EACF,GAAM,CAAE,MAAA1B,EAAO,SAAAwH,CAAS,EAAID,EAAU,SAASpH,CAAS,EAClDsH,EAAWF,EAAU,YAAYtH,EAAQ,MAAQ,MAAM,EAC7D,GAAIA,EAAQ,aAAc,CACzB,GAAIA,EAAQ,aAAa,OAASwH,EAAS,KAAM,MAAM,IAAI/H,EAAW,2BAA2BO,EAAQ,aAAa,IAAI,wCAAwCwH,EAAS,IAAI,GAAG,EAClL,GAAI,CAACxH,EAAQ,aAAa,OAAO,SAASD,EAAM,IAAI,EAAG,MAAM,IAAIN,EAAW,yBAAyBO,EAAQ,aAAa,MAAM,qCAAqCD,EAAM,IAAI,GAAG,CACnL,CACA,OAAO0H,GAAkBtG,EAAMqG,EAAUzH,EAAOwH,EAAUvH,CAAO,CAClE,CACA,SAAS0H,MAAuBf,EAAM,CACrC,GAAIA,EAAK,SAAW,EAAG,OAAOF,EAA2BE,EAAK,CAAC,CAAC,EAChE,GAAM,CAACW,EAAWnG,EAAMnB,EAAU,CAAC,CAAC,EAAI2G,EAClC,CAAE,KAAA9F,EAAO,OAAQ,MAAOX,EAAYoH,EAAU,gBAAgB,EAAE,CAAC,CAAE,EAAItH,EAC7E,GAAIY,EAAYC,CAAI,GAAKE,EAAYb,CAAS,EAAG,MAAM,IAAIT,EAAW,4CAA4C,EAClH,GAAIoB,IAAS,OAAQ,MAAM,IAAIpB,EAAW,2CAA2C,EACrF,GAAM,CAAE,MAAAM,EAAO,SAAAwH,CAAS,EAAID,EAAU,SAASpH,CAAS,EAClDsH,EAAWF,EAAU,YAAYzG,CAAI,EAC3C,OAAO,IAAI6F,EAAaiB,EAAmBxG,EAAMqG,EAAUzH,EAAOwH,EAAUvH,CAAO,EAAE,WAAYwH,EAAS,KAAMzH,EAAM,IAAI,CAC3H,CACA,SAAS0H,GAAkBtG,EAAMyG,EAAS7H,EAAOwH,EAAUvH,EAAS,CACnE,IAAM6H,EAASF,EAAmBxG,EAAMyG,EAAS7H,EAAOwH,EAAUvH,CAAO,EACnE8H,EAAe,IAAIpB,EAAamB,EAAO,WAAYD,EAAQ,KAAM7H,EAAM,IAAI,EACjF,OAAAuG,EAAyBuB,EAAO,OAAQC,CAAY,EAC7CD,EAAO,MACf,CACA,SAASF,EAAmBxG,EAAMyG,EAAS7H,EAAOwH,EAAUvH,EAAS,CACpE,IAAM+H,EAAoBjI,GAAyBC,EAAOC,CAAO,EAC3D,CAAE,sBAAAgI,EAAwB,EAAG,kBAAAC,EAAoB,IAAK,mBAAAC,EAAqB,EAAM,EAAIlI,EACrFuB,EAAQL,EAAWC,CAAI,EACzBgH,EAAanI,EAAQ,aAAekH,GAAgBlH,EAAQ,aAAcD,EAAM,IAAI,GAAKJ,EAAUK,EAAQ,oBAAsB,KAAO2H,EAAmB3H,EAAQ,mBAAoB4H,EAAS7H,EAAOwH,EAAU,CACpN,GAAGvH,EACH,aAAc,OACd,mBAAoB,MACrB,CAAC,EAAE,WAAaL,EACZyI,EAAS,CAAC,EACRC,EAAQ,CAAC,EACf,QAAS7G,EAAI,EAAG8G,EAAM/G,EAAM,OAAQC,EAAI8G,EAAK9G,IAAK,CACjD,GAAM,CAACC,EAAM8G,CAAU,EAAIhH,EAAMC,CAAC,EAClC,GAAIC,IAAS,GAAI,CAChB2G,EAAS,CAAC,EACVC,EAAM,KAAK,CAAC,CAAC,EACb,QACD,CACA,GAAIL,EAAwB,GAAKvG,EAAK,QAAUuG,EAAuB,CACtEI,EAAS,CAAC,EACVC,EAAM,KAAK,CAAC,CACX,QAAS5G,EACT,OAAQ8G,EACR,MAAO,GACP,UAAW,CACZ,CAAC,CAAC,EACF,QACD,CACA,IAAIC,EACAC,EACAC,EACAR,GAAsBA,IAAuB,cAChDM,EAAmBZ,EAAQ,aAAanG,EAAM0G,EAAYF,CAAiB,EAC3EQ,EAAmBD,EAAiB,OACpCE,EAAwB,GAEzB,IAAMb,EAASD,EAAQ,cAAcnG,EAAM0G,EAAYF,CAAiB,EAClEU,EAAed,EAAO,OAAO,OAAS,EAC5C,QAASe,EAAI,EAAGA,EAAID,EAAcC,IAAK,CACtC,IAAMC,EAAahB,EAAO,OAAO,EAAIe,CAAC,EAChCE,EAAiBF,EAAI,EAAID,EAAed,EAAO,OAAO,EAAIe,EAAI,CAAC,EAAInH,EAAK,OAC9E,GAAIoH,IAAeC,EAAgB,SACnC,IAAMC,EAAWlB,EAAO,OAAO,EAAIe,EAAI,CAAC,EAClCtI,GAAQD,GAAuBkH,EAAS7H,EAAqB,cAAcqJ,CAAQ,CAAC,EAAGhB,CAAiB,EACxGiB,GAAYtJ,EAAqB,aAAaqJ,CAAQ,EACtDE,EAAQ,CACb,QAASxH,EAAK,UAAUoH,EAAYC,CAAc,EAClD,OAAQP,EAAaM,EACrB,MAAAvI,GACA,UAAA0I,EACD,EACA,GAAId,IAAuB,YAAae,EAAM,KAAOvJ,EAAqB,aAAaqJ,CAAQ,UACtFb,EAAoB,CAC5B,IAAMgB,EAAyB,CAAC,EAChC,GAAIhB,IAAuB,YAAa,QAAW3F,KAAWxC,EAAM,SAAU,CAC7E,IAAIoJ,EACJ,OAAQ,OAAO5G,EAAQ,MAAO,CAC7B,IAAK,SACJ4G,EAAY5G,EAAQ,MAAM,MAAM4E,EAAQ,EAAE,IAAKiC,GAAUA,EAAM,KAAK,CAAC,EACrE,MACD,IAAK,SACJD,EAAY5G,EAAQ,MACpB,MACD,QAAS,QACV,CACA2G,EAAuB,KAAK,CAC3B,SAAU3G,EACV,UAAW4G,EAAU,IAAKE,GAAaA,EAAS,MAAMjC,EAAQ,CAAC,CAChE,CAAC,CACF,CACA6B,EAAM,YAAc,CAAC,EACrB,IAAIK,EAAS,EACb,KAAOT,EAAaS,EAASR,GAAgB,CAC5C,IAAMS,EAAkBd,EAAiBC,CAAqB,EACxDc,EAAsB/H,EAAK,UAAU8H,EAAgB,WAAYA,EAAgB,QAAQ,EAC/FD,GAAUE,EAAoB,OAC9BP,EAAM,YAAY,KAAK,CACtB,QAASO,EACT,OAAQtB,IAAuB,YAAcuB,GAA2BF,EAAgB,MAAM,EAAIG,GAAuBR,EAAwBK,EAAgB,MAAM,CACxK,CAAC,EACDb,GAAyB,CAC1B,CACD,CACAN,EAAO,KAAKa,CAAK,CAClB,CACAZ,EAAM,KAAKD,CAAM,EACjBA,EAAS,CAAC,EACVD,EAAaN,EAAO,SACrB,CACA,MAAO,CACN,OAAQQ,EACR,WAAAF,CACD,CACD,CACA,SAASsB,GAA2B1C,EAAQ,CAC3C,OAAOA,EAAO,IAAKqC,IAAW,CAAE,UAAWA,CAAM,EAAE,CACpD,CACA,SAASM,GAAuBC,EAAgB5C,EAAQ,CACvD,IAAMc,EAAS,CAAC,EAChB,QAASrG,EAAI,EAAG8G,EAAMvB,EAAO,OAAQvF,EAAI8G,EAAK9G,IAAK,CAClD,IAAM4H,EAAQrC,EAAOvF,CAAC,EACtBqG,EAAOrG,CAAC,EAAI,CACX,UAAW4H,EACX,aAAcQ,GAAkBD,EAAgBP,EAAOrC,EAAO,MAAM,EAAGvF,CAAC,CAAC,CAC1E,CACD,CACA,OAAOqG,CACR,CACA,SAASgC,EAAWR,EAAUD,EAAO,CACpC,OAAOC,IAAaD,GAASA,EAAM,UAAU,EAAGC,EAAS,MAAM,IAAMA,GAAYD,EAAMC,EAAS,MAAM,IAAM,GAC7G,CACA,SAASS,GAAQX,EAAWC,EAAOW,EAAc,CAChD,GAAI,CAACF,EAAWV,EAAU,GAAG,EAAE,EAAGC,CAAK,EAAG,MAAO,GACjD,IAAIY,EAAsBb,EAAU,OAAS,EACzCc,EAAcF,EAAa,OAAS,EACxC,KAAOC,GAAuB,GAAKC,GAAe,GAC7CJ,EAAWV,EAAUa,CAAmB,EAAGD,EAAaE,CAAW,CAAC,IAAGD,GAAuB,GAClGC,GAAe,EAEhB,OAAID,IAAwB,EAE7B,CACA,SAASJ,GAAkBV,EAAwBE,EAAOW,EAAc,CACvE,IAAMlC,EAAS,CAAC,EAChB,OAAW,CAAE,UAAAsB,EAAW,SAAAe,CAAS,IAAKhB,EAAwB,QAAWiB,KAAkBhB,EAAW,GAAIW,GAAQK,EAAgBf,EAAOW,CAAY,EAAG,CACvJlC,EAAO,KAAKqC,CAAQ,EACpB,KACD,CACA,OAAOrC,CACR,CAMA,SAASuC,GAAuB9C,EAAWnG,EAAMnB,EAASqK,EAAqBhD,GAAkB,CAChG,IAAMrE,EAAS,OAAO,QAAQhD,EAAQ,MAAM,EAAE,OAAQwB,GAAMA,EAAE,CAAC,CAAC,EAAE,IAAKA,IAAO,CAC7E,MAAOA,EAAE,CAAC,EACV,MAAOA,EAAE,CAAC,CACX,EAAE,EACI8I,EAAetH,EAAO,IAAKU,GAAM,CACtC,IAAM6G,EAASF,EAAmB/C,EAAWnG,EAAM,CAClD,GAAGnB,EACH,MAAO0D,EAAE,KACV,CAAC,EACD,MAAO,CACN,OAAA6G,EACA,MAAO9D,EAA2B8D,CAAM,EACxC,MAAO,OAAO7G,EAAE,OAAU,SAAWA,EAAE,MAAQA,EAAE,MAAM,IACxD,CACD,CAAC,EACK6G,EAASC,GAAwB,GAAGF,EAAa,IAAK9I,GAAMA,EAAE,MAAM,CAAC,EACrEiJ,EAAeF,EAAO,CAAC,EAAE,IAAI,CAAC9I,EAAMiJ,IAAYjJ,EAAK,IAAI,CAACkJ,EAAQC,IAAa,CACpF,IAAMC,EAAc,CACnB,QAASF,EAAO,QAChB,SAAU,CAAC,EACX,OAAQA,EAAO,MAChB,EACA,MAAI,uBAAwB3K,GAAWA,EAAQ,qBAAoB6K,EAAY,YAAcF,EAAO,aACpGJ,EAAO,QAAQ,CAAC7G,EAAGoH,IAAa,CAC/B,GAAM,CAAE,QAAS3G,EAAG,YAAa4G,EAAI,OAAQC,EAAK,GAAGC,CAAO,EAAIvH,EAAEgH,CAAO,EAAEE,CAAQ,EACnFC,EAAY,SAAS7H,EAAO8H,CAAQ,EAAE,KAAK,EAAIG,CAChD,CAAC,EACMJ,CACR,CAAC,CAAC,EACIK,EAAqBZ,EAAa,CAAC,EAAE,MAAQ,IAAI5D,EAAa,OAAO,YAAY4D,EAAa,IAAKpI,GAAM,CAACA,EAAE,MAAOA,EAAE,OAAO,iBAAiBA,EAAE,KAAK,CAAC,CAAC,CAAC,EAAGoI,EAAa,CAAC,EAAE,MAAM,IAAI,EAAI,OAC9L,OAAIY,GAAoB5E,EAAyBmE,EAAcS,CAAkB,EAC1ET,CACR,CAcA,SAASD,MAA2BxH,EAAQ,CAC3C,IAAMmI,EAAYnI,EAAO,IAAI,IAAM,CAAC,CAAC,EAC/BoI,EAAQpI,EAAO,OACrB,QAASxB,EAAI,EAAGA,EAAIwB,EAAO,CAAC,EAAE,OAAQxB,IAAK,CAC1C,IAAMD,EAAQyB,EAAO,IAAKU,GAAMA,EAAElC,CAAC,CAAC,EAC9B6J,EAAWF,EAAU,IAAI,IAAM,CAAC,CAAC,EACvCA,EAAU,QAAQ,CAACzH,EAAGlC,IAAMkC,EAAE,KAAK2H,EAAS7J,CAAC,CAAC,CAAC,EAC/C,IAAM8J,EAAU/J,EAAM,IAAI,IAAM,CAAC,EAC3BgK,EAAUhK,EAAM,IAAKuB,GAAMA,EAAE,CAAC,CAAC,EACrC,KAAOyI,EAAQ,MAAO7H,GAAMA,CAAC,GAAG,CAC/B,IAAM8H,EAAY,KAAK,IAAI,GAAGD,EAAQ,IAAK7H,GAAMA,EAAE,QAAQ,MAAM,CAAC,EAClE,QAAS+H,EAAI,EAAGA,EAAIL,EAAOK,IAAK,CAC/B,IAAMxC,EAAQsC,EAAQE,CAAC,EACnBxC,EAAM,QAAQ,SAAWuC,GAC5BH,EAASI,CAAC,EAAE,KAAKxC,CAAK,EACtBqC,EAAQG,CAAC,GAAK,EACdF,EAAQE,CAAC,EAAIlK,EAAMkK,CAAC,EAAEH,EAAQG,CAAC,CAAC,IAEhCJ,EAASI,CAAC,EAAE,KAAK,CAChB,GAAGxC,EACH,QAASA,EAAM,QAAQ,MAAM,EAAGuC,CAAS,CAC1C,CAAC,EACDD,EAAQE,CAAC,EAAI,CACZ,GAAGxC,EACH,QAASA,EAAM,QAAQ,MAAMuC,CAAS,EACtC,OAAQvC,EAAM,OAASuC,CACxB,EAEF,CACD,CACD,CACA,OAAOL,CACR","names":["ShikiError","EncodedTokenMetadata","INITIAL","Registry$1","Theme","resolveColorReplacements","theme","options","replacements","themeName","key","value","applyColorReplacements","color","toArray","x","normalizeGetter","p","r","isPlainLang","lang","isSpecialLang","isNoneTheme","isSpecialTheme","RE_NEWLINE","splitLines","code","preserveEnding","parts","index","lines","i","line","VSCODE_FALLBACK_EDITOR_FG","VSCODE_FALLBACK_EDITOR_BG","RESOLVED_KEY","normalizeTheme","rawTheme","bg","fg","globalSetting","s","replacementCount","replacementMap","getReplacementColor","hex","setting","replaceFg","replaceBg","clone","replacement","resolveLangs","langs","l","resolveThemes","themes","resolveLangAlias","name","alias","resolved","Registry","_resolver","_themes","_langs","_alias","t","_theme","textmateTheme","embeddedLazilyBy","grammarConfig","g","e","langsGraphArray","missingLangs","_","dependents","embedded","embeddedLang","Resolver","engine","patterns","langIdOrAlias","scopeName","a","scopeParts","injections","subScopeName","instancesCount","createShikiPrimitive","isDisposed","_registry","_lastTheme","resolveLangAlias$1","getLanguage","ensureNotDisposed","_lang","getTheme","setTheme","getLoadedThemes","getLoadedLanguages","loadLanguageSync","loadLanguage","loadThemeSync","loadTheme","dispose","createShikiInternalSync","createShikiPrimitiveAsync","createShikiInternal","_grammarStateMap","setLastGrammarStateToMap","keys","state","getLastGrammarStateFromMap","GrammarState","args","stacksMap","stack","getScopes","scopes","visited","pushScope","getGrammarStack","RE_COMMA","RE_SPACE","codeToTokensBase","primitive","colorMap","_grammar","tokenizeWithTheme","getLastGrammarState","_tokenizeWithTheme","grammar","result","grammarState","colorReplacements","tokenizeMaxLineLength","tokenizeTimeLimit","includeExplanation","stateStack","actual","final","len","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","tokensLength","j","startIndex","nextStartIndex","metadata","fontStyle","token","themeSettingsSelectors","selectors","scope","selector","offset","tokenWithScopes","tokenWithScopesText","explainThemeScopesNameOnly","explainThemeScopesFull","themeSelectors","explainThemeScope","matchesOne","matches","parentScopes","selectorParentIndex","parentIndex","settings","selectorPieces","codeToTokensWithThemes","codeToTokensBaseFn","themedTokens","tokens","alignThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","themeIdx","__","___","styles","mergedGrammarState","outThemes","count","outLines","indexes","current","minLength","n"],"sources":["../esm/npm/@shikijs/primitive@4.4.3/node_modules/@shikijs/primitive/dist/index.mjs"],"sourcesContent":["import { ShikiError } from \"@shikijs/types\";\nimport { EncodedTokenMetadata, INITIAL, Registry as Registry$1, Theme } from \"@shikijs/vscode-textmate\";\nexport * from \"@shikijs/types\";\n//#region src/utils/colors.ts\nfunction resolveColorReplacements(theme, options) {\n\tconst replacements = typeof theme === \"string\" ? {} : { ...theme.colorReplacements };\n\tconst themeName = typeof theme === \"string\" ? theme : theme.name;\n\tfor (const [key, value] of Object.entries(options?.colorReplacements || {})) if (typeof value === \"string\") replacements[key] = value;\n\telse if (key === themeName) Object.assign(replacements, value);\n\treturn replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n\tif (!color) return color;\n\treturn replacements?.[color?.toLowerCase()] || color;\n}\n//#endregion\n//#region src/utils/general.ts\nfunction toArray(x) {\n\treturn Array.isArray(x) ? x : [x];\n}\n/**\n* Normalize a getter to a promise.\n*/\nasync function normalizeGetter(p) {\n\treturn Promise.resolve(typeof p === \"function\" ? p() : p).then((r) =\u003e r.default || r);\n}\n/**\n* Check if the language is plaintext that is ignored by Shiki.\n*\n* Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n*/\nfunction isPlainLang(lang) {\n\treturn !lang || [\n\t\t\"plaintext\",\n\t\t\"txt\",\n\t\t\"text\",\n\t\t\"plain\"\n\t].includes(lang);\n}\n/**\n* Check if the language is specially handled or bypassed by Shiki.\n*\n* Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n*/\nfunction isSpecialLang(lang) {\n\treturn lang === \"ansi\" || isPlainLang(lang);\n}\n/**\n* Check if the theme is specially handled or bypassed by Shiki.\n*\n* Hard-coded themes: `none`.\n*/\nfunction isNoneTheme(theme) {\n\treturn theme === \"none\";\n}\n/**\n* Check if the theme is specially handled or bypassed by Shiki.\n*\n* Hard-coded themes: `none`.\n*/\nfunction isSpecialTheme(theme) {\n\treturn isNoneTheme(theme);\n}\n//#endregion\n//#region src/utils/strings.ts\n/**\n* Split a string into lines, each line preserves the line ending.\n*\n* @param code - The code string to split into lines\n* @param preserveEnding - Whether to preserve line endings in the result\n* @returns Array of tuples containing [line content, offset index]\n*\n* @example\n* ```ts\n* splitLines('hello\\nworld', false)\n* // =\u003e [['hello', 0], ['world', 6]]\n*\n* splitLines('hello\\nworld', true)\n* // =\u003e [['hello\\n', 0], ['world', 6]]\n* ```\n*/\nconst RE_NEWLINE = /(\\r?\\n)/g;\nfunction splitLines(code, preserveEnding = false) {\n\tif (code.length === 0) return [[\"\", 0]];\n\tconst parts = code.split(RE_NEWLINE);\n\tlet index = 0;\n\tconst lines = [];\n\tfor (let i = 0; i \u003c parts.length; i += 2) {\n\t\tconst line = preserveEnding ? parts[i] + (parts[i + 1] || \"\") : parts[i];\n\t\tlines.push([line, index]);\n\t\tindex += parts[i].length;\n\t\tindex += parts[i + 1]?.length || 0;\n\t}\n\treturn lines;\n}\n//#endregion\n//#region src/textmate/normalize-theme.ts\n/**\n* https://github.com/microsoft/vscode/blob/f7f05dee53fb33fe023db2e06e30a89d3094488f/src/vs/platform/theme/common/colorRegistry.ts#L258-L268\n*/\nconst VSCODE_FALLBACK_EDITOR_FG = {\n\tlight: \"#333333\",\n\tdark: \"#bbbbbb\"\n};\nconst VSCODE_FALLBACK_EDITOR_BG = {\n\tlight: \"#fffffe\",\n\tdark: \"#1e1e1e\"\n};\nconst RESOLVED_KEY = \"__shiki_resolved\";\n/**\n* Normalize a textmate theme to shiki theme\n*/\nfunction normalizeTheme(rawTheme) {\n\tif (rawTheme?.[RESOLVED_KEY]) return rawTheme;\n\tconst theme = { ...rawTheme };\n\tif (theme.tokenColors \u0026\u0026 !theme.settings) {\n\t\ttheme.settings = theme.tokenColors;\n\t\tdelete theme.tokenColors;\n\t}\n\ttheme.type ||= \"dark\";\n\ttheme.colorReplacements = { ...theme.colorReplacements };\n\ttheme.settings ||= [];\n\tlet { bg, fg } = theme;\n\tif (!bg || !fg) {\n\t\t/**\n\t\t* First try:\n\t\t* Theme might contain a global `tokenColor` without `name` or `scope`\n\t\t* Used as default value for foreground/background\n\t\t*/\n\t\tconst globalSetting = theme.settings ? theme.settings.find((s) =\u003e !s.name \u0026\u0026 !s.scope) : void 0;\n\t\tif (globalSetting?.settings?.foreground) fg = globalSetting.settings.foreground;\n\t\tif (globalSetting?.settings?.background) bg = globalSetting.settings.background;\n\t\t/**\n\t\t* Second try:\n\t\t* If there's no global `tokenColor` without `name` or `scope`\n\t\t* Use `editor.foreground` and `editor.background`\n\t\t*/\n\t\tif (!fg \u0026\u0026 theme?.colors?.[\"editor.foreground\"]) fg = theme.colors[\"editor.foreground\"];\n\t\tif (!bg \u0026\u0026 theme?.colors?.[\"editor.background\"]) bg = theme.colors[\"editor.background\"];\n\t\t/**\n\t\t* Last try:\n\t\t* If there's no fg/bg color specified in theme, use default\n\t\t*/\n\t\tif (!fg) fg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n\t\tif (!bg) bg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n\t\ttheme.fg = fg;\n\t\ttheme.bg = bg;\n\t}\n\tif (!(theme.settings[0] \u0026\u0026 theme.settings[0].settings \u0026\u0026 !theme.settings[0].scope)) theme.settings.unshift({ settings: {\n\t\tforeground: theme.fg,\n\t\tbackground: theme.bg\n\t} });\n\tlet replacementCount = 0;\n\tconst replacementMap = /* @__PURE__ */ new Map();\n\tfunction getReplacementColor(value) {\n\t\tif (replacementMap.has(value)) return replacementMap.get(value);\n\t\treplacementCount += 1;\n\t\tconst hex = `#${replacementCount.toString(16).padStart(8, \"0\").toLowerCase()}`;\n\t\tif (theme.colorReplacements?.[`#${hex}`]) return getReplacementColor(value);\n\t\treplacementMap.set(value, hex);\n\t\treturn hex;\n\t}\n\ttheme.settings = theme.settings.map((setting) =\u003e {\n\t\tconst replaceFg = setting.settings?.foreground \u0026\u0026 !setting.settings.foreground.startsWith(\"#\");\n\t\tconst replaceBg = setting.settings?.background \u0026\u0026 !setting.settings.background.startsWith(\"#\");\n\t\tif (!replaceFg \u0026\u0026 !replaceBg) return setting;\n\t\tconst clone = {\n\t\t\t...setting,\n\t\t\tsettings: { ...setting.settings }\n\t\t};\n\t\tif (replaceFg) {\n\t\t\tconst replacement = getReplacementColor(setting.settings.foreground);\n\t\t\ttheme.colorReplacements[replacement] = setting.settings.foreground;\n\t\t\tclone.settings.foreground = replacement;\n\t\t}\n\t\tif (replaceBg) {\n\t\t\tconst replacement = getReplacementColor(setting.settings.background);\n\t\t\ttheme.colorReplacements[replacement] = setting.settings.background;\n\t\t\tclone.settings.background = replacement;\n\t\t}\n\t\treturn clone;\n\t});\n\tfor (const key of Object.keys(theme.colors || {})) if (key === \"editor.foreground\" || key === \"editor.background\" || key.startsWith(\"terminal.ansi\")) {\n\t\tif (!theme.colors[key]?.startsWith(\"#\")) {\n\t\t\tconst replacement = getReplacementColor(theme.colors[key]);\n\t\t\ttheme.colorReplacements[replacement] = theme.colors[key];\n\t\t\ttheme.colors[key] = replacement;\n\t\t}\n\t}\n\tObject.defineProperty(theme, RESOLVED_KEY, {\n\t\tenumerable: false,\n\t\twritable: false,\n\t\tvalue: true\n\t});\n\treturn theme;\n}\n//#endregion\n//#region src/textmate/getters-resolve.ts\n/**\n* Resolve\n*/\nasync function resolveLangs(langs) {\n\treturn [...new Set((await Promise.all(langs.filter((l) =\u003e !isSpecialLang(l)).map(async (lang) =\u003e await normalizeGetter(lang).then((r) =\u003e Array.isArray(r) ? r : [r])))).flat())];\n}\nasync function resolveThemes(themes) {\n\treturn (await Promise.all(themes.map(async (theme) =\u003e isSpecialTheme(theme) ? null : normalizeTheme(await normalizeGetter(theme))))).filter((i) =\u003e !!i);\n}\n//#endregion\n//#region src/utils/alias.ts\nfunction resolveLangAlias(name, alias) {\n\tif (!alias) return name;\n\tif (alias[name]) {\n\t\tconst resolved = /* @__PURE__ */ new Set([name]);\n\t\twhile (alias[name]) {\n\t\t\tname = alias[name];\n\t\t\tif (resolved.has(name)) throw new ShikiError(`Circular alias \\`${[...resolved].join(\" -\u003e \")} -\u003e ${name}\\``);\n\t\t\tresolved.add(name);\n\t\t}\n\t}\n\treturn name;\n}\n//#endregion\n//#region src/textmate/registry.ts\nvar Registry = class extends Registry$1 {\n\t_resolver;\n\t_themes;\n\t_langs;\n\t_alias;\n\t_resolvedThemes = /* @__PURE__ */ new Map();\n\t_resolvedGrammars = /* @__PURE__ */ new Map();\n\t_langMap = /* @__PURE__ */ new Map();\n\t_langGraph = /* @__PURE__ */ new Map();\n\t_textmateThemeCache = /* @__PURE__ */ new WeakMap();\n\t_loadedThemesCache = null;\n\t_loadedLanguagesCache = null;\n\tconstructor(_resolver, _themes, _langs, _alias = {}) {\n\t\tsuper(_resolver);\n\t\tthis._resolver = _resolver;\n\t\tthis._themes = _themes;\n\t\tthis._langs = _langs;\n\t\tthis._alias = _alias;\n\t\tthis._themes.map((t) =\u003e this.loadTheme(t));\n\t\tthis.loadLanguages(this._langs);\n\t}\n\tgetTheme(theme) {\n\t\tif (typeof theme === \"string\") return this._resolvedThemes.get(theme);\n\t\telse return this.loadTheme(theme);\n\t}\n\tloadTheme(theme) {\n\t\tconst _theme = normalizeTheme(theme);\n\t\tif (_theme.name) {\n\t\t\tthis._resolvedThemes.set(_theme.name, _theme);\n\t\t\tthis._loadedThemesCache = null;\n\t\t}\n\t\treturn _theme;\n\t}\n\tgetLoadedThemes() {\n\t\tif (!this._loadedThemesCache) this._loadedThemesCache = [...this._resolvedThemes.keys()];\n\t\treturn this._loadedThemesCache;\n\t}\n\tsetTheme(theme) {\n\t\tlet textmateTheme = this._textmateThemeCache.get(theme);\n\t\tif (!textmateTheme) {\n\t\t\ttextmateTheme = Theme.createFromRawTheme(theme);\n\t\t\tthis._textmateThemeCache.set(theme, textmateTheme);\n\t\t}\n\t\tthis._syncRegistry.setTheme(textmateTheme);\n\t}\n\tgetGrammar(name) {\n\t\tname = resolveLangAlias(name, this._alias);\n\t\treturn this._resolvedGrammars.get(name);\n\t}\n\tloadLanguage(lang) {\n\t\tif (this.getGrammar(lang.name)) return;\n\t\tconst embeddedLazilyBy = new Set([...this._langMap.values()].filter((i) =\u003e i.embeddedLangsLazy?.includes(lang.name)));\n\t\tthis._resolver.addLanguage(lang);\n\t\tconst grammarConfig = {\n\t\t\tbalancedBracketSelectors: lang.balancedBracketSelectors || [\"*\"],\n\t\t\tunbalancedBracketSelectors: lang.unbalancedBracketSelectors || []\n\t\t};\n\t\tthis._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n\t\tconst g = this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n\t\tg.name = lang.name;\n\t\tthis._resolvedGrammars.set(lang.name, g);\n\t\tif (lang.aliases) lang.aliases.forEach((alias) =\u003e {\n\t\t\tthis._alias[alias] = lang.name;\n\t\t});\n\t\tthis._loadedLanguagesCache = null;\n\t\tif (embeddedLazilyBy.size) for (const e of embeddedLazilyBy) {\n\t\t\tthis._resolvedGrammars.delete(e.name);\n\t\t\tthis._loadedLanguagesCache = null;\n\t\t\tthis._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n\t\t\tthis._syncRegistry?._grammars?.delete(e.scopeName);\n\t\t\tthis.loadLanguage(this._langMap.get(e.name));\n\t\t}\n\t}\n\tdispose() {\n\t\tsuper.dispose();\n\t\tthis._resolvedThemes.clear();\n\t\tthis._resolvedGrammars.clear();\n\t\tthis._langMap.clear();\n\t\tthis._langGraph.clear();\n\t\tthis._loadedThemesCache = null;\n\t}\n\tloadLanguages(langs) {\n\t\tfor (const lang of langs) this.resolveEmbeddedLanguages(lang);\n\t\tconst langsGraphArray = [...this._langGraph.entries()];\n\t\tconst missingLangs = langsGraphArray.filter(([_, lang]) =\u003e !lang);\n\t\tif (missingLangs.length) {\n\t\t\tconst dependents = langsGraphArray.filter(([_, lang]) =\u003e {\n\t\t\t\tif (!lang) return false;\n\t\t\t\treturn (lang.embeddedLanguages || lang.embeddedLangs)?.some((l) =\u003e missingLangs.map(([name]) =\u003e name).includes(l));\n\t\t\t}).filter((lang) =\u003e !missingLangs.includes(lang));\n\t\t\tthrow new ShikiError(`Missing languages ${missingLangs.map(([name]) =\u003e `\\`${name}\\``).join(\", \")}, required by ${dependents.map(([name]) =\u003e `\\`${name}\\``).join(\", \")}`);\n\t\t}\n\t\tfor (const [_, lang] of langsGraphArray) this._resolver.addLanguage(lang);\n\t\tfor (const [_, lang] of langsGraphArray) this.loadLanguage(lang);\n\t}\n\tgetLoadedLanguages() {\n\t\tif (!this._loadedLanguagesCache) this._loadedLanguagesCache = [.../* @__PURE__ */ new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)])];\n\t\treturn this._loadedLanguagesCache;\n\t}\n\tresolveEmbeddedLanguages(lang) {\n\t\tthis._langMap.set(lang.name, lang);\n\t\tthis._langGraph.set(lang.name, lang);\n\t\tconst embedded = lang.embeddedLanguages ?? lang.embeddedLangs;\n\t\tif (embedded) for (const embeddedLang of embedded) this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n\t}\n};\n//#endregion\n//#region src/textmate/resolver.ts\nvar Resolver = class {\n\t_langs = /* @__PURE__ */ new Map();\n\t_scopeToLang = /* @__PURE__ */ new Map();\n\t_injections = /* @__PURE__ */ new Map();\n\t_onigLib;\n\tconstructor(engine, langs) {\n\t\tthis._onigLib = {\n\t\t\tcreateOnigScanner: (patterns) =\u003e engine.createScanner(patterns),\n\t\t\tcreateOnigString: (s) =\u003e engine.createString(s)\n\t\t};\n\t\tlangs.forEach((i) =\u003e this.addLanguage(i));\n\t}\n\tget onigLib() {\n\t\treturn this._onigLib;\n\t}\n\tgetLangRegistration(langIdOrAlias) {\n\t\treturn this._langs.get(langIdOrAlias);\n\t}\n\tloadGrammar(scopeName) {\n\t\treturn this._scopeToLang.get(scopeName);\n\t}\n\taddLanguage(l) {\n\t\tthis._langs.set(l.name, l);\n\t\tif (l.aliases) l.aliases.forEach((a) =\u003e {\n\t\t\tthis._langs.set(a, l);\n\t\t});\n\t\tthis._scopeToLang.set(l.scopeName, l);\n\t\tif (l.injectTo) l.injectTo.forEach((i) =\u003e {\n\t\t\tif (!this._injections.get(i)) this._injections.set(i, []);\n\t\t\tthis._injections.get(i).push(l.scopeName);\n\t\t});\n\t}\n\tgetInjections(scopeName) {\n\t\tconst scopeParts = scopeName.split(\".\");\n\t\tlet injections = [];\n\t\tfor (let i = 1; i \u003c= scopeParts.length; i++) {\n\t\t\tconst subScopeName = scopeParts.slice(0, i).join(\".\");\n\t\t\tinjections = [...injections, ...this._injections.get(subScopeName) || []];\n\t\t}\n\t\treturn injections;\n\t}\n};\n//#endregion\n//#region src/constructors/primitive.ts\nlet instancesCount = 0;\n/**\n* Get the minimal shiki primitive instance.\n*\n* Requires to provide the engine and all themes and languages upfront.\n*/\nfunction createShikiPrimitive(options) {\n\tinstancesCount += 1;\n\tif (options.warnings !== false \u0026\u0026 instancesCount \u003e= 10 \u0026\u0026 instancesCount % 10 === 0) console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n\tlet isDisposed = false;\n\tif (!options.engine) throw new ShikiError(\"`engine` option is required for synchronous mode\");\n\tconst langs = (options.langs || []).flat(1);\n\tconst themes = (options.themes || []).flat(1).map(normalizeTheme);\n\tconst _registry = new Registry(new Resolver(options.engine, langs), themes, langs, options.langAlias);\n\tlet _lastTheme;\n\tfunction resolveLangAlias$1(name) {\n\t\treturn resolveLangAlias(name, options.langAlias);\n\t}\n\tfunction getLanguage(name) {\n\t\tensureNotDisposed();\n\t\tconst _lang = _registry.getGrammar(typeof name === \"string\" ? name : name.name);\n\t\tif (!_lang) throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n\t\treturn _lang;\n\t}\n\tfunction getTheme(name) {\n\t\tif (name === \"none\") return {\n\t\t\tbg: \"\",\n\t\t\tfg: \"\",\n\t\t\tname: \"none\",\n\t\t\tsettings: [],\n\t\t\ttype: \"dark\"\n\t\t};\n\t\tensureNotDisposed();\n\t\tconst _theme = _registry.getTheme(name);\n\t\tif (!_theme) throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n\t\treturn _theme;\n\t}\n\tfunction setTheme(name) {\n\t\tensureNotDisposed();\n\t\tconst theme = getTheme(name);\n\t\tif (_lastTheme !== name) {\n\t\t\t_registry.setTheme(theme);\n\t\t\t_lastTheme = name;\n\t\t}\n\t\treturn {\n\t\t\ttheme,\n\t\t\tcolorMap: _registry.getColorMap()\n\t\t};\n\t}\n\tfunction getLoadedThemes() {\n\t\tensureNotDisposed();\n\t\treturn _registry.getLoadedThemes();\n\t}\n\tfunction getLoadedLanguages() {\n\t\tensureNotDisposed();\n\t\treturn _registry.getLoadedLanguages();\n\t}\n\tfunction loadLanguageSync(...langs) {\n\t\tensureNotDisposed();\n\t\t_registry.loadLanguages(langs.flat(1));\n\t}\n\tasync function loadLanguage(...langs) {\n\t\treturn loadLanguageSync(await resolveLangs(langs));\n\t}\n\tfunction loadThemeSync(...themes) {\n\t\tensureNotDisposed();\n\t\tfor (const theme of themes.flat(1)) _registry.loadTheme(theme);\n\t}\n\tasync function loadTheme(...themes) {\n\t\tensureNotDisposed();\n\t\treturn loadThemeSync(await resolveThemes(themes));\n\t}\n\tfunction ensureNotDisposed() {\n\t\tif (isDisposed) throw new ShikiError(\"Shiki instance has been disposed\");\n\t}\n\tfunction dispose() {\n\t\tif (isDisposed) return;\n\t\tisDisposed = true;\n\t\t_registry.dispose();\n\t\tinstancesCount -= 1;\n\t}\n\treturn {\n\t\tsetTheme,\n\t\tgetTheme,\n\t\tgetLanguage,\n\t\tgetLoadedThemes,\n\t\tgetLoadedLanguages,\n\t\tresolveLangAlias: resolveLangAlias$1,\n\t\tloadLanguage,\n\t\tloadLanguageSync,\n\t\tloadTheme,\n\t\tloadThemeSync,\n\t\tdispose,\n\t\t[Symbol.dispose]: dispose\n\t};\n}\n/**\n* @deprecated Use `createShikiPrimitive` instead.\n*/\nconst createShikiInternalSync = createShikiPrimitive;\n//#endregion\n//#region src/constructors/async.ts\n/**\n* Get the minimal shiki primitive instance.\n*/\nasync function createShikiPrimitiveAsync(options) {\n\tif (!options.engine) console.warn(\"`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.\");\n\tconst [themes, langs, engine] = await Promise.all([\n\t\tresolveThemes(options.themes || []),\n\t\tresolveLangs(options.langs || []),\n\t\toptions.engine\n\t]);\n\treturn createShikiPrimitive({\n\t\t...options,\n\t\tthemes,\n\t\tlangs,\n\t\tengine\n\t});\n}\n/**\n* @deprecated Use `createShikiPrimitiveAsync` instead.\n*/\nconst createShikiInternal = createShikiPrimitiveAsync;\n//#endregion\n//#region src/textmate/grammar-state.ts\nconst _grammarStateMap = /* @__PURE__ */ new WeakMap();\nfunction setLastGrammarStateToMap(keys, state) {\n\t_grammarStateMap.set(keys, state);\n}\nfunction getLastGrammarStateFromMap(keys) {\n\treturn _grammarStateMap.get(keys);\n}\n/**\n* GrammarState is a special reference object that holds the state of a grammar.\n*\n* It's used to highlight code snippets that are part of the target language.\n*/\nvar GrammarState = class GrammarState {\n\t/**\n\t* Theme to Stack mapping\n\t*/\n\t_stacks = {};\n\tlang;\n\tget themes() {\n\t\treturn Object.keys(this._stacks);\n\t}\n\tget theme() {\n\t\treturn this.themes[0];\n\t}\n\tget _stack() {\n\t\treturn this._stacks[this.theme];\n\t}\n\t/**\n\t* Static method to create a initial grammar state.\n\t*/\n\tstatic initial(lang, themes) {\n\t\treturn new GrammarState(Object.fromEntries(toArray(themes).map((theme) =\u003e [theme, INITIAL])), lang);\n\t}\n\tconstructor(...args) {\n\t\tif (args.length === 2) {\n\t\t\tconst [stacksMap, lang] = args;\n\t\t\tthis.lang = lang;\n\t\t\tthis._stacks = stacksMap;\n\t\t} else {\n\t\t\tconst [stack, lang, theme] = args;\n\t\t\tthis.lang = lang;\n\t\t\tthis._stacks = { [theme]: stack };\n\t\t}\n\t}\n\t/**\n\t* Get the internal stack object.\n\t* @internal\n\t*/\n\tgetInternalStack(theme = this.theme) {\n\t\treturn this._stacks[theme];\n\t}\n\tgetScopes(theme = this.theme) {\n\t\treturn getScopes(this._stacks[theme]);\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\tlang: this.lang,\n\t\t\ttheme: this.theme,\n\t\t\tthemes: this.themes,\n\t\t\tscopes: this.getScopes()\n\t\t};\n\t}\n};\nfunction getScopes(stack) {\n\tconst scopes = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\tfunction pushScope(stack) {\n\t\tif (visited.has(stack)) return;\n\t\tvisited.add(stack);\n\t\tconst name = stack?.nameScopesList?.scopeName;\n\t\tif (name) scopes.push(name);\n\t\tif (stack.parent) pushScope(stack.parent);\n\t}\n\tpushScope(stack);\n\treturn scopes;\n}\nfunction getGrammarStack(state, theme) {\n\tif (!(state instanceof GrammarState)) throw new ShikiError(\"Invalid grammar state\");\n\treturn state.getInternalStack(theme);\n}\n//#endregion\n//#region src/highlight/code-to-tokens-base.ts\nconst RE_COMMA = /,/;\nconst RE_SPACE = / /;\n/**\n* Code to tokens, with a simple theme.\n*/\nfunction codeToTokensBase(primitive, code, options = {}) {\n\tconst { theme: themeName = primitive.getLoadedThemes()[0] } = options;\n\tif (isPlainLang(primitive.resolveLangAlias(options.lang || \"text\")) || isNoneTheme(themeName)) return splitLines(code).map((line) =\u003e [{\n\t\tcontent: line[0],\n\t\toffset: line[1]\n\t}]);\n\tconst { theme, colorMap } = primitive.setTheme(themeName);\n\tconst _grammar = primitive.getLanguage(options.lang || \"text\");\n\tif (options.grammarState) {\n\t\tif (options.grammarState.lang !== _grammar.name) throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n\t\tif (!options.grammarState.themes.includes(theme.name)) throw new ShikiError(`Grammar state themes \"${options.grammarState.themes}\" do not contain highlight theme \"${theme.name}\"`);\n\t}\n\treturn tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(...args) {\n\tif (args.length === 2) return getLastGrammarStateFromMap(args[1]);\n\tconst [primitive, code, options = {}] = args;\n\tconst { lang = \"text\", theme: themeName = primitive.getLoadedThemes()[0] } = options;\n\tif (isPlainLang(lang) || isNoneTheme(themeName)) throw new ShikiError(\"Plain language does not have grammar state\");\n\tif (lang === \"ansi\") throw new ShikiError(\"ANSI language does not have grammar state\");\n\tconst { theme, colorMap } = primitive.setTheme(themeName);\n\tconst _grammar = primitive.getLanguage(lang);\n\treturn new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n\tconst result = _tokenizeWithTheme(code, grammar, theme, colorMap, options);\n\tconst grammarState = new GrammarState(result.stateStack, grammar.name, theme.name);\n\tsetLastGrammarStateToMap(result.tokens, grammarState);\n\treturn result.tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n\tconst colorReplacements = resolveColorReplacements(theme, options);\n\tconst { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, includeExplanation = false } = options;\n\tconst lines = splitLines(code);\n\tlet stateStack = options.grammarState ? getGrammarStack(options.grammarState, theme.name) ?? INITIAL : options.grammarContextCode != null ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n\t\t...options,\n\t\tgrammarState: void 0,\n\t\tgrammarContextCode: void 0\n\t}).stateStack : INITIAL;\n\tlet actual = [];\n\tconst final = [];\n\tfor (let i = 0, len = lines.length; i \u003c len; i++) {\n\t\tconst [line, lineOffset] = lines[i];\n\t\tif (line === \"\") {\n\t\t\tactual = [];\n\t\t\tfinal.push([]);\n\t\t\tcontinue;\n\t\t}\n\t\tif (tokenizeMaxLineLength \u003e 0 \u0026\u0026 line.length \u003e= tokenizeMaxLineLength) {\n\t\t\tactual = [];\n\t\t\tfinal.push([{\n\t\t\t\tcontent: line,\n\t\t\t\toffset: lineOffset,\n\t\t\t\tcolor: \"\",\n\t\t\t\tfontStyle: 0\n\t\t\t}]);\n\t\t\tcontinue;\n\t\t}\n\t\tlet resultWithScopes;\n\t\tlet tokensWithScopes;\n\t\tlet tokensWithScopesIndex;\n\t\tif (includeExplanation \u0026\u0026 includeExplanation !== \"tokenType\") {\n\t\t\tresultWithScopes = grammar.tokenizeLine(line, stateStack, tokenizeTimeLimit);\n\t\t\ttokensWithScopes = resultWithScopes.tokens;\n\t\t\ttokensWithScopesIndex = 0;\n\t\t}\n\t\tconst result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n\t\tconst tokensLength = result.tokens.length / 2;\n\t\tfor (let j = 0; j \u003c tokensLength; j++) {\n\t\t\tconst startIndex = result.tokens[2 * j];\n\t\t\tconst nextStartIndex = j + 1 \u003c tokensLength ? result.tokens[2 * j + 2] : line.length;\n\t\t\tif (startIndex === nextStartIndex) continue;\n\t\t\tconst metadata = result.tokens[2 * j + 1];\n\t\t\tconst color = applyColorReplacements(colorMap[EncodedTokenMetadata.getForeground(metadata)], colorReplacements);\n\t\t\tconst fontStyle = EncodedTokenMetadata.getFontStyle(metadata);\n\t\t\tconst token = {\n\t\t\t\tcontent: line.substring(startIndex, nextStartIndex),\n\t\t\t\toffset: lineOffset + startIndex,\n\t\t\t\tcolor,\n\t\t\t\tfontStyle\n\t\t\t};\n\t\t\tif (includeExplanation === \"tokenType\") token.type = EncodedTokenMetadata.getTokenType(metadata);\n\t\t\telse if (includeExplanation) {\n\t\t\t\tconst themeSettingsSelectors = [];\n\t\t\t\tif (includeExplanation !== \"scopeName\") for (const setting of theme.settings) {\n\t\t\t\t\tlet selectors;\n\t\t\t\t\tswitch (typeof setting.scope) {\n\t\t\t\t\t\tcase \"string\":\n\t\t\t\t\t\t\tselectors = setting.scope.split(RE_COMMA).map((scope) =\u003e scope.trim());\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"object\":\n\t\t\t\t\t\t\tselectors = setting.scope;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: continue;\n\t\t\t\t\t}\n\t\t\t\t\tthemeSettingsSelectors.push({\n\t\t\t\t\t\tsettings: setting,\n\t\t\t\t\t\tselectors: selectors.map((selector) =\u003e selector.split(RE_SPACE))\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttoken.explanation = [];\n\t\t\t\tlet offset = 0;\n\t\t\t\twhile (startIndex + offset \u003c nextStartIndex) {\n\t\t\t\t\tconst tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n\t\t\t\t\tconst tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n\t\t\t\t\toffset += tokenWithScopesText.length;\n\t\t\t\t\ttoken.explanation.push({\n\t\t\t\t\t\tcontent: tokenWithScopesText,\n\t\t\t\t\t\tscopes: includeExplanation === \"scopeName\" ? explainThemeScopesNameOnly(tokenWithScopes.scopes) : explainThemeScopesFull(themeSettingsSelectors, tokenWithScopes.scopes)\n\t\t\t\t\t});\n\t\t\t\t\ttokensWithScopesIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tactual.push(token);\n\t\t}\n\t\tfinal.push(actual);\n\t\tactual = [];\n\t\tstateStack = result.ruleStack;\n\t}\n\treturn {\n\t\ttokens: final,\n\t\tstateStack\n\t};\n}\nfunction explainThemeScopesNameOnly(scopes) {\n\treturn scopes.map((scope) =\u003e ({ scopeName: scope }));\n}\nfunction explainThemeScopesFull(themeSelectors, scopes) {\n\tconst result = [];\n\tfor (let i = 0, len = scopes.length; i \u003c len; i++) {\n\t\tconst scope = scopes[i];\n\t\tresult[i] = {\n\t\t\tscopeName: scope,\n\t\t\tthemeMatches: explainThemeScope(themeSelectors, scope, scopes.slice(0, i))\n\t\t};\n\t}\n\treturn result;\n}\nfunction matchesOne(selector, scope) {\n\treturn selector === scope || scope.substring(0, selector.length) === selector \u0026\u0026 scope[selector.length] === \".\";\n}\nfunction matches(selectors, scope, parentScopes) {\n\tif (!matchesOne(selectors.at(-1), scope)) return false;\n\tlet selectorParentIndex = selectors.length - 2;\n\tlet parentIndex = parentScopes.length - 1;\n\twhile (selectorParentIndex \u003e= 0 \u0026\u0026 parentIndex \u003e= 0) {\n\t\tif (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex])) selectorParentIndex -= 1;\n\t\tparentIndex -= 1;\n\t}\n\tif (selectorParentIndex === -1) return true;\n\treturn false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n\tconst result = [];\n\tfor (const { selectors, settings } of themeSettingsSelectors) for (const selectorPieces of selectors) if (matches(selectorPieces, scope, parentScopes)) {\n\t\tresult.push(settings);\n\t\tbreak;\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/highlight/code-to-tokens-themes.ts\n/**\n* Get tokens with multiple themes\n*/\nfunction codeToTokensWithThemes(primitive, code, options, codeToTokensBaseFn = codeToTokensBase) {\n\tconst themes = Object.entries(options.themes).filter((i) =\u003e i[1]).map((i) =\u003e ({\n\t\tcolor: i[0],\n\t\ttheme: i[1]\n\t}));\n\tconst themedTokens = themes.map((t) =\u003e {\n\t\tconst tokens = codeToTokensBaseFn(primitive, code, {\n\t\t\t...options,\n\t\t\ttheme: t.theme\n\t\t});\n\t\treturn {\n\t\t\ttokens,\n\t\t\tstate: getLastGrammarStateFromMap(tokens),\n\t\t\ttheme: typeof t.theme === \"string\" ? t.theme : t.theme.name\n\t\t};\n\t});\n\tconst tokens = alignThemesTokenization(...themedTokens.map((i) =\u003e i.tokens));\n\tconst mergedTokens = tokens[0].map((line, lineIdx) =\u003e line.map((_token, tokenIdx) =\u003e {\n\t\tconst mergedToken = {\n\t\t\tcontent: _token.content,\n\t\t\tvariants: {},\n\t\t\toffset: _token.offset\n\t\t};\n\t\tif (\"includeExplanation\" in options \u0026\u0026 options.includeExplanation) mergedToken.explanation = _token.explanation;\n\t\ttokens.forEach((t, themeIdx) =\u003e {\n\t\t\tconst { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n\t\t\tmergedToken.variants[themes[themeIdx].color] = styles;\n\t\t});\n\t\treturn mergedToken;\n\t}));\n\tconst mergedGrammarState = themedTokens[0].state ? new GrammarState(Object.fromEntries(themedTokens.map((s) =\u003e [s.theme, s.state?.getInternalStack(s.theme)])), themedTokens[0].state.lang) : void 0;\n\tif (mergedGrammarState) setLastGrammarStateToMap(mergedTokens, mergedGrammarState);\n\treturn mergedTokens;\n}\n/**\n* Break tokens from multiple themes into same tokenization.\n*\n* For example, given two themes that tokenize `console.log(\"hello\")` as:\n*\n* - `console . log (\" hello \")` (6 tokens)\n* - `console .log ( \"hello\" )` (5 tokens)\n*\n* This function will return:\n*\n* - `console . log ( \" hello \" )` (8 tokens)\n* - `console . log ( \" hello \" )` (8 tokens)\n*/\nfunction alignThemesTokenization(...themes) {\n\tconst outThemes = themes.map(() =\u003e []);\n\tconst count = themes.length;\n\tfor (let i = 0; i \u003c themes[0].length; i++) {\n\t\tconst lines = themes.map((t) =\u003e t[i]);\n\t\tconst outLines = outThemes.map(() =\u003e []);\n\t\toutThemes.forEach((t, i) =\u003e t.push(outLines[i]));\n\t\tconst indexes = lines.map(() =\u003e 0);\n\t\tconst current = lines.map((l) =\u003e l[0]);\n\t\twhile (current.every((t) =\u003e t)) {\n\t\t\tconst minLength = Math.min(...current.map((t) =\u003e t.content.length));\n\t\t\tfor (let n = 0; n \u003c count; n++) {\n\t\t\t\tconst token = current[n];\n\t\t\t\tif (token.content.length === minLength) {\n\t\t\t\t\toutLines[n].push(token);\n\t\t\t\t\tindexes[n] += 1;\n\t\t\t\t\tcurrent[n] = lines[n][indexes[n]];\n\t\t\t\t} else {\n\t\t\t\t\toutLines[n].push({\n\t\t\t\t\t\t...token,\n\t\t\t\t\t\tcontent: token.content.slice(0, minLength)\n\t\t\t\t\t});\n\t\t\t\t\tcurrent[n] = {\n\t\t\t\t\t\t...token,\n\t\t\t\t\t\tcontent: token.content.slice(minLength),\n\t\t\t\t\t\toffset: token.offset + minLength\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn outThemes;\n}\n//#endregion\nexport { GrammarState, Registry, Resolver, alignThemesTokenization, applyColorReplacements, codeToTokensBase, codeToTokensWithThemes, createShikiInternal, createShikiInternalSync, createShikiPrimitive, createShikiPrimitiveAsync, getGrammarStack, getLastGrammarState, getLastGrammarStateFromMap, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, normalizeGetter, normalizeTheme, resolveColorReplacements, resolveLangAlias, resolveLangs, resolveThemes, setLastGrammarStateToMap, splitLines, toArray, tokenizeWithTheme };\n"],"version":3}
